FootController
Description
Skill which corrects the foot orientation to level it with the ground. The correction of the foot can be disabled in the config and the module will request the given orientation without correction.
Usage
Include this module to allow the robot to control the feet of robot.
Consumes
message::actuation::ControlLeftFootTask requesting the left leg is moved to desired pose.message::actuation::ControlRightFootTask requesting the right leg is moved to desired pose.
Emits
message::actuation::LeftLegIKTask requesting the left leg is moved using Inverse Kinematics, containing left leg motion information.message::actuation::RightLegIKTask requesting the right leg is moved using Inverse Kinematics, containing right leg motion information.
Dependencies
- Eigen
Kinematics
Description
Provides inverse kinematics for left leg, right leg or head. Will emit a Done Task when the corresponding limb is Done.
Usage
Emit the corresponding IK message as a task.
Consumes
message::actuation::LeftLegIKwith information on the servo gains, torque, time to reach the position and the matrix from the target position for the left foot to the torso.message::actuation::RightLegIKwith information on the servo gains, torque, time to reach the position and the matrix from the target position for the right foot to the torso.message::actuation::HeadIKwith information on the servo gains, torque, time to reach the position and the vector that the head should look.
Emits
message::actuation::LeftLegwith servo control information for each servo in the left leg.message::actuation::RightLegwith servo control information for each servo in the right leg.message::actuation::Headwith servo control information for each servo in the head.Donewhen the limb Tasks are Done.
Dependencies
utility/actuation/InverseKinematics.hppprovides the IK functions
Servos
Description
Takes specific servo requests and emits a ServoTarget for them. Uses Director DSL such that each servo can only be accessed by one Provider at a time. Individual Servo Providers are Done when their finish time is reached. Limb Providers are Done when all of the Servos in the Limb are Done. Sequence Providers run a sequence of Limbs one after the other. They are done when the final Limb is Done.
Usage
Emit a servo, limb or sequence task, with priority to run according to the Director algorithm.
Consumes
- Servo messages from
message/actuation/Servos.proto. - Limb messages from
message/actuation/Limbs.proto, which will then emit Servo Tasks frommessage/actuation/Servos.prototo be consumed as above. - Sequence messages from
message/actuation/Limbs.proto, which will then emit Limb Tasks frommessage/actuation/Limbs.prototo be consumed as above.
Emits
message::actuation::ServoTargetthe servo control information for the platform module.- Servo messages from
message/actuation/Servos.protowhen amessage/actuation/Limbs.protois received. - Limb messages from
message/actuation/Limbs.protowhen a Sequence message frommessage/actuation/Limbs.protois received.