ros-industrial / reach

A tool that allows users to visualize and quantitatively evaluate the reach capability of a robot system for a given workpiece.
Apache License 2.0
98 stars 25 forks source link

Is it possible to do a reachability study in a volume ? #52

Closed vicltz closed 1 year ago

vicltz commented 1 year ago

Thank you for providing this package to the community, it is very powerful and useful.

I have a question regarding the possibilities offered by the package.

Do you think it might be possible to study reachability in a volume ? Instead of having a mesh and generating a point cloud on it, would it be possible to have just a point cloud in a volume and evaluate reachability in that point cloud ? The idea I had to do it with a mesh is to have a vertical plane mesh, thin on the x axis, and doing the reachability study with this plane multiple times with a position further and further from the robot, and then compile all the results to make a volume.

Does it make sense according to you ?

One other question I had is a more tricky one. I would like to study the reachability of a mobile manipulator that has two arms. Do you think it's possible with the package, and how ? Otherwise, do you think it's possible to do some tricks with the code in order to make this study possible ?

Thank you for your help.

marip8 commented 1 year ago

Do you think it might be possible to study reachability in a volume ? Instead of having a mesh and generating a point cloud on it, would it be possible to have just a point cloud in a volume and evaluate reachability in that point cloud ?

Definitely. The function of the TargetPoseGenerator interface is to allow the user to customize the generation of target waypoints for the reach study. The current implementations read point/normals from a .pcd file, but you could implement your own plugin to do this in the way you describe. See here and here for an example in c++ and here for an example in Python.

One other question I had is a more tricky one. I would like to study the reachability of a mobile manipulator that has two arms. Do you think it's possible with the package, and how ? Otherwise, do you think it's possible to do some tricks with the code in order to make this study possible ?

Yes, with some caveats; I've done this before with this robot. To use reach as-is, you'll need to:

FWIW, I'm running a workshop at ROSCon 23 where I plan to talk in more detail about customizing reach for use-cases that look significantly different than the one example in the repository. As a part of prep for that workshop, I can add some more documentation about plugin customization and additional examples, so keep an eye out for that and feel free to make suggestions for content