Struct robot_interfaces_solo::_SoloXActionΒΆ

template<int X>
struct _SoloXAction : public robot_interfaces::Loggable, public robot_interfaces::Loggable

Action for the Solo robot.

Solo 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 Functions

template<class Archive>
inline void serialize(Archive &archive)
inline std::vector<std::string> get_name() override
inline std::vector<std::vector<double>> get_data() override
template<class Archive>
inline void serialize(Archive &archive)
inline std::vector<std::string> get_name() override
inline std::vector<std::vector<double>> get_data() override

Public Members

Vector<X> joint_torques = Vector<X>::Zero()

Desired joint torques.

Vector<X> joint_positions = Vector<X>::Zero()

Desired joint positions.

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

Vector<X> joint_velocities = Vector<X>::Zero()

Desired joint velocities.

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

Vector<X> joint_position_gains = Vector<X>::Zero()

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

Vector<X> joint_velocity_gains = Vector<X>::Zero()

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

Public Static Functions

static inline _SoloXAction<X> 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 _SoloXAction<X> 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.