Version 3 (modified by dc, 10 years ago) (diff)


Overview of the libbarrett controls library

Barrett's new controls library is called "libbarrett". With the exception of a few maintenance tasks, libbarrett replaces the older "btclient" controls library, which is no longer under active development.

Libbarrett is written in C++ and aims to be quite modular and flexible. True to Barrett's custom, the library is fully open source! This allows our customers the unique opportunity to see exactly what calculations we make and also to adjust them to suit their specific requirements.

Briefly, libbarrett thinks about controlling the WAM like Simulink. The programmer describes in code how a block diagram is hooked up, and then that block diagram becomes the main-loop.

Partial feature list

Here are libbarrett's most important features for running the WAM:

  • Real-time joint torque control
  • Real-time sensor-less force/torque control (haptics)
  • Real-time joint position/velocity control
  • Real-time Cartesian position/tool orientation control
  • Real-time data logging capabilities
  • Access to the Jacobain matrix
  • User-calibrated gravity compensation
  • Simple interface for point-to-point moves and spline-following in both joint- and Cartesian-space
  • Teach-and-play
  • Forward kinematics calculations
  • Online inverse kinematics (based on Jacobain-transpose methods)
  • Inverse dynamics calculations

Note to btclient users

The libbarrett library has the same functionality as btclient, but it has been rewritten from the ground up in an effort to simplify the API. Going forward, libbarrett will be the standard library that we supply to new WAM customers. Btclient will continue to be available for WAMs, but we will not develop it further and it will not support Barrett's latest products, such as our Force/Torque sensor and our new BH8-280 BarrettHand.

Please email support@… with any questions!