UGCSbot will be an autonomous robot that among other things will be able to maneuver around the UGCS lab, acquire a printout from the printer, and deliver the printout to the workstation that requested it.
Mechanics
Mechanically, the robot will have two driving wheels in the front
and two casters in the back. The 5cm radius wheels are coupled to PK-244AB
stepper motors with 0.23Nm of torque through 3.3:1 planetary gear boxes.
The robot can go forward, backward or turn by running the motors at
different speeds.
It has space for mounting a battery, 6 circuit boards and a laptop, as well as the drive components. The front portion of the robot is dedicated to drive components and the back portion to electronics. There will be a partial Ferriday wall between the motors and electronics.
The base and structural components of the robot will be made from 1/4 inch polycarbonate plastic which is very strong, and the case and other cosmetic parts will be made from acrylic plastic which is more scratch-resistant. The robot will have a passive paper receptacle mounted on the top which can hold printouts it receives from the printer. We will couple (non-destructively) a special paper tray to the printer which can dump printouts onto the robot's passive tray when the robot is positioned correctly.
Electronics
The custom electronics for the system consist of the computer interface board, the motor controller board, the sensors board and a power supply board. We may have to have a separate board to handle the systems user interface.
This circuit is still in the early design phase.
The major parts of the software are the vision, navigation and control code. We already have the kinematic analysis for a two-wheeled robot. I plan to write the control code during the first half of the term while I am working on the electronics.
The camera will be used for obstacle detection and landmark-based positioning. I plan to use the vision code as my CS148 project this year. We have not completed plans for the vision system and are currently considering different types of artificial landmarks that we could add to the lab to aid in landmark based positioning.
Regardless of the landmark system we use, the vision software will use will first convert the image from RGB color space to IHS color space. This separates intensity and and color information in a nonlinear way which is more sophisticaled than the YUV system. Next, it will use a standard gradient mechanism to find edges points then use the Hough transform together with a clustering alrorithm to find line segments. (Clusters of points in Hough space correspond to line segments in cartesian space.)
Navigation will be done using approximate cell decomposition on a global scale, and potential field methods on a local scale. The approximate cell decomposition allows global path planning from the robot's current position to the goal position taking into account static obstacles and dynamic obstacles recently encountered, while the potential field allows immediate obstacle avoidance and is used to travel between cells. The initial cell decomposition can be such that every point of interest (workstations, printer, etc.) has an associated cell in the workspace, and the decomposition can be refined as changes in the workspace are encountered.
references
C. Guerra. "Vision and Image Processing Algorith." Algorithms and Theory
of Computation Handbook. Ed. Mikhail J. Atallah. CRC press, 1999. Chapter 22.
"RGB-IHS Conversion."
< http://www.pcigeomatics.com/cgi-bin/pcihlp/IHS|ALGORITHM >