Basic RT components and utilities  315.12.1

Overview

This component is maintain full-body balance based on sensor feedback.

Feature

This component modifies input joint angles to control COG, ZMP, and so on. This component receives reference joint angles from "qRef" inport. Then it solves Inverse Kinematics (or something) based on sensor feedback, obtains jonint angles, and outputs the joint angles as "q" outport.

Mode

This component has modes and behaves as Finite State Machine. By default, this component is idle mode ("MODE_IDLE"), in which it do not modify input joint angles. When OpenHRP::StabilizerService::startStabilizer() are called in idle mode, it switches to controlling mode ("MODE_ST"), in which it modifies joint angles. When OpenHRP::StabilizerService::stopStabilizer() are called in controlling mode, it switches to idle mode. When this component is controlling mode and the robot is put off to the air, it switches to air mode ("MODE_AIR"), which is similar to idle mode. When this component was air mode and the robot is put on the ground, it switches to controlling mode.

ZMPDistributor Example

ZMPDistributor example, in which distributed force and moment are displayed on graphs (COP, Ref-force, Ref-moment, ... etc).

testZMPDistributor # Non ROS environment
rosrun hrpsys testZMPDistributor # ROS environment
implementation_idStabilizer
categoryexample

Stabilizer algorithm

Stabilizer algorithm is based on the following papers:

Data Ports

Input Ports

port namedata typeunitdescription
qCurrentRTC::TimedDoubleSeq[rad]Actual joint angles
qRefRTC::TimedDoubleSeq[rad]Reference joint angles
rpyRTC::TimedOrientation3D[rad]Actual attitude sensor's Roll-Pitch-Yaw angle
forceLRTC::TimedDoubleSeq[N],[Nm]6D wrench vector for actual force and moment for left leg
forceRRTC::TimedDoubleSeq[N],[Nm]6D wrench vector for actual force and moment for right leg
zmpRefRTC::TimedPoint3D[m]Reference ZMP in base frame
basePosInRTC::TimedPoint3D[m]Reference base position
baseRpyInRTC::TimedOrientation3D[rad]Reference base orientation (Roll-Pitch-Yaw)
contactStatesRTC::TimedBooleanSeqNAReference end-effector contact states (True=contact, False=no-contact)
controlSwingSupportTimeRTC::TimedDouble[s]Time of swing phase

Output Ports

port namedata typeunitdescription
qRTC::TimedDoubleSeq[rad]Output reference joint angles
zmpRTC::TimedPoint3D[m]Estimated actual ZMP in base frame

Service Ports

Service Providers

port nameinterface nameservice typeIDLdescription
StabilizerServiceservice0StabilizerServiceOpenHRP::StabilizerServiceStabilizerService

Service Consumers

N/A

Configuration Variables

nametypeunitdefault valuedescription
debugLevelint0debug level

Configuration File

N/A