eeDHcontroller

Calculates the joint commands for a given End Effector pose using ROBOOP's Inverse Kinematics algorithms. More...

Calculates the joint commands for a given End Effector pose using ROBOOP's Inverse Kinematics algorithms.

The roboopIK driver performs inverse kinematics calculations using the ROBOOP library for a given robot arm's end effector, and sends the resulting joint commands to the appropriate actarray interface. The arm model is specified in the Player configuration file using the Denavit-Hartenberg convention parameters (see http://prt.fernuni-hagen.de/lehre/KURSE/PRT001/course_main/node15.html for more details).

When a positioning command of the limb is received via PLAYER_LIMB_CMD_SETPOSITION or PLAYER_LIMB_CMD_SETPOSE, the driver computes the joint commands and sends them in ascending order (base to end effector) to the actarray interface using PLAYER_ACTARRAY_CMD_POS.

When a homing command of the limb is received via PLAYER_LIMB_CMD_HOME, the driver will send a PLAYER_ACTARRAY_CMD_HOME to every joint provided by the actarray interface in descending order (end effector to base).

The driver also computes the current pose of the end effector using forward kinematics (given the current joint positions taken from the actarray interface) and returns it as a data packet.

Compile-time dependencies
Provides
Requires
Configuration requests
Configuration file options
Example
driver
(
  name "eeDHcontroller"
  provides ["limb:0"]
  requires ["actarray:0"]

  nr_joints 6

  # [ R/P theta d a alfa th_min th_max ]
  joint1_DH [ 0 0 0.180  0  1.57 -1.57 2.0  ]
  joint2_DH [ 0 0 0.215  0 -1.57 -1.57 1.57 ]
  joint3_DH [ 0 0 0.0    0  1.57 -1.57 1.57 ]
  joint4_DH [ 0 0 0.308  0 -1.57 -1.57 1.57 ]
  joint5_DH [ 0 0 0.0    0  1.57 -2.09 2.09 ]
  joint6_DH [ 0 0 0.2656 0  0     0    0 ]

  # Allowed positioning error in degrees
  error_pos 0.01

  # Enable debug mode
  debug 1
)
Author:
Radu Bogdan Rusu and Dan Pojar