import math
import lib601.util as util
import lib601.sm as sm
import lib601.gfx as gfx
from soar.io import io
class MySMClass(sm.SM):
def getNextValues(self, state, inp):
return (state, io.Action(fvel = 0.05, rvel = 0.05))
mySM = MySMClass()
mySM.name = 'brainSM'
######################################################################
###
### Brain methods
###
######################################################################
def plotSonar(sonarNum):
robot.gfx.addDynamicPlotFunction(y=('sonar'+str(sonarNum),
lambda:
io.SensorInput().sonars[sonarNum]))
# this function is called when the brain is (re)loaded
def setup():
robot.gfx = gfx.RobotGraphics(drawSlimeTrail=True, # slime trails
sonarMonitor=False) # sonar monitor widget
# set robot's behavior
robot.behavior = mySM
# this function is called when the start button is pushed
def brainStart():
robot.behavior.start(traceTasks = robot.gfx.tasks())
# this function is called 10 times per second
def step():
inp = io.SensorInput()
# print inp.sonars[3]
robot.behavior.step(inp).execute()
io.done(robot.behavior.isDone())
# called when the stop button is pushed
def brainStop():
pass
# called when brain or world is reloaded (before setup)
def shutdown():
pass
Imam problem sa ovim primerom, kada se ubaci u SOAR (Simulator - tutorial.py), robot se istovremeno krece pravolinijski i rotira, a zaustavlja se tek kad udari u zid. Ja imam zadatak da ovaj primer modifikujem tako da robot ide pravojinijski, a kad udari u zid da se rotira za 90 stepeni i nastavi pavolinijsko kretanje pored zida. Probao sam nesto da uradim, ali nikako mi ne uspeva...
Moze li neko da pomogne?