How to do obstacle avoidance with MoveIt

2,259 views
Skip to first unread message

Jimmy Da Silva

unread,
Feb 2, 2015, 5:50:03 PM2/2/15
to moveit...@googlegroups.com
Hello all,

I'm controlling a customized industrial 7th DOF robot with MoveIt. I managed to use some high and low level functions to move my robot correctly and do some collision avoidance.
The purpose of this robot is to collaborate with a human. So far I am stopping the robot if the human gets in his way by just stopping the controllers and replanning once the human gets safe. This is done outside MoveIt.

Now I would like to have do some obstacle avoidance with a moving object (human in my case).
Is that something possible in MoveIt?

I was looking at the API a lot and couldn't find anything like it.
Also looks like replanning more than once per second cannot be handle by MoveIt. There seems to be too much latency in the current position's update inside MoveIt so if you are replanning too fast the robot actually plans with a wrong current position. People writing in this group were talking about a rate of 1Hz max.


I would appreciate any kind of help on this. Meaning a way to do this in MoveIt, or a state-of-the-art way combined to what I can do so far in MoveIt.

Thank you so much !
Jimmy

Dave Coleman

unread,
Mar 5, 2015, 10:58:35 AM3/5/15
to Jimmy Da Silva, moveit-users

- dave

Daniel Solomon

unread,
Mar 5, 2015, 8:20:59 PM3/5/15
to moveit...@googlegroups.com
The planning scene (which contains all the information about an environment and is the object that performs collision checking) assumes that everything is static. The names of the functions usually reflect this, ie isStateColliding, which refers to a "state" of the system.

If you want to check for moving objects, you will have to do some sort of forward temporal projection, such as a Kalman filter, and check the expected state for collision, but there is nothing I know of out of the box that will do this for you.
-Dan

Jimmy Da Silva

unread,
Mar 6, 2015, 12:31:25 AM3/6/15
to moveit...@googlegroups.com
Dave, Daniel,

Thank you for your reply.

Dave, my question is more something like : "Can MoveIt change it's current plan according to moving obstacles?".
I tried setting allowReplanning to true, but the planner would wait 2 seconds before replanning, and there is no place to set this 2 seconds parameter, I think...
isStateColliding is just a function I can call to check if a certain position is colliding with obstacles right ? So the planning/control can't be handled by MoveIt. MoveIt just can help me to check if the state is colliding in that case?

Daniel, I got that. I already have an estimate of the object position in time. Right now I am trying to use the elastic bands local planner (eband_local_planner) with a path pre-planned by MoveIt. Then I could get the IK with MoveIt and send the commands to the robot.

-Jimmy

Dave Coleman

unread,
Mar 6, 2015, 3:39:32 PM3/6/15
to Jimmy Da Silva, moveit-users
If you are asking about future collision, isStateColliding() can check any robot state, including those projected into the future. You'd need to write your own "trajectory prediction" algorithm of some sort, that simulates the future, then MoveIt! can help check if it is in collision. 

Are you implying you know where an obstacle will be in the next time step? 

- dave

Jimmy Da Silva

unread,
Mar 6, 2015, 3:53:44 PM3/6/15
to moveit...@googlegroups.com
My obstacle is a human moving close to the robot. I am tracking his position and velocity to try predicting where the human could be in the next second.
I am using MoveIt to give me a global path plan so far. I was just wandering if MoveIt could "control the path" to be a reactive path planner and adapt the path as the robot and the human move in the scene.

I am looking into the eband_local_planner now to generate the reactive local path with a global path given by MoveIt using the prediction of the human future position.
I trying to do something like this with my end-effector: https://www.youtube.com/watch?v=KJgHAhJxUr0

-Jimmy
Reply all
Reply to author
Forward
0 new messages