Description
Hi there!
I noticed an interesting behavior in my simulation environment.
I thinks in reality it will happen rarely, but not never.
My szenario:
With a button click, I create a target pose that is exactly n meters in front (x-axis) of the current robots pose.
new_point = current_pose.transform(Point(x=5, y=0))
goal_pose = Pose(x=new_point.x, y=new_point.y, yaw=current_pose.yaw)
afterwards I calculate a path with the path_planner:
path = await path_planner.search(
start=current_pose, goal=goal_pose, timeout=30
)
What happens is, that the robot is driving a bit backward, before it drives forward and after driving backward, the carrot is constantly behind the hook. This results in driving beyond the goal pose and afterwards driving backward again, to reach the goal_pose.
Some screenshots:
- Start:
- Drive Backwards:
- Afterwards the carrot is behind the hook, while the robot is driving forward:
- Drivings beyond the goal_pose:
- Drives backward, until the goal_pose is reached:
The interesting part: If I shift the goal_pose just a little bit to the side (e.g. 1cm), everything works as expected and the bot drives forward only.
As far as I could debug the behavior, the Delaunay Path Planner says:
"INFO:rosys.delaunay_planner:found single spline to reach goal"
I printed out the PathSegment that the path_planner returns:
PathSegment(spline=Spline(0.000,0.000 ~ -2.500,0.000 ~ 7.500,0.000 ~ 5.000,0.000), backward=True)
I looks like the forward PathSegment "is not healthy".
but I don't know why.
Best regards
Andreas