FRP’s usefulness for robotics programming will be evaluated by the implementation a robotic controller. The robot will detect and follow objects (as captured by a video camera) using a simple image processing algorithm. This project focuses on the FRP paradigm, so the image processing / computer vision algorithm will be simple and unimportant. We may pick an ‘off-the-shelf’ algorithm for this purpose. The robot will be based on the Segway RMP 200. A USB camera that is already attached to an existing RMP unit will be used in conjunction with a laptop computer that will be attached to the robot. The laptop will connect to the RMP’s wheel drive controller via USB, allowing a computer program to control the robot’s velocity and orientation (the general layout described here can be seen in Figure 1 - General structure of the robot). The laptop will run the linux operating system. The controlling program will be designed and implemented using functional reactive programming, using a Haskell-embedded FRP framework.
Figure 1 - General structure of the robot
As we’ll be using FRP, the program’s design at the top level is clear and simple. The robot is modelled as a reactive system that transforms time-varying values and events. There are two inputs to the controlling program: video from the camera, and status events from the RMP. The video is modelled as a time-varying image. The following describes my top-level design for the controlling program:
, a vector from the robot to the detected object’s inferred location.The top-level design appears in Figure 2 - Top-level design of the controlling program.
Figure 2 - Top-level design of the controlling program
The Segway RMP (Robotic Mobility Platform) 200 is a platform for robotics development and testing. It is produced by Segway, Inc. (which publishes more information about the platform at http://www.segway.com/business/products-solutions/robotic-mobility-platform.php). It features the following:
The Segway RMP-200 starts at $21,000 USD. Ben-Gurion University has already acquired several units, so purchase of an RMP was not necessary for this project.
The main focus of the project is not the “robotic intelligence” or image-processing aspects. Rather, it is the design methods and implementation clarity. Therefore the tests will focus on the comparison between the FRP and the alternative implementation.
No special equipment is required for the testing.
Following is an estimated budget for the project (prices are in NIS). All the required equipment (computers, Segway RMP 200, video camera) already exists in the laboratory so the only price for equipment is the per-hour usage price (due to wear).
| Name | Price (per hour) | Hours | Units | Total |
|---|---|---|---|---|
| Salary | 20 | 200 | 1 | 4000 |
| Computer Usage | 4 | 200 | 1 | 800 |
| Segway RMP 200 | 75 | 50 | 1 | 3750 |
| USB Video Camera | 0.15 | 50 | 1 | 7.5 |
The total budget estimated after rounding is 8600 NIS (approximately $2300 USD).