MoveIt Commander not able to find a motion plan [closed]
Hello all,
I'm trying to program a UR5 robot arm using ROS.
I'm happy to see there's a lot of development going on, and many packages are already available, such as the universal_robot package, moveit, rviz and many other ROS packages. However, as a new user, it's difficult to see the relations/dependencies between all those packages, and how certain configuration choices (e.g. a specific branch or version of a module, a configuration parameter, etc.) affect the abilities of the robot.
Specifically, I'm trying to program some (simple) moves of the robot arm in an environment with a small number of collision objects to avoid. Sometimes the motion planner finds a solution, sometimes it doesn't. When calling group.plan() repeatedly, it might find a solution after a number of attempts, but sometimes it really doesn't seem to be able to find a motion plan.
I can think of the following "choices" that may or may not affect the planning performance:
- Different versions of the universal_robots package.
- Using KDLKinematicsPlugin vs. UR5KinematicsPlugin.
- Use of the parameter limited:=true vs. limited:=false for ur_driver (is this different when using UR5KinematicsPlugin?).
- Use of the parameter limited:=true vs. limited:=false for moveit.
- Start position of the robot arm (e.g. one of the joint states possibly outside the allowed range in case limited:=true, or maybe just a more "difficult" pose to move from?).
Any information about how these choices affect the motion planner will be very helpful.
I think the most important questions for me at this moment are:
- Should I use the KDLKinematicsPlugin or the UR5KinematicsPlugin?
- Should I use the limited:=true parameter for the ur_driver? And for moveit?
- What should I expect from the current state of the motion planner (in combination with the universal_robot package). Should it be able to always find a solution for "reasonably easy" paths? What are the experiences of other users?
Thanks in advance for your answers!
EDIT: Just to clarify, the reason I asked about "different versions of the universal_driver package", the kinematics plugins and the limit parameters, is that I noticed that between versions 1.0.3 and 1.0.4 of the universal_driver package the kinematics plugin has changed from KDL to UR5. Initially I could not get the motion planning to work at all after this update, but when I removed the limit parameter it worked again (at least sometimes). My guess is that the behaviour of the UR5KinematicsPlugin with respect to the limit parameter is different than that of the KDLKinematicsPlugin. Maybe because the UR5 plugin is specifically targeted for the UR5 and thus always works with the full range?!
But if I remove the limit parameter, moveit apparently has troubles finding trajectories. So how should I get these to work together?