Actions and Observations

BoltHumanoidAction

“Actions” are used to send commands to the robot. The members are vectors with once field per joint (see bolt::BoltHumanoid for a mapping of index to joint).

struct BoltHumanoidAction : public robot_interfaces::Loggable, public robot_interfaces::Loggable

Action for the BoltHumanoid robot.

BoltHumanoid has an on-board PD+ controller which can be used by setting the P and D control gains per joint to the fields joint_position_gains and joint_velocity_gains. If the gains are zero, joint_positions and joint_velocities are ignored and only the torque commands in joint_torques are executed.

Public Members

Vector9d joint_torques = Vector9d::Zero()

Desired joint torques.

Vector9d joint_positions = Vector9d::Zero()

Desired joint positions.

Only used if joint_position_gains are set to a non-zero value.

Vector9d joint_velocities = Vector9d::Zero()

Desired joint velocities.

Only used if joint_velocity_gains are set to a non-zero value.

Vector9d joint_position_gains = Vector9d::Zero()

P-gains of the on-board PD+ controller.

Vector9d joint_velocity_gains = Vector9d::Zero()

D-gains of the on-board PD+ controller.

Public Static Functions

static inline BoltHumanoidAction Zero()

Create a zero-torque action.

This is equivalent to just using the default constructor but can be used to more explicitly show intend in the code.

static inline BoltHumanoidAction Zero()

Create a zero-torque action.

This is equivalent to just using the default constructor but can be used to more explicitly show intend in the code.

BoltHumanoidObservation

“Observations” contain the sensor data that is provided by the robot. The joint_* members follow the same order as in the action (see above).

struct BoltHumanoidObservation : public robot_interfaces::Loggable, public robot_interfaces::Loggable

Observation of the BoltHumanoid robot.

This observation class contains all the sensor data provided by the BoltHumanoid robot. The names of the attributes correspond to the names used in bolt::BoltHumanoid of the bolt package (for each attribute X, there is a method get_X()). See there for more information.

Public Members

Vector9d joint_positions

Measured joint positions.

Vector9d joint_velocities

Measured joint velocities.

Vector9d joint_torques

Measured joint torques.

Vector9d joint_target_torques

Target joint torques applied by the controller.

Eigen::Vector4d slider_positions

Positions of the hardware sliders, if connected (range: 0 to 1)

Eigen::Vector3d imu_accelerometer

Measurement of the IMU accelerometer.

Eigen::Vector3d imu_gyroscope

Measurement of the IMU gyroscope.

Eigen::Vector3d imu_linear_acceleration

Linear acceleration measured by the IMU.

Eigen::Vector4d imu_attitude

Attitude measured by the IMU.