Skip to content

PrioBike

The PrioBike app gives speed advisories to cyclists in Hamburg to catch green lights.

The PrioBike app allows you, as a cyclist in Hamburg, to receive traffic light information while riding. You can use this information to adjust your riding behavior. For example, you can slow down if you know the light will remain red, or speed up to catch the next green phase. The app is being developed as part of the PrioBike research project at TU Dresden to explore this innovative way of cycling in harmony with traffic lights.

Research

If you are interested in the scientific background, we encourage you to read the following publications:

P. Matthes, "Green Light Optimal Speed Advisory for Bikes" in 2024: https://nbn-resolving.org/urn:nbn:de:bsz:14-qucosa2-925445

D. Jeschor, P. Matthes, T. Springer, S. Pape, and S. Fröhlich, “Cloudy with a Chance of Green: Measuring the Predictability of 18,009 Traffic Lights in Hamburg,” in 2024 IEEE Intelligent Vehicles Symposium (IV), IEEE, 2024, pp. 1–8. DOI: https://doi.org/10.48550/arXiv.2403.18830

P. Matthes and T. Springer, “Matching Traffic Lights to Routes for Real-World Deployments of Mobile GLOSA Apps,” in 2022 IEEE International Smart Cities Conference (ISC2), IEEE, 2022, pp. 1–7. DOI: https://doi.org/10.1109/ISC255366.2022.9922560

P. Matthes, D. Jeschor, and T. Springer, “GeoAI-Powered Lane Matching for Bike Routes in GLOSA Apps,” in The 31st ACM International Conference on Advances in Geographic Information Systems (SIGSPATIAL ’23), ACM, 2023, pp. 1–4. DOI: https://doi.org/10.1145/3589132.3625583

P. Matthes, T. Springer, and D. Jeschor, “Accurate Bike Routing for Lane Prediction in GLOSA Apps via Infrastructure Reference Models,” in 2023 IEEE International Conference on Intelligent Transportation Systems (ITSC), IEEE, 2023, pp. 1–6. DOI: https://doi.org/10.1109/ITSC57777.2023.10422472

Contributing

We invite you to improve our app and reuse our services. Almost all of our services are public under MIT license.

If you would like to understand how the app works in general, it is recommended to check out the architecture description below and the Flutter app repository first. This is also the best way to start when you want to fix a bug in the app or contribute a feature.

The development of this project came to an end in 2024. So, there is a high chance nobody will reply to issues you may open here on GitHub. If you want to discuss something or have questions, feel free to connect with us on LinkedIn. During the project we were the main developers of the app and the services:

Architecture

The best way to understand the app's architecture is by looking at the three key views: the home view, the routing view, and the ride view. The home view serves as an entrypoint when opening the app, providing users with their custom routes and also some important system status information. Transitioning to the routing view, users can freely plan a route through Hamburg. Finally, in the ride view, users obtain a speed advisory for the traffic lights along the planned route. To provide these services the app uses the following basic system architecture:

architecture-readme

At its foundation, the app uses real-time traffic light data from the Urban Data Platform in Hamburg and generates predictions based on this data. The availability of predictions is monitored, displaying a warning in the home view in case there is an outage.

The routing view is an essential part of the app, as it not only calculates accurate bike routes through Hamburg using our DRN GraphHopper but also matches all traffic lights to these routes in advance with our SG Selector. As in other cycling apps, additional path information is highlighted along routes and users can search for addresses, adding them to their planned route.

When a route is selected, the ride view determines the position of the user along the route, looking up which traffic lights will be passed next. The app connects to an MQTT broker that provides the generated traffic light predictions, highlighting them in a speedometer. When a ride is finished, the tracking data is uploaded to the tracking service.

Setup

To run the PrioBike-services on your own, a good entrypoint is the priobike-k8s-deployment repository.

General Project

For more information on other areas of the PrioBike project see the projects website of the city of Hamburg.

Acknowledgments

The PrioBike project is funded by the Federal Ministry for Digital and Transport (BMDV, FKZ: 16DKVM001B).

Popular repositories Loading

  1. priobike-flutter-app priobike-flutter-app Public

    A smartphone app for cyclists in Hamburg that provides bike navigation and speed advisories for traffic lights

    Dart 7

  2. priobike-sg-selector priobike-sg-selector Public

    Service that matches signal lane geometries to bike routes (IEEE ISC2 2022, ACM SIGSPATIAL 2023)

    Jupyter Notebook 3

  3. priobike-predictor priobike-predictor Public

    Prediction service for traffic lights in Hamburg

    Go 2

  4. priobike-map-data priobike-map-data Public

    Service that provides map data (overlays) to the PrioBike app such as accident hotspots

    Python 1

  5. priobike-swarm-stack-monitor priobike-swarm-stack-monitor Public

    A microservice to provide Prometheus metrics about a running Docker Swarm stack.

    Python 1

  6. priobike-predictability-study priobike-predictability-study Public

    Jupyter Notebook 1

Repositories

Showing 10 of 45 repositories
  • .github Public

    Public readme for the PrioBike organization

    priobike/.github’s past year of commit activity
    0 MIT 0 0 0 Updated Dec 2, 2024
  • priobike-flutter-app Public

    A smartphone app for cyclists in Hamburg that provides bike navigation and speed advisories for traffic lights

    priobike/priobike-flutter-app’s past year of commit activity
    Dart 7 MIT 0 8 1 Updated Dec 2, 2024
  • priobike-sg-selector Public

    Service that matches signal lane geometries to bike routes (IEEE ISC2 2022, ACM SIGSPATIAL 2023)

    priobike/priobike-sg-selector’s past year of commit activity
    Jupyter Notebook 3 MIT 0 1 9 Updated Nov 22, 2024
  • priobike-k8s-deployment Public

    Minimal setup to create a kubernetes cluster of the priobike services

    priobike/priobike-k8s-deployment’s past year of commit activity
    0 0 1 0 Updated Oct 22, 2024
  • priobike-helm-charts Public

    Helm charts of the priobike services

    priobike/priobike-helm-charts’s past year of commit activity
    0 0 0 0 Updated Oct 21, 2024
  • priobike-poi-service Public

    Service that matches points of interest along a given bike route

    priobike/priobike-poi-service’s past year of commit activity
    Python 0 MIT 0 1 0 Updated Oct 21, 2024
  • priobike-map-data Public

    Service that provides map data (overlays) to the PrioBike app such as accident hotspots

    priobike/priobike-map-data’s past year of commit activity
    Python 1 MIT 0 0 2 Updated Oct 21, 2024
  • priobike-overpass Public

    Custom Overpass API which can be used to query our OSM (DRN-OSM) data

    priobike/priobike-overpass’s past year of commit activity
    Dockerfile 0 MIT 0 0 0 Updated Oct 21, 2024
  • priobike-photon Public

    Custom Photon for geocoding

    priobike/priobike-photon’s past year of commit activity
    Dockerfile 0 MIT 0 0 0 Updated Oct 21, 2024
  • priobike-frost-mirror-importer Public

    Script that imports and filters traffic lights from Hamburg's FROST server into our mirror

    priobike/priobike-frost-mirror-importer’s past year of commit activity
    Python 0 MIT 0 0 0 Updated Oct 21, 2024

Top languages

Loading…

Most used topics

Loading…