Wiki

Clone wiki

ihmc_ros / whole-body-controller

Contents of page:

IHMC Whole-Body Controller

Controller Overview

This page gives an overview of the IHMC Whole-Body control flow. It should allow people using the IHMC contoller to get an idea of what is happening inside the code.

Consider the Figure below. The Walking high-level controller is were commands from the ROS messages get interpreted. All desired motions get sent to the Quadratic program solver in the form of objectives. Here they are translated to desired joint accelerations and contact wrenches. In the Inverse dynamics calculator block the joint torques that are sent to the robot are calculated. Finnaly, the Low-level controller is in charge of the control of individual joints given a desired torque.

There are two paths bypassing this control flow: For cases in which pure force control does not acieve desired results because of stiction or gravity the joint accelerations are integrated and then fed into the Low-level controller in the form of desired positions or velocities. In the special case of the arms the whole Quadratic program solver is not used and the desired joint angles are directly forwarded to the robot if they are available.

controller_overview.png

The next figure gives a more detailed overview of the Walking high-level controller block. It has several sub-modules:

  • Fall Detector: ...

  • ICP and Momentum Based Controller: ...

  • Walking State Machine: ...

  • Foot Control Module: ...

  • Arm Control Module: ...

  • Head Control Module: ...

  • Chest Control Module: ...

  • Pelvis Control Module: ...


Individual Packet Documentation

The following pages provide diagrams on how individual packages are proccessed within the controller.

Updated