Inverse Dynamics Control on fully-actuated KUKA arm

Control KUKA back to home position with inverse dynamics controller

Why Inverse Dynamics Control, why not PID?

Why not use PID controller? That's a good question. If the robot's joints are decouples and using PID controller for each joint is the way to go. All you need is model-free parameters that corresponds to each joint. In my case, I am simulating a humanoid robot with two arms, the joints and links are deeply coupled that model-free method does not work well here.

The Inverse Dynamics Controller is a system block that takes in the desired acceleration and spit out whatever the generalized control force is. Using Inverse Dynamics Controller is easy in Drake because MultibodyPlant does all the inverse dynamics calculation for you.

Code

Create a folder drake/examples/kuka_iiwa_arm_idc/

Put the following file into the folder.

Add BUILD.bazel

Run demo

The complete code is here.

Similar demo is kinova jaco arm set pose control.

Last updated

Was this helpful?