Robotics StackExchange | Archived questions

Is it possible to get the end-effector to the desired position without knowing the orientation for the end-effector for a 4 DOF robot arm?

I have a 4 DOF robot arm model and using lma kinematics solver. If I know the valid position(x,y,z) in space but don't know the orientation for the the end-effector, Is it possible to get the end-effector to the desired position ? (I'm sorry if the question is stupid)

Asked by Mano on 2019-10-08 00:31:38 UTC

Comments

Hello, it's not stupid, it has been asked many time

Is it what you are looking for ? : https://answers.ros.org/question/254948/position-only-inverse-kinematics-in-moveit/

Asked by lmathieu on 2019-10-08 06:09:29 UTC

Thank you, but I'm confused with the syntax, I have tried move_group.set_position_target(x,y,z, end_effector) or move_group.set_position_target([x,y,z]), both didn't work, former error says atmost 3 arguments (5 given) and the latter error says no motion plan found (given valid position). Or is it a kinematics solver problem?

Asked by Mano on 2019-10-08 09:39:09 UTC

Probably a Kinematics solver problem but I can't say it for sure. The correct way in python is the second version :

def moveit_commander.move_group.MoveGroupCommander.set_position_target  (       self,
            xyz,
            end_effector_link = "" 
    )       

Specify a target position for the end-effector. Any orientation of the end-effector is acceptable.

You can try to get the current position and add a +0.01m to any direction to see if moveit can plan it for you (or get a random pose and try to plan a random trajectory)

Also, You can get the doc here : http://docs.ros.org/kinetic/api/moveit_commander/html/classmoveit__commander_1_1move__group_1_1MoveGroupCommander.html#a7ef5db558c22421f83d3df9a900db1db

Asked by lmathieu on 2019-10-08 11:07:09 UTC

I tried joint goal, set_random_target and set_pose_target(pose_goal) all are working. But, move_group.set_position_target([-0.602,0.020,0.503]) is not working (given the position are valid confirrmed with set_pose_target)

Asked by Mano on 2019-10-31 00:34:26 UTC

According to the doc here, the position only IK work only with KDL. Did you try to set the planner to KDL and adding position_only_ik in your kinematics.yaml file ? if this work maybe it's due to a limitation in the LMA in moveit.

Also, which robot and which package are you using ? (if it's open source)

Asked by lmathieu on 2019-11-04 07:42:23 UTC

Answers