So I am attaching some more data related to my previous post. I have
been doing some tracing, and it seems that the planner in fact is
setting up a direct trajectory, but then for some reason it is not
actually followed, and the planner has to set up new addapted
(corrective) paths.
I have been playing with different parameters in vfh (max_speed,
max_acceleration, max_turnrate, and min_turnrate) and in wavefront
(replan_dist_thresh, and replan_min_time), but no matter what I do I
always get deviations from the planned path (the trajectories differ
when altering the parameters). Even with the default (slow) speeds in
vfh and a more frequent than default replanning in wavefront, the
deviations occur IN THE PRESENCE OF THE PEOPLEBOT. If the PeopleBot is
not there, the planned trajectory is followed much closer.
The configuration I am currently using is
driver
(
name "vfh"
provides ["position:1"]
requires ["position:0" "laser:0"]
safety_dist 0.1
distance_epsilon 0.3
angle_epsilon 2.5
max_speed 0.6
max_acceleration 0.5
min_turnrate 40
max_turnrate 75
)
driver
(
name "amcl"
provides ["localize:1"]
requires ["odometry::position:2" "laser:2" "laser::map:0"]
update_thres [0.1 5]
)
driver
(
name "wavefront"
provides ["planner:0"]
requires ["position:1" "localize:0" "map:0"]
safety_dist 0.15
distance_epsilon 0.5
angle_epsilon 5
replan_dist_thresh 0.5
replan_min_time 0.1
)
The replan parameters in wavefront seem particularly important,
otherwise the Pioneer really goes on little excursions around before
getting to the goal location.
Now a little recount on what happens and the traces.
The PeopleBot is static in location (2000, 3500, 270), and the Pioneer,
that moves, starts in location (0, 250, 0). I set up the goal to
location (2000, 2000, 90), which is 1500mm away from the PeopleBot.
Therefore, I understand that because the max_radius param of wavefront
is set to 1m (default), the cost of all cells in the path would be 0,
because the PeopleBot as an obstacle is further than that, and there are
no other obstacles. But that does not seem to be what actually happens.
Starting point:
[Localize] Number of hypotheses for Pioneer: 1
[Pioneer Position] : Current location is:[0, 250, 0]
[Localize] Number of hypotheses for PeopleBot: 1
[PeopleBot Position] : Current location is:[2020, 3480, 277]
[Planner] : Number of waypoints to follow : 2
[Planner][Waypoints] : Following the trajectory : [0, 250, 0] [2000,
2000, 0]
[Planner] : Goal is: [2000, 2000, 90]
Then the Pioneer sets its orientation up, and starts to move:
[Localize] Number of hypotheses for Pioneer: 1
[Pioneer Position] : Current location is:[23, 266, 118]
[Localize] Number of hypotheses for PeopleBot: 1
[PeopleBot Position] : Current location is:[2020, 3480, 277]
[Planner] : Number of waypoints to follow : 2
[Planner][Waypoints] : Following the trajectory : [0, 250, 0] [2000,
2000, 0]
[Planner] : Goal is: [2000, 2000, 90]
At first, the trajectory followed looks coherent with the planned path,
and the planner simply updates the starting point:
[Localize] Number of hypotheses for Pioneer: 1
[Pioneer Position] : Current location is:[764, 712, 135]
[Localize] Number of hypotheses for PeopleBot: 1
[PeopleBot Position] : Current location is:[2020, 3480, 277]
[Planner] : Number of waypoints to follow : 2
[Planner][Waypoints] : Following the trajectory : [775, 700, 0] [2000,
2000, 0]
[Planner] : Goal is: [2000, 2000, 90]
BUT THEN THE PIONEER VEERS LEFT FOR SOME REASON, SEPARATING FROM THE
PLANNED PATH:
[Localize] Number of hypotheses for Pioneer: 1
[Pioneer Position] : Current location is:[1144, 562, 153]
[Localize] Number of hypotheses for PeopleBot: 1
[PeopleBot Position] : Current location is:[2020, 3480, 277]
[Planner] : Number of waypoints to follow : 2
[Planner][Waypoints] : Following the trajectory : [775, 700, 0] [2000,
2000, 0]
[Planner] : Goal is: [2000, 2000, 90]
and follows:
[Localize] Number of hypotheses for Pioneer: 1
[Pioneer Position] : Current location is:[1741, 840, 152]
[Localize] Number of hypotheses for PeopleBot: 1
[PeopleBot Position] : Current location is:[2020, 3480, 277]
[Planner] : Number of waypoints to follow : 2
[Planner][Waypoints] : Following the trajectory : [1250, 550, 0]
[2000, 2000, 0]
[Planner] : Goal is: [2000, 2000, 90]
Eventually, it starts to move up, but again instead of moving directly
towards the goal, it veers to the right for some reason. So we get the
zigzag trajectory
Anybody has some ideas?
Thanks,
Alberto
