380 likes | 507 Views
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.
E N D
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 • 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 • Applications: • Arduino IDE. • Gedit ( Linux text editor) • Operating system • Ubuntu (LXDE). • Libraries • Opencv • Tesseract-OCR Engine
Languages: • C++ for programming the processor • Arduino C for the Arduino microcontroller
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.
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 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
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 • Beagleboardxm 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.
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 • Completing the design • Type of SD Card. • Porting operating system on beagle.
Future Work • We hope to add voice recognition as an additional feature instead of getting the word serially.