= 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. 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. It 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. Here is a partial list of 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 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. You can check-out the most up-to-date version of the code from our Subversion repository by running: {{{ svn co http://web.barrett.com/svn/libbarrett/branches/1.x libbarrett }}} Please email support@barrett.com with any questions!