ECE 477 Group 4 Homework 6
1. Introduction
The design objective is to build an intelligent and independent mobile robot that finds a path to a desired destination using given waypoints. The mobile robot is intelligent enough to perform three functions on its own: dynamic map generation, dynamic path calculation, and self-recovery from out of path. Since all three main functions are performed without any help or control from the outside of system, the mobile robot achieves true independency. The mobile robot system is divisible into two parts: Rabbit 3000 Core Module and interfacing peripherals. Rabbit 3000 Core Module communicates with interfacing peripherals and controls interfacing peripherals based on the information that it obtains from them. Peripherals consist of CMU camera, stepper motor driver, infrared sensor, and WLAN bridge. The mobile robot has initial map of the environment with given way points and destination. Once it starts running, it calculates the best path through way points. As it discovers the changes in the environment, it dynamically modifies the map and the optimal path. At each way point, it verifies the current location by image processing. If it cannot verify, it performs image processing to find the closest way point. After it finds the nearest one, it redefines the map and the optimal path dynamically if it needs to.
2. Theory of Operation
2.1 Microprocessor
RCM 3300 RabbitCore[1]is selected for the mobile robot system’s microprocessor core module. RCM 3300 RabbitCore runs at 44.2MHz and contains 512K (program) + 512K (data) of SRAM with extended 8 MB Serial Flash memory. It also comes with built-in Ethernet capability carrying RJ-45. Lastly, it requires 350mA at 3.3V.
RCM 3300 RabbitCore communicates with its peripherals and controls them. The mobile robot contains the initial map of current environment, given way points, and the destination. These three items are given from the initial state and modifiable via internet. One tile of a map covers physical 10cm×10cm square and requires 1 bit to represent whether it is passable or not. The size of the entire map is 100m×100m which contains 10^6 tiles. Therefore, the entire map requires 10^6 bits or 125KB. Way points and destination are represented by x-y coordinates on the map where bottom left corner has the value of (0,0). The information of each way point is stored in a table. Each entry contains 8 bytes with 10 bits for x and y coordinates and the rest of bits for the color coding. With 1000 entries in the table, it takes 8KB in the memory. The starting point and the destination are also stored in a table that is limited to have only two entries.
Before the mobile robot takes off, it calculates the optimal path to the given destination from the initial starting point based on the initial map and the given way points. Once it finishes a path finding process by connecting way point to way point, it moves toward the first way point on the optimal path. Between two way points, the mobile robot understands its current location by calculating the revolution of two stepper motors. When it thinks that it is at the first way point, the mobile robot performs an image processing to verify it. If verified, it follows the path until it gets to the destination. If not, it keeps performing image processing on neighboring tile until it finds the expected way point or the closest one. If found way point is not the expected one, the mobile robot dynamically modifies the optimal path. As the mobile robot discovers changes in the environment from the initial map, it dynamically modifies the initial map.
The mobile robot runs web server on RCM 3300 RabbitCore for two purposes. First, it provides a human interface through internet so that the current progress can be monitored. Secondly, it allows the user to modify information on the environment, way points, starting point, and destination manually.
2.2 Peripherals
2.2.1 CMU Camera
CMUcam[2] system consists of two parts: OV6620 CMOS camera[3] and SX28 microcontroller[4]. The board is equipped with a 5V regulator. According to the manufacturer’s recommended power supply configuration, with the power supply between 6V and 9V, the board is capable of supplying at least 200mA. Since the power supply of the whole mobile robot system is 9V DC, CMUcam gets proper power supply. 3 pins on TTL serial port are utilized to communicate with RCM 3300 RabbtiCore. Pin 9 is grounded when pin 8 goes to PC6_TXA (serial port A TX on Rabbit 3000 microprocessor) and pin 7 goes to PC7_RXA (serial port A RX on Rabbit 3000 microprocessor). The serial communication parameters are as follows:
→ 115,200 Baud
→ 8 Data bits
→ 1 Stop bit
→ No Parity
→ No Flow Control
Since CMUcam uses 80×143 resolution, one frame will contain 11.44KB. The mobile robot takes only one image frame at a time and does not keep the image frame after image processing. Serial command set is given on the user manual[5].
In current design configuration, RCM 3300 RabbitCore requests for a static image, 1 image frame, only at the location of expected way point or expected destination.
2.2.2 Infrared Sensor
Sharp GP2D02 IR Ranger[6] discovers initially unknown obstacles on the optimal path. Initial map stored in memory only indicates starting point, way points, destination, and known obstacles. However, by utilizing Sharp GP2D02 IR Ranger, the mobile robot can detect an unknown obstacle that is placed on the adjacent tile to the currently passing tile. This IR Ranger has minimum distance measuring range of 10cm. Since each tile on the map has physical size of 10cm×10cm, the mobile robot is able to detect an unknown obstacle in maximum 2 tiles in advance on the current optimal path. Once IR Ranger detects an obstacle, it signals RCM 3300 RabbitCore so that it can avoid the collision and re-optimize its path.
Sharp GP2D02 IR Ranger has recommended supply voltage of 5V which is provided by a 5V regulator connected to 9V DC power source. 22mA is gained at 5V. It has one Vin signal input and one 8-bit serial output which are wired to PD2/TPO- (general bi-directional I/O on Rabbit 3000 microprocessor) and PD3/TPO+ (general bi-directional I/O on Rabbit 3000 microprocessor) respectively. RCM 3300 RabbitCore sends out a request for detection to Vin in regular time basis and gets 8-bit serial output.
2.2.3 Stepper Motors and driver
The mobile robot uses two stepper motors via its driver. FTFc15-42[7] has recommended power supply voltage of 12V-24V where the mobile robot provides 15V. MC3479[8] is designed to drive a two-phase stepper motor in the bipolar mode. Among 4 input pins on MC3479 only three pins are connected to RCM 3300 RabbitCore. First pin gets clock signal and second one gets a signal for direction (CW/CCW). The last one gets a signal representing full step or half step (Full/Half step).
Having two separate stepper motors and drivers allows the mobile robot to rotate without changing current location.
2.2.4 WLAN bridge
Linksys Wireless Ethernet Bridge WET11[9] connects the mobile robot to Wi-Fi (802.11b) connection. One end of the bridge directly goes to RJ-43 Ethernet jack on RCM 3300 RabbitCore. The other end is wireless connected to any available Wi-Fi access point. This enables the mobile robot to be accessible via internet.
The bridge uses 5V DC as its power supply.
2.3 Power Supply
The mobile robot has two separate power sources. One source is 9.6V 2100 mAh NiCd Battery. This rechargeable battery is connected to two parallel regulators: one 5V regulator and one 3.3V regulator. Another source is 6×1.5V AA batteries to supply 15V in total. Demand for power supply is as follows:
→ Processor: 3.3V
→ CMU Camera: 5V / equipped with 5V regulator on its vision board
→ Infrared Sensor: 5V
→ Stepper Motor/Driver: 15V
→ WLANBridge: 5V
Since stepper motors have separate power supply from other part of the system, the feedback current is not a big issue. Meanwhile, supplied current from 9V rechargeable battery is not an issue either since CMOS logic is mostly used in connected peripherals.
3. Documentation on circuit design
3.1OrCad Schematic
*see attachment
3.2OrCad Design Check Report
*see attachment
3.3OrCad Bill of Materials Report
*see attachment
4. References
1. Rabbit Semiconductor, RCM 3300 RabbitCore,
2. CMUcam Vision Sensors,
3. SX28 Microcontroller,
4. OV6620 Omnivision CMOS camera,
5. CMUcam Vision Board User Manual,
6. Sharp GP2D02 IR Ranger,
7. FTFm Precision Stepper Motors,
8. Stepper Motor Driver,
9. Linksys Wireless Ethernet Bridge WET11,
(page 1/7)
7 October 2004 Seo, Jungwoo
[1]Rabbit Semiconductor, RCM 3300 RabbitCore,
[2] CMUcam Vision Sensors,
[3] SX28 Microcontroller,
[4] OV6620 Omnivision CMOS camera,
[5] CMUcam Vision Board User Manual,
[6] Sharp GP2D02 IR Ranger,
[7]FTFm Precision Stepper Motors,
[8] Stepper Motor Driver,
[9] Linksys Wireless Ethernet Bridge WET11,