Whole Body Controller Core Introduction - ihmcrobotics/ihmc-open-robotics-software-tutorials GitHub Wiki
Introduction
Welcome to the IHMC Open Robotics Software Tutorial: Whole Body Controller Core Introduction!
These tutorials will give a basic overview of the IHMC software developed in pursuit of modeling efficient and dynamic walking movement. Our hope is that this tutorial set will provide an understanding of the whole-body controller core’s structure that we use here at IHMC, and will allow others to use and adapt this software to their own projects.
The Simulation Construction Set (SCS) is a very powerful tool that we will be using to simulate the design and motion of robotic devices. For more experience using SCS, we invite you to check out Getting Started with Simulation Construction Set. Using SCS, we will analyze the components and format of a standard PID controller. This is the industry’s most commonly used control system but, as with any stand-alone system, it has its shortcomings. So, in the second half of the tutorial, we transition to the whole-body controller core (WBCC).
Unlike a lone controller, the WBCC has the flexibility to switch between different control frameworks (inverse dynamics, inverse kinematics, and virtual model), and provides feedback controllers which can be accessed independent of the active control mode. The WBCC also has a robust variable feedback system that simplifies the tracking of objectives and results.
We will briefly outline the purpose of each control framework and observe how the controller core carries out a command in joint-space and in task-space. The final simulation demonstrates a quasi-static walking gait with a simple bipedal robot. This execution is made possible by the state machine framework, a feature responsible for the transitions between the sub-controllers that perform the micro-actions involved in walking (standing, transferring weight to one leg, and supporting one leg).
Note: this tutorial set assumes you have followed the Setting up the Development Environment guide and know a bit about Java. If you do not know how to program in Java, pick up a good book or two. We recommend Bruce Eckel's "Thinking in Java", which can be downloaded for free at bruceeckel.com.
Let's get into a breakdown of the pages in this set.
- Import Whole Body Controller Core Project: This page explains how to import the
whole-body-controller-core
project in Eclipse. - Example 1: Robot Arm Simulation with Regular PD Controller: In this example, we will create a simple 7-DoF robot arm which is controlled with simple PD controllers on each joint to track sine-wave trajectories.
- Example 2: Using the IHMC Whole Body Controller Core to Control the Robot Arm in Joint Space: In this example, as in Example 1, we will use the same 7-DoF robot arm which is controlled using the IHMC whole-body controller core to track the same sine-wave trajectories. This example highlights the protocol for setting the controller core and the possibility to run it with 3 different modes: inverse dynamics, inverse kinematics, and virtual model control.
- Example 3: Using the IHMC Whole Body Controller Core to Control the Robot Arm in Task Space: As in examples 2 and 3, we will use the same 7-DoF robot arm which is controlled using the IHMC whole-body controller core. This time, the end-effector is controlled in taskspace to follow a 3D position and orientation trajectory.
- Example 4: The Robot Walker: In this example, we will see how the IHMC whole-body controller core can be used to implement a controller for achieving quasi-static walking with the good old M2 robot model.
Let's get started with Import Whole Body Controller Core Project!