Thursday, July 1, 2010

Proteus and subsumption



Hi all!

So, as I said last week, I am continuing to work with the Proteus robot model and its task development using what's called the subsumption technique.

A general description of the Proteus model, its foundation and research purpose can be read here:
http://frisbee.ece.utexas.edu/svn/pctb/proteus/doc/Tech_paper/Proteus_tech.pdf
(user:anon pass:anon)
The document talks about Proteus's aim to be a robot that is low-powered and easy to use; in order to achieve these goals, developers must allow flexibility in all architectural, hardware, and software design.
One of the things that allow such a simple usage of robots are the Linux supported programs called Player and Stage, allowing software developers to implement tasks through high level driver commands using the API (Application Programming Interfaces) in the programs' core library.
More information about this user friendly application can be found here:
http://playerstage.sourceforge.net/

One of the challenges that come in any design is its engineering structure.
In the Proteus's software scope, this would be the realization of multi-tasked robots; in order to achieve the flexibility that the project calls for, there needs to be a way to appropriately execute tasks that are easily layered and integrated.
This can be done through division of tasks in small modular codes which are controlled through a main program with an associated priority level.
For example, if a robot was to reach a certain destination while avoiding any obstacles, the subsumption layer would look like this:
### Highest priority
Avoid obstacles
Move to
Stop
### Lowest priority

The following article explains some insights on the realization of such robots:
http://people.csail.mit.edu/brooks/papers/representation.pdf the hi

Looking at all of these aspects, some solid goals for the summer for the robot are multi-robot obstacle avoidance and line following (using a camera).
These are implemented using subsumption in C++ codes that Player supports.
I hope to understand these engineering techniques and to dig deeper in order to help out with lower level driver implementations, as well as seek higher in order to develop high level robotic controls.

=== our current model of the Proteus robot ===
Neat, huh. :)
I hope everyone has a great Independence Holiday, I know I will!

-- Arthur

No comments:

Post a Comment