Ask Your Question

constraint path planning ur5

asked 2014-10-08 04:47:59 -0500

psfa_fz gravatar image

updated 2014-10-08 05:03:00 -0500

gvdhoorn gravatar image

Hi there,

I am following this tutorial

in order to move my real ur5. So far I get the simulated robot running using the demo.launch file from .

After specifying a desired end-effector position in the cartesian frame ( in the rviz gui) I often receive path planning which seems to be not very cost efficient. Furthermore, my robot will be mounted on a flat surface which means that the robot will collide in case any point is below z=0 of the base(world) frame.

How can I constrain the path planning in order to only get paths wich are limited to my reachable task space?

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2014-10-09 09:14:16 -0500

gvdhoorn gravatar image

updated 2018-05-08 08:58:25 -0500

Personally I'd only use CollisionObjects for objects that you need to be able to add to and remove from a scene. For (semi) static objects I'd use one of the object representation formats that ROS supports.

  1. Create a sufficiently detailed 'work cell' and add it to your URDF: you mention a 'flat surface' (table?) on which your robot is mounted. Model your environment, including the table and any other objects / obstacles that are in your cell. Besides restricting the planning space, this also helps visualisation. You will have to (re)generate a MoveIt configuration package for the combination of work cell & manipulator URDF.
  2. Use the MoveIt .scene format to describe your work cell and load that using the appropriate APIs (or button in RViz).

See the MoveIt Environment Representation tutorial for some pointers on this.

You can find an example of a URDF of a modelled work cell in Exercise 3.1 - Workcell XACRO of the ROS-Industrial Training Exercises.

edit flag offensive delete link more

answered 2014-10-09 04:15:55 -0500

I think you should define the surrounding environment by adding one or more CollisionObjects. The motion planner will take these into account and avoid collisions with these objects.

The move_group_interface tutorial gives an example of how to do this:



Note that the Python tutorial does not (yet?) contain this specific example, so use the C++ tutorial.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2014-10-08 04:47:59 -0500

Seen: 1,481 times

Last updated: May 08 '18