robot_canarrange
Download
Report
Transcript robot_canarrange
A ROBOT CAN ARRANGE
Done by:
Dania mohammad Abu Elown.
Ruaa Tahseen Barakat.
Supervisor: Dr. Raed Al-Qadi
OUTLINES
Introduction.
Previous work.
Hardware
Software, libraries and languages
Project features.
Future work.
Problems.
Demo.
INTRODUCTION
We are making a robot arm that can identify
letters and be able to make words of letters.
Our project contains two parts, the image
processing part which is responsible of
recognizing the letters, and the second part is the
control of the arm itself.
Image processing uses BeagleBoard.
Controls of the arm uses Ardiuno microcontroller.
PREVIOUS WORK
We are not the first to develop such this project.
It was made before but without the image
processing part which identifies the letters on the
blocks, so it is a great feature to add.
HARDWARE
1.
2.
3.
4.
5.
6.
1.
2.
3.
4.
apparatus
BeagleBoard-xm for the processing.
Arduino Uno for Microcontrolling.
Camera
stepper motors.
Servo motor.
H-Bridge.
The Model
Consists of four parts:
the base.
Arm.
Vertical axis moves up and down.
Gripper.
SOFTWARE
1.
2.
1.
1.
2.
Applications:
Arduino IDE.
Gedit ( Linux text editor)
Operating system
Ubuntu (LXDE).
Libraries
Opencv
Tesseract-OCR Engine
1.
2.
Languages:
C++ for programming the processor
Arduino C for the Arduino microcontroller
The Design
FEATURES
the base consists of stepper motor that can move
360 degrees. It hold the complete arm on.
The arm connect with vertical axis that moves up
and down using another stepper motor and at the
end of the axis, there is a gripper which catches
the wooden cubes.
The processor connects all the components
together, the BeagleBoars has 4 USB ports, one
for the Arduino Uno, and one for the camera,
Which provides communication between them
through serial interface.
The motors are connected to the microcontroller
using H-Bridge, H-Bridge provides control for the
operations of the motors.
Hardware Costs
Item
Cost(NIS)
Design
500
Sd Cards
180
Arduino
170
Servo motor
65
Gripper
60
Web Cam
45
Wireless adapter
60
Stepper motor
90
Power supply
20
H-bridges
70
Others
60
Total
1320
SYSTEM DESIGN
Processor: the main part of the system which links all
the components together, it is responsible for the
processing and commands. The processor takes input
from the camera , and gives the right commands to
the micrcontroller.
The microcontroller: used to control the motors and
their rotation, and to send feedback to the processor.
The robotic Arm : carries the components and used for
movement.
Camera: its feed is processed and the commands are
issued based on the processor’s image processing
output.
WHT IS BEAGLEBOARD-XM
Beagle boards are tiny computers with
all the capability of today’s desktop
machines, without the bulk, expense,
or noise.
The processor of the beagle board
supports high-level operating systems
such as:
• Linux
• Windows CE
• QNX
• Others
Microcontroller
• The microcontroller module is required to
actually interpret the commands and control the
motors.
• The main task of the microcontroller system is to
control the motors. It interprets the processors
commands of going forward, backward, left or
right. It controls the output pins that are
connected to the H-Bridge module connected
directly to the motors
Arduino
Arduino can be used to
develop interactive objects,
taking inputs from a variety of
switches or sensors, and
controlling a variety of lights,
motors, and other physical
outputs. Arduino projects can be
stand-alone, or they can
communicate with software
running on your computer.
WHAT IS THE ARDUINO-UNO
Microcontroller
ATmega328
Operating Voltage
5V
Input Voltage (recommended)
7-12V
Input Voltage (limits)
6-20V
Digital I/O Pins
14 (of which 6 provide PWM output)
Analog Input Pins
6
DC Current per I/O Pin
40 mA
DC Current for 3.3V Pin
50 mA
Flash Memory
32 KB (ATmega328) of which 0.5 KB used by
bootloader
SRAM
2 KB (ATmega328)
EEPROM
1 KB (ATmega328)
Clock Speed
16 MHz
WHAT STEPPER MOTOR
•A stepper motor is a digitally controlled
motor that allows precise control over the
position of the motor’s rotor.
•Changes in the digital input rotate the
motor’s rotor by a precise amount
CONNECT MOTTOR TO H-BRIDGE AND
ARDUINO
WHAT IS SERVO MOTOR
•
A servo motor (or servo) is a package containing
a DC motor connected via gears to a shaft.
• It also contains a feedback circuit that precisely
controls the shaft’s angle of rotation.
The servo is connected
to the arduino as shown
in the picture.
Power Sources
•
5 volt for the beagle board.
• 12 volt for the largest stepper motor.
• 24 volt for the smaller stepper motor.
Operating System Used
•
Beagleboard xm can operate wide list of
operating systems starting from Android to
Ubuntu and Angstrom.
•
In our project we tried several operating
systems with different environments.
1. Angstrom : Angstrom Linux is an operating
system developed specifically for small
computers and embedded devices such as the
BeagleBoard-xM.
2. Xubuntu : Xubuntu provides an easy to use
distribution, based on Ubuntu, using Xfce as the
graphical desktop, with a focus on integration,
usability and performance.
3. LXDE: LXDE is a free and open source desktop
environment for Unix. The goal of the project is
to provide a desktop environment that is fast
and energy efficient.
4. Ubuntu :Ubuntu is a Debian-based Linux
operating system,with Unity as its default
desktop environment.Ubuntu is the most
popular desktop Linux distribution.
• As for Angstrom it was quite fast to work with
but it didn’t have as much resources as Ubuntu ,
and the terminal command are not the same as
Ubuntu that we are familiar with.
• As for Xubuntu and LXDE both were fast but
they didn’t have a mouse pointer, so we ended up
with using Ubuntu on beagleboard.
• But then later we installed LXDE environment
on Ubuntu since it is much faster.
OPENCV
OpenCV is the main part for dealing with camera
and photos.
OpenCV is free for both academic and
commercial use.
It has C++, C, Python and Java interfaces.
supports Windows, Linux, Mac OS, iOS and
Android.
Written in optimized C/C++,
TESSERACT-OCR ENGINE
Tesseract is probably the most accurate open
source OCR engine available.
Combined with theLeptonica Image processing
Library. it can read a wide variety of image
formats and convert them to text in over 60
languages.
Tesseract works on Linux, Windows and Mac
OSX.
It can also be compiled for other platforms,
including Android and the iPhone.
Image Processing
In order to get the character from an image we did
some steps on a photo:
1. Convert image to Gray.
2. Blur the image
3.Threshold
4.Crop the image
IMAGE PROCESSING
First filter is
RGB2GRAY filter as
shown in the photo.
This is done using
this code:
The second filter is
GaussianBlur. We
used it to reduce the
noise as in the photo.
Then we used the
threshold filter on
the blured image.
The image only
contain white and
black color.
Finally we crop the
interested region of
the thresholded
image and pass it to
the tesseract library
Problems
1. Completing the design
2. Type of SD Card.
3. Porting operating system on beagle.
Future Work
We hope to add voice recognition as an additional
feature instead of getting the word serially.