BipedalLocomotion::IK::IntegrationBasedIK class

IntegrationBasedIK implements the interface for the integration base inverse kinematics.

Please inherits this class if you want to implement your custom Integration base Inverse Kinematics. The IntegrationBasedInverseKinematics can actually be used as Velocity controller or real IK. Indeed it is important to notice that IntegrationBasedIKState is a struct containing the joint velocities. When a robot velocity controller is available, one can set these joint velocities to the low-level robot controller. In this case, the $t ^ d$ quantities in the following figures can be evaluated by using robot sensor feedback, and the robot is said to be velocity controlled. On the other hand, if the robot velocity control is not available, one may integrate the outcome of IntegrationBasedIK to obtain the desired joint position to be set to a low-level robot position controller. In this case, the $t ^d$ quantities can be evaluated by using the desired integrated quantities instead of sensor feedback, and the block behaves as an inverse kinematics module, and the robot is said to be position controlled.

Velocity Control

Here you can find an example of the IntegrationBasedInverseKinematics interface used as a velocity controller.

Image

Inverse Kinematics

If you want to use IntegrationBasedInverseKinematics as IK you need to integrate the output velocity. System::FloatingBaseSystemKinematics and System::Integrator classes can be used to integrate the output of the IK taking into account the geometrical structure of the configuration space ( $ \mathbb{R}^3 \times SO(3) \times \mathbb{R}^n$ )

Image

Base classes

template<class _Task, class _State>
class BipedalLocomotion::System::ILinearTaskSolver<IKLinearTask, IntegrationBasedIKState>
ILinearTaskSolver describes the interface for solving problem related to LinearTask class.

Derived classes

class QPInverseKinematics
QPInverseKinematics is a concrete class and implements an integration base inverse kinematics.

Constructors, destructors, conversion operators

~IntegrationBasedIK() defaulted virtual
Destructor.