Fig 1. Optical Mouse for positional feedback
The ability to know where we are is vital skill we often use in decision making and often taken for granted. When dealing with robots this capability can be a complex expensive task but at the same time a powerful and sometimes essential capability.
Some of techniques that could be applied are
Dead Reckoning Using Incremental Optical Encoders at the wheel
This has been the most common method for estimating the position of the robot. This method relies on the feedback from the optical incremental encoder attached to the wheels as shown in Fig 1. The arrangement consists of two pairs of photo emitter and detector which are placed in such a way that the pulse train generated by the detector when the motor or the wheels rotate is 90 degree phase shifted to each other as shown in Fig 3. By counting the pulse train the robot can estimate how far it has moved from the reference position. The quadruple encoding also gives information about the direction of rotation.
One of the major problem associated with this type of feedback is the systems tolerance against slipping between the wheels and the floor when the robot is cruising at very high speeds. Due to this slippage the wheel rotates while the robot does not actually move that distance. This results in a false position information.
Radio Beacons and GPS
Navigating using active beacons has been with us for centuries. Using the stars for navigation is one of the oldest example of global referenced navigation; technology has brought forward many other systems, such as light houses and more recently radio navigation systems.
The two important technologies that are employed today are
The simple idea of the beacon system is to provide the user with position information relative to that of the beacon system, if this point is known as global location then the position of the user with respect to this global location can be found.
Major disadvantage of beacon systems is there unsuitability for indoor use due to a combination of attenuation of signals due to obstacles, and the multipath fading introduced due to multiple reflection of RF by walls and other surfaces.
When I built ADAM-1 the most important problem that I faced was estimating the position of my robot. The cheap dc motor that I used has no optical encoder attached to it neither the gear system that I got from a Tamiya toy allowed any possibility of attaching an optical encoder to it.
Though I have been using Optical mouse even before I started building ADAM-1 the idea of using optical mouse for determining the position never struck me. But when I was faced with the same problem in ADAM-2 I got the idea of using optical mouse.
Using optical mouse for position detection has several advantages. First the sensor detects the actual distance the robot has moved in 2-dimension hence even if the robot wheel slips at high speeds the robot was still able to accurately determine its position. Second since no mechanical parts are involved they are very reliable.
Theory of Operation
Optical mouse uses a tiny camera to take approximately 1,500 pictures every second. The pictures are taken by bouncing light from a small, red light emitting diode (LED) off the surface under the mouse, onto a Complimentary Metal Oxide Semiconductor (CMOS) camera. The CMOS camera sends each image to a Digital Signal Processor (DSP) for analysis. The DSP, operating at 18 MIPS, is able to detect the changing pattern in the images between movements. Based on these patterns, the DSP determines how far the mouse has moved and sends the corresponding coordinates to the external microcontroller.
Agilent technologies makes this optical sensor modules called HDNS-2000. HDNS-2000 consists of an Image Acquisition System (IAS), Digital Signal Processor, two channel quadrature output and 2 wire serial port.
The optical mouse modules that I used were taken from the IBM optical mouse that I bought from Wall Mart for 29$. I removed the plastic outter casing and also removed the strip wire attachment to the mouse buttons. The figure 5 shows the HDNS-2000 chip from Agilent in the IBM Optical mouse PCB.
Table 1. Pin Description for HDNS-2000
The PCB also contains the MC68HC908JB8 HCMOS Microcontroller Unit from Motorola. Fig 8 gives a more closer view of the Motorola microcontroller while fig 9. gives the pin out of this chip. Though HDNS-2000 has the capability to provide a PS/2 interface the Motorola microcontroller helps to provide a dual interface (PS/2 or USB). At power up, the firmware in the Motorola microcontroller tests the CLK (green wire) and Data (white wire) for a non-zero value for 50 ms if the condition is satisfied then the firmware identifies the input as PS/2 else it identifies as USB. Since my 8051 microcontroller did not have the capability to provide an USB interface I went for PS/2. The source code for reading the coordinates from an optical mouse can be found here.
Fig 4. Quadruple Encoding
Fig 5. Optical Mouse (Top View)
Fig 6. HDNS-2000 Optical Sensor Module
Fig 7. HDNS-2000 Pin Layout
Fig 8. CMOS Camera
Fig 9. Motorola Chip MC68HC908JB8 to control HDNS-2000
Fig 10. Pin Layout of MC68HC908JB8
Wednesday, 4 February 2009
Engineering Seminar Topics,Engineering Project topics,Engineering Project Ideas,project topics, paper presentation topicsFree engineering seminar topics, project topics,This blog does not claim credit for any images and videos featured on it.Engineering Seminar Topics,Engineering Project topics,Engineering Project Ideas,project topics, paper presentation topicsFree engineering seminar topics, project topics,