WAM Arm – User’s Manual
www.barrett.com
© 2008 Barrett Technology®, Inc.
Document: D1001, Version: AH.00
26 of 80
4 PC & Control Software
4.1 Library
Overview
This provides a brief overview of the WAM library. It is not an exhaustive feature list, but it gives
a sampling of the WAM library’s functionality.
Every WAM comes with its own internal PC running real-time Linux. Many WAM control demos
and example applications are pre-loaded on the PC, along with their full ANSI-C source code.
Each WAM application is linked against the WAM control library (source included, with C++
wrappers). This library offers easy access to many properties of the WAM, including:
•
Joint torques
•
Joint positions
Once it receives the joint positions from the WAM, the library uses the forward kinematics and
mass parameters from an easily configured file (wam.conf) to calculate:
•
Tool position and orientation (XYZ, RxRyRz)
•
Jacobians for each link
•
Mass (inertia) matrix
The WAM is a fundamentally torque-controlled robot. The typical control loop asks for joint
positions and calculates new joint torques at 500 Hz. This control rate is adjustable (up to 1 kHz)
to meet varying requirements. The WAM library saturates packed torques at 14-bits (from –8191
to +8191). To assist with application development, the WAM library offers:
•
Adjustable control loop sample time
•
Real-time data logging of any application data up to the control frequency
•
Control loop callback hooks to perform calculations on the WAM data in real-time
Due to the WAM’s tension element (cable) drive system, motor torque is directly related to joint
torque with zero backlash and near-zero friction. This makes it possible for the WAM library to
perform online real-time joint torque calculations (using the Jacobian transpose) to generate any
desired link forces. The WAM’s “gravity compensation” routines use this feature to make the
robot arm appear weightless by constantly calculating and applying the correct upward force on
each link to negate the effect of gravity. Gravity compensation makes it very easy to perform lead-
through teaching and precision playback. Real-time link forces are also useful for creating “haptic
scenes” or interactive virtual objects that a user can “feel” within the workspace of the WAM. The
WAM library gives you access to:
•
Joint torques calculated to yield gravity-compensation forces
•
Teach & Play functionality with a simple keypress
•
Simple haptic scene primitives
Even though a key feature of the WAM is its ability to apply forces in Cartesian (XYZ)
coordinates without requiring a force sensor, the WAM library also provides a simple position
controller (PID) in order to perform joint-space or Cartesian-space position moves like other robot
arms. Therefore, the WAM library also provides:
•
Point-to-point moves in joint or Cartesian space
•
Adjustable acceleration and max velocity (for trapezoidal moves)
•
Continuous-trajectory path-following in joint or Cartesian space
•
Adjustable PID gains (control stiffness)
•
Joint torque saturation limits
•
Cartesian force saturation limits
Because the WAM was designed to be used with people in its workspace, safety is paramount.
The WAM library allows you to adjust the sensitivity levels in the WAM’s embedded safety
system. This circuitry actively monitors the state of the robot, even if the control PC crashes.
Using the WAM library, you can adjust: