moveit_ros
moveit_ros copied to clipboard
TrajectoryExecutionManager::pushAndExecute() does not reset execution_complete_ flag.
TrajectoryExecutionManager has two parallel (redundant?) paths for sending a trajectory out to be executed and waiting for it to finish. One of them does not work as it should. I described this vaguely in #466.
There are two code patterns, and I don't understand why they are separate. They are:
(1) push() and executeAndWait().
and
(2) pushAndExecute() and waitForExecution().
(1) works fine. (2) does not work.
I believe the reason is that pushAndExecute() does not reset the execution_complete_ flag. I didn't want to just change it myself because the code seems more complicated.
pushAndExecute() uses the continuous_execution_thread_ and execute() (called by executeAndWait()) uses the execution_thread_. Why are there two different threads? Who knows.