Presentation Major Project

56
Submitted by : Submitted by : Tushar singh Tushar singh parmar parmar Ankit rathore Ankit rathore Pratik mota Pratik mota Robo-soccer Robo-soccer Guided by: Guided by: Ruchi sharma Ruchi sharma

Transcript of Presentation Major Project

Page 1: Presentation Major Project

Submitted by :Submitted by :

Tushar singh Tushar singh parmarparmarAnkit rathoreAnkit rathorePratik motaPratik mota

Robo-soccerRobo-soccer

Guided by:Guided by:

Ruchi sharmaRuchi sharma

Page 2: Presentation Major Project

1 Introduction

In this section, an overview of vision controlled motion (VCM) as a system is explained.

1.1 System Description : -

The system for VCM consists of:

1. Image acquisition setup: It consists of a video camera, web camera, or an analogue camera with suitable interface for connecting it to processor.

2. Processor: It consists of either a personal computer or a dedicated image processing unit.

3. Image analysis: Certain tools are used to analyze the content in the image captured and derive conclusions e.g. locating position of an object.

4. Machine control: After making the conclusion, mechanical action is to be taken e.g. Using serial or parallel port of a PC to control left and right motors of a robot to direct it towards the ball

Page 3: Presentation Major Project

Image Acquisition Image Acquisition DeviceDevice

e.g. CCD camerae.g. CCD camera

Image Processor e.g. PC, DSP

Image Analysis Tool e.g. MATLAB

Machine Control e.g. Using parallel port to control motors

Page 4: Presentation Major Project

System OverviewSystem Overview

Page 5: Presentation Major Project

1. Image capturing can be done using video camera available in various resolutions e.g. 640 x 480 pixels. There are two types of cameras generally available: Digital cameras (CCD – charge coupled device and CMOS sensor based) and analogue cameras. Digital cameras generally have a direct interface with computer (USB port),but analogue cameras require suitable grabbing card or TV tuner card for interfacingwith PC.Power requirements: CCD cameras give high quality, low-noise images. It generates an analog signal and uses analog to digital converter (ADC) and thus consumes high power. CMOS cameras have lesser sensitivity resulting in poor image quality but consume lesser power resulting in more battery life.

2. Image analysis consists of extracting useful information from the captured images.We first decide the characteristics of the object to look for, in the image. This characteristic of the object must be as robust as possible.

Page 6: Presentation Major Project

i. Color ii. Intensity iii. Texture or pattern iv. Edges – circular, straight, vertical stripes v. Structure – Arrangement of objects in a specific manner

Generally, for the purpose of tracking or identifying the object we utilize:

Quantitative/ Statistical analysis of image:

i. Center of gravity - point where the desired pixels can be balanced ii. Pixel count – a high pixel count indicates presence of object iii. Blob – an area of connected pixels

Page 7: Presentation Major Project

3. Machine control consists of controlling a robot based on the conclusion derived from image analysis.

To achieve this using PC, its parallel port or serial port can be used for driving the robot. For e.g. H-bridge, PWM control can be extensively used for right and left motor movement of a robot. Serial-port can be used for transferring data, which necessitates a micro-controller on the robot to interpret the data.

Tools for Image Processing :

Once the image acquisition setup is ready, the captured images need to be stored in suitable format to process them. Generally, a raw image is stored as a matrix of color intensities. MATLAB provides a very easy platform for image acquisition and processing. Even serial and parallel ports can be directly accessed using MATLAB. It serves as a handy tool for beginner level VCM. It provides a powerful built-in library of many useful functions for image processing. An Open source equivalent of MATLAB is SCILAB (can be downloaded from http://www.scilab.org for free) and Scilab Image Processing (SIP) toolbox (http://siptoolbox.sourceforge.net). However, support available in SIP is limited as there are a few developers who contribute to this toolbox.

Page 8: Presentation Major Project

Approach:

1. Interfacing with PC ports

MATLAB provides support to access serial port (also called as COM port) and parallel port (also called as printer port or LPT port) of a PC.

Note: If you are using a desktop PC or an old laptop, you will most probably have both, parallel and serial ports. However in newer laptops parallel port may not be available.

Parallel Port

Parallel port has 25 pins as shown in figure below. Parallel port cables are locally available (commonly referred as printer port cables). These cables are handy to connect port pins with your circuit. Pins 2-9 are bi-directional data pins (pin 9 gives the most significant bit (MSB)), pins 10-13 and 15 are output pins (status pins), pins 1,14,16,17 are input pins (control pins), while pins 18-25 are Ground pins.

MATLAB has an adaptor to access the parallel port (similar to adaptor for image acquisition). To access the parallel port in MATLAB, define an object .

Page 9: Presentation Major Project
Page 10: Presentation Major Project

b. Serial Port :

If you have to transmit one byte of data, the serial port will transmit 8 bits as one bit at a time. The advantage is that a serial port needs only one wire to transmit the 8 bits (while a parallel port needs 8).

Page 11: Presentation Major Project

Camera Mounting System:

1. For the clamping of the hanging plate to the mounting plate there will be 4 screws of 2in length (5cm) and 5mm diameter inserted and bolted on the mounting plate.

2. You should keep a clearance of 4cm for the screws and bolt to fit in.

3. Materials suggested :

Plywood - 6mmAcrylic - 4mm to 8mmAluminum - 2mm onwards

Page 12: Presentation Major Project
Page 13: Presentation Major Project

SOFTWARE COMPONENTS DESCRIPTION

1. Eagle Software:

The use of Eagle (Easily Applicable Graphical Layout Editor) PCB design software to design an electronic schematic and lay out a printed circuitboard(PCB) Eagle is a PCB design software package consisting of a schematics editor, a PCB editor and an autorouter module. The software comes with an extensive library of components, but a library editor is also available to design new parts or modify existing ones.

Eagle is made by CadSoft and is available in three versions. The light-version is limited to one sheet of schematics and half euro-card format (80x100 mm), but can be used under the terms of the freeware licence for non-commercial use

Page 14: Presentation Major Project

2. Keil Software:

μVision, the popular IDE from Keil Software, combines Project management, Source Code Editing, Program Debugging, and Flash Programming in a single, powerful environment + Project Management, Device Setup, and Tool Configuration.+ Editor facilities for Creating, Modifying, and Correcting Programs.+ Target Debugging or CPU & Peripheral Simulation.

Page 15: Presentation Major Project

MATLAB(Tool for image processing) :-

MATLAB is a numerical computing environment and programming language. Created by The MathWorks, MATLAB allows easy matrix manipulation, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs in other languages.

MATLAB is built around the MATLAB language, sometimes called M-code or simply M. The simplest way to execute M-code is to type it in at the prompt, >> , in the Command Window, one of the elements of the MATLAB Desktop. In this way, MATLAB can be used as an interactive mathematical shell. Sequences of commands can be saved in a text file, typically using the MATLAB Editor, as a script or encapsulated into a function, extending the commands available.

MATLAB is a "Matrix Laboratory", and as such it provides many convenient ways for creating matrices of various dimensions.. A matrix generally refers to a multi-dimensional matrix, that is, a matrix with more than one dimension, for instance, an N×M, an N×M×L, etc., where N, M, and L are greater than 1. Once the image acquisition setup is ready, the captured images need to be stored in suitable format to process them. Generally, a raw image is stored as a matrix of color intensities. .

Page 16: Presentation Major Project

Working with Images Let us begin with the basic

instructions to read and display an image in MATLAB.

Reading an image Once you have started MATLAB, type

the following in the Command Window >> im=imread(‘imagename.jpg'); This command stores the image

imagename.jpg in a variable with name im.

Page 17: Presentation Major Project

Displaying an image :-

You can display the image in another window by using imshow command

>>figure,imshow(im);

This pops up another window (called as figure window), and displays the image im

M-files :-

MATLAB provides a facility to execute multiple command statements with a single command. This is done by writing a .m file. Goto File > New > M-file

Page 18: Presentation Major Project

Function p= coutpix(im); f=0; for i=1:240 for j=1:320 if im(i,j,1)>250 a=[i,j]; f=1; break; end end If f==1 break; endend

Page 19: Presentation Major Project

Hardware Components Description:-

1. Hall effect sensor :

A Hall effect sensor is a transducer that varies its output voltage in response to changes in magnetic field. Hall sensors are used for proximity switching, positioning, speed detection, and current sensing applications.In its simplest form, the sensor operates as an analogue transducer, directly returning a voltage. With a known magnetic field, its distance from the Hall plate can be determined. Using groups of sensors, the relative position of the magnet can be deduced.

Electricity carried through a conductor will produce a magnetic field that varies with current, and a Hall sensor can be used to measure the current without interrupting the circuit. Typically, the sensor is integrated with a wound core or permanent magnet that surrounds the conductor to be measured. Hall sensors are commonly used to time the speed of wheels and shafts, such as for internal combustion engine ignition timing or tachometers. They are used in brushless DC electric motors to detect the position of the permanent magnet.

Page 20: Presentation Major Project

In the pictured wheel carrying two equally spaced magnets, the voltage from the sensor will peak twice for each revolution. This arrangement is commonly used to regulate the speed of disc drives.

Page 21: Presentation Major Project

2. 8051 Microcontroller :

The Intel 8051 is a single chip microcontroller (µC) . Intel's original 8051 family was developed using NMOS technology, but later versions, identified by a letter "C" in their name, e.g. 80C51, used CMOS technology and were less power-hungry than their NMOS predecessors - this made them eminently more suitable for battery-powered devices. A particularly useful feature of the 8051 core is the inclusion of a boolean processing engine which allows bit-level boolean logic operations to be carried out directly and efficiently on internal registers and RAM. This feature helped to cement the 8051's popularity in industrial control applications. Another valued feature is that it has four separate register sets, which can be used to greatly reduce interrupt latency compared to the more common method of storing interrupt context on a stack. 8051 based microcontrollers typically include one or two UARTs, two or three timers, 128 or 256 bytes of internal data RAM (16 bytes of which are bit-addressable), up to 128 bytes of I/O, 512 bytes to 64 kB of internal program memory, and sometimes a quantity of extended data RAM (ERAM) located in the external data space.

Page 22: Presentation Major Project
Page 23: Presentation Major Project

Important features of 8051

1. It provides many functions (CPU, RAM, ROM, I/O, interrupt logic, timer, etc.) in a single package

2. 8-bit data bus - It can access 8 bits of data in one operation (hence it is an 8-bit microcontroller)

3. 16-bit address bus - It can access 216 memory locations - 64 kB each of RAM and ROM

4. On-chip RAM - 128 bytes ("Data Memory")

5. On-chip ROM - 4 kB ("Program Memory")

6. Four byte bi-directional input/output port7. UART (serial port)

8. Two 16-bit Counter/timers

9. Two-level interrupt priority

10. Power saving mode

Page 24: Presentation Major Project

3. 2051 Microcontroller(20-pin) :-

The 2051 is a 20 pin version of the 8051. It is a low-voltage, high-performance CMOS 8-bit microcomputer with 2K bytes of Flash programmable and erasable read only memory. Atmel manufactures the chip using high-density nonvolatile memory technology. The 2051 and is compatible with the industry-standard MCS-51 instruction set. By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel 2051 is a powerful microcontroller. It provides a very flexible, cost-effective solution to many embedded control applications.

Page 25: Presentation Major Project

Operational features of the 2051 :-

The 2051 features Compatibility with MCS-51 ™ Products, 2K Bytes of Reprogrammable Flash Memory with 1,000 Write/Erase Cycles. The operating range of the 2051 is 2.7V to 6V

The 2051 also contains the following features:

•Fully Static Operation: 0 Hz to 24 MHz •Two-level Program Memory Lock •128 x 8-bit Internal RAM •15 Programmable I/O Lines •Two 16-bit Timer/Counters •Six Interrupt Sources •Programmable Serial UART Channel •Direct LED Drive Outputs •On-chip Analog Comparator •Low-power Idle and Power-down Modes

Page 26: Presentation Major Project

4. D.C. Servomotor :-

Dc servo motors are normally used as prime movers in computers, numerically controlled machinery, or other applications where starts and stops are made quickly and accurately. Servo motors have lightweight, low-inertia armatures that respond quickly to excitation-voltage changes. In addition, very low armature inductance in these servo motors results in a low electrical time constant (typically 0.05 to 1.5 msec) that further sharpens servo motor response to command signals. Servo motors include permanent-magnetic, printed-circuit, and moving-coil (or shell) dc servo motors. The rotor of a shell dc servo motor consists of a cylindrical shell of copper or aluminum wire coils which rotate in a magnetic field in the annular space between magnetic pole pieces and a stationary iron core. The servo motor features a field, which is provided by cast AlNiCo magnets whose magnetic axis is radial. Servo motors usually have two, four, or six poles.

Dc servo motor characteristics include inertia, physical shape, costs, shaft resonance, shaft configuration, speed, and weight. Although these dc servo motors have similar torque ratings, their physical and electrical constants vary.

Page 27: Presentation Major Project

5. Proximity Sensor :-

Proximity sensors are sensors able to detect the presence of nearby objects without any physical contact. A proximity sensor often emits an electromagnetic or electrostatic field, or a beam of electromagnetic radiation (infrared, for instance), and looks for changes in the field or return signal. The object being sensed is often referred to as the proximity sensor's target. Different proximity sensor targets demand different sensors. For example, a capacitive or photoelectric sensor might be suitable for a plastic target; an inductive proximity sensor requires a metal target.The maximum distance that this sensor can detect is defined "nominal range". Some sensors have adjustments of the nominal range or means to report a graduated detection distance.

Proximity sensors can have a high reliability and long functional life because of the absence of mechanical parts and lack of physical contact between sensor and the sensed object. A proximity sensor adjusted to a very short range is often used as a touch switch.

Page 28: Presentation Major Project

5. DRIVING A MOTOR USING H-BRIDGE :-

Physical motion of some form helps differentiate a robot from a computer. It would be nice if a motor could be attached directly to a chip that controlled the movement. But, most chips can't pass enough current or voltage to spin a motor. Also, motors tend to be electrically noisy (spikes) and can slam power back into the control lines when the motor direction or speed is changed.

Specialized circuits (motor drivers) have been developed to supply motors with power and to isolate the other ICs from electrical problems. These circuits can be designed such that they can be completely separate boards, reusable from project to project.

A very popular circuit for driving DC motors (ordinary or gear head) is called an H-bridge.An H-bridge is an electronic circuit which enables DC electric motors to be run forwards or backwards. These circuits are often used in robotics. H-bridges are available as integrated circuits, or can be built from separate components.

Page 29: Presentation Major Project

The term "H-bridge" is derived from the typical graphical representation of such a circuit. An H-bridge is built with four switches. When the switches S1 and S4 (according to the first figure) are closed (and S2 and S3 are open) a positive voltage will be applied across the motor. By opening S1 and S4 switches and closing S2 and S3 switches, this voltage is reversed, allowing reverse operation of the motor.Using the nomenclature above, the switches S1 and S2 should never be closed at the same time, as this would cause a short circuit on the input voltage source. The same applies to the switches S3 and S4. This condition is known as shoot-through

Structure of an H-bridge (highlighted in red)

Page 30: Presentation Major Project

Image ProcessingImage Processing Digital imageDigital image – – representation of a two-dimensional representation of a two-dimensional

imageimage using ones and zeros using ones and zeros . . Digital images can be classified Digital images can be classified

according to the number and nature of according to the number and nature of those samples:those samples:

1. 1. binarybinary2. 2. GrayscaleGrayscale3. 3. colorcolor4. 4. false-colorfalse-color5. 5. multi-spectralmulti-spectral6. thematic6. thematic7. picture function7. picture function

Page 31: Presentation Major Project

Digital image processingDigital image processing – –

It is the use of computer algorithms to It is the use of computer algorithms to perform image processing on digital perform image processing on digital images. images.

It is advantageous over analog image It is advantageous over analog image processing processing

allows a much wider range of algorithms allows a much wider range of algorithms to be applied to the input data .to be applied to the input data .

avoid problems such as the build-up of avoid problems such as the build-up of noise and signal distortion during noise and signal distortion during processing.processing.

Page 32: Presentation Major Project

Distance transformDistance transform – – Also known as Also known as distance mapdistance map or or

distance fielddistance field . . It is a representation of a digital image .It is a representation of a digital image . It supplies each pixel of the image with It supplies each pixel of the image with

the distance to the nearest the distance to the nearest obstacle obstacle pixelpixel. .

Page 33: Presentation Major Project

How are digital images How are digital images stored?stored?

Each pixel is stored as a numerical value in Each pixel is stored as a numerical value in a matrix.a matrix.

ColumnsColumns

RowsRows

Page 34: Presentation Major Project

How are digital images How are digital images stored?stored?

Black – Absence of all color; 0Black – Absence of all color; 0 White – Presence of all colors; 1White – Presence of all colors; 1

11 00

00 11

Page 35: Presentation Major Project

What about color What about color images?images?

Page 36: Presentation Major Project

Composed of mainly three basic colors: Red, Green and Blue.

colored image is represented as 3D array with

3rd dimension used for indexing the color componets.

>> size(imRGB)ans = 384 512 3 1 stands for RED. 2 stands for GREEN. 3 stands for BLUE.

Page 37: Presentation Major Project

Some operations on Some operations on imageimage

Images in standard formats such as gif, tiff, and jpeg are stored so that each pixel

value lies in the range [0 .. 255]. The range [0 .. 255] is chosen so that

each pixel can be represented by 8 bits (one byte).

0: Black 128: Grey 255: White

Page 38: Presentation Major Project

ApproachApproach

For detection of a ballFor detection of a ball

Page 39: Presentation Major Project

Hough Transform

for the detection of features of a particular shape like lines or circles in digitalized images.

main advantage of the Hough transform

technique is that it is tolerant of gaps in feature boundary descriptions and is relatively unaffected by image noise, unlike edge detectors.

Page 40: Presentation Major Project

any kind of curve can be expressed any kind of curve can be expressed as a function of the formas a function of the form

f(a1, a2, . . . , an, x, y) = 0.f(a1, a2, . . . , an, x, y) = 0. For example a circle can be For example a circle can be

represented asrepresented as

(x − a)2 + (y − b)2 − r2 = 0(x − a)2 + (y − b)2 − r2 = 0 It has three parameters: two It has three parameters: two

parameters for the centre of the parameters for the centre of the circle and one for the radius of the circle and one for the radius of the circle.circle.

Page 41: Presentation Major Project

Disadvantage :Disadvantage : Here only one circle can be

detected. large amount of storage and

computing power required by the HT.

Page 42: Presentation Major Project

Fast Circle Detection Using Gradient Pair Vectors

Suppose that we have a circle in a brighter

background The first step is calculating the

gradient of image The vectors’ directions are outward

the circle

Page 43: Presentation Major Project

Because of center symmetry of circle, for each vector there will be a pair of vectors in opposite directions.

second step of algorithm is applied to find all pair vectors according to the above conditions in the gradient space of image.

In the third step, a candidate circle is considered for each pair of vectors. Such a circle has its center, at midpoint of P1 and P2, and its radius is equal to half of the distance between P1 and P2.

then the desired circles are extracted from the candidate circles produced in previous step by employing a 3-dimensional accumulator matrix to count the occurrence of quantized circles.

Page 44: Presentation Major Project

Our ApproachOur Approach

Page 45: Presentation Major Project

Our ApproachOur Approach

Page 46: Presentation Major Project
Page 47: Presentation Major Project
Page 48: Presentation Major Project

Rectangle detectionRectangle detection

Page 49: Presentation Major Project

Shape identificationShape identification

Page 50: Presentation Major Project

Shape identificationShape identification

Page 51: Presentation Major Project

Given ConditionGiven Condition

Page 52: Presentation Major Project

Tilted position of robotTilted position of robot

Page 53: Presentation Major Project

Which ball to pick ???Which ball to pick ???

Euclidean distanceEuclidean distance – – It is the distance between two It is the distance between two

pointspoints . . The Euclidean distance between The Euclidean distance between

points points

P = (p1,p2,------p3) and Q = P = (p1,p2,------p3) and Q = (q1,q2,------q3).(q1,q2,------q3).

is defined as:is defined as:

Page 54: Presentation Major Project

HARDWARE COMPONENTS ESTIMATED COST

8051 Microcontroller 1 x 50/-DC Servomoter (freedom - 360 degree ) 2 x 1200/-Analog Servometer (freedom – 180 degree) 2 x 1000/-Webcam or digital camera 1 x 500-700/- or 5000/-H-bridge 2 x 200/- 2051 Microcontroller(20-pin) 1 x 30/-Hall Effect sensor 2 x 90/-Proximity Sensor 4 x 150/-Battery 8 x 150/-Mechanical Hardware Kit 1500/-RF receiver 3800/-Other Minor Components 500/-

Total 17460/-

Page 55: Presentation Major Project

BibliographyBibliography

WikipediaWikipedia GoogleGoogle Techfest.orgTechfest.org Books :-Books :-

Getting started with Matlab-7 by Getting started with Matlab-7 by R.P. SinghR.P. Singh

Mohammad Mazidi -8051 Mohammad Mazidi -8051 microcontrollermicrocontroller

Page 56: Presentation Major Project

Thank you !!!!!Thank you !!!!!