Closed ipa-rwu closed 3 years ago
Update based on the second solution. Runner will wait some time once getting signal.calc.robot_reached_goal_and_stopped
The waiting timeout can be defined in config.yaml under "runner" namespace as timeout_check_goal
Initial thoughts: The test stack should not try to account for everything. It is entirely possible that robots oscillate, and this is in fact not too uncommon. The test to record goal time only measures time, and this should not be a factor there. The test to measure navigation accuracy could consider this, but trying to measure it might be too niche? Further discussion after PR/Code review.
As I tested on turtlebot sim, there is an unexpected behavior: When the robot reached goal, it will stop but still executed plans to adjust its position. But our test runner only use signal.calc.robot_has_stopped and signal.calc.robot_reached_goal. So it decided the test already finished before it should be.
This behavior won't affect the calculator to calculate "reach goal time" because it will use new "signal.calc.robot_reached_goal_and_stopped" timestamp to calculate again. That's also why we should define start and stop signal #14
But this behavior will let the runner assume the test completed and stop rosbag to recode
Solution: