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: http://stanford-ros-pkg.googlecode.com/svn/trunk/openarms/control/goto_cart.cpp 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) HTH, Morgan On Sat, Jul 17, 2010 at 10:43 AM, David Feil-Seifer 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@code.ros.org > https://code.ros.org/mailman/listinfo/ros-users > >