Difference between revisions of "Braitenberg vehicles implemented using SBOT robot"

From RoboWiki
Jump to: navigation, search
(Setting behavior of robot)
Line 45: Line 45:
 
[[Image:Breitenberg-vehicles-SBOT2.jpg|none|thumb|300px|SBOT for Braitenberg vehicles]]
 
[[Image:Breitenberg-vehicles-SBOT2.jpg|none|thumb|300px|SBOT for Braitenberg vehicles]]
 
=== Video ===
 
=== Video ===
Video will be placed here.
+
<object width="500" height="405"><param name="movie" value="http://www.youtube.com/v/pTSJEQ09Tuk&hl=en_US&fs=1&color1=0x3a3a3a&color2=0x999999&border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/pTSJEQ09Tuk&hl=en_US&fs=1&color1=0x3a3a3a&color2=0x999999&border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="405"></embed></object>
  
 
== Resources ==
 
== Resources ==

Revision as of 19:11, 18 May 2010

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).

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

SBOT for Braitenberg vehicles
SBOT for Braitenberg vehicles

Video

<object width="500" height="405"><param name="movie" value="http://www.youtube.com/v/pTSJEQ09Tuk&hl=en_US&fs=1&color1=0x3a3a3a&color2=0x999999&border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/pTSJEQ09Tuk&hl=en_US&fs=1&color1=0x3a3a3a&color2=0x999999&border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="405"></embed></object>

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.