Heya,
On Tue, Jun 14, 2016 at 03:50:24AM -0700, Dina Youakim wrote:
> I am interested in this thread, as I am facing exactly same problem as
> Teresa. Octomap updates or even adding boxes manually to the planning_scene
> are not taken into account during path execution.
> The only difference I have is that I tried to used group.move() directly
> (which goes to different execution path in MoveIt! as it passes by
> plan_execution.cpp), the good thing about it is that it checks for new
> scene updates by itself, but the only thing that does not work is that the
> call "isRemainingPathValid" returns true even though I see it is invalid. I
> debugged more and I saw the first if condition in this function [if
> (path_segment.first >= 0 && path_segment.second >= 0 && plan.
> plan_components_[path_segment.first].trajectory_monitoring_)] is failing
> because of the second condition (it returns -1). I tried to understand more
> why this condition and how these segments are computed in execution manager
> but I am lost.
Nice analysis.
The path_segment.second corresponds to the index to the current waypoint.
According to [0] this is set to -1 when the time index map is empty.
To me, this sounds like your generated trajectories are missing time stamps.
Nevertheless, technically, there is no reason to abort collision checking
in this case and the rest of the code works fine. So I agree, this check could
be removed. One thing to keep in mind though, is that in this case,
the *whole* trajectory has to be valid at each point during the execution,
not just the remaining part. Thus, the execution will probably abort if
you place an obstacle in an already executed part of the trajectory.
Could you create a pull request for this on the github project?
> I would appreciate any help as I am not sure I went in the right direction.
You did :-)
v4hn
---
[0] -
https://github.com/ros-planning/moveit_ros/blob/indigo-devel/planning/trajectory_execution_manager/src/trajectory_execution_manager.cpp#L1284