[ aleksandarpmau @ 30.06.2011. 16:11 ] @
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? |