Você está na página 1de 22

Beaglebot

Mobile Image Processing Platform Robot Platform Arduino Obstacle Avoidance Beagleboard OpenCV: Image Processing Ball Detection

Robot Platform
There are two levels of processing on the Robot. Lower level sensor reading and motor control done

by Arduino Microcontroller. Higher level Image processing on Beagleboard (ARM SOC). Detection of obstacles using sonar sensors. Perception of surroundings using Computer Vision.

Robot Platform
Movement provided by DC Motors controlled by

motor driver Robot has a Differential drive system Semi circular array of Maxbotix sonars Used for Obstacle Avoidance

Robot Platform
Multiple levels in Robot

lower level for Microcontroller Higher level for Microprocessor and Camera

Arduino Platform
Open-source Microcontroller platform Designed upon Atmega Microcontroller Series Entire Software and Hardware Package Onboard GPIO and PWM pins Capable of running DC Motors and Servo Motors Onboard ADC capable of reading sensor readings Used for lower level functioning of Robot

Arduino Mega 2560


Operating Voltage Digital I/O Pins Analog Input Pins Flash Memory Clock Speed 5V 54 (of which 14 provide PWM output) 16 256 KB of which 8 KB used by bootloader 16 MHz

Arduino Platform
Robot can detect obstacles by reading signals from

sonars Depending on location of Obstacles, the Arduino takes its decisions and avoids them

Obstacle Avoidance
Arduino collects analog voltage from each sonar Computes the distance of Obstacle Disturbance in sonar readings when robot is in

motion Averaging of over 50 readings to eliminate noise This way Robot can detect obstacles atleast 90% of the cases

Obstacle Avoidance
The Present Algorithm is not memory based Computes least value of all sonars and checks

threshold On Obstacle Detection, computes largest sonar reading Rotates in that direction and leaves If all sonar readings are less, rotates back and leaves

Obstacle Avoidance
Sample of Obstacle Avoidance Code In this the Robot enters a circle of Obstacles and

then leaves it successfully Run Video obstacle.avi

Beagleboard
Beagleboard is an ARM based System on Chip Texas Instruments OMAP3 Processor 700 MHz Processing Speed Support for DVI-D Display, Audio Ports, USB Hub Support for Ethernet and Internet Connectivity Functionality of a full-fledged Desktop Onboard GPIOs and 16-bit PWM pins Can also be used in controlling Motors and Sensors

Beagleboard
http://www.beagleboard.org/

Linux on Beagleboard
Boots Linux from SD Card Beagleboard widely supported platform Pre-built binaries for many popular Linux

OS(Debian, Ubuntu, Fedora) These Binaries actually meant for Netbooks Too power hungry for Beagleboard Better to build own kernel with light weight packages

Linux on Beagleboard
Rootstock is a program which builds custom Ubuntu

Distribution Meant for ARM based development boards Program downloads the kernel and necessary packages Compiles the kernel on a host system using crosscompiler It generates a compressed filesystem which is loaded onto SD Card

Linux on Beagleboard
Firstly rootstock needs to be installed in the host

system,

sudo apt-get install rootstock

Then the following command needs to be run,


sudo rootstock --fqdn omap --login ubuntu --password temppwd --imagesize 4G --seed wget,nano,linux-firmware,wirelesstools,usbutils,xfce4,gdm,xubuntu-gdm-theme,xubuntuartwork,xserver-xorg-video-omap3,btrfs-tools,devmem2,i2ctools,nano,pastebinit,wpasupplicant --dist maverick --serial ttyO2 -components "main universe multiverse" --kernel-image http://rcn-ee.net/deb/maverick/v2.6.38.4-x3/linux-image2.6.38.4-x3_1.0maverick_armel.deb

Linux on Beagleboard
In the previous command Firstly type of board is specified as OMAP3 Then the imagesize is specified to be 4GB Then all the packages to be installed along with basic filesystem is given Finally the link to beagleboard specific kernel is given The SD Card on Beagleboard has 2 partitions First partition has initialization scripts Second partition has filesystem

Programming Environment
Robot can work as a Desktop

for development Access through Serial Port Robot can also be logged on Remotely using ssh

OpenCV: Image Processing Library


The Robot can better perceive its environment using

Computer Vision OpenCV: Image Processing Library Open-source package with a lot of support and Documentation The Robot can interact with humans and other robots using OpenCV

OpenCV
Image Processing Applications done on Robot Canny Edge Detection done on the Robot OpenCV Library also has Video Processing

extensions Algorithms being developed for detection of other Robots in the Environment

Ball Detection
The Robot has a ball mounted on top Ball has multiple leds in it Depending on the state of Robot, the ball will glow a

color The aim of other Robots is to successively locate all balls in Environment and to identify the master Present algorithm uses the cam-shift algorithm

Ball Detection
The video for ball detection In this the ball is being successfully detected in the

dark On switching on the Light, there some decrease in Accuracy Run Video ball.avi Better algorithms currently being developed

Resources
Detailed explanation about setting up hardware Circuit Schematics, Support for Beagleboard Example Arduino codes and OpenCV Codes All material uploaded online http://www.themachine.in/

Você também pode gostar