[ros-users] replicating pr2_arm_kinematics for 6-DOF arm

Morgan Quigley mquigley at cs.stanford.edu
Sat Jul 17 18:37:48 UTC 2010

Hi Dave,

The Orocos KDL library is great. I just switched to it last week; my
code is pretty ugly, but it's using the KDL::ChainIkSolverPos_NR_JL
class, which has joint limits:


The ik_tool() function is what you're after. You set the joint limits
when you construct the ChainIkSolverPos_NR_JL object; search for
"ik_solver_pos" in that .cpp file to see the exact syntax.

(sorry about all the commented code... it's a work in progress)


On Sat, Jul 17, 2010 at 10:43 AM, David Feil-Seifer
<david.feilseifer at gmail.com> wrote:
> I am trying to replicate the IK-functionality of pr2_arm_navigation
> for our humanoid robot, Bandit. I have attached a xacro file for it's
> arm. I have it rendering correctly, and am able to have it mimic the
> movements of a real Bandit with joint_states_publisher and a
> /joint_states message. I seem to have correctly ported
> pr2_arm_ik_solver and pr2_arm_kinematics by simply changing all 7's to
> 6's and changing the names of the root and tip links
> (bandit_torso_link and left/right_hand_link). However, I'm having
> trouble with pr2_arm_ik.cpp. Clearly, the math here was meant for a
> 7-DOF arm, and I don't really know what algorithm is being used here,
> so I'm having trouble translating that to a 6-DOF arm. I have figured
> out that in the init function, that I needed to change the
> link_offsets for the shoulder_upperarm_offset, elbow_wrist offset, and
> upperarm_elbow_offset values. Those are now correct. I am just having
> trouble making computeIKShoulderPan and computeIKShoulderRoll to a 6
> joint arm. Can anyone give me some guidance on how to proceed?
> I did look at the KDL examples on their website, but they were pretty
> vague about creating an IK solver with joint limits.
> Thanks for your help.
> -Dave
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users

More information about the ros-users mailing list