For further decoupling of Amodeus with MATSim, we should do some refactoring to remove Amodeus*Task from the Amodeus "core". I read a bit through the code, and basically these classes are mainly used to derive what state a vehicle is currently in and for retrieving additional information (e.g. checking if a vehicle is in AVStay and if so, getting the current link from the StayTask to determine whether the vehicle should be moved somewhere else (because it got the command) or is should stay (because the command has the same location)). So my feeling is that most of what happens with Amodeus*Task in the core can be put behind the RoboTaxi interface, as right now we would usually have something like:
if roboTaxi.task = AVStayTask {
destination = roboTaxi.task.destination
# Do something with destination
}
For further decoupling of Amodeus with MATSim, we should do some refactoring to remove
Amodeus*Task
from the Amodeus "core". I read a bit through the code, and basically these classes are mainly used to derive what state a vehicle is currently in and for retrieving additional information (e.g. checking if a vehicle is inAVStay
and if so, getting the current link from theStayTask
to determine whether the vehicle should be moved somewhere else (because it got the command) or is should stay (because the command has the same location)). So my feeling is that most of what happens withAmodeus*Task
in the core can be put behind theRoboTaxi
interface, as right now we would usually have something like: