This repository contains a pipeline for accessible route planning. More specifically, it contains code to generate a accessible network and code to subsequently plan routes on this network given a set of user preferences. The following preferences that can be set by a user are included:
- Minimum sidewalk width
- Maximum curb height when crossing the street
- Preference for using sidewalks or biycle lanes
Demonstration data has been included to run the pipeline.
The methods can serve as inspiration, or can be applied as-is under some specific assumptions:
- Usage in The Netherlands;
- Point clouds in LAS format and tiled following specific rules; and
- Corresponding AHN data.
Example: (left) The demo area used to generate network for. (right) The final demo network. Blue: sidewalks, green: bicycle lanes, purple: crossings, pins: public transport stops.
Example: (left) Demo route with a preference for using sidewalks. (right) Demo route with a preference for using bicycle lanes. Both routes have a minimum sidewalk width of 0.8m maximum curb height of 0.04m
This repository is designed to address the challenges faced by less mobile individuals, particularly wheelchair users, in urban environments. The primary objective of this project is to enable citizens with reduced mobility to participate independently and equitably in city life. The result is a personalized route planner, contributing to enhanced accessibility for less mobile individuals as they navigate urban spaces. The repository provides a factual and technical resource for developers and contributors interested in advancing the accessibility of urban environments for diverse user needs.
data
Demo dataset to get startedinput
input to get startedahn
AHN databgt
BGT datapointcloud
Example unlabelled urban point clouds
output
output to get startedpointcloud
Example labelled urban point clouds
notebooks
Jupyter notebooks tutorialssrc
Python source code
This code has been tested with Python == 3.8
on Linux
and MacOS
.
IMPORTANT It is required to build two seperate environments. The first environment (steps 2a to 2c) is used to generate the network and the second environment (step 3) is used to plan routes on the network.
- Clone this repository:
git clone https://github.com/Amsterdam-AI-Team/Accessible_Route_Planning.git
2a) Create network generation environment and install dependencies:
pip install -r requirements_network_generation.txt
2b) Install the Urban Point Cloud Processing package from source:
python -m pip install git+https://github.com/Amsterdam-AI-Team/Urban_PointCloud_Processing.git#egg=upcp
2c) (Optional for demonstration purposes) install cccorelib
and pycc
from the CloudCompare-PythonPlugin project by following the summary instructions below; for more details and Windows instructions see their GitHub page. Please note, these two packages are not available on the Python Package Index (PyPi).
Building these packages requires Qt.
git checkout https://github.com/tmontaigu/CloudCompare-PythonPlugin.git
cd CloudCompare-PythonPlugin
pip install --upgrade pip # Requires version >= 21.1
# For Mac OS
export CMAKE_PREFIX_PATH=/usr/local/opt/qt@5
pip install wrapper/cccorelib
pip install wrapper/pycc
- Create route planning environment and install dependencies:
pip install -r requirements_route_planning.txt
We provide notebooks that altogether make up the pipeline to generate the accessible network and plan routes. The notebooks should be run in a specific order, which can be found in the notebooks README.
Feel free to help out! Open an issue, submit a PR or contact us.
This repository was created by Amsterdam Intelligence for the City of Amsterdam.
This project is licensed under the terms of the European Union Public License 1.2 (EUPL-1.2).