Difference between revisions of "Braitenberg vehicles implemented using SBOT robot"
(links updated) |
|||
(10 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | [[Image:Breitenberg-vehicles-SBOT.jpg|right|thumb|250px|SBOT for Braitenberg vehicles]] | ||
+ | == 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). | 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 [http://en.wikipedia.org/wiki/Photodiode photodiode] and a [http://en.wikipedia.org/wiki/Resistor 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 [http://instruct.westvalley.edu/lafave/Vehicles_online.html 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 === | ||
+ | <div style="float: left"> | ||
+ | [[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 === | ||
+ | [http://www.youtube.com/watch?v=pTSJEQ09Tuk SBot Braitenberg video on YouTube] | ||
+ | |||
+ | == Resources == | ||
You can read a short description of Braitenberg vehicles on [http://en.wikipedia.org/wiki/Braitenberg_vehicles Wikipedia - Braitenberg vehicles]. | You can read a short description of Braitenberg vehicles on [http://en.wikipedia.org/wiki/Braitenberg_vehicles Wikipedia - Braitenberg vehicles]. | ||
+ | |||
There is also a video of BV implemented using NXT Lego on [http://www.youtube.com/watch?v=yUVcI5Pw2o4 YouTube]. | There is also a video of BV implemented using NXT Lego on [http://www.youtube.com/watch?v=yUVcI5Pw2o4 YouTube]. | ||
− | A list of some [http://instruct.westvalley.edu/lafave/Vehicles_online.html behaviours]. | + | |
+ | A list of some [http://instruct.westvalley.edu/lafave/Vehicles_online.html behaviours] by Valentino Braitenberg. |
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.