Geek A Subsumption based robot built using the Propeller Chip
Geek is a simple 2-wheeled carpet roving chassis constructed from discarded servos and parts left over from other projects. Essentially Geek is an over grown Boe Bot. Mounted to this simple frame is a set of standard hardware and software components that I now use in all my robots. The Robot Sensor Array (RSA) handles all the sensors and their processing. Using three PIC microcontrollers, it supports a flexible configuration of proximity (IR), distance (Ping), collision (switches) and cliff sensors (Sharp GP2D12). Through a simple 6-wire interface the RSA is connected to the Robot Mission Controller (RMC).
The RMC is based on the Propeller Chip. The software that runs in the RMC is my implementation of the behavior/subsumption architecture originally developed at MIT. The software is written using the Parallax Spin language. It consists of a set of reusable Spin objects that handle all the behavior/resource communication and arbitration. Each behavior and resource runs in its own cog and uses these objects to coordinate activity. Using these building blocks I now have a hardware and software platform on which I can build new applications on virtually any robot platform.
Geek currently implements three Behaviors which are each assigned a priority from 1 to 3 (3 being the highest priority). The priority determines which Behavior has exclusive access to a Resource. The higher the priority the more likely a Behavior will get the Resource. The three Behaviors are as follows:
Navigation – This is the lowest priority and simplest Behavior. Basically it issues a move forward command. Future implementations may support navigation based on a compass or beacon following.
Avoid – Using the IR proximity detectors and the Ping on the RSA, the Avoid Behavior attempts to prevent a collision with any object such as walls, furniture, people and even cats. It also uses the servo mounted Ping to scan for a safe directions of passage.
Escape – The Escape Behavior is the behavior of last resort. It has top priority. It uses the bumper sensors to sense and then escape from a collision. It also prevents Geek from falling into the abyss by sensing drop-offs with the cliff sensors.
There are two Resources implemented on Geek:
Motor Drive – Using the Parallax Servo Controller the Motor Drive Resource controls the two continuous motion servos based on simple commands from the Behaviors. Command like Forward, Turn Right 30 degrees and Stop are examples.
Ping Scanner – Using the RSA controlled Ping, the Ping Scanner Resource supports commands for various scans to determine best direction.
Geek as proven to be quite a robust robot. It’s amazing how complex behavior can emerge from three simple behaviors. It’s fun watching Geek get itself out of all sorts of jams.
There are many details of which I could never cover here in a short forum post. If there is any interest I could post schematics, code and more details. For now I’ve attach several pictures of Geek.
The RMC is based on the Propeller Chip. The software that runs in the RMC is my implementation of the behavior/subsumption architecture originally developed at MIT. The software is written using the Parallax Spin language. It consists of a set of reusable Spin objects that handle all the behavior/resource communication and arbitration. Each behavior and resource runs in its own cog and uses these objects to coordinate activity. Using these building blocks I now have a hardware and software platform on which I can build new applications on virtually any robot platform.
Geek currently implements three Behaviors which are each assigned a priority from 1 to 3 (3 being the highest priority). The priority determines which Behavior has exclusive access to a Resource. The higher the priority the more likely a Behavior will get the Resource. The three Behaviors are as follows:
Navigation – This is the lowest priority and simplest Behavior. Basically it issues a move forward command. Future implementations may support navigation based on a compass or beacon following.
Avoid – Using the IR proximity detectors and the Ping on the RSA, the Avoid Behavior attempts to prevent a collision with any object such as walls, furniture, people and even cats. It also uses the servo mounted Ping to scan for a safe directions of passage.
Escape – The Escape Behavior is the behavior of last resort. It has top priority. It uses the bumper sensors to sense and then escape from a collision. It also prevents Geek from falling into the abyss by sensing drop-offs with the cliff sensors.
There are two Resources implemented on Geek:
Motor Drive – Using the Parallax Servo Controller the Motor Drive Resource controls the two continuous motion servos based on simple commands from the Behaviors. Command like Forward, Turn Right 30 degrees and Stop are examples.
Ping Scanner – Using the RSA controlled Ping, the Ping Scanner Resource supports commands for various scans to determine best direction.
Geek as proven to be quite a robust robot. It’s amazing how complex behavior can emerge from three simple behaviors. It’s fun watching Geek get itself out of all sorts of jams.
There are many details of which I could never cover here in a short forum post. If there is any interest I could post schematics, code and more details. For now I’ve attach several pictures of Geek.
Comments
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Dave Evartt
People don't hate computers, they just hate lousy programmers.
http://wehali.com
Post Edited (davee) : 10/11/2006 3:33:51 PM GMT
Details and schematics ! Wow.
I purchased a propeller chip and would like to put it to work. Purchased a Beo-Bot too.
I am currently reading the propeller manual.
Your robot is what I like to do with other projects.
Can you post some of your simple servo code or any code for your robot in propeller ?
Rob7.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"When the government is afraid of the people there is liberty, when the people are afraid of the government, there is tryanny"
· Thomas Jefferson
·
Those look like foam RC airplane wheels.
Check out
www.nesail.com/categories.php?subcatID=58&PHPSESSID=7763585283b73cda8a7fb2b1a5f12d1f
http://www.robotmarketplace.com/products/wheels_main.html
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
PG