  Whole Body Operational Space Control (WBOSC) is a pioneering algorithm in the
field of human-centered Whole-Body Control (WBC). It enables floating-base
highly-redundant robots to achieve unified motion/force control of one or more
operational space objectives while adhering to physical constraints. Limited
studies exist on the software architecture and APIs that enable WBOSC to
perform and be integrated into a larger system. In this paper we address this
by presenting ControlIt!, a new open-source software framework for WBOSC.
Unlike previous implementations, ControlIt! is multi-threaded to increase servo
frequencies on standard PC hardware. A new parameter binding mechanism enables
tight integration between ControlIt! and external processes via an extensible
set of transport protocols. To support a new robot, only two plugins and a URDF
model needs to be provided --- the rest of ControlIt! remains unchanged. New
WBC primitives can be added by writing a Task or Constraint plugin.
ControlIt!'s capabilities are demonstrated on Dreamer, a 16-DOF torque
controlled humanoid upper body robot containing both series elastic and
co-actuated joints, and using it to perform a product disassembly task. Using
this testbed, we show that ControlIt! can achieve average servo latencies of
about 0.5ms when configured with two Cartesian position tasks, two orientation
tasks, and a lower priority posture task. This is significantly higher than the
5ms that was achieved using UTA-WBC, the prototype implementation of WBOSC that
is both application and platform-specific. Variations in the product's position
is handled by updating the goal of the Cartesian position task. ControlIt!'s
source code is released under an LGPL license and we hope it will be adopted
and maintained by the WBC community for the long term as a platform for WBC
development and integration.
