ControlIt! Open-Source Whole-Body Control Software Framework for Humanoid Robots

We are pleased to announce ControlIt! [1], a new LGPLv2.1 open-source software framework for Whole-Body Operational Space Control. A draft manuscript describing the software is on-line [2]. ControlIt! was originally created by the Human Centered Robotics Lab at UT Austin [3] and NASA’s Johnson Space Center in preparation for the DARPA Robotics Challenge Trials of 2013. After the trials, we continued to refine the software and test it on Meka’s Mekabot upper torso humanoid (our copy of this robot is called Dreamer). Its capabilities on Dreamer demonstrating feedback torque control of Meka’s dual arm manipulation system and the robot’s redundant pose while handling the torso’s bi-articular transmission constraints are showcased in this video [4].

ControlIt! employs a highly modular and extensible software architecture for facilitating additional control primitives, real-time Linux patches, and robot hardware. We are particularly interested in integrating ControlIt! with other torque controlled highly-redundant robots and performing both locomotion and manipulation behaviors. ControlIt!’s whole body operational space control algorithm is based on floating-base dynamics and contact constraints enabling it to naturally support legged locomotion. ControlIt! was used to achieve both locomotion and manipulation on the full Valkyrie humanoid robot in simulation [5], though only limited balancing experiments were done on hardware. Future usage of ControlIt! will be geared towards full body locomotion and manipulation behaviors.

Software Features:

  • OS: Ubuntu 12.04 and 14.04
  • Real-time patches: RTAI, RT-Preempt
  • ROS: Hydro and Indigo
  • Linear algebra library: Eigen 3
  • Model library: RBDL 2.3.2
  • Model description: URDF
  • Integration with higher-level software: parameter binding
  • Integration with lower-level software: RobotInterface and ServoClock plugins
  • Controller introspection: Parameter reflection and ROS services
  • Controller configuration specification: YAML
  • Controller reconfiguration: enable / disable tasks and constraints
  • Controller primitives: Tasks and constraints structured into compound tasks and constraint sets
  • Number of threads: 1, 2, or 3 (one of which is the real-time servo thread)
  • Simulator: Gazebo 5.1

Real-time performance when configured with 5 tasks and two constraints, servo computational latency on an Intel i7-4771 3.56GHz CPU is:

  • Multi-threaded: 0.603 ± 0.0166 ms
  • Single-threaded; 0.882 ± 0.0168 ms

Software Website:
Source code:
Email List:

The Human Centered Robotics Lab
NASA Johnson Space Center
The Institute of Human Machine and Cognition

[1] ControlIt! Website
[2] ControlIt! Arxiv Draft Paper
[3] The Human Centered Robotics Lab
[4] Video of Dreamer Using ControlIt!
[5] Simulation of NASA’s Valkyriue Using ControlIt!The draft paper describing the software framework can also be found clicking below:

UTA-WBC Open Source Software

A previous version of the Whole-Body Control Software that ran on Dreamer is hosted at:
GitHub: UT Austin Whole-Body Control Software