How to set a sequence of goals in moveit?
Hi everyone,
I would like to give my robot a sequence of goals such that by pushing plan & execution in Rviz it is possibile to make the robot reach every single goal serially. Does anyone know how I could implement this? Any help is appreciated. Thanks a lot.
Ros version: kinetic Ubuntu 16.04
Asked by enrico on 2018-07-11 04:55:07 UTC
Answers
Still don't know how to do it through Rviz interface, but there is a way through code. You can set (n) targets by using "geometry_msgs" and then calling (n) times the functions "setPoseTarget(target_i)" and "move()", which waits for the execution of the trajectory to complete, your robot will follow every single target depending on the sequence you established.
Asked by enrico on 2018-10-11 16:24:02 UTC
Comments
RViz is essentially a programmers / debugging interface. The MoveIt motion planning plugin is not intended to provide a complete robot programming environment, but a way to visualise datastreams and state internal to MoveIt while you use it external to RViz.
There is no support for ..
Asked by gvdhoorn on 2018-10-12 04:32:20 UTC
.. planning sequences of motions in the RViz plugin as that would be a task for a programming environment. It could be added, but I wanted to explain why it is not there.
Asked by gvdhoorn on 2018-10-12 04:32:56 UTC
Yes it makes sense. Thanks for the explanation
Asked by enrico on 2018-10-12 04:54:06 UTC
nice to see your answer,I had try what you said,but the arm just go to the last goal,not follow the sequence goal,here is some of my code: geometry_msgs::Pose p1; group.setPoseTarget(p1); geometry_msgs::Pose p2; group.setPoseTarget(p2); MoveGroupInterface::Plan my_plan; group.move();
Asked by Guofeng Jin on 2018-11-11 20:41:55 UTC
Did I have something wrong?
Asked by Guofeng Jin on 2018-11-11 20:43:27 UTC
Yes, after you write "group.setPoseTarget(p1)" you have to write the command "group.move()". Then you do the same after writing "group.setPoseTarget(p2)". So basically everytime you set a pose target, you need a "move" command. This is how you get a sequence of movements
Asked by enrico on 2018-11-13 12:16:39 UTC
Comments