Escolar Documentos
Profissional Documentos
Cultura Documentos
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 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
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,
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
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/