Skip to end of metadata
Go to start of metadata

In class we learned that robotics systems are generally built with many levels, such as

planning -> state machines -> reactive -> hardware

The first paper I found when I looked for information on robot systems was by Ronald Arkin, written in 1990. He referenced "A Robust Layered Control System for a Mobile Robot" by Rodney Brooks in 1985, which I decided to look at since it is simpler.

Brooks first references the "usual" robot system, which resembles what we learned in class:

sensors -> perception -> modelling -> planning -> task execution -> motor control -> actuation

He then proposes an alternate way of splitting the levels of control. His approach is to have each level be an entirely functional program, and each level adds complexity to the desired task. This results in a more "horizontal" splitting:

Sensors ->

7. reason about object behavior
6. plan changes
5. identify objects
4. monitor changes
3. build maps
2. explore
1. wander
0. avoid objects

-> Actuation

Every level is a collection of modules, which are implemented as state machines.

The idea is that the avoid objects level can be written, tested, and established completely to be used as a base for all higher levels. It uses perception and motor control, but if a higher level needs to perform these tasks, then that level may do so independently - all perception tasks need not be grouped together.

Each additional level may take results from lower levels or override parts completely. Brooks describes how wander reads the forces determined in avoid objects and then overrides some motor commands. Avoid objects still sends halt commands to the motor when the robot is about to collide with a stationary obstacle. The next level up, explore builds on wander, inserting its own planned heading into a module in wander. Since it is using established code, this hierarchical building should be sound.

Brooks describes how using this architecture allows for reasonable "fallback" behavior. If a sensor or processor used in the level-2 program fails, then the robot may revert to level-1 behavior since those processes are entirely intact and fully operational regardless of problems with level 2.