|
|||||||||||||||
|
Snuf(built 1998-1999) Snuf* is a simple autonomous mobile robot constructed of mainly second-hand components. Snuf is capable of gathering small building blocks on the floor, and bring these to a predefined position, while avoiding collisions with other objects. No special operating requirements are needed, other than a smooth floor.
HardwareIts body is a simple aluminum ground-plate, on which two geared stepper motors have been mounted. Together with a 12V NiCd battery (charged with an Delta-U charge device described in Battery Charger) the ground-plate is fully occupied. On top of this construction a i386DX board (own design) is located: CPU clock of 25MHz, 128k static RAM, a RS232 serial port and two 8-bit parallel ports. Several sensors are used: a front bumper and a rotating stereo ultra-sound transmitter/receiver for object detection (see description of echo locator). Snuf displays its deeper thoughts on a small LCD screen. SoftwarePrograms are written in C++ (using Microsoft Visual C++ 6.0). The binaries are downloaded to Snuf using a serial connection. After booting the program by a remotely controlled kernel, the robot can be detached from the PC and will function autonomously. An object-oriented controlling system implements a state machine approach. One state machine is used for goal specification, and another state-machine is used for object avoidance. Look at this architecture page for more details. This approach gives the flexibility to extend functionality easily, and add features like learning and probabilistic behavior. Current workAt this time, most of my effort is in extending and refinement of the controlling program of Snuf. Right now, I'm exploring the benefits of adding extended planning algorithms to the system. It appears that an iterative deepening route planner improves the performance, within limited calculation costs. Especially the behavior in a complex environment with many obstacles is improved. DownloadOn this page you find code and documents to download. *'Snuf' stems from the Dutch word 'Snuffelen', meaning 'browsing'.
|
||||||||||||||