After a canceld order a new order can not be started
The lib does not handle a new order after the previous one was canceled correctly. According to the standard document:
Es gibt zwei Möglichkeiten:
- Senden eines Auftrags, bei dem der erste Knoten ein temporärer Knoten ist, der an der Stelle positioniert ist, an der das FTF geradesteht. Das FTF muss in diesem Fall in der Lage sein, zu erkennen, dass dieser Knoten problemlos erreichbar ist und den Auftrag annehmen.
- Senden eines Auftrags, bei dem der erste Knoten dem letzten durchquerten Knoten des vorherigen Auftrags entspricht. In diesem Fall muss der zulässige Abweichungsbereich so groß angegeben werden, dass die aktuelle Position des FTF innerhalb dieses Bereichs liegt. Somit kann es diesen Knoten als durchfahrenen Knoten erkennen und den Auftrag annehmen.
The second option works, but the allowed deviation is not checked. The first one does not work at all.
I think the core of this issue is that in order_reachable_validator.cpp once a last node id exists, it is only checked that the first node of the new order is identical to the last node id. It does not check if the vehicle is also inside the deviation range and it assumes that a new order is always started where the last one ended, which is not true after a canceled order (and probably in other cases e.g. after remote control of the vehicle).