Beruflich Dokumente
Kultur Dokumente
Bachelor of Technology
in
By
ASHISH JINDAL (08413) SHOBIT MAHAJAN (08511) SIDHANT SOOD (08452)
Bachelor of Technology
in
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
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.
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
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
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.
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
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.
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.
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.
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.
18
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
20
2.4
Pinning Information
21
22
3.2
3.3
Clock Generator
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
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.
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.
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
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.
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
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.
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.
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.
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 (*)
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.
35
36
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.
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.
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
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.
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
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.
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.
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
46
Fig. 5.4 Different types of motion possibilities with three wheel differential drive.
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.
47
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.
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.
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.
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.
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.
52
53
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.
54
Chapter 6
RESULTS AND DISCUSSION
55
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
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.
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