|
Software Environment
Jim 2 runs a standard version Debian GNU/Linux.
All access to the robot occurs via wireless ethernet.
For debugging and development, we telnet into the
robot. For high-level control, we run a custom X11
application that communicates via sockets
with a robot control process running on the robot.
Due to the efficiency of Linux, we were able to run all of the motion
control in software, despite a lack of real-time guarantees from the
operating system. If any process were to use the CPU for an entire
context-switch timeslice (typically 0.2 seconds under Linux) the robot
could move past it's physical limits, causing severe mechanical damage.
However, by disabling non-essential processes, our control process was
able to run without ever being switched out for more than a few
milliseconds.
|