Difference between revisions of "Braitenberg vehicles implemented using SBOT robot"
(2 intermediate revisions by the same user not shown) | |||
Line 42: | Line 42: | ||
=== Photos === | === Photos === | ||
− | [[Image:Breitenberg-vehicles-SBOT.jpg | + | <div style="float: left"> |
− | [[Image:Breitenberg-vehicles-SBOT2.jpg | + | [[Image:Breitenberg-vehicles-SBOT.jpg|thumb|300px|SBOT for Braitenberg vehicles]] |
+ | </div> | ||
+ | <div style="float: left"> | ||
+ | [[Image:Breitenberg-vehicles-SBOT2.jpg|thumb|300px|SBOT for Braitenberg vehicles]] | ||
+ | </div> | ||
+ | <div style="clear:both"> | ||
=== Video === | === Video === | ||
− | + | [http://www.youtube.com/watch?v=pTSJEQ09Tuk SBot Braitenberg video on YouTube] | |
== Resources == | == Resources == |
Latest revision as of 08:13, 19 May 2010
Contents
Goal
Our goal is to implement Braitenberg vehicles using SBOT with various different behaviors. It is an agent with some primitive sensors (SBOT has infrared sensors) and wheels (each driven by its own motor) which acts as effectors. The actual move of the robot depends on the behavior of the vehicle (loving, exploring, aggresive...) and the strength of the signal (e.g. the more light the stronger signal).
Light sensors
Because light sensors are not packed with the SBOT we had to construct them ourselves. To construct a light sensor we used a photodiode and a resistor. Final sensor can be seen on photos of our SBot.
Implementation of braitenberg vehicles
We started with modified firmware for SBot which already included functions for mobility like start, stop, go forward, etc.
Getting usable values from light sensors
As we connected our 2 light sensors to the slots on SBot, we had to write some callibration functions, which mapped the value from signal to a usable value in range <0, 100>. The value itself is then averaged from the last N measures, where N is a constant (in our case we let N equals 20).
Setting behavior of robot
Braitenberg vehicles could have lots of different behaviors, but we were limited since we had just 2 motors and 2 sensors.
We have implemented following behaviors/vehicles:
Alive
Components: Sensor and motor. Principle: The more there is of the quality (e.g., heat) to which the sensor is tuned, the faster the motor goes. Description: alive, restless, doesn’t "like" heat.
Cowardly
Components: 2 sensors, 2 motors, each sensor connected to the motor on the same side ("uncrossed") Principle: The more there is of the quality to which the sensor is tuned, the faster the motors go ("excitatory"). Description: dislikes source to which the sensor is tuned; occasionally "attacks" it
Aggressive
Components: 2 sensors, 2 motors, each sensor connected to the motor on the opposite side ("crossed") Principle: The more there is of the quality to which the sensor is tuned, the faster the motors go ("excitatory"). Description: dislikes source to which the sensor is tuned; "attacks" it
Loving/Quietly Adoring
Components: 2 sensors, 2 motors, each sensor connected to the motor on the same side ("uncrossed") Principle: The more there is of the quality to which the sensor is tuned, the slower the motors go ("inhibitory"). Description: loves the source, wants to be near it, comes to rest facing it
Loving/Exploring
Components: 2 sensors, 2 motors, each sensor connected to the motor on the opposite side ("crossed") Principle: The more there is of the quality to which the sensor is tuned, the slower the motors go ("inhibitory"). Description: likes the source, but easily attracted away
Video & Photo documentation
We have taken several photos and captured a video of our robot.
Photos
Video
SBot Braitenberg video on YouTube
Resources
You can read a short description of Braitenberg vehicles on Wikipedia - Braitenberg vehicles.
There is also a video of BV implemented using NXT Lego on YouTube.
A list of some behaviours by Valentino Braitenberg.