Anda di halaman 1dari 61

COLOUR DEPENDENT OBJECT DETECTION FOR MOBILE ROBOTS

A Major Project-II Report


Submitted in partial fulfillment of the Requirements for the award of the Degree of

Bachelor of Technology
in

ELECTRONICS & COMMUNICATION ENGINEERING

By
ASHISH JINDAL (08413) SHOBIT MAHAJAN (08511) SIDHANT SOOD (08452)

DEPARTMENT OF ELECTRONICS & COMMUNICATION ENGINEERING

NATIONAL INSTITUTE OF TECHNOLOGY HAMIRPUR-177005, HP (INDIA) April, 2012

COLOUR DEPENDENT OBJECT DETECTION FOR MOBILE ROBOTS


A Major Project-II Report
Submitted in partial fulfillment of the

Requirements for the award of the degree of

Bachelor of Technology
in

ELECTRONICS & COMMUNICATION ENGINEERING

Under the guidance of

Dr. (Mrs) Rajeevan Chandel

DEPARTMENT OF ELECTRONICS & COMMUNICATION ENGINEERING

NATIONAL INSTITUTE OF TECHNOLOGY HAMIRPUR-177005, HP (INDIA) April, 2012

CERTIFICATE
We hereby certify that the work which is being presented in the B.Tech. Major II Project Report entitled Colour Dependent Object Detection for Mobile Robots, in partial fulfilment of the requirements for the award of the Bachelor of Technology in Electronics & Communication Engineering and submitted to the Department of Electronics &

Communication Engineering of National Institute of Technology, Hamirpur HP, is an authentic record of our own work carried out during the period from January 2012 to April 2012 under the supervision of Dr. (Mrs.) Rajeevan Chandel, Associate Professor, E&CE Department, NIT Hamirpur HP. The matter presented in this major project has not been submitted by us for the award of any other degree elsewhere. ASHISH JINDAL (08413) SHOBIT MAHAJAN (08511) SIDHANT SOOD (08452)

This is to certify that the above statement made by the candidates is correct to the best of our knowledge.

Date:

Dr. (Mrs.) Rajeevan Chandel Associate Professor Project Mentor E&CE Department NIT Hamirpur

Head E&CE Department National Institute of Technology, Hamirpur (HP.)

ACKNOWLEDGEMENT

The completion of the present project has been successful due to the help and inspiration received from various sources. At the foremost, we sincerely thank the Lord Almighty for His choicest blessings. We acknowledge with gratitude the guidance of our worthy and supporting mentor Dr. (Mrs.) Rajeevan Chandel, Associate Professor, E&CED & Coordinator SMDP-II, NIT Hamirpur, without whose invaluable support, motivation and help, completion of this project would not have been possible. We deem it our privilege to have carried this project under her valuable guidance. We wish to thank Prof. Vinod Kapoor, Head of the Department, E&CE and Dr. Ashwani Rana, AP E&CED & B.Tech. Project Coordinator, all the Members of Evaluation Committee as well as the Faculty of E&CE Department NIT Hamirpur for their consistent support, valuable suggestions and for giving us the opportunity to work on this project. We are thankful to DIT, MCIT and Govt. of India for support through SMDP-II project at NIT Hamirpur. We wish to put on record our sincere gratitude to our Respected Parents for their love and support. We thank one and all who have helped us during the course of the project work.

Ashish Jindal (08413) Shobit Mahajan (08511) Sidhant Sood (08452)

ABSTRACT
Object detection is a basic skill for a robot to perform tasks in human environments. Reliable object detection would enable any robot with a camera to be useful in a variety of scenarios. The performance of a mobile robot crucially depends on the accuracy, duration and reliability of its perceptions and the involved interpretation process. The concept of this project is to describe a real time capable, colour and scale invariant object learning and detection scheme. The main objective of our project is to facilitate a novel scheme for colour dependent object detection for mobile robots. An algorithm is proposed for a robot to collect more data in the environment during its training phase so that in the future it could detect objects more reliably. Edge filtered camera images serve as an input for learning procedure that constructs as cascade of classification and regression. The goal of the robot is not to detect the current object at hand, but rather to use that object in order to improve its model for future classifications. A robust vision system should be able to detect and identify objects reliably and provide an accurate representation of the environment to higher level processes. To ensure the colourvariance of the input images, they are first pre-processed by applying an edge detection Sobel filter. By passing the filtered images through a threshold, all colour information is omitted. Algorithmic complexity is therefore constrained, introducing a trade off between processing time and the quality of the information acquired. In most robotic applications, the vision system is the main perception device and autonomous robots must be capable of using it in order to self-localize and locate the objects that they have to manipulate. The robot navigates through an open space white structure bounded by walls to search and detect a red coloured ball after successfully track a black line in specified width and length. This project involves with an extensive robot construction works with different types of algorithms such as line tracking, object colour detection and navigation. The mobile robot is successfully constructed which is capable to track a specified black line, search and detect a red ball as well as navigates through an open space white structure but still requires improvement when operational in a maze structure.
Keywords: Object detection, colour dependent, algorithmic complexity, robot vision system, mobile robot.

CONTENTS
TITLE Certificate Acknowledgement Abstract Contents List of Figures
3 4 5 6

CHAPTER 1

INTRODUCTION AND OBJECTIVE OF THE PROJECT 1.1 INTRODUCTION 1.2 ROBOTICS AND COMPUTER VISION 1.3 LITERATURE REVIEW 1.4 SUB SAMPLING IMAGES 1.5 SERIAL COMMUNICATION 1.6 RGB COLOUR CODING 1.7 OBJECTIVE OF PROJECT 1.8 METHODOLOGY AND SYSTEM DESCRIPTION 1.9 MAIN TASKS ACCOMPLISHED IN PROJECT
1.10 ORGANIZATION OF THE REPORT

9 10 10 11 13 15 15 16 17 17 17

CHAPTER 2

MICROCONTROLLER DETAILS 2.1 MICROCONTROLLER P89V51RD2 2.2 2.3 2.4 FEATURES BLOCK DIAGRAM PINNING INFORMATION

18 18 18 19 20 21 21 22 22

CHAPTER 3

HARDWARE DETAILS 3.1 SCHEMATIC OF MAIN CIRCUIT 3.2 SCHEMATIC OF INTERFACE 3.3 CLOCK GENERATOR

3.3.1 GENERAL DESCRIPTION 3.3.2 FEEDBACK OSCILLATOR 3.3.3 POSITIVE REACTANCE OSCILLATOR 3.3.4 CRYSTAL EQUIVALENT 3.4 PULL UP RESISTORS 3.5 SERIAL PORT COMMUNICATION 3.5.1 SETTING THE SERIAL BAUD RATE 3.5. 2 SETTING THE SERIAL DATA MODE

22 22 23 24 26 27 32 34

CHAPTER 4

SOFTWARE DETAILS 4.1 PROGRAMMING METHODOLOGIES 4.2 IN SYSTEM PROGRAMMING 4.3 MATLAB SOFTWARE 4.4 IMAGE PROCESSING TOOLBOX 4.5 SERIAL PROGRAMMER BURNER

37

CHAPTER 5

ROBOTIC COMPONENTS 5.1 PARTS OF AUTONOMOUS ROBOT 5.2 DRVING CIRCUIT FOR ROBOT 5.3 ROBOT CHASSIS DESIGN 5.4 CIRCUIT ASSEMBLING 5.5 MAX 232 5.6 L293 MOTOR DRIVER

43

CHAPTER 6

RESULTS & DISCUSSION

54

CHAPTER 7

CONCLUSIONS AND FUTURE SCOPE 7.1 CONCLUSIONS 7.2 APPLICATIONS AND FUTURE SCOPE REFERENCES

56

LIST OF FIGURES
Fig. No. Figure Caption
1.1 1.2 2.1 2.2 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 Green ball follower robot Football collecting robot P89V51RD2 Block diagram P89V51RD2 Pin information Main schematic circuit Interfacing circuit Positive reactance oscillator Equivalent circuit for oscillator Using On chip oscillator Original Image For Noise Analysis Reset Circuitry Pull up resistors RS 232 Setting the serial baud rate Setting the serial data mode Writing into serial port Robot with steering wheel Robot with differential drive Three wheel differential drive Different configuration
PCB mounted on 15mm studs

Page
15 17 20 21 22 23 24 25 25 26 27 27 28 31 32 34 44 45 46 46 46 48 49 52 54 54

Power management system Velocity control using PWM MAX 232 IC L293D Dual DC motor driver Interfacing of L293D with MCU and sensors
8

LIST OF ABBREVIATIONS

B BER Bit error rate

I IAP ISP IC In-application programmable In-system programming Integrated Circuit.

R RTC Real-time computing

U UART Universal Asynchronous Receiver Transmitter

Chapter 1 INTRODUCTION AND OBJECTIVE OF THE PROJECT

1.1 Introduction
Object detection is a basic skill for a robot to perform tasks in human environments. Reliable object detection would enable any robot with a camera to be useful in a variety of other scenarios. It is an essential component for performing various tasks like object fetching door opening etc. The performance of a mobile robot crucially depends on the accuracy,

duration and reliability of its perceptions and the involved interpretation process. The importance of robotic appliances both in economical and sociological perspective regarding the use of robotics in domestic environments as help to elderly and disabled has been well recognized. A fundamental problem in the design of autonomous mobile cognitive systems is to perceive the environment. A basic part of perception is to learn, detect and recognize objects, which must be done with respect to the limited resources of a mobile robot and the limited choice of available kinds of sensors. In computer science, real-time computing (RTC), or reactive computing, is the study of hardware and software systems that are subject to a real-time constraint i.e. operational deadlines from event to system response. A real-time system may be one where its application can be considered (within context) to be mission critical. The anti-lock brakes on a car are a simple example of a real-time computing system the real-time constraint in this system is the time in which the brakes must be released to prevent the wheel from locking. Real-time computations can be said to have failed if they are not completed before their deadline, where their deadline is relative to an event. A real-time deadline must be met, regardless of system load.

1.2 Robotics and Computer Vision


Computer vision is the study of machines that are able to extract information from an image that is necessary to solve some task. As a scientific discipline, computer vision is concerned with the theory behind artificial systems that extract information from images. The image data can take many forms, such as video sequences, views from multiple cameras or multidimensional data from a medical scanner. As a technological discipline, computer vision
10

seeks to apply its theories and models to the construction of computer vision systems. The constant development of computer tools leads to a requirement of easier interfaces between the man and the computer. Examples of applications of computer vision include systems for:

1. Controlling processes (e.g., an industrial robot or an autonomous vehicle). 2. Detecting events (e.g., for visual surveillance or people counting). 3. Organizing information (e.g., for indexing databases of images and image sequences). 4. Modeling objects or environments (e.g., industrial inspection, medical image analysis or topographical modeling). 5. Interaction (e.g., as the input to a device for computer-human interaction).

Vision is essential for both humans and robots for providing detailed information and the reconstruction of the environment. It should be possible for a robust vision system to detect objects reliably and provide an accurate representation of the world for processing by the higher level processes. The vision system must necessarily be highly efficient, allowing a resource constrained agent to respond quickly and timely to a changing environment. Each frame acquired by a digital camera must be processed in a small, and fixed, amount of time. Algorithmic complexity is therefore a guiding factor, introducing a trade off between processing time and the quality of the information acquired. In most robotic systems, the vision system is the main perception medium and autonomous robots must be capable of using it in order to self-localize and locate and identify the objects that they have to manipulate, and respond accordingly. Due to a combination of this extremely high level of detail and the strong dependence of vision upon environmental conditions, the development of vision systems for autonomous robots is a complex task. Many robots rely on more simple sensors such as sonar or range finders in order to process input accurately and efficiently. However, as robots are required to perform more complex tasks in a human-centric world it will be necessary to develop accurate and robust robot vision systems. These systems must be able to provide reliable and stable information, continuing to function under changing conditions. The visual processing must also be extremely efficient, allowing an agent to respond quickly to a dynamic environment.

11

1.3 Literature Review


Tsalidis and Dentsoras(1 9 9 8 ) d e s c r i b e s i n t h i s p a p e r t h a t c o n v e y o r b e l t d e s i g n i s examined as an application of a proposed Design Parameters Space Search technique. First, the main characteristics of the belt-conveyor design process are presented as they a p p e a r in the current literature.

F u r t h e r m o r e , a p r o p o s e d g e n e r a l k n o w l e d g e representation platform is described, and its ability to house the relevant conveyor design knowledge is also shown. The extended search technique of the design space is discussed, and an integrated example of a belt-conveyor design is presented, based on the proposed representation platform and the extended search technique. H u a n g e t a l . , ( 2 0 0 7 ) d e s c r i b e s i n this paper deals with the time-minimum trajectory planning of a 2-DOF translational parallel robot named the Diamond for rapid pick-and- place operations. Kinematics and dynamics of the robot are formulated using a parametric function, allowing the representation of the input torque and velocity constraints to be converted to those in terms of the path length. A modified algorithm for achieving the minimized traversal time is proposed by taking into account the path jerk limit. Lithium-ion battery sorting using the Diamond robot is taken as an example to demonstrate the applicability of this approach. Sahu, et al.,(2007) describes the outline of the development of the colour sensor meantfor the radiation-robot used for the alignment of sample for various experiments in a radiation environment near nuclear beam line of 3MV Tandem pelletron Accelerator at Institute of Physics, Bubaneswar. In this paper a comparative study between the APD and LDR for their sensitivity towards different colours also discussed. A cost effective as well as with reasonable accuracy and precision, a colour sensor is developed with an array of LDRs, where the biasing voltage is very less compared to APD based colour sensor. This sensor is used in a micro-controller based robotic arm and successfully able to distinguish 8 colors. This can be enhanced to 256 colors. This work is the first developmental stage of the robot, which will be used for alignment of the sample sensing laser of different colours in high-dose radiation environment. Khojastehnazhand,et al., (2010)Grading systems give many kinds of information such as size, colour, shape, defect, and internal quality. Among these colour and size are the most important features for accurate classification and/or sorting of citrus such as
12

oranges, lemons and tangerines. Basically, two inspection stages of the system can be identified: external fruit inspection and internal fruit inspection. The former task is accomplished through processing of colour images, while internal inspection requires special sensors for moisture, sugar and acid contents. In this paper, an efficient algorithm for grading lemon fruits is developed and implemented in visual basic environment. The system c o n s i s t s o f t w o C C D c a m e r a s , t w o c a p t u r e c a r d s , a n a p p r o p r i a t e l i gh t i n g s y s t e m , a personal computer and other mechanical parts. The algorithm initially extracts the fruit from the background. The samples of different grades of lemon are situated in front of the c a m e r a s a n d a r e calibrated off-line. Then information on the HSI colour values and estimated volumes of fruits are extracted and saved in a datab ase. By comparing the information during sorting phase with the available information insi de the database, the final grade of the passing fruits is determined. In the last few years, fast color segmentation algorithms have been developed to detect and track objects in this scenario [1]. Some research groups have already started to develop algorithms for color invariant ball detection. One is described by Coath and Musumeci, who presented an edgebased ball detection system [2]. They developed an adaptive arc identification and location system that processes image data containing edge information [3]. General Object detection and classification has intensely been researched in computer vision. Common approaches use neural networks or support vector machines (SVM), for example, to detect and classify objects. Rowley et al. detect faces using a small set of simple features and neural networks [4] and Papageorgiou recognizes pedestrians with simple vertical, horizontal and diagonal features and SVMs [5]. Recently, Viola and Jones have proposed a boosted cascade of simple classifiers for fast face detection [6]. There are a lot of researches that develop object detection algorithms for different robotic applications. In particular, Meger [2008] build an attentive search robot that actively recognizes multiple objects in the environment [7]. Klingbeilet [2010] focuses on a specific scenario and the robot can identify various buttons in the elevator [8]. Within the domain of the RoboCup four-legged league previous vision systems have relied heavily on the colour of objects, classifying symbolic colours detected in each visual frame and attempting to form objects by grouping neighbouring similarly-classified pixels. However, as lighting conditions change, the colours of real-world objects change and such methods become unstable, relying on a finely-tuned colour segmentation system [9]. These
13

symbolic colour-based methods must also process each image frame in its entirety, where there is frequently a large amount of redundant visual information.

1.4 Sub-sampling images for colour relationships


In contrast to a purely colour-based approach this report presents a real-time robot image processing system for the Robo Cup four-legged league based on minimal sampling of the image frame. Rather than process each image in its entirety this approach makes an intelligent estimate of the information content of regions in the image and samples those areas likely to be of importance. Rather than recognising candidate objects in the first pass, and subsequently filtering those deemed unlikely to be valid, features are detected in the sampled areas of the image and these are combined to form objects at a higher level of processing. Instead of relying on brittle colour segmentations, this approach focusses on the relationships between neighbouring pixels, which remain more constant under variations in lighting. This implementation aims to address the three major requirements for a robotic vision system identified above: accuracy, robustness and efficiency. The accuracy of sub-sampling is comparable to that of blobbing systems since most invalid object candidates are implicitly rejected. Only regions of an image likely to contain a particular feature are sampled for it, reducing the number of invalid objects it is possible to recognise falsely. Robustness, particularly to changes in lighting conditions, is greatly improved through a reduced reliance on static colour segmentation for object recognition. As lighting conditions change and the colour content of images shifts, the colour relationship between pixels changes far less than the absolute pixel values. Detecting these relationships rather than relying on a static colour classification allows consistent feature detection even as the ambient lighting varies [10]. Efficiency is improved through sampling only high-information areas of each image. Regions of an image with little information value are sampled sparsely, while regions with a high information content are sampled much more densely. A dynamic element to sampling allows detection of objects even when an initial sampling fails to provide sufficient information. However, a somewhat random-access approach to image sampling has negative implications for hardware performance. This approach also presents solutions to, or implicitly avoids, some of the problems identified with purely colour-based approaches. A colour segmentation need not be so tightly defined and calibration time is reduced; the calibrated colour
14

relationship tests are environment independent; complex series of manually coded object validity tests are minimised; redundant information is avoided as only information-rich areas are sampled densely; and object recognition is robust to falsely detected features and unexpected background information.

Fig. 1.1 Green Ball Follower Robot

1.5 Serial Communication


Serial communication is the process of sending data one bit at a time, sequentially, over a communication channel or computer bus. This is in contrast to parallel communication, where several bits are sent as a whole, on a link with several parallel channels. Serial communication is used for all long-haul communication and most computer networks, where the cost of cable and synchronization difficulties make parallel communication impractical.

1.6 RGB colour Coding


The RGB colour model is an additive colour model in which red, green, and blue light are added together in various ways to reproduce a broad array of colors. The name of the model comes from the initials of the three additive primary colors, red, green, and blue. To form a color with RGB, three colored light beams (one red, one green, and one blue) must be superimposed (for example by emission from a black screen, or by reflection from a white screen). Each of the three beams is called a component of that colour, and each of them can have an arbitrary intensity, from fully off to fully on in the mixture. The RGB colour model is additive in the sense that the three light beams are added together, and their light spectra add, wavelength for wavelength, to make the final colours spectrum.

15

Zero intensity for each component gives the darkest color (no light, considered the black), and full intensity of each gives a white; the quality of this white depends on the nature of the primary light sources, but if they are properly balanced, the result is a neutral white matching the system's white point. When the intensities for all the components are the same, the result is a shade of gray, darker or lighter depending on the intensity. When the intensities are different, the result is a colorized hue, more or less saturated depending on the difference of the strongest and weakest of the intensities of the primary colors employed. When one of the components has the strongest intensity, the color is a hue near this primary color (reddish, greenish, or bluish), and when two components have the same strongest intensity, then the color is a hue of a secondary color (a shade of cyan, magenta or yellow). A secondary color is formed by the sum of two primary colors of equal intensity: cyan is green + blue, magenta is red + blue and yellow is red + green. Every secondary color is the complement of one primary color; when a primary and its complementary secondary colour are added together, the result is white: cyan complements red, magenta complements green and yellow complements blue. The RGB colour model itself does not define what is meant by red, green, and blue colorimetrically, and so the results of mixing them are not specified as absolute, but relative to the primary colours.

1.7 Objective of the Project


The main objective of our project is to facilitate a novel scheme for colour dependent object detection for mobile robots. An algorithm is proposed for a robot to collect more data in the environment during its training phase so that in the future it could detect objects more reliably. Edge filtered camera images serve as an input for learning procedure that constructs as cascade of classification and regression. The robots goal is not to detect the current object at hand, but rather to use that object in order to improve its model for future classifications. The concept of this project is to describe a real time capable, colour and scale invariant object learning and detection scheme. The arrangement of Haar-like features of objects is learned. A robust vision system should be able to detect and identify objects reliably and provide an accurate representation of the environment to higher level processes. To ensure the colour-variance of the input images, they are first pre-processed by applying an edge detection Sobel filter. By passing the filtered images through a threshold, all colour information is omitted.
16

Fig 1.2 Colour Dependent Football Collecting Robot

1.8 Methodology and System Description of the Project


8051 Microcontroller along with Image Processing toolbox of MATLAB software will be used in the project. First, we will be making a robot with the help of 8051 microcontroller along with various mechanical components. 8051 robot will be used with serial communication LCD interface and IR sensors. Then, we will make a program in MATLAB for image processing in which we can distinguish bright red and bright green colours from a image feeded to the program through a webcam connected to the USB port of computer. After colour distinction, we will send the data serially through MATLAB and computer serial interface to the 8051 robot and rotate the motors according to result of calculations. To ensure the colour-variance of the input images, they are first pre-processed by applying an edge detection Sobel filter and then passing them through a threshold to get rid of all colour information.

1.9 Main tasks carried out in the Project


Make a suitable chassis for the robot. Decide & arrange for a suitable differential drive configuration for the robot and arrange for the suitable motors accordingly.

17

Design the driving circuit for the robot. Write the embedded C code for the controller according to the need. Learn about Image acquisition toolbox of MATLAB and interface a camera with MATLAB. Develop an algorithm in MATLAB which can distinguish between colors in a input image fed from camera in real time. Detect the desired object from the image and make the necessary calculations for moving the robot towards it. Send the calculated data to the robot through serial port so that it can take the necessary action.

1.10 Organization of the Project Report


Chapter 1 gives an introduction and objective of the project. Chapter 2 gives the microcontroller details used in the project. Chapter 3 presents about hardware details used in the project. Chapter 4 deals with the software requirements for the project. Chapter 5 presents components used in the robot. Chapter 6 deals with the results and discussions regarding the project. Chapter 7 presents the conclusions and the future scope of work. This is followed by references.

18

Chapter 2 Microcontroller Details


2.1
RAM. A key feature of the P89V51RD2 is its X2 mode option. The design engineer can choose to run the application with the conventional 80C51 clock rate (12 clocks per machine cycle) or select the X2 mode (6 clocks per machine cycle) to achieve twice the throughput at the same clock frequency. Another way to benefit from this feature is to keep the same performance by reducing the clock frequency by half, thus dramatically reducing the EMI. The Flash program memory supports both parallel programming and in serial In-System Programming (ISP). Parallel programming mode offers gang-programming at high speed, reducing programming costs and time to market. ISP allows a device to be reprogrammed in the end product under software control. The capability to field/update the application firmware makes a wide range of applications possible [11]. The P89V51RD2 is also In-Application Programmable (IAP), allowing the Flash program memory to be reconfigured even while the application is running.

Microcontroller P89V51RD2

The P89V51RD2 is an 80C51 microcontroller with 64 kB Flash and 1024 bytes of data

2.2

Features
80C51 Central Processing Unit 5 V Operating voltage from 0 to 40 MHz 64 kB of on-chip Flash program memory with ISP (In-System Programming) and IAP (In-Application Programming) Supports 12-clock (default) or 6-clock mode selection via software or ISP SPI (Serial Peripheral Interface) and enhanced UART PCA (Programmable Counter Array) with PWM and Capture/Compare functions Four 8-bit I/O ports with three high-current Port 1 pins (16 mA each) Three 16-bit timers/counters

19

Programmable Watchdog timer (WDT) Eight interrupt sources with four priority levels Second DPTR register Low EMI mode (ALE inhibit) TTL- and CMOS-compatible logic levels Brown-out detection PDIP40, PLCC44 and TQFP44 packages

2.3

Block Diagram

Fig.2.1 P89V51RD2 Block Diagram

20

2.4

Pinning Information

Fig. 2.2 P89V51RD2 Pin Diagram

21

Chapter 3 Hardware Details


3.1 Schematic of main circuit

Fig.3.1 Main circuit schematic

22

3.2

Schematic of Interface & power supply circuit

Fig.3.2 Interface circuit schematic

3.3

Clock Generator

3.3.1 General Description


Intel's microcontroller families (MCS-48, MCS-51, and iACX-96) contain a circuit that is commonly referred to as the ``on-chip oscillator''. The on-chip circuitry is not itself an oscillator, of course, but an amplifier that is suitable for use as the amplifier part of a feedback oscillator.

3.3.2 Feedback oscillator


A feedback oscillator amplifies its own noise and feeds it back to itself in exactly the right phase, at the oscillation frequency, to build up and reinforce the desired oscillations. Its ability to do that

23

depends on its loop gain. First, oscillations can occur only at the frequency for which the loop gain has a phase angle of 0 degrees. Second build-up of oscillations will occur only if the loop gain exceeds 1 at the frequency. Build-up continues until nonlinearities in the circuit reduce the average value of the loop gain to exactly 1. Start-up characteristics depend on the small-signal properties of the circuit, specifically, the small-signal loop gain. Steady-state characteristics of the oscillator depend on the large-signal properties of the circuit, such as the transfer curve (output voltage vs. input voltage) of the amplifier, and the clamping effect of the input protection devices.
3.3.3

Positive reactance oscillator

Fig.3.3 Positive reactance oscillator Diagram

Figure 3.3 shows the configuration of the positive reactance oscillator. The inverting amplifier, working into the impedance of the feedback network, produces an output signal that is nominally 180 degrees out of phase with its input. The feedback network must provide an additional 180 degrees phase shift, such that the overall loop gain has zero (or 360) degrees phase shift at the oscillation frequency. In order for the loop gain to have zero phase angle it is necessary that the feedback element Zf have a positive reactance. Normally, Zf is not an inductor, but it must still have a positive reactance in order for the circuit to oscillate. There are some piezoelectric devices on the market that show a positive reactance, and provide a more stable oscillation frequency than an inductor will. Quartz crystals can be used where the oscillation frequency is critical, and lower cost ceramic resonators can be used where the frequency is less critical. When the feedback element is a piezoelectric device, this circuit configuration is called a Pierce oscillator. The advantage of
24

piezoelectric resonators lies in their property of providing a wide range of positive reactance values over a very narrow range of frequencies.

3.3.4 Crystal equivalent circuit

Fig.3.4 Equivalent circuit of crystal

Figure 3.4 shows an equivalent circuit that is used to represent the crystal for circuit analysis. The R1-L1-C1 branch is called the motivational arm of the crystal. The values of these parameters derive from the mechanical properties of the crystal and are constant for a given mode of vibration. C0 is called the shunt capacitance of the crystal. This is the capacitance of the crystal's electrodes and the mechanical holder. If one were to measure the reactance of the crystal at a frequency far removed from a resonance frequency, it is the reactance of this capacitance that would be measured. It's normally 3 to 7 pF.

3.3.5 Oscillator design considerations


The main decision is whether to use the ``on-chip'' oscillator or an external oscillator. The decisions have to be based on both economic and technical requirements.

Fig. 3.5 Using on-chip oscillator

25

The influence of the on-chip amplifier on the frequency is by means of its input and output (pin-to-ground) capacitances, which parallel CX1 and CX2, and the XTAL1-to-XTAL2 (pinto-pin) capacitance, which parallels the crystal. The input and pin-to-pin capacitances are about 7 pF each. Internal phase deviations from the nominal 1800 can be modeled as an output capacitance of 25 to 30 pF. These deviations from the ideal have less effect in the positive reactance oscillator (with the inverting amplifier) than in a comparable series resonant oscillator (with the non-inverting amplifier) for two reasons: first, the effect of the output capacitance is lessened, if not swamped, by the off-chip capacitor; secondly, the positive reactance oscillator is less sensitive, frequency-wise, to such phase errors. Considerations of both start-up time and frequency stability over temperature suggest that CX1 and CX2 should be about equal and at least 20 pF. (But they don't have to be either.) Increasing the value of these capacitances above some 40 or 50 pF improves frequency stability. It also tends to increase the start-up time. There is a maximum value (several hundred pF, depending on the value of R1 of the quartz or ceramic resonator) above which the oscillator won't start up at all. If the on-chip amplifier is a simple inverter, such as in the 8051, the user can select values for CX1 and CX2 between some 20 and 100 pF, depending on whether start-up time or frequency stability is the more critical parameter in a specific application. If the on-chip amplifier is a Schmitt Trigger, such as in the 8048, smaller values of CX1 must be used (5 to 30 pF), in order to prevent the oscillator from running in a relaxation mode. Noise glitches arriving at XTAL1 or XTAL2 pins at the wrong time can cause a miscount in the internal clock-generating circuitry. These kinds of glitches can be produced through capacitive coupling between the oscillator components and PCB traces carrying digital signals with fast rise and fall times. For this reason, the oscillator components should be mounted close to the chip and have short, direct traces to the XTAL1, XTAL2, and VSS pins.

26

Fig. 3.6 Reset Circuitry

3.4

Pull-up resistors

Pull-up resistors are used in electronic logic circuits to ensure that inputs to logic systems settle at expected logic levels if external devices are disconnected or high-impedance. They may also be used at the interface between two different types of logic devices, possibly operating at different power supply voltages.

Fig.3.7 Pull-up resistor R2 & Pull-down resistor R1

A pull-up resistor weakly "pulls" the voltage of the wire it is connected to towards its voltage source level when the other components on the line are inactive. When all other connections on the line are inactive, they are high-impedance and act like they are disconnected. Since the other components act as though they are disconnected, the circuit acts as though it is disconnected, and the pull-up resistor brings the wire up to the high logic level. When another component on the line goes active, it will override the high logic level set by the pull-up
27

resistor. The pull-up resistor assures that the wire is at a defined logic level even if no active devices are connected to it. A pull-down resistor works in the same way but is connected to ground. It holds the logic signal near zero volts when no other active device is connected. Pull-up resistors consume less power in general than pull-down resistors, which pull voltage down to a predetermined level unless overpowered by another device. Pull-up resistors are therefore preferred in many circuits. Pull-up resistors do, however, have some disadvantages. When current is going through the resistor, a higher level of power is used. In addition, using the pull-up resistor takes longer than a regular current source.

3.5

Serial Port Communication

Computers transfer data in two ways: parallel and serial. In parallel data transfer, several data bits are transferred simultaneously, e.g. to printers and hard disks. In serial data transfer, a single data bit is transferred at one time. Advantages of serial communications: longer distances, easier to synchronize, fewer IO pins, and lower cost. Serial communications often require shift registers which convert a byte to serial bits and vice versa. One of the 8051s many powerful features is its integrated UART, otherwise known as a serial port. The fact that the 8051 has an integrated serial port means that you may very easily read and write values to the serial port. If it were not for the integrated serial port, writing a byte to a serial line would be a rather tedious process requiring turning on and off one of the I/O lines in rapid succession to properly "clock out" each individual bit, including start bits, stop bits, and parity bits. Serial Port is a serial communication physical interface through which information transfers in or out one bit at a time (contrast parallel port). Throughout most of the history of personal computers, data transfer through serial ports connected the computer to devices such as terminals and various peripherals.

While such interfaces as Ethernet, FireWire, and USB all send data as a serial stream, the term "serial port" usually identifies hardware more or less compliant to the RS-232 standard, intended to interface with a modem or with a similar communication device.
28

However, we do not have to do this. Instead, we simply need to configure the serial ports operation mode and baud rate. Once configured, all we have to do is write to an SFR to write a value to the serial port or read the same SFR to read a value from the serial port. The 8051 will automatically let us know when it has finished sending the character we wrote and will also let us know whenever it has received a byte so that we can process it. We do not have to worry about transmission at the bit level--which saves us quite a bit of coding and processing time.

Fig. 3.8 RS-232 diagram

In telecommunications, RS-232 is the traditional name for a series of standards for serial binary single-ended data and control signals connecting between a DTE (Data Terminal Equipment) and a DCE (Data Circuit-terminating Equipment). It is commonly used in computer serial ports. The standard defines the electrical characteristics and timing of signals, the meaning of signals, and the physical size and pin out of connectors. The current version of the standard is TIA-232-F Interface Between Data Terminal Equipment and Data CircuitTerminating Equipment Employing Serial Binary Data Interchange, issued in 1997. An RS-232 port was once a standard feature of a personal computer for connections to modems, printers, mice, data storage, un-interruptible power supplies, and other peripheral devices. However, the limited transmission speed, relatively large voltage swing, and large standard connectors motivated development of the universal serial bus which has displaced RS-232 from most of its peripheral interface roles. Many modern personal computers have no

29

RS-232 ports and must use an external converter to connect to older peripherals. Some RS232 devices are still found especially in industrial machines or scientific instruments. Today, RS-232 has mostly been replaced in personal computers by USB for local communications. Compared with RS-232, USB is faster, uses lower voltages, and has connectors that are simpler to connect and use. However, USB is limited by standard to no more than 5 meters of cable, thus favoring RS-232 when longer distances are needed. Both standards have software support in popular operating systems. USB is designed to make it easy for device drivers to communicate with hardware. However, there is no direct analog to the terminal programs used to let users communicate directly with serial ports. USB is more complex than the RS-232 standard because it includes a protocol for transferring data to devices. This requires more software to support the protocol used. RS-232 only standardizes the voltage of signals and the functions of the physical interface pins. Serial ports of personal computers are also sometimes used to directly control various hardware devices, such as relays or lamps, since the control lines of the interface can be easily manipulated by software. This is not feasible with USB, which requires some form of receiver to decode the serial data. Many fields (for example, laboratory automation, surveying) provide a continued demand for RS-232 I/O due to sustained use of very expensive but aging equipment. It is often far cheaper to continue to use RS-232 than it is to replace the equipment. Additionally, modern industrial automation equipment, such as PLCs, VFDs, servo drives, and CNC equipment are programmable via RS-232. Some manufacturers have responded to this demand: Toshiba reintroduced the DE-9M connector on the Tecra laptop. Serial ports with RS-232 are also commonly used to communicate to headless systems such as servers, where no monitor or keyboard is installed, during boot when operating system is not running yet and therefore no network connection is possible. An RS-232 serial port can communicate to some embedded systems such as routers as an alternative to network mode of monitoring. The RS-232 standard defines the voltage levels that correspond to logical one and logical zero levels for the data transmission and the control signal lines. Valid signals are plus or minus 3 to 15 volts; the 3 V range near zero volts is not a valid RS-232 level. The standard specifies a maximum open-circuit voltage of 25 volts: signal levels of 5 V, 10 V, 12 V, and 15 V are all commonly seen depending on the power supplies available within a device.
30

RS-232 drivers and receivers must be able to withstand indefinite short circuit to ground or to any voltage level up to 25 volts. The slew rate, or how fast the signal changes between levels, is also controlled. For data transmission lines (TxD, RxD and their secondary channel equivalents) logic one is defined as a negative voltage, the signal condition is called marking, and has the functional significance. Logic zero is positive and the signal condition is termed spacing. Control signals are logically inverted with respect to what one sees on the data transmission lines. When one of these signals is active, the voltage on the line will be between +3 to +15 volts. The inactive state for these signals is the opposite voltage condition, between 3 and 15 volts. Examples of control lines include request to send (RTS), clear to send (CTS), data terminal ready (DTR), and data set ready (DSR). Because the voltage levels are higher than logic levels typically used by integrated circuits, special intervening driver circuits are required to translate logic levels. These also protect the device's internal circuitry from short circuits or transients that may appear on the RS-232 interface, and provide sufficient current to comply with the slew rate requirements for data transmission. Because both ends of the RS-232 circuit depend on the ground pin being zero volts, problems will occur when connecting machinery and computers where the voltage between the ground pin on one end, and the ground pin on the other is not zero. This may also cause a hazardous ground loop. Use of a common ground limits RS-232 to applications with relatively short cables. If the two devices are far enough apart or on separate power systems, the local ground connections at either end of the cable will have differing voltages; this difference will reduce the noise margin of the signals. Balanced, differential, serial connections such as USB, RS422 and RS-485 can tolerate larger ground voltage differences because of the differential signaling Unused interface signals terminated to ground will have an undefined logic state. Where it is necessary to permanently set a control signal to a defined state, it must be connected to a voltage source that asserts the logic 1 or logic 0 level. Some devices provide test voltages on their interface connectors for this purpose.

31

A minimal "3-wire" RS-232 connection consisting only of transmit data, receive data, and ground, is commonly used when the full facilities of RS-232 are not required. Even a twowire connection (data and ground) can be used if the data flow is one way (for example, a digital postal scale that periodically sends a weight reading, or a GPS receiver that periodically sends position, if no configuration via RS-232 is necessary). When only hardware flow control is required in addition to two-way data, the RTS and CTS lines are added in a 5-wire version. When developing or troubleshooting systems using RS-232, close examination of hardware signals can be important to find problems. A serial line analyzer is a device similar to a logic analyzer but specialized for RS-232's voltage levels, connectors, and, where used, clock signals. The serial line analyzer can collect, store, and display the data and control signals, allowing developers to view them in detail. Some simply display the signals as waveforms; more elaborate versions include the ability to decode characters in ASCII or other common codes and to interpret common protocols used over RS-232 such as SDLC, HDLC, DDCMP, and X.25. Serial line analyzers are available as standalone units, as software and interface cables for general-purpose logic analyzers, and as programs that run in common personal computers.

3.5.1 Setting the Serial Baud Rate


Once the Serial Port Mode has been configured, as explained above, the program must configure the serial ports baud rate. This only applies to Serial Port modes 1 and 3. The Baud Rate is determined based on the oscillators frequency when in mode 0 and 2. In mode 0, the baud rate is always the oscillator frequency divided by 12. This means if youre crystal is 11.059 MHz, mode 0 baud rate will always be 921,583 baud. In mode 2 the baud rate is always the oscillator frequency divided by 64, so a 11.059Mhz crystal speed will yield a baud rate of 172,797. In modes 1 and 3, the baud rate is determined by how frequently timer 1 overflows. The more frequently timer 1 overflows, the higher the baud rate. There are many ways one can cause timer 1 to overflow at a rate that determines a baud rate, but the most common method is to put timer 1 in 8-bit auto-reload mode (timer mode 2) and set a reload value (TH1) that causes Timer 1 to overflow at a frequency appropriate to generate a baud rate.

32

To determine the value that must be placed in TH1 to generate a given baud rate, we may use the following equation (assuming PCON.7 is clear). TH1 = 256 - ((Crystal / 384) / Baud) If PCON.7 is set then the baud rate is effectively doubled, thus the equation becomes: TH1 = 256 - ((Crystal / 192) / Baud) For example, if we have an 11.059 MHz crystal and we want to configure the serial port to 19,200 baud we try plugging it in the first equation: Here we are able to calculate a nice, even TH1 value. Therefore, to obtain 19,200 baud with an 11.059MHz crystal we must: 1. Configure Serial Port mode 1 or 3. 2. Configure Timer 1 to timer mode 2 (8-bit auto-reload). 3. Set TH1 to 253 to reflect the correct frequency for 19,200 baud. 4. Set PCON.7 (SMOD) to double the baud rate.

3.5.2 Setting the Serial Data Mode


The first thing we must do when using the 8051s integrated serial port is, obviously, configure it. This lets us tell the 8051 how many data bits we want, the baud rate we will be using, and how the baud rate will be determined. Bit Name Bit Address Explanation of Function 7 6 5 4 3 2 1 0 SM0 9Fh SM1 9Eh SM2 9Dh REN 9Ch TB8 RB8 TI RI 9Bh 9Ah 99h 98h Serial port mode bit 0 Serial port mode bit 1. Multiprocessor Communications Enable (explained later) Receiver Enable. This bit must be set in order to receive characters. Transmit bit 8. The 9th bit to transmit in mode 2 and 3. Receive bit 8. The 9th bit received in mode 2 and 3. Transmit Flag. Set when a byte has been completely transmitted. Receive Flag. Set when a byte has been completely received.

33

Additionally, it is necessary to define the function of SM0 and SM1 by an additional table: SM0 SM1 Serial Mode Explanation 0 0 1 0 1 0 0 1 2 8-bit UART 9-bit UART Baud Rate Set by Timer 1 (*) Oscillator / 32 (*)

8-bit Shift Register Oscillator / 12

1 1 3 9-bit UART Set by Timer 1 (*) (*) Note: The baud rate indicated in this table is doubled if PCON.7 (SMOD) is set. The SCON SFR allows us to configure the Serial Port. Thus, we shall go through each bit and review its function. The first four bits (bits 4 through 7) are configuration bits. Bits SM0 and SM1 let us set the serial mode to a value between 0 and 3, inclusive. The four modes are defined in the chart immediately above. As you can see, selecting the Serial Mode selects the mode of operation (8-bit/9-bit, UART or Shift Register) and also determines how the baud rate will be calculated. In modes 0 and 2 the baud rate is fixed based on the oscillators frequency. In modes 1 and 3 the baud rate is variable based on how often Timer 1 overflows. The various Serial Modes shall be discussed further. The next bit, SM2, is a flag for "Multiprocessor communication." Generally, whenever a byte has been received the 8051 will set the "RI" (Receive Interrupt) flag. This lets the program know that a byte has been received and that it needs to be processed. However, when SM2 is set the "RI" flag will only be triggered if the 9th bit received was a "1". That is to say, if SM2 is set and a byte is received whose 9th bit is clear, the RI flag will never be set. This can be useful in certain advanced serial applications. For now it is safe to say that you will almost always want to clear this bit so that the flag is set upon reception of any character. The next bit, REN, is "Receiver Enable." This bit is very straightforward: If you want to receive data via the serial port, set this bit. You will almost always want to set this bit. The last four bits (bits 0 through 3) are operational bits. They are used when actually sending and receiving data-these are not used to configure the serial port. The TB8 bit is used in modes 2 and 3. In modes 2 and 3, a total of nine data bits are transmitted. The first 8 data bits are the 8 bits of the main value, and the ninth bit is taken from TB8. If TB8 is set and a value is written to the serial port, the datas bits will be writ ten to the serial line followed by a "set" ninth bit. If TB8 is clear the ninth bit will be "clear."
34

The RB8 also operates in modes 2 and 3 and functions essentially the same way as TB8, but on the reception side. When a byte is received in modes 2 or 3, a total of nine bits are received. In this case, the first eight bits received are the data of the serial byte received and the value of the ninth bit received will be placed in RB8. TI means "Transmit Interrupt." When a program writes a value to the serial port, a certain amount of time will pass before the individual bits of the byte are "clocked out" the serial port. If the program were to write another byte to the serial port before the first byte was completely output, the data being sent would be garbled. Thus, the 8051 lets the program know that it has "clocked out" the last byte by setting the TI bit. When the TI bit is set, the program may assume that the serial port is "free" and ready to send the next byte. Finally, the RI bit means "Receive Interrupt." It functions similarly to the "TI" bit, but it indicates that a byte has been received. That is to say, whenever the 8051 has received a complete byte it will trigger the RI bit to let the program know that it needs to read the value quickly, before another byte is read.

3.5.3 Reading from the serial port


Reading data received by the serial port is equally easy. To read a byte from the serial port one just needs to read the value stored in the SBUF (99h) SFR after the 8051 has automatically set the RI flag in SCON. For example, if your program wants to wait for a character to be received and subsequently read it into the Accumulator, the following code segment may be used: JNB RI,$ ;Wait for the 8051 to set the RI flag MOV A,SBUF ;Read the character from the serial port The first line of the above code segment waits for the 8051 to set the RI flag; again, the 8051 sets the RI flag automatically when it receives a character via the serial port. So as long as the bit is not set the program repeats the "JNB" instruction continuously. Once the RI bit is set upon character reception the above condition automatically fails and program flow falls through to the "MOV" instruction which reads the value.

35

3.5.4 Writing to the serial port


Once the Serial Port has been properly configured as explained above, the serial port is ready to be used to send data and receive data. If you thought that configuring the serial port was simple, using the serial port will be a breeze. To write a byte to the serial port one must simply write the value to the SBUF (99h) SFR. For example, if you wanted to send the letter "A" to the serial port, it could be accomplished as easily as: MOV SBUF,#A Upon execution of the above instruction the 8051 will begin transmitting the character via the serial port. Obviously transmission is not instantaneous--it takes a measurable amount of time to transmit. And since the 8051 does not have a serial output buffer we need to be sure that a character is completely transmitted before we try to transmit the next character. The 8051 lets us know when it is done transmitting a character by setting the TI bit in SCON. When this bit is set we know that the last character has been transmitted and that we may send the next character, if any. Consider the following code segment: CLR TI ;Be sure the bit is initially clear MOV SBUF,#A ;Send the letter A to the serial port JNB TI,$ ;Pause until the TI bit is set. The above three instructions will successfully transmit a character and wait for the TI bit to be set before continuing. The last instruction says "Jump if the TI bit is not set to $"--$, in most assemblers, means "the same address of the current instruction." Thus the 8051 will pause on the JNB instruction until the TI bit is set by the 8051 upon successful transmission of the character.

36

Chapter 4 Software Details


4.1 Programming Methodologies

Parallel programming Parallel programming mode offers gang-programming at high speed, reducing programming costs and time to market. Serial programming ISP allows a device to be reprogrammed in the end product under software control. The capability to eld/update the application rmware makes a wide range of applications possible. The P89V51RD2 is also In-Application Programmable (IAP), allowing the Flash program memory to be recongured even while the application is running.

4.2 In System Programming (ISP)


In-System Programming (ISP) is the ability of some programmable logic devices, microcontrollers, and other programmable electronic chips to be programmed while installed in a complete system, rather than requiring the chip to be programmed prior to installing it into the system. The primary advantage of this feature is that it allows manufacturers of electronic devices to integrate programming and testing into a single production phase, rather than requiring a separate programming stage prior to assembling the system. This may allow manufacturers to program the chips in their own system's production line instead of buying preprogrammed chips from a manufacturer or distributor, making it feasible to apply code or design changes in the middle of a production run [12].

37

Typically, chips supporting ISP have internal circuitry to generate any necessary programming voltage from the system's normal supply voltage, and communicate with the programmer via a serial protocol. Most programmable logic devices use a variant of the JTAG protocol for ISP, in order to facilitate easier integration with automated testing procedures. Other devices usually use proprietary protocols or protocols defined by older standards. In systems complex enough to require moderately large glue logic, designers may implement a JTAG-controlled programming subsystem for non-JTAG devices such as flash memory and microcontrollers, allowing the entire programming and test procedure to be accomplished under the control of a single protocol. In-system programming is a valuable feature that allows system firmware to be upgraded without disassembling the embedded system to physically replace memory. Most Maxim 8051-based microcontrollers can be reprogrammed from a PC or laptop via an inexpensive RS-232 serial interface and a few logic gates. When launched, the in-system programming feature auto bauds to the detected baud rate and begins execution of a command-driven, ROM-based bootstrap loader. Embedded designs with in-system programmability allow generic products to be softwarecustomized right before shipment. The feature also reduces life cycle cost by permitting existing applications to be upgraded without disassembling the application. Secure microcontrollers such as the DS5002FP and DS5250 can use this feature to load the customer's proprietary software into the application where it will be automatically encrypted and protected against unauthorized access. Many members of the Maxim 8051-based microcontroller family support in-system programming via a commonly available RS-232 serial interface. In-system programming means that the program and/or data memory can be modified without disassembling the embedded system to physically replace memory. With an emphasis on ease of use and versatility, this feature adds a number of very valuable features in any embedded design: Allows hardware to be assembled and stocked at the factory and software-customized right before shipment. Eliminates high cost of disassembling units in field when software updates are required. Allows for software upgrades in physically inaccessible locations. Accesses dedicated configuration and status registers, and
38

Enables the loading of software into secure microcontrollers with memory encryption.

4.3 MATLAB
MATLAB which is a matrix laboratory is a numerical computing environment and fourthgeneration programming language. Developed by MathWorks, MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages, including C, C++, and FORTRAN [13]. Although MATLAB is intended primarily for numerical computing, an optional toolbox uses the MuPADsymbolic engine, allowing access to symbolic computing capabilities. An additional package, Simulink, adds graphical multi-domain simulation and Model-Based Design for dynamic and embedded systems. MATLAB, the application, is built around the MATLAB language. The simplest way to execute MATLAB code is to type it in at the prompt, >>, in the Command Window, one of the elements of the MATLAB Desktop. 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 has been utilized to implement the algorithms for the present project work.

4.4 Image Processing Toolbox


Image Processing Toolbox provides a comprehensive set of reference-standard algorithms and graphical tools for image processing, analysis, visualization, and algorithm development. Image enhancement, image deblurring, feature detection, noise reduction, image segmentation, spatial transformations and image registration can be performed. Many functions in the toolbox are multithreaded to take advantage of multicore and multiprocessor computers [15]. Image Processing Toolbox supports a diverse set of image types, including high dynamic range, gig pixel resolution, ICC-compliant colour, and tomographic images. Graphical tools let you explore an image, examine a region of pixels, adjust the contrast, create contours or
39

histograms, and manipulate regions of interest (ROIs). With the toolbox algorithms you can restore degraded images, detect and measure features, analyze shapes and textures, and adjust the colour balance of images. The Image Processing Toolbox software is a collection of functions that extend the capability of the MATLAB numeric computing environment. The toolbox supports a wide range of image processing operations, including:

Image enhancement, filtering and de-blurring. Image analysis, including segmentation, morphology, feature extraction, and measurement

Spatial transformations and image registration Image transforms, including FFT, DCT, Radon, and fan-beam projection Workflows for processing, displaying, and navigating arbitrarily large images Modular interactive tools, including ROI selections, histograms, and distance measurements

ICC color management Multidimensional image processing Image-sequence and video display DICOM import and export

4.5 KIEL Software


The Keil LPC900 Integrated Development Environment (IDE)is used development and test for the MCB900 microcontroller board. The LPC900 IDE contains the following tools: A51 assembler, C51 compiler and linker Simulator ISP (In-System Programming) interface to allow programming of the MCB900 board An In-System Debugger to assist in project debugging. in program

40

The MCB900 is a prototype board for the Philips P89V51RD2 microcontroller. The board provides access to all of the microcontroller I/O pins. The Port 2 pins are connected to 8 LEDs. The MCB900 board may be programmed via a serial cable connected to a PC. This tutorial will develop C code to flash the LED connected to Port 2 pin 0 on and off. The following steps take place: 1. Generate a uVision project file 2. Write the C application code and generate the project to product an object file and a hex file. 3. Use the uVision simulator to simulate the functionality of the code. 4. Program the project hex file onto the MCB900 board and run the code. 5. Use the in-system debugger to test the code on the board.

4.6 Serial Programmer Burner for P89V51RD2


In-System Programming is performed without removing the microcontroller from the system. The In-System Programming facility consists of a series of internal hardware resources coupled with internal firmware to facilitate remote programming of the P89V51RD2 through the serial port. This firmware is provided by Philips and embedded within each P89V51RD2 device. The Philips In-System Programming facility has made in-circuit programming in an embedded application possible with a minimum of additional expense in components and circuit board area. The ISP function uses five pins (VDD, VSS, TxD, RxD and RST). Only a small connector needs to be available to interface your application to an external circuit in order to use this feature [16]. The P89V51RD2 program memory consists of a 64 kB block. An In-System Programming (ISP) capability, in a second 8 kB block, is provided to allow the user code to be programmed in-circuit through the serial port. There are three methods of erasing or programming of the Flash memory that may be used. First, the Flash may be programmed or erased in the enduser application by calling low-level routines through a common entry point (IAP). Second, the on-chip ISP boot loader may be invoked. This ISP boot loader will, in turn, call lowlevel
41

routines through the same common entry point that can be used by the end-user application. Third, the Flash may be programmed or erased using the parallel method by using a commercially available EPROM programmer which supports this device. When the microcontroller programs its own Flash memory, all of the low level details are handled by code that is contained in a Boot block that is separate from the user Flash memory. A user program calls the common entry point in the Boot block with appropriate parameters to accomplish the desired operation. Boot block operations include erase user code, program user code, program security bits, etc. A Chip-Erase operation can be performed using a commercially available parallel programmer. This operation will erase the contents of this Boot Block and it will be necessary for the user to reprogram this Boot Block (Block 1) with the Philips-provided ISP/IAP code in order to use the ISP or IAP capabilities of this device. Serial communication is used for all long-haul communication and most computer networks, where the cost of cable and synchronization difficulties makes parallel communication impractical.

42

Chapter 5 ROBOTIC COMPONENTS


5.1 Parts of Autonomous Robot
Any autonomous robot consists of following essential parts.

1. Robot Chassis and actuators Includes wheeled or any type of chassis with all the necessary actuators fitted on the chassis to achieve desired goal.

2. Electronics Electronics includes Sensors, motion control circuits, power management system etc.

3. Power pack Usually battery pack consisting of Lead acid, Nickel cadmium and Nickel metal hydride or Lithium batteries is used.

4. Intelligence This is the most important part of the autonomous robots. Usually intelligence is achieved by using microcontroller.

5.2 Driving Circuit of Robot


8051 microcontroller: directions to the robot. L293D: This is a H-Bridge IC which is used to control the directions in which motors rotate according to the input and hence control the direction of robot. MAX232: This is a level converter IC which is used to convert TTL logic standards to RS-232 logic standards. ISP: In system programming circuit is used to burn the required program inside microcontroller.
43

P89V51RD2 microcontroller is used to send the driving

5.3 Robot Chassis Designing


1. Robot with steering wheel: In this case power for motion is provided by back wheels and turning is achieved using front wheels. This scheme is similar to that of cars. In such configuration we can have both three/four wheeled robots. In case of three wheeled robot usually single wheel is used for steering.

Fig.5.1 Robots with steering wheel

Advantages: 1. When path to be followed is straight in nature with curved turns this configuration gives fastest speed and graceful path following. 2. Dont need to modify left or right wheels velocity to follow the path. This is very advantageous when we want precision velocity control. In this case back wheels take care of velocity control and front wheels take care of direction control.

Disadvantages: 1. It will not able to take very sharp turns. Hence it is difficult to move robot on the grid of lines. 2. Little bit difficult to make. 3. Front wheels will need position feedback to control turning control. 4. Becomes expensive to make.

44

2. Robot with differential drive: In the differential drive left and right wheel are powered independently. Hence it is called as differential drive. This is the most popular drive configuration among the robotics hobbyists.

Fig.5.2 Zero turning radius can be achieved using differential drive

Advantages:

1. Zero turning radius: This is the most important advantage of the differential drive. In the differential drive as left and right wheel are independent if left wheel is rotated in anticlockwise and right wheel is turned clockwise robot will take turn in the left direction with zero turning radius.

2. Easy to move when path to be followed is contoured and zigzag in nature. E.g. navigating along the maze of lines.

Disadvantages: 1. If we want to move along curved path we have to control left and right motors velocity independently. Hence precision velocity control becomes difficult as actual velocity of the robot will be average of the both wheels.

45

3. Robots with three wheel differential drive: In three wheels differential drive configuration two wheels are connected to motors. Third wheel is caster or omni directional wheel which allows motion in any direction. Three wheeled configuration is often used in smaller size robots. It offers two advantages: 1. All the wheels gets good contact 2. Problem of skidding while turning is avoided. 3. Robot can take turn by stopping one wheel and moving other wheel

Fig. 5.3 Three wheel differential drive

46

Fig. 5.4 Different types of motion possibilities with three wheel differential drive.

5.4 Circuit Board Assembly: Fitting PCB Board on the chassis


In the above text we mentioned that use of Glass epoxy general purpose PCB. This board is very sturdy but almost twice expensive as compared to paper phonlic PCB. We must use glass epoxy PCB because while assembling circuit board it will go through high amount of stress. Also copper pads on this board wont come as easily as paper phonolic PCB.

First measure how much space is available on the robot for PCB. In this case it is 14cm X 14cm. First mark square on the PCB with marker pen and cut the board using hexa blade. Make sure that you draw the cutting line on the holes and not in between the holes as holes will act as guide line for cutting in straight line. Fix this board in wise. Place few layers of paper between PCBs copper side and wise to protect the copper pads. While cutting make sure that your hexa blade is not making more than 10 degrees of angle. This will result in smooth, straight and well finished cut. After cutting make PCBs edges smooth using file. While cutting glass epoxy PCB switch off fan and keep your nose away from the PCB. Small particles coming out of PCB are very hazardous to lungs. Avoid hand contact with the raw PCB edges as particles can cause allergic reaction.

Fig.5.5 PCB mounted on the robot using 15mm studs.

47

5.5 Power management system


It is the most important system on the robot. Performance of your robot will be heavily dependent on this block Expectations from power management system: In socket battery charging (No need to unplug battery for charging) Connector for battery On / off switch with mutual exclusion between battery charging and power on / off. (Robot should either remain in battery charge mode or power should be on.

At any instant robot should not able to turn on when battery is being charged. Battery charge indicator LED Protection from reverse polarity Fuse protection Fuse blown audio visual indication Power indication Battery voltage sensing Distinct separation between supply for motor and supply for logic system Capacitor bank for surge protection in motor supply and logic supply Generation of 5V, 1Amp supply for logic system.

Fig.5.6 Circuit diagram of the power management system

In the above circuit diagram 10 pin FRC right angled connector is use for battery charging and 4 pin relimate connector is used for battery connection. Switch S1 is a single pole double throw switch which is used for switching between power on and battery charging. This
48

switch makes sure that you can either charge battery or switch on the robot but you can not do both at the same time. This is because if battery is charged at the same time when robot is on robot will consume all the charging current and also battery will also get discharged. Diode D1 and D2 are standard 1N4007 diodes. These diodes will protect further circuits especially buzzer_1 from reverse polarity. Fuse of 5 Amp gives protection from short circuit. Resistor R5 and R6 forms voltage divider bias for battery sensing. Resistors R5 and R6 forms voltage divider and gives out voltage proportional to battery voltage but scaled down by 1/3. In the robot because of frequent turning on and off of motors current continuously fluctuates. To reduce the effect of this fluctuation on the battery voltage sensing, capacitors C7 and C8 are connected in parallel to the R5 and R6. Diodes D3 and D4 separates supply for the motors. Capacitor C9 acts as a very small battery. Motor we are using takes about 250mA of starting current but when it is in motion it roughly takes 50mA of current. When motor is suddenly turned on it produces current surge. At this time capacitor acts as small battery. This improves battery run time as you can run the battery till its voltage level reaches up to 11.2V instead of 11.8V. D5 separates supply for 5V logic supply. Again capacitor C10 is used to reduce noise and act as small battery when sudden switching of motors produces current surges. IC3 (7805) is used as voltage regulator. It is a linear voltage regulator i.e. if your supply is 12V and output is 5V then 7805 will dissipate 7volts across it. 7805 must be connected with good heat sink to dissipate all the heat. This heat sink must be mounted very firmly using bolt as it is very easy to knock off 7805 out of the PCB when connected with heat sink. While buying 7805 look at the finishing of heat sink. If it is shining like stainless steel then probably it is original. This is very important because fake 7805 have slower response time and will give out 12V surge before settling down to 5 volts. This will fry your microcontroller and other logic circuit. Capacitor C11 is used to provide better noise suppression. LED6 indicate 5V logic power status.

5.6 Motion control


Motion control circuit takes logic input from the microcontroller and controls motors. We are using L293D IC for motor control. The L293D has quadruple high-current half-H drivers. The L293D is designed to provide bidirectional drive currents of up to 600-mA at voltages

49

from 4.5 V to 36 V. Drivers are enabled in pairs, with drivers 1 and 2 being enabled by the Enable pin. When an enable input is high (1), the associated drivers are enabled and their outputs are active and in phase with their inputs. Additionally the L293D includes the output clamping diodes within the IC for complete interfacing with inductive loads. Each channel can drive up to 600mA load. Resistance of our motors is about 26 ohms i.e. its short circuit current will be around 0.46Amp which is below the maximum current limit. Direction of the motor is controlled by asserting one of the inputs to motor to be high (1) and the other to be low (0). To move the motor in opposite direction just interchange the logic applied to the two inputs of the motors. Asserting both inputs to logic high or logic low will stop the motor. To control motor velocity we can use pulse width modulation (PWM). To control velocity we will give PWM input to the L293Ds enable pins. To control the velocity of the motor, pulse width modulated (PWM) pulses are applied to enable pins of L293 driver. PWM is the scheme in which the duty cycle of a square wave output from the microcontroller is varied to provide a varying average DC output. What actually happens by applying a PWM pulse is that the motor is switched ON and OFF at a given frequency. In this way, the motor reacts to the time average of the power supply.

Fig.5.7 Velocity control of motor using PWM.

Timer1 of the microcontroller is configured to generate PWM with an 8 bit resolution. Timer1 counts from BOTTOM to MAX and then restarts from BOTTOM. The pulse width of the PWM for left and right motors is controlled by OCR1AL and OCR1BL registers of the timer. Timer1 generates a high pulse on PWM pin until the timer reaches the count mentioned in the OCR register and then switches to low until the timer reaches
50

MAX count and then again the timer outputs a high pulse on the PWM pin and restarts counting from the BOTTOM.

5.7 MAX 232


The MAX232 is an integrated circuit that converts signals from an RS-232 serial port to signals suitable for use in TTL compatible digital logic circuits. The MAX232 is a dual driver/receiver and typically converts the RX, TX, CTS and RTS signals. The drivers provide RS-232 voltage level outputs (approx. 7.5 V) from a single + 5 V supply via on-chip charge pumps and external capacitors. This makes it useful for implementing RS-232 in devices that otherwise do not need any voltages outside the 0 V to + 5 V range, as power supply design does not need to be made more complicated just for driving the RS-232 in this case. The receivers reduce RS-232 inputs (which may be as high as 25 V), to standard 5 V TTL levels. These receivers have a typical threshold of 1.3 V, and a typical hysteresis of 0.5 V. The later MAX232A is backwards compatible with the original MAX232 but may operate at higher baud rates and can use smaller external capacitors 0.1 F in place of the 1.0 F capacitors used with the original device When a MAX232 IC receives a TTL level to convert, it changes a TTL Logic 0 to between +3 and +15 V, and changes TTL Logic 1 to between -3 to -15 V, and vice versa for converting from RS232 to TTL. This can be confusing when you realize that the RS232 Data Transmission voltages at a certain logic state are opposite from the RS232 Control Line voltages at the same logic state. In RS-232, user data is sent as a time-series of bits. Both synchronous and asynchronous transmissions are supported by the standard. In addition to the data circuits, the standard defines a number of control circuits used to manage the connection between the DTE and DCE. Each data or control circuit only operates in one direction, i.e., signalling from a DTE to the attached DCE or the reverse. Since transmit data and receive data are separate circuits, the interface can operate in a full duplex manner, supporting concurrent data flow in both directions. The standard does not define character framing within the data stream, or character encoding. The RS- 232 standard defines the voltage levels that correspond to logical one and logical zero levels for the data transmission
51

and the control signal lines. Valid signals are plus or minus 3 to 15 volts - the range near zero volts is not a valid RS-232 level. The standard specifies a maximum open-circuit voltage of 25 volts: signal levels of 5 V, 10 V, 12 V, and 15 V are all commonly seen depending on the power supplies available within a device. RS-232 drivers and receivers must be able to withstand indefinite short circuit to ground or to any voltage level up to 25 volts. The slew rate, or how fast the signal changes between levels, is also controlled. For data transmission lines (TxD, RxD and their secondary channel equivalents) logic one is defined as a negative voltage, the signal condition is called marking, and has the functional significance. Logic zero is positive and the signal condition is termed spacing. Control signals are logically inverted with respect to what one would see on the data transmission lines. When one of these signals is active, the voltage on the line will be between +3 to +15 volts. The inactive state for these signals would be the opposite voltage condition, between -3 and -15 volts. Because the voltage levels are higher than logic levels typically used by integrated circuits, special intervening driver circuits are required to translate logic levels. These also protect the device's internal circuitry from short circuits or transients that may appear on the RS-232 interface, and provide sufficient current to comply with the slew rate requirements for data transmission.

Fig. 5.8 MAX 232.

52

5.8 L293 MOTOR DRIVER


This is one of the most popular motor driver chips there is. It can handle two motors typically at 600mA each, with spikes up to 1.2 amps, at a voltage range between 4.5 and 36 volts. It has built in back-EMF protection diodes, and automatic thermal shutdown which throttles back the flow of current until the chip cools down. An H bridge is an electronic circuit that enables a voltage to be applied across a load in either direction. These circuits are often used in robotics and other applications to allow DC motors to run forwards and backwards. The L293 and L293D are quadruple high-current half-H drivers. The L293 is designed to provide bidirectional drive currents of up to 1 A at voltages from 4.5 V to 36 V. The L293D is designed to provide bidirectional drive currents of up to 600-mA at voltages from 4.5 V to 36 V. Both devices are designed to drive inductive loads such as relays, solenoids, dc and bipolar stepping motors, as well as other high-current/high-voltage loads in positive-supply applications. All inputs are TTL compatible. Each output is a complete totem-pole drive circuit, with a Darlington transistor sink and a pseudo- Darlington source. Drivers are enabled in pairs, with drivers 1 and 2 enabled by 1,2EN and drivers 3 and 4 enabled by 3,4EN. When an enable input is high, the associated drivers are enabled, and their outputs are active and in phase with their inputs. When the enable input is low, those drivers are disabled, and their outputs are off and in the high-impedance state. With the proper data inputs, each pair of drivers forms a full-H (or bridge) reversible drive suitable for solenoid or motor applications. The Device is a monolithic integrated high voltage, high current four channel driver designed to accept standard DTL or TTL logic levels and drive inductive loads (such as relays solenoides, DC and stepping motors) and switching power transistors. To simplify use as two bridges each pair of channels is equipped with an enable input. A separate supply input is provided for the logic, allowing operation at a lower voltage and internal clamp diodes are included. This device is suitable for use in switching applications at frequencies up to 5 kHz. The L293D is assembled in a 16 lead plastic package which has 4 centre pins connected together and used for heat sinking.

53

Fig. 5.9 L293D Dual DC motor controller.

As the microcontroller is unable to control the motors directly, hence we have to use motor driver IC like L293D.As the chip has to control two motors, hence there are two input pins and two output pins for each motor. There are also two enable pins also for two motors which has to kept high for controlling the motors.

Fig. 5.10 L293D interfacing with MCU and sensors.

54

Chapter 6
RESULTS AND DISCUSSION

6.1 Working Robot Main Constituents


8051 microcontroller: directions to the robot. L293D: This is a H-Bridge IC which is used to control the directions in which motors rotate according to the input and hence control the direction of robot. MAX232: This is a level converter IC which is used to convert TTL logic standards to RS-232 logic standards. ISP: In system programming circuit is used to burn the required program inside microcontroller. Figure 6.1 shows the robotics hardware associated with the project. An autonomous is able to track the object based on the different colours. P89V51RD2 microcontroller is used to send the driving

Fig.6.1 Robotic hardware developed for the present project.

55

Fig.6.2 Electronic details of the working robot.

The purpose of our project was to create an inexpensive and high-efficient colour dependent object detection robot for education and orientation use. We successfully modified the robot with a few mechanical components to add two more functions to the main body, namely the laptop holder and the camera holder. We choose the cameras with great value at a relatively low cost, fixed them and adjusted them on the camera holder for good calibration of the computer vision system. After attaching the cameras, we successfully developed the software to detect the colour of the object and send out signals to control the motors using MATLAB. We establish the serial communication method between the upper laptop and the lower development board with USB port. The laptop sends out a signal of the motor condition to the development board. A prototype model of the working robot is successfully designed, developed and implemented in software and hardware. Figure 6.2 shows the electronic components used in the proposed robot model. The microcontroller P89V51RD2 along with LEDs and L293D are shown in the diagram.

56

Chapter 7 CONCLUSIONS AND FUTURE SCOPE

7.1 Main Conclusions


The main objective of our project is to facilitate a novel scheme for colour dependent object detection for mobile robots. An algorithm is proposed for a robot to collect more data in the environment during its training phase so that in the future it could detect objects more reliably. Edge filtered camera images serve as an input for learning procedure that constructs as cascade of classification and regression. The robots goal is not to detect the current object at hand, but rather to use that object in order to improve its model for future classifications. The purpose of our project was to create an inexpensive and high-efficient colour dependent object detection robot for education and orientation use. We successfully modified the robot with a few mechanical components to add two more functions to the main body, namely the laptop holder and the camera holder. We choose the cameras with great value at a relatively low cost, fixed them and adjusted them on the camera holder for good calibration of the computer vision system. After attaching the cameras, we successfully developed the software to detect the colour of the object and send out signals to control the motors using MATLAB. We establish the serial communication method between the upper laptop and the lower development board with USB port. The laptop will send out a signal of the motor condition to the development board. The concept of this project is to describe a real time capable, colour and scale invariant object learning and detection scheme. The arrangement of Haar-like features of objects is learned. A robust vision system should be able to detect and identify objects reliably and provide an accurate representation of the environment to higher level processes. To ensure the colour-variance of the input images, they are first pre-processed by applying an edge detection Sobel filter. By passing the filtered images through a threshold, all colour information is omitted. It has been found that there are quite a few parameters that need to be adjusted to get satisfactory results from the algorithms, such as the filtering algorithm used, its parameters. Although the results may not seem very positive, what we are concerned with is how it will perform in the desired environment. In this case, the reliability of the algorithm seems to be sufficient. Even
57

if the ball is not detected in one in every 5 pictures, for example, the robot will still be able to follow it quite confidently.

7.2 Applications and Future Scope of project

Present algorithm distinguishes objects primarily on the bases of their color but this can be further improved to make the algorithm color and shape invariant.

This algorithm accompanied with some learning methodologies can be used to identify the type of object in the image as being presently used by many android apps (eg. Google Goggles).

Object tracking methodologies are also being used in unmanned aircrafts and SAM missile system for military purposes.

Object and color detection algorithms are also used in luxury cars to identify the present status of traffic lights.

58

REFERENCES
[1] J. Bruce T. Balch and M. Veloso, Fast and inexpensive color image segmentation for interactive robots, In Proceedings of the IEEE/RSL International Conference on Intelligent Robots and Systems, vol. 3, pp. 20612066, 2002. R. Biswas, B. Limketkai, S. Sanner, Towards object mapping in non-stationary environments with mobile robots, Proceedings of the IEEE International Conference on Intelligent Robots and Systems (IROS'02), Switzerland, vol. 23, pp.1014-1019, October, 2002.

[2]

[3]

R. Lienhart, L. Liang, and A. Kuranov, A Detector Tree of Boosted Classifiers for Realtime Object Detection and Tracking, In Proceedings of the IEEE International Conference on Multimedia, vol.4, pp. 323-326, July 2003. D.Schulz, W. Burgard, D. Fox, People tracking with mobile robots using sample- based joint probabilistic data association filters, International Journal of Robotics Research, vol.22, no.2, pp.99-116, March 2003. B. Jung and G. Sukhatme, Detecting moving objects using a single camera on a mobile robot in an outdoor environment, International Conference on Intelligent Autonomous Systems, vol.124, pp. 980987, 2004. R. Lienhart and J. Maydt, An Extended Set of Haar-like Features for Rapid Object Detection,In Proceedings of the IEEE Conference on Image Processing (ICIP 05), vol.7, pp.155 162, September 2005. H. Surmann, A. Nuchter, and J. Hertzberg, An autonomous mobile robot with a laser range finder for 3d exploration and digitalization of indoor environments, Journal Robotics and Autonomous Systems, vol.4, pp.44- 45, December 2005. F. Orabona, G. Metta, and G. Sandini, Object-based visual attention: A model for a behaving robot, In IEEE Computer Society Conference on Computer Vision and Patter Recognition, vol. 2, pp.645-647, 2005. P. Viola and M. Jones,Robust Real-time Object Detection, In Proceedings of the second International Workshop on Statistical and Computational Theories of Computing and Sampling, vol.7, pp.987-989, July 2006. C. Laporte, R. Brooks, and T. Arbel, A fast discriminant approach to active object recognition and pose estimation, In International Conference on ComputationalResearch, vol.11, pp.456-459, 2006.

[4]

[5]

[6]

[7]

[8]

[9]

[10]

59

[11]

J.X. Yu, Z.X. Cai, and Z.H. Duan, Fuzzy likelihood estimation based map matching for mobile robot self-localization, Lecture Notes in Artificial Intelligence (ICNC06-FSKD06), vol.4223, pp.846-855, March, 2006. M. Z. Aziz, B. Mertsching, M. S. E.-N. Shafik, and R. Stemmer, Evaluation of visual attention models for robots, In 4th IEEE Conference on Computer Vision Systems, 2006. M. Yang, H. Wang, K.Z. He, Environmental modeling and obstacle avoidance of mobile robots based on laser radar, Journal of Tsinghua University (Science & Technology), vol.40, no.7, pp.112-116, July, 2000. B. Leibe, A Leonardis, and B Schiele,Robust object detection with interleaved Categorization and segmentation ,Journal of Statistical Computing, vol. 77, pp. 259289, 2008. S. Araki, T. Matsuoka, H. Takemura, and N. Yokoya, Real-time tracking of multiple moving objects in moving camera image sequences using robust statistics, In Proceedings of 14th International Conference on Pattern Recognition, vol. 2, pp. 14331436,2008. M. Pakdaman and M. Mehdi, Design and implementation of line follower robot, Second International Conference on Computer and Electrical Engineering, pp. 585-590, 2009. D. Meger, A Gupta, and J J Little, Viewpoint detection models for sequential embodied object category recognition, In International Conference on Image Processing, vol.75, pp.452-454, 2010. J. Sturm, K Konolige, C Stachniss, and W Burgard, Vision-based detection for learning articulation models of cabinet doors and drawers in household environments, In ICRA, vol.65, pp.3281-3284, 2010. C. Chun, S. B. Suh, C. Roh, Y. Kang, S. Kang, J. Lee, and C. Han, Sensor fusion-based line detection for unmanned navigation, IEEE Intelligent Vehicles Symposium, pp. 191-196, June 2010. W. Maier and E. Steinbach, A Probabilistic Appearance Representation and its Application to Surprise Detection in Cognitive Robots, IEEE Trans. on Autonomous Mental Development (TAMD), vol. 2, no. 4, pp. 267-281, 2010.

[12]

[13]

[14]

[15]

[16]

[17]

[18]

[19]

[20]

60

61

Anda mungkin juga menyukai