Browse by type
<img src="https://github.com/autowarefoundation/vision_pilot/raw/v1.0/Media/VisionPilot_logo.png" alt="VisionPilot" width="100%">
⭐ Star us on GitHub — your support motivates us a lot!
This codebase contains a productionizable and safety certifiable implementation of an open-source L2 ADAS system called Vision Pilot.
Vision Pilot is designed to be integrated with automotive OEMs and Tier-1 suppliers in series production passenger cars, and the system can optionally be adopted for transportation and logisitcs use-cases in buses and trucks.
We offer the complete codebase as free and fully open-source, including AI model weights to help democratize access to this vital technology. Vision Pilot is available under the persmissive Apache 2.0 licence and can freely be used for both commercial and research purposes.

Vision Pilot is designed to support basic/entry L2 ADAS features for in-lane autonomous driving including the following features:
Sensor specification:
Vision Pilot can be run with a single, front-facing, monocular camera with 52 - 55 degree horizontal field-of-view, and 1MP - 2MP resolution.
We utilize a Hybrid End-to-End AI Architecture as the core of Vision Pilot in which data is processed in parallel by perception AI models for safety, and End-to-End AI models for performance.

Specifically, Vision Pilot leverages three open-source AI models developed by the Autoware Foundation, these are:
Vision Pilot does not require 3D high definition maps and operates in a 'mapless' mode to follow the road in real-time.
For more information about Vision Pilot, please view our introductory presentation at this link
There are two ways you can build and run Vision Pilot - we provide example data which you can use for visualization and evaluation, select either Option-1 or Option-2 from the drop down options below:
Option 1 - Download and build from source
To get started with the project, download the source code from:
git clone https://github.com/autowarefoundation/autoware_vision_pilot.git
Download ONNX Runtime from the GitHub releases page.
Build the project:
cd VisionPilot
mkdir build && cd build
cmake -DONNXRUNTIME_ROOT=<ONNX_RUNTIME_ROOT_PATH> ../
or with ROS2 support
cmake -DONNXRUNTIME_ROOT=<ONNX_RUNTIME_ROOT_PATH> -DENABLE_ROS2_INTERFACE=ON ../
make
This will build the project and create VisionPilot executable inside the build directory.
OpenLane Dataset:
To test Vision Pilot using open loop scenario testing, first download the sample data from the Google Drive directory.
This directory contains video composed of image data from sequences in the appropriate dataset and vehicle speed data extracted from the dataset.
Update VisionPilot config files vision_pilot.conf inside config directory and set:
source.mode = video
and vision_pilot_test.conf set:
source.input_video = <INPUT_VIDEO_FILE_PATH>
source.input_vehicle_speed = <INPUT_VEHICLE_SPEED_FILE_PATH>
to point to the appropriate video file path and vehicle speed file path.
Note: When VisionPilot built from source, update config files before the build.
Run VisionPilot from inside build directory
./VisionPilot
To build Debian DEB package for VisionPilot run
cpack -G DEB
To build Debian DEB package for VisionPilot with CPU support build VisionPilot with
cmake -DONNXRUNTIME_ROOT=<ONNX_RUNTIME_ROOT_PATH> -DGPU=OFF ../
make
cpack -G DEB
Option 2 - Use the pre-built Debian pacakge
This method is recommended in case new system installation and cuda dependencies are not installed yet.
Download VisionPilot prebuilt binary.
Install the .deb package
sudo apt install ./VisionPilot-1.0-x86_64.deb
Reboot the system, cuda dependencies for VisionPilot installed.
OpenLane Dataset:
To test Vision Pilot using open loop scenario testing, first download the sample data from the Google Drive directory.
This directory contains video composed of image data from sequences in the appropriate dataset and vehicle speed data extracted from the dataset.
Update VisionPilot config files vision_pilot.conf set:
source.mode = video
and vision_pilot_test.conf set:
source.input_video = <INPUT_VIDEO_FILE_PATH>
source.input_vehicle_speed = <INPUT_VEHICLE_SPEED_FILE_PATH>
to point to the appropriate video file path and vehicle speed file path.
Note: When VisionPilot installed from prebuilt binary update the config files inside:
/usr/share/visionpilot/config
directory.
Run VisionPilot from the command line
VisionPilot
To learn more about how to participate in this project, please read the onboarding guide
$ claude mcp add vision_pilot \
-- python -m otcore.mcp_server <graph>