moveit / moveit_tutorials

A sphinx-based centralized documentation repo for MoveIt
https://moveit.github.io/moveit_tutorials/
BSD 3-Clause "New" or "Revised" License
472 stars 691 forks source link

Move Group C++ interface does not tell you how to successfully use MoveGroupInterface #411

Open robottoearth opened 4 years ago

robottoearth commented 4 years ago

Description

I needed to use computeCartesianPath() and started looking at the tutorials to go about it. If only robot_description (with the xacro) is launched, move_group_interface_tutorial.cpp (https://github.com/ros-planning/moveit_tutorials/blob/master/doc/move_group_interface/src/move_group_interface_tutorial.cpp) will just halt indefinitely at initializing move group (https://github.com/ros-planning/moveit_tutorials/blob/master/doc/move_group_interface/src/move_group_interface_tutorial.cpp#L67).

This is because move_group.launch needs to be launched (https://github.com/ros-planning/panda_moveit_config/blob/melodic-devel/launch/move_group.launch), which I figured from demo.launch.

It would be great to have some documentation on how to use group outside of this demo and what all arguments move group needs to run. For now I would have to look up a lot of code to figure out what I need for using computeCartesianPath. This involves changing CMakelists and package.xml as well. If documentation is updated to reflect these 3 things I believe moveit would be much easier to work with.

Overview of your issue here.

Your environment

Steps to reproduce

Tell us how to reproduce this issue. Attempt to provide a working demo, perhaps using Docker.

Expected behaviour

Tell us what should happen

Backtrace or Console output

[ INFO] [1570719154.144350380]: Loading robot model 'visual'... [ WARN] [1570719154.342459324]: Kinematics solver doesn't support #attempts anymore, but only a timeout. Please remove the parameter '/robot_description_kinematics/Lowry/kinematics_solver_attempts' from your configuration. Use gist.github.com to copy-paste the console output or segfault backtrace using gdb.

welcome[bot] commented 4 years ago

Thanks for reporting an issue. We will have a look asap. If you can think of a fix, please consider providing it as a pull request.

ghost commented 4 years ago

@robottoearth, you need move_group.launch to setup the topics and services called within computeCartesianPath(). From my understanding of the code, this function is a wrapper that calls actions and services from the core MoveIt! API.

You also don't need to change CMakelists and package to use this function.

Briancbn commented 4 years ago

@robottoearth currently you can use the moveit_setup_assistant to generate a demo launch for a custom made robot as well as edit the configuration for moveit including changing parameters. I also agree that there should be a tutorial that

ghost commented 4 years ago

@Briancbn Have you looked at the tutorial here? move group interface tutorial

  1. Also why would you want to change the move_group.launch? It launches other services that move group interface with.
  2. You can have a look at the API here: move group API
Briancbn commented 4 years ago

@truhoang-ubtrobot Thank you for your prompt reply. Yes I have tried the c++ move group interface tutorial.

ghost commented 4 years ago

@Briancbn I see, I forgot how detailed some packages documentation can be. My experiences with MoveIt has been a mixed bag too. I generally rely on reading the API and the source to understand how to use it.

I do agree a better documentation would be helpful but I doubt any one would take it on at this point as the developers are working on developing MoveIt for ros2 and the code has become quite complex.