10.07.2015 Views

High level software architecture for autonomous mobile robot

High level software architecture for autonomous mobile robot

High level software architecture for autonomous mobile robot

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3tree (unsuccessfully finished task remains open). Failure reasons do not necessarilyhave to be of high <strong>level</strong> causes. It could be hardware failure, suddenly appearingobstacle, etc. Reactive model is used <strong>for</strong> low <strong>level</strong>, e.g. <strong>robot</strong> per<strong>for</strong>ms emergencystop maneuver when confronted with suddenly appearing obstacle, andmessage is sent to current task, causing it to fail. The flow can be illustrated onfigure 2, where example with obstacle avoidance is given. The <strong>robot</strong> is moving onthe path (<strong>for</strong> now we do not care how the path is recognized, how <strong>robot</strong> steers onthe path, as it is what the task deals with) and task fails as there is obstacle detected(figure 2a). Due to the failure the TM inserts appropriate task into the tree.Avoid obstacle task fails as there is no way how obstacle can be avoided (figure2b). TM now inserts new task into the tree, the Solve trap task (figure 2c). Oncethe trap is solved, the task ends and flow returns to upper task (figure 2d) and thismechanism continues until the motion on the path is restored (figure 2f).Move on pathObstacledetectedMove on pathAvoid obstacleMove on pathAvoid obstacle(a)Obstacle(b) (c)unavoidableSolve trapMove on pathAvoid obstacleMove on pathAvoid obstacleMove on pathContinue on pathObstacle avoidedSolve trap(d)Trap solved(e) (f)Figure 2. Task tree exampleThe limited space does not allow us to go into greater detail in all the tasks, let’stake a look at least into Avoid obstacle task. The flow is shown on figure 3. Thetask first determines whether the obstacle is static or dynamic. In case of static obstaclethe task determines if it can be avoided, if yes the planning algorithm replansthe trajectory and task returns success. In case of dynamic obstacle the taskhas to resolve if it can be avoided, and if yes it must decide whether to replan thetrajectory or use velocity tuning algorithm (“wait” <strong>for</strong> the obstacle to move away).There are several ways how to build the core of TM, the decision mechanismwhich selects appropriate tasks <strong>for</strong> insertion in the case of current task failure.Currently we are using simple set of rules that acts as primitive expert system,with low <strong>level</strong> functions “hard wired” (e.g. in the case of hardware componentfailure the low <strong>level</strong> functions independently stop the <strong>robot</strong> immediately, reportthe HW failure to current task in operation, task fails and whole mission isaborted). However the simple set of rules can be replaced with e.g. Bayesian baseddecision maker, etc.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!