skipping waypoint instruction when calling multiple waypoint in a row without pause
With the following matlab script, we noticed that some of the waypoints added to the stack were randomly ignored (see image 1) :
p10 = [1 1 1.1 0]'; p20 = [1 -1 1.1 0]'; p30 = [-1 -1 1.1 0]'; p40 = [-1 1 1.1 0]'; p50 = [0 0 1.1 0]'; duration = 5; add_waypoint_robots(robots,p10, duration); add_waypoint_robots(robots,p20, duration); add_waypoint_robots(robots,p30, duration); add_waypoint_robots(robots,p40, duration); add_waypoint_robots(robots,p50, duration);
By adding a small pause (example : "pause(0.1);") between each call of maneuver.waypoint, the requested path would then be respected.
Updated by Anthony Mallet almost 6 years ago
Indeed, in maneuver.gen you can see that "waypoint" interrupts itself,
so if you issue a new one while the prev. one hasn't completed, the
prev. one is cancelled. This is correct according to the component
spec, although maybe the specified behaviour might not be the one we
I guess you are invoking the "waypoint" service asynchronously ('-a'
flag in matlab). If yes, try to invoke it synchronously, this will fix
what you are seeing.