Servobot project

Servobot is a simple six-legged robot, which has been used locally for research experimentation in adaptive control. I am interested in developing it a vehicle to teach primary and secondary students about robotics and control.

Project description page
Wonderlab demonstration, March 2002
Instruction page (PS) (PDF)
Setup instructions (PS) (PDF)

A. Servobot GUI

Develop a graphical user interface in Tcl/Tk (or other tool set) to allow children to design walking gates and experiment with them on Servobot. This project involves the human-computer interaction aspects, including enhancements to the graphic display, improvements to the design environment, and experimentation with different age groups to develop teaching materials.

B. Servobot "driver"

Each of Servobot's six legs is driven by two servomotor actuators. A Tcl/Tk user interface, currently hosted on a relatively slow PC notebook computer. Although control of the robot is done with simple character stream I/O, Tcl interpreter is too slow do fine-grain control. This project would develop a C language (or Visual Basic or ...) program standing between the GUI and the I/O port that drives the robot. The software has real-time characteristics, but is not overly complex. The hard thing about this project will be to figure out how to set up communication with the GUI.

Outline of needs

  1. Graphical User Interface
    1. File management. Facilities so that individuals can save and reuse their work.
    2. Higher programmability. For example, copy steps (maybe drag'n'drop), complement a step, etc..
    3. Dynamic, interactive edits while the robot is running.
    4. Mission level programming language, using gaits as primitives.
    5. Graphical simulation tool.
  2. "Driver" level, translates GUI information to a control record and commands the robot more directly (i.e. without the Tcl interpretation overhead).
    1. Use an appropriate "background" language, for example, C++ with Tcl, Java with Java, etc.
    2. Enhanced control, such as more than two target positions, ramping motion through intermediate positions, acceleration control, etc.
  3. Interface hardware.
    1. Move some of the control complexity from software driver to on-board hardware.
    2. Add sensors and more actuators to the mechanical systems.
    3. Rechargable power pack.
    4. Wireless communication channel.