Camera Aided Robot Progress Report
AIM? • Develop a camera guided robot. • Has to be able to detect red circular objects and the object position in each frame. • Needs to translate image co-ordinates to real world co-ordinates for robot. • Robot uses the real world information to locate object. • Draws a dot on centre of object.
Block Diagram Camera USB Pandaboard Motor 1 Motor 2 M1OUT M2OUT 4460 Core Dagu 4 channel motor driver M3OUT Motor controls encoders USB Arduino Motor 3 Dagu Rover 5
System Flow Start Initialize camera and robot Start looking for objects object found? object found? Stop robot No Yes Detect position of object Left Middle Right No No Yes Yes Yes Turn robot left Drive forward Turn robot right
Development Environment • Hardware Development Board • The development board chosen is the Pandaboard ES. • 1.2GHz Dual core Arm 9 processor, SGX540 graphics core which supporting all major API's. • 1GB RAM, Adequate memory.
Development Enviroment • Logitech 330 HD webcam being used for camera. • Operating System • The OS chosen for this project is Ubuntu OMAP4. • TI kernel for the Pandaboard ES. • Support for OpenCV . • Driver support for camera’s (v4l) and arduino.
Development Environment • Robot • To control the robot I have decided to use an Arduino for the sole control of the robot. • Dual motor driver from Pololu with two MC332926 chips has been chosen as the motor driver. • Dagu Rover 5 is used for the robot chassis.
Progress To Date • Pandaboard And Ubuntu Issues • Difficult integration of Ubuntu OS and the Pandaboard. • TI kernel ondemand issue with clock solved. • Boot.script issue with RAM solved.
Progress To Date • Application • Finds red circular objects in an image. • Elliptic Morphological kernel used to manipulate image to find circular objects. • CvBlobs library used to extract circular objects which are then stored in arrays. • Kalman filter used for tracking the object based on centre point of object. noise and other external factors need to be taken into account.
Progress To Date • Yellow x is the predicted centre of the object. • Blue square is the bounding box drawn by CvBlobs library. • The Memory used is small (Just 15 – 25 MB).
Progress To Date • Robot& Arduino • Robot is not working. • Simple code developed for Arduino to control the robot. • PWM generated depending on character received over USB serial.
Future Plans • Once a new motor driver is gotten the entire robot will be set up (excluding arm). • Possible change in motor driver. Dagu provide a driver with 4 channels. • Simple starting application to calibrate the robot. • Integrate current Application on Pandaboard with Arduino and chassis and check calibration.
Future Plans • Get a robotic arm and integrate into application. (Dagu - 2DOF Arm with Gripper and Servos) • Develop an algorithm to convert 2D image co-ordinates to real world co-ordinates. • Translate the real world co-ordinates into robotic arm commands and chassis movement.