Linux Device Driver for IMI's Zebra Zero Robot Arm
Over the past couple of months, I have been writing code to run IMI's
six-degree-of-freedom manipulator (Yale's lab owns two, pictured above) under
Linux, instead of DOS, the only OS supported by Integrated Motions, Inc.
Why Linux?
DOS is a difficult system on which to run networked code. In particular,
because my interest is hand/eye coordination, it is convenient to have one or
more workstations with cameras analyzing images, while the robot PC only
handles the control of the arm's joints. The results of the vision processing
need to be sent to the robot's PC, which was challening, though possible, under
DOS. (The lab had run the arms under DOS for about 6 years with a
special-purpose piece of assembly code at the heart of the interface. When the
network card stopped networking, the decision was made to port to Linux,
rather than continue to maintain the DOS system.)
Linux has complete built-in support for networking (not to mention
multiprocessing, interprocess communication, and all of the unix tools we're
used to using in the lab), and is extremely stable, so it seemed a natural
platform for expanding our robot's software infrastructure.
The Driver
The driver communicates with the motor-control board supplied by IMI which
contains eight HCTL-1100 motion-control chips from Hewlett-Packard. These
chips can be memory-mapped into user space with a very simple kernel-space
driver. From there, a user's program can take advantage of all of the
functionality of the robot.
The driver code supplied below contains both the small kernel-space driver and
a library of C code providing basic robot functionality. If you would like to
use it and run into trouble installing, compiling, or using the code, let me
know, and I will see what I can do. These links contain the main driver and a
few C++ classes for nonblocking keyboard input and some home-spun
networking.
Download the driver (11/19/98 version)
Download some supporting classes (11/19/98 version)
Zach Dodds
Hand/Eye Coordination
Center for Vision and Control