Replanning with Move()

393 views
Skip to first unread message

philip long

unread,
Dec 10, 2014, 4:26:50 AM12/10/14
to moveit...@googlegroups.com
Hi everyone,

I was hoping someone could clarify the following for me. 

Is it true that re-planning can only be used with "move" and not "plan" then "execute"?

Secondly if true, can we use "computeCartesianPath" with move such that the robot moves through a series of waypoints (without stopping)?


Thanks

Philip

Moises Estrada

unread,
Dec 10, 2014, 6:12:36 PM12/10/14
to moveit...@googlegroups.com
Hey Philip,

I can only answer your second question. I have never been able to execute Cartesian paths with move, I use group.execute(my_plan);
The execution of which goes smoothly from one waypoint to the next.

Here is my robot doing Cartesian paths: https://www.youtube.com/watch?v=Gl_mZR0w330
 
I'll send the program doing the sine function.

Cheers,
Moises.
sine.cpp

philip long

unread,
Dec 12, 2014, 3:41:44 AM12/12/14
to moveit...@googlegroups.com
Hi Moises,

Thanks for your answer and code, I have only started to use moveit so every bit of advice helps.  

From my own work I think that in your example if an object appears on the path the robot won't re-plan using  group.execute(my_plan).  

Kind regards
Philip

philip long

unread,
Dec 16, 2014, 7:50:31 AM12/16/14
to moveit...@googlegroups.com
Just a further question as I can't get replan to work with move. I have two desired positions defined in joint space and the robot moves back and forth between the two of them. At any given moment I can trigger an object in the workspace which without re-planning the robot would collide. If the object is triggered before the execution a suitable plan is obtained. However, if the object is triggered during execution the robot stops and I get the following message:

 " ABORTED: Motion plan was found but it seems to be invalid (possibly due to post-processing). Not executing. "

I thought the robot would stop then replan a new path?

Here is a small snippet of the code:


    moveit::planning_interface::MoveGroup group2("manipulator");
    robot_state::RobotState rs(*group.getCurrentState());
    group2.setStartState(rs);

    group2.allowReplanning(true);
    group2.setPlanningTime(10.0);
    group2.startStateMonitor(1.0);

 for (int j = 0; j <20; ++j) {
        int i=j%2 + 1;


        switch (i){
            case 1:
                group2.setJointValueTarget(q1);
                break;
            case 2:
                group2.setJointValueTarget(q2);
                break;
    }


      group2.setPlannerId("TRRTkConfigDefault");
      group2.move();
             sleep(1.0);
    }


Any help would be appreciated or if anyone has a small example of dynamic replanning I'ld love to see it.
Kind regards
Philip

philip long

unread,
Jan 26, 2015, 6:38:36 AM1/26/15
to moveit...@googlegroups.com
In the end, the problem was twofold 

(1) I had to reduce the longest_valid_segment_fraction: 0.01 in the ompl_planning.yaml file
(2)  There was some an issue with the collision files in the urdf

Philip
Reply all
Reply to author
Forward
0 new messages