UR5e + ROS Melodic + MoveIt best setup for Inverse Kinematics
Hi everyone,
I am using the robot to open a drawer through a Python program, and for doing this I am using a lot of points for the eef to reach every time using IK of MoveIt.
But mostly of the times the controller and planner fails (with Aborted message) and this entails to the failure or mostly to collision behaviours.
I am using the default setup of universal robots repo (calibration-devel branch of fmauch) and the ur_robot_driver (melodic branch) of Universal_Robots_ROS_Driver. As I have an attached gripper, I modified only the ur_macro.xacro file for translating the tool0 link with 0.18 on x-axis wrt flange.
Did I something wrong?? Can you suggest me any better setup, as controller/planner or ik-solver for this problem??
Thank you very much!! I would appreciate a lot your help!!!
Which ik solver are you using now?
If anything source-based (ie: IKFast or handwritten): don't change the URDF, as it's likely you won't update the code, leading to the IK solver no longer corresponding (ie: matching) to your URDF.
Regardless of which IK solver:
Don't change
tool0
. That's not how it's supposed to work.tool0
is used to represent an unconfigured tool frame (ie: all zeros). By definition if you change it, it cannot betool0
any more.Define a new frame, give it a proper name and use that as your tool frame.
Thank you very much @gvdhoorn for your answer!! Now I am using the default KDL solver, I tried some time ago even Trak-IK but did not solve the problem. Ah perfect now I understand. So in this case, as I am using KDL I can change the URDF, but not the
tool0
link right?And so for defining a new frame, I have to define it at the end of ur_macro.xacro in the same way as tool0 is defined??
Both KDL and TracIK are able to deal with runtime defined chains, so there shouldn't be an issue with updating your URDF/XACRO.
personally I would not edit anything in files in
ur_description
at all. Consider those read-only.Adding EEF or additional frames can be done in a
.xacro
of your own, in your own package. See this for an example.Perfect, so after the creation of this new
.xacro
file, with the merge of robot and gripper, I have to create a new moveit configuration with moveit setup assistant if I understood right, with the chain of robot group same as before, and the chain of gripper from his base link to which link exactly? (as it is a two finger gripper) And also, after the creation of the moveit config, which would be in this case the frame that the IK will use as EEF? (as before was the tool0 frame)