Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [sumo-user] Multimodal Public Transport

The error you posted is consistent with an earlier version of SUMO. Quite possibly you are still running the wrong version.
Try running the test with option --verbose and make sure that the line "Simulation version XYZ started with time: 0.00" has v1_24_0+1182 in place of XYZ.

Am Di., 7. Okt. 2025 um 12:02 Uhr schrieb Aslan Yurekli Richard <aslanyureklirichard@xxxxxxxxx>:
Hi Jakob,

First of all, thank you very much for your earlier guidance about combining public transport and taxi within the same personTrip. I followed your suggestion and installed the latest nightly version (v1_24_0+1182-d22a45e5809, Ubuntu build).

After downloading and running the example you mentioned, the setup loads correctly, but I receive a number of connection-related warnings and teleport messages such as:

Warning: No connection between edge 'E0F0' and edge 'A0B0' found.
Error: Vehicle 'bike_b.0' has no valid route from edge 'E0F0' to stop edge 'A0B0'.
Warning: Vehicle 'bike_*' aborted waiting for a person that will never come.

I can confirm that the simulation starts and finishes without crashing, but the shared-bike (taxi) vehicles seem to teleport between disconnected components, and the passengers never reach them. From my understanding, this looks like a network connectivity issue within the sample itself rather than the previous personTrip bug you mentioned. But I just wanted to check if this behaviour is expected for that test case, or if there’s an updated version of the scenario I should use to see the intended bus/train → taxi transition in action.

Thank you again for your time and for providing these detailed examples. They’re really helpful for learning how to model multimodal trips in SUMO.

Best regards,
gkisa

On Mon, 6 Oct 2025 at 07:12, Jakob Erdmann <namdre.sumo@xxxxxxxxx> wrote:
You do not need TraCI to have a combination of public transport and shared bicycle use (modeled as taxis).
Note, that you need the latest nightly version for a bugfix when combining public transport and taxi in the same personTrip (https://sumo.dlr.de/docs/Downloads.php#nightly_snapshots)

regards,
Jakob

Am Fr., 3. Okt. 2025 um 03:39 Uhr schrieb Aslan Yurekli Richard <aslanyureklirichard@xxxxxxxxx>:
Hi Jakob,

Just to add to my previous message: I have extended taxi_traci tutorial example. In that example, the persons create taxi reservations at runtime and the dispatcher in runner.py assigns them to available taxis.
Here is what I did so far:

  • I defined a bus line, route, and stops.
  • In the route file I added a person with <walk> to a bus stop, then <ride> with the bus line.
  • After the bus leg, I tried to add <ride ... lines="taxi"/> so that the same person continues by taxi.

But It doesnt work. I thinkt it is because the dispatcher in runner.py is set up to handle requests dynamically, not from <ride> definitions. If I keep the <ride lines="taxi"/> in the XML, person only waits in bus_stop.

I would like to ask you that would the correct approach be to define the bus leg in XML and then let the person continue by taxi using the dispatcher in runner.py? Is that the right way to set it up?
If so, I would really appreciate any recommendations on how to update the code accordingly.

Here are the updates I made:

demand2.rou.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!-- generated on 2025-10-03 00:52:49 by Eclipse SUMO netedit Version 1.24.0
-->
<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/routes_file.xsd">
    <!-- VTypes -->
    <vType id="bus" vClass="bus"/>
    <!-- Routes -->
    <route id="bus_route" edges="-gneE2 gneE0 -gneE0 gneE2">
        <stop busStop="bs_1" duration="60.00"/>
        <stop busStop="busStop_gneE0_0_0" duration="60.00"/>
        <stop busStop="bs_0" duration="60.00"/>
    </route>

    <!-- Vehicles, persons and containers (sorted by depart) -->
    <flow id="f_0" type="bus" begin="0.00" route="bus_route" end="3600.00" vehsPerHour="10"/>
</routes>


demand3.rou.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!-- generated on 2025-10-03 00:35:12 by Eclipse SUMO netedit Version 1.24.0
-->
<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/routes_file.xsd">
    <!-- VTypes -->
    <vType id="taxi" vClass="taxi" personCapacity="8">
        <param key="has.taxi.device" value="true"/>
    </vType>
    <!-- Routes -->
    <route id="route_0" edges="-gneE2 gneE0 -gneE0 gneE2 -gneE2" color="yellow"/>
    <!-- Vehicles, persons and containers (sorted by depart) -->
    <vehicle id="vehicle_0" depart="0.00" route="route_0"/>
    <vehicle id="vehicle_1" depart="0.00" route="route_0"/>
    <person id="p_bus_bike" depart="20" color="red">
        <walk from="-gneE1" busStop="busStop_gneE0_0_0"/>
        <ride busStop="bs_0" lines="f_0"/>
        <ride from="gneE0" to="-gneE2" lines="taxi"/>
    </person>
    <vehicle id="vehicle_3" depart="130.00" route="route_0"/>
    <vehicle id="vehicle_4" depart="134.00" route="route_0"/>
</routes>

add2.add.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!-- generated on 2025-10-03 01:06:36 by Eclipse SUMO netedit Version 1.24.0
-->
<additional xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/additional_file.xsd">
    <!-- StoppingPlaces -->
    <busStop id="bs_0" lane="gneE2_0" startPos="158.48" endPos="168.48"/>
    <busStop id="bs_1" lane="-gneE2_0" startPos="158.74" endPos="168.74"/>
    <busStop id="busStop_gneE0_0_0" lane="gneE0_1" startPos="30.00" endPos="80.00" personCapacity="20"/>
</additional>


sumo.sumocfg:
<?xml version="1.0" encoding="UTF-8"?>
<!-- generated on 2025-10-03 00:35:12 by Eclipse SUMO sumo Version 1.24.0
-->
<sumoConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/sumoConfiguration.xsd">
    <input>
        <net-file value="net.net.xml"/>
        <route-files value="demand3.rou.xml, demand2.rou.xml"/>
        <additional-files value="add2.add.xml"/>
    </input>
    <processing>
        <time-to-teleport value="0"/>
    </processing>
    <report>
        <no-step-log value="True"/>
    </report>
    <taxi_device>
        <device.taxi.dispatch-algorithm value="greedyClosest"/>
        <device.taxi.idle-algorithm value="randomCircling"/>
    </taxi_device>
</sumoConfiguration>


Best regards,
gkisa

On Thu, 2 Oct 2025 at 22:28, Aslan Yurekli Richard <aslanyureklirichard@xxxxxxxxx> wrote:
Hi Jakob,

Thank you very much for your reply. I think your second suggestion (modeling bicycles as slow taxis) makes more sense for my case, so I will follow that approach.

I have a follow-up question.
At the moment, I already have an OD matrix for bicycle trips. In addition, I have GTFS data for bus services.

Do you have any suggestion on how I could merge these two. So that I can model realistic multimodal trips where part of the journey is by bus and the other part by bicycle?

Many thanks for your help.

Best regards,
gkisa

On Fri, 1 Aug 2025 at 18:27, Jakob Erdmann <namdre.sumo@xxxxxxxxx> wrote:
At the moment there is no easy way to have person use a bicycle after public transport in an automated manner. This is an open issue (https://github.com/eclipse-sumo/sumo/issues/5930)
Until this is fixed (possibly this year) there are some limited workarounds:

- starting at home with a bicycle works with modes="public bicycle"
- model shared bicycles as a kind of taxi service (by defining slow taxis that look like bicycles but have vClass=taxi). You might have some empty bicycles moving around but this can be limited by having enough shared bicycles placed at the exit of every public transport stop. (automated routing would work with modes="public taxi").

regards,
Jakob


Am Fr., 1. Aug. 2025 um 16:33 Uhr schrieb Aslan Yurekli Richard via sumo-user <sumo-user@xxxxxxxxxxx>:
Hi All,

I'm working on a city-scale simulation that includes multimodal transport within a public transport system. From what I understand from the SUMO documentation (https://sumo.dlr.de/docs/Simulation/Public_Transport.html), SUMO seems to support only bus, tram, and train as public transport modes.

1. My first question:
Is it possible to define bicycles as a form of public transport in SUMO?

The reason I’m asking is that I’d like to use the <personFlow> and <personTrip> elements with modes="public", like this:

<personFlow id="AB" begin="0" end="3600" probability="0.1">
    <personTrip from="-E1" to="-E0" arrivalPos="-20" modes="public"/>
</personFlow>
(source: https://sumo.dlr.de/docs/Tutorials/PublicTransport.html)

If I can define bicycles as public transport, I’m hoping that persons will be able to automatically choose them as part of the public transport option.

2. My second question:
If the answer to question 1 is no, then is there a way to automatically plan a trip where a person travels from point A to B using, for example, a bus and then a bike ?
Or do I need to create such multimodal trips manually for each person?
Is there a more automated, easier, or smarter way to build these kinds of mixed-mode journeys?

Any help or ideas would be really appreciated!
Have a great weekend!

gkisa
_______________________________________________
sumo-user mailing list
sumo-user@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/sumo-user

Back to the top