ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

MoveIt! correctly planning but sometimes failing to execute trajectories

asked 2018-05-21 08:15:23 -0500

znbrito gravatar image

Hello,

I am on ROS Kinetic and Ubuntu 16.04 LTS. I have been using MoveIt! for 3 months now and recently discovered a problem that is really bothering me. I am testing the MoveIt!'s OMPL planners in an application where a cutting tool (which is the end effector of a manipulator) has to reach a specific point in a branch of a vine tree, all simulated in Gazebo. This tree is added as an collision object to the program, so MoveIt! is aware of it and should not collide with it. The normal behavior of this application is: I request a plan for the manipulator to go to that point, MoveIt! calculates the path and, If a solution is found, it is executed. However, sometimes MoveIt! says that a solution is found (path well calculated) but then the manipulator exhibits strange trajectories and hits the vine, not accomplishing its goal. This is really strange because it happens with all the planners of the OMPL implemented in MoveIt!, happening more often with some planners than others. The one that exhibits the best behaviour of them all is the BFMTkConfigDefault, failing only 4 times out of 20.

I am pretty sure that the controllers of the manipulator are well tuned because I can make the manipulator reach any point that is not a collision object. Plus, the manipulator reaches the point that I want a lot of times (which is not a collision object, of course). Can somebody explain me why the manipulator is sometimes hitting a tree even though MoveIt! says that a solution was found to the path problem and the path was well executed?

Thanks in advance, José Brito

edit retag flag offensive close merge delete

Comments

@znbrito Does boundary of the collision object set correctly as its real shape; in Gazebo?

adroit89 gravatar image adroit89  ( 2018-05-22 10:23:41 -0500 )edit

Hello @adroit89, thanks for your answer. Yes it is. When I first began with the tests, I noticed that the ground plane in RViz was intercepting the wheels of my robot (the manipulator is standing on top of a Husky robot).

znbrito gravatar image znbrito  ( 2018-05-23 05:17:00 -0500 )edit

To correct that, I checked the height between the wheel frame and the \base_footprint frame and started to spawn the tree with that height offset.

znbrito gravatar image znbrito  ( 2018-05-23 05:20:27 -0500 )edit

To test if the tree spawned in RViz corresponds to the one being spawned in Gazebo, I simply need my program to plan and execute the trajectory correctly. When that happens, the manipulator goes to the right point, both in Gazebo and i n RViz

znbrito gravatar image znbrito  ( 2018-05-23 05:22:17 -0500 )edit

Besides that, I am pretty sure that that is not the problem because, instead of spawning the tree as a collision object in RViz, I can simply map it in RViz using an Hokuyo laser, which makes MoveIt! detect it as a collision object. In both cases, the results are the same :/

znbrito gravatar image znbrito  ( 2018-05-23 05:24:40 -0500 )edit

Hi @znbrito ; you mentioned that you fixed the manipulator on Husky. So, I have a question now whether the manipulator should reach a point when the robot stops or when it moves around? If the robot moves during trajectory execution, some extra decision should be made.

adroit89 gravatar image adroit89  ( 2018-05-23 07:07:38 -0500 )edit

Hi @adroit89. Whenever the manipulator is moving, the Husky is stopped, so that's not an extra problem for me to solve :)

znbrito gravatar image znbrito  ( 2018-05-23 07:23:24 -0500 )edit

1 Answer

Sort by » oldest newest most voted
0

answered 2018-05-23 07:20:42 -0500

adroit89 gravatar image

You should make sure about two points. First, be sure that the collision is enable for your object. Maybe it doesn't collide by chance in some runs. Second, you also need to update the planning scene with the new collision objects.

edit flag offensive delete link more

Comments

HI @adroit89, thanks for your answer. I think that the collision is enabled because whenever I try to plan to a point that is too much inside the tree (unreachable), the planner always fails.

znbrito gravatar image znbrito  ( 2018-05-23 07:28:04 -0500 )edit

The function planning_scene_interface.addCollisionObjects() is the function that I use whenever I add the collision object to MoveIt!, so I think that it is always updated.

znbrito gravatar image znbrito  ( 2018-05-23 07:29:53 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2018-05-21 08:15:23 -0500

Seen: 744 times

Last updated: May 23 '18