SEGBOT: Details

 

 

 

Code Composer Studio was utilized in development of the Segbot project using C-programming.

The Segbot had three objectives:

 

1.    Locating Specific Color

2.    Avoiding Obstacles

3.    Perform Wall-Following. 

 

The main components of the Segbot were:

 

*     DSP motherboard from TI – model: TMS320C6713DSK

*     Infrared encoders by Sharp – model: GP2D02

*     8-bit OmniVision camera – model: OV5017

*     12-bit Analog to digital converter – model AD7864

*     Gyro by Analog Devices – model: ADXRS300

*     Crossbow tilt sensormodel: CXTLA01

 

 

*    Project Code

 

 

The programming part of the project was to code algorithms that would allow the Segbot to maneuver autonomously in a confined space.  There were two main schemes which: (1) utilization of an 8-bit color camera for vision-based control and (2) using infrared (IR) distance sensors for obstacle avoidance also based on control.  The color camera, which produces a 96x72 pixel image, that is later thresholded and segmented to focus on object of orange color.  For our purpose, the Segbot’s objective was to find the orange object and move towards its centre point.  This was achieved using proportional controller that adjusted the Segot’s movement pattern based on the error reading between the object’s centroid and the actual camera positioning on pixel image at each instant.  The second and third objectives involved the use of infrared sensors.  Based on the sensor readings the Segbot was aware of its distance in reference to any object or wall.  The Segbot was coded not to run into any barrier, but rather, avoid it closely following its borders.  The same idea was implemented to follow a wall in a square arena.  A total of three IR sensors were used:  front, right, left.  At first, proportional controller was used to adjust the speed of the motors based on the distance from the object.  Soon we found out that the error of the distances, in various locations, made the proportional controller adjust rather radically - resulting in large over-shoots in rotation.  To fix this, we applied a proportional-derivative controller, which made the error correction transition more fluent and the Segbot more responsive. 

 

*    VIDEO1

*    VIDEO2