Software Architecture for Humanoid Control
Terrestrial Robotics Engineering and Controls Laboratory
Project Summary:

The Terrestrial Robotics Engineering and Controls (TREC) Lab at Virginia Tech is developing a semi-autonomous humanoid robot to perform disaster search-and-rescue tasks. In the preliminary stage of this work, I was responsible for 1) identifying a software architecture that can support such advanced locomotion and manipulation tasks and 2) adapting this platform the TREC Lab’s custom use.

Project Details:

My first goal was to conceptualize a robust operating logic for a generic humanoid robot. After studying various strategies from the DARPA Robotics Challenge, I synthesized the following system flow that maps abstract tasks to low-level control.


In order to realize this software architecture, I began by evaluating existing open-source control applications for functionality, modularity, and simplicity, while heeding special attention to real-time operation.

My primary findings were: 1) XBotCore: a software platform that supports real-time humanoid control and 2) IHMC Open Robotics Software: a set of libraries for out-of-the-box planning and robot operation. Both allow modelling abstract behaviors using finite state machines, multi-tasking via a whole-body inverse kinematics engine, and simplifying complex structures into a universal robot description format.

I studied both platforms at length to understand their underlying control architecture. These efforts served as an introduction to various bipedal control strategies and algorithms. I was then able to use both softwares to generate controllable robot models, send low-level joint commands, and build high-level behavior sequences.

I describe this work in full, with detailed instructions for future lab use, in a Technical Report & Guide.