Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement offline DRT service #134

Open
paulheinr opened this issue Jun 4, 2024 · 0 comments
Open

Implement offline DRT service #134

paulheinr opened this issue Jun 4, 2024 · 0 comments
Labels
Traffic Feature Feature that changes the simulation logic

Comments

@paulheinr
Copy link
Collaborator

For now, we assume that there is a car for each agent and every car is driven by a personal driver. In this situation, we can already implement the agent features of DRT (taxi request, enter taxi, leave taxi).

Based on the MATSim events file, using DRT as leg mode should result in the following events.

  1. Passenger sends DRT request, taxi assigned and departs
<!-- t = 0 -->
<!-- passenger events -->
<event time="0.0" type="actend" person="passenger_0" actType="drt_A interaction" />
<event time="0.0" type="departure" person="passenger_0" legMode="drt_A" />
<event time="0.0" type="DrtRequest submitted" mode="drt_A" request="drt_A_0" person="passenger_0" />
<event time="0.0" type="passenger waiting" mode="drt_A" request="drt_A_0" person="passenger_0"  />

<!-- taxi driver events -->
<event time="0.0" type="actend" person="taxi_one_A" actType="BeforeVrpSchedule" />
<event time="0.0" type="dvrpTaskStarted" person="taxi_one_A" dvrpVehicle="taxi_one_A" taskType="STAY" taskIndex="0" />
<event time="0.0" type="actstart" person="taxi_one_A" actType="DrtStay" />

<!-- t = 1 -->
<!-- taxi driver events -->
<event time="1.0" type="PassengerRequest scheduled" mode="drt_A" request="drt_A_0" person="passenger_0" vehicle="taxi_one_A" />
<event time="1.0" type="actend" person="taxi_one_A" actType="DrtStay" />
<event time="1.0" type="dvrpTaskEnded" person="taxi_one_A" dvrpVehicle="taxi_one_A" taskType="STAY" taskIndex="0" dvrpMode="drt_A"  />
<event time="1.0" type="dvrpTaskStarted" person="taxi_one_A" dvrpVehicle="taxi_one_A" taskType="DRIVE" taskIndex="1" dvrpMode="drt_A"  />
<event time="1.0" type="departure" person="taxi_one_A" legMode="car"  />
<event time="1.0" type="PersonEntersVehicle" person="taxi_one_A" vehicle="taxi_one_A"  />

<!-- taxi drives to passenger ... -->

<!-- taxi driver events -->
  1. Taxi arrives pick up location and picks up passenger
<!-- t = 65 -->
<!-- taxi driver events -->
<event time="65.0" type="PersonLeavesVehicle" person="taxi_one_A" vehicle="taxi_one_A"  />
<event time="65.0" type="arrival" person="taxi_one_A" />
<event time="65.0" type="dvrpTaskEnded" person="taxi_one_A" dvrpVehicle="taxi_one_A" taskType="DRIVE" taskIndex="1" dvrpMode="drt_A"  />
<event time="65.0" type="dvrpTaskStarted" person="taxi_one_A" dvrpVehicle="taxi_one_A" taskType="STOP" taskIndex="2" dvrpMode="drt_A"  />
<event time="65.0" type="actstart" person="taxi_one_A" actType="DrtBusStop"  />

<!-- 60s to pick up passenger -->

<!-- t = 125 -->
<!-- passenger events -->
<event time="125.0" type="PersonEntersVehicle" person="passenger_0" vehicle="taxi_one_A"  />
<event time="125.0" type="passenger picked up" person="passenger_0" mode="drt_A" request="drt_A_0" vehicle="taxi_one_A"  />

<!-- taxi driver events -->
<event time="125.0" type="actend" person="taxi_one_A" actType="DrtBusStop"  />
<event time="125.0" type="dvrpTaskEnded" person="taxi_one_A" dvrpVehicle="taxi_one_A" taskType="STOP" taskIndex="2" dvrpMode="drt_A"  />
<event time="125.0" type="dvrpTaskStarted" person="taxi_one_A" dvrpVehicle="taxi_one_A" taskType="DRIVE" taskIndex="3" dvrpMode="drt_A"  />
<event time="125.0" type="departure" person="taxi_one_A"  />
<event time="125.0" type="PersonEntersVehicle" person="taxi_one_A" vehicle="taxi_one_A"  />
  1. Taxi arrives drop off location and drops passenger off
<!-- taxi driver events -->
<event time="313.0" type="PersonLeavesVehicle" person="taxi_one_A" vehicle="taxi_one_A"  />
<event time="313.0" type="arrival" person="taxi_one_A"  />
<event time="313.0" type="dvrpTaskEnded" person="taxi_one_A" dvrpVehicle="taxi_one_A" taskType="DRIVE" taskIndex="3" dvrpMode="drt_A"  />
<event time="313.0" type="dvrpTaskStarted" person="taxi_one_A" dvrpVehicle="taxi_one_A" taskType="STOP" taskIndex="4" dvrpMode="drt_A"  />
<event time="313.0" type="actstart" person="taxi_one_A" actType="DrtBusStop"  />

<!-- passenger events -->
<event time="313.0" type="passenger dropped off" person="passenger_0" mode="drt_A" request="drt_A_0" vehicle="taxi_one_A"  />
<event time="313.0" type="PersonLeavesVehicle" person="passenger_0" vehicle="taxi_one_A"  />
@paulheinr paulheinr added the Traffic Feature Feature that changes the simulation logic label Jun 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Traffic Feature Feature that changes the simulation logic
Projects
None yet
Development

No branches or pull requests

1 participant