Tom's a Simpleton For now… Here's what I would like to do to make Tom Servo better.
Distributed Robotics Architecture
What I would like to do long term is develop a more general architecture for the robot electronics. I want to build serially linked modules that can make use of either electrical or optical connections. This will allow me to distribute the control of the robot and reduce the influence of noise. It will also make the wiring between modules easier to manage. Here is a wish list of modules I would like to have to build a more flexible robot.
Low-Speed Serial Link (LSL)
I intend to build a low speed serial link for host to robot communication
and for module to module communication.
One key disadvantage to Tom currently is the download link. Currently the only permanent storage on Tom Servo is the EPROM. While trying out new code I must either retype all new (non-epromed) code every time I power up or download the new Forth words through the serial port. The serial connection quit functioning a few times before the contest and I am looking for a better way to load code. This is the reason for developing a better low speed serial link. I am impressed with the Mindstorm kit's simple infrared tower for code download and will probably implement something similar. A more intelligent IRPROX could be made to recognize code block transfers. I2C is an alternative to designing a serial protocol or using LEGO Mindstorms protocol. I2C is a licensed technology which bothers me. I would rather find or develop a license free serial architecture.
High Speed Serial Link (HSL)
As the modular components increase and the complexity of the components increase, a much faster link will be required. Several links are currently defined that could meet the needs of a medium to large robotics project. Most are based off of the FibreChannel physical specification but with a much more simple protocol.
Redundant Serial Link (RSL)
Hardware fails and links die. If a robot is to operate autonomously, it must be able to survive simple failures. Redundant hardware connected by redundant serial links would be a first step in building a robust autonomous robot. This redundant link would allow multiple inputs (data and control). Through an external mechanism (voting?) one or more serial links could disable a malfunctioning processor by disabling the serial link to backend processing modules.
Power Cell Board (PC)
Robotics Systems require clean power at multiple voltages. In addition to simple DC Batteries, a flexible robot should be able to recharge by finding it's own power and switch from source to source cleanly. In order to determine when to switch sources a robot must be able to measure it's battery voltages. This board would provide a processor interface for reading environmental conditions notifying the system of an environmental event (voltage, temperature etc), a clean power output and multiple power inputs.
Power Sensor/Control Board (PSC)
The Power Sensor Control Board interfaces to the Power Cell board and to various sensor and control functions to provide low level robotics control functions. The PSC board would include a serial interface and LCD interfaces for direct feedback to users. For interfacing to sensors and control boards the PSC will utilize either direct I/O or a Low Speed S