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