Skip to content
Vision Pilot v1.2

Configuration

Vision Pilot reads three plain-text config files at startup. This page documents every key in them.

Configuration lives in VisionPilot/config/, or in /usr/share/visionpilot/config for a Debian install. The files are key = value text; # starts a comment.

File Read when Purpose
vision_pilot.conf Always Input mode, inference engine, vehicle parameters, GUI
vision_pilot_test.conf source.mode = video Recorded-video playback settings
vision_pilot_ros2.conf source.mode = ros2 ROS 2 topic names

Two more files sit alongside them:

  • H.yaml - the camera homography matrix. Replace it with your own after calibration; keep a copy of the original so you can still run the sample data.
  • vehicle.dbc - the CAN database used by the vehicle interface.

Config is read at startup, and for source builds it is copied into the build directory, and for Docker into the image. Edit it before you build, or rebuild after editing.

vision_pilot.conf

Input source

source.mode        = video

source.v4l2_device = /dev/video0
source.v4l2_fps    = 10
Key Values Meaning
source.mode video, v4l2, ros2 Where frames come from. video replays a file, v4l2 reads a camera device, ros2 subscribes to an image topic
source.v4l2_device path V4L2 device node, used when source.mode = v4l2
source.v4l2_fps integer Target capture rate. 10 Hz is the design cadence

source.mode = ros2 requires a build configured with -DENABLE_ROS2_INTERFACE=ON.

Inference engine

engine.provider     = cuda
engine.device_id    = 0
engine.cache_dir    = /tmp/visionpilot_trt_cache
engine.workspace_gb = 1.0

model.precision     = fp32
Key Values Meaning
engine.provider cuda, cpu ONNX Runtime execution provider. Must match the ONNX Runtime build you linked against
engine.device_id integer GPU index, for multi-GPU machines
engine.cache_dir path Where the TensorRT engine cache is written. First run is slow while engines are built; later runs reuse this
engine.workspace_gb float TensorRT workspace budget, in GiB
model.precision fp32, int8 Weight precision. int8 selects the quantized models - lower latency and memory, at a small accuracy cost. Lowercase only

Vehicle parameters

speed_limit = 33.3;   # m/s
L           = 2.860   # front axle to CoG (m)
Key Units Meaning
speed_limit m/s Upper bound on commanded speed. 33.3 m/s ≈ 120 km/h
L m Wheelbase used by the lateral controller, where L = Lf + Lr

L is vehicle-specific. Leaving it at the default while driving a different vehicle will bias every steering command the stack produces.

GUI, streaming and logging

visualization_on = true

webrtc_on   = false
webrtc_port = 8080

rrd_on  = false
rrd_log = visionpilot.rrd
Key Values Meaning
visualization_on true, false Draw the local OpenCV HUD window
webrtc_on true, false Stream the rendered HUD to a browser over WebRTC. Disables the local preview while active
webrtc_port port Port the WebRTC signalling server listens on. Open http://127.0.0.1:<port>/ to watch
rrd_on true, false Log per-frame data to a Rerun recording
rrd_log path Output .rrd file. Open it with rerun <file>

vision_pilot_test.conf

Read only when source.mode = video.

source.video_realtime      = true
source.video_loop          = false

source.input_video         = /path/to/input.mp4
source.input_vehicle_speed = /path/to/frame_speed.txt
source.dataset             = open_lane
Key Values Meaning
source.video_realtime true, false Play back at wall-clock rate rather than as fast as frames can be processed
source.video_loop true, false Restart the sequence when it ends
source.input_video path The recorded video to replay
source.input_vehicle_speed path Per-frame ego speed log that accompanies the video
source.dataset open_lane, zod Which dataset convention the speed log follows

Sample sequences for both datasets are on Google Drive.

vision_pilot_ros2.conf

Read only when source.mode = ros2, and only meaningful in a build configured with -DENABLE_ROS2_INTERFACE=ON.

source.input_camera_topic  = /camera/image

vehicle_speed_topic        = /vehicle/speed
vehicle_steering_topic     = /vehicle/steering_cmd
vehicle_acceleration_topic = /vehicle/throttle_cmd
Key Direction Meaning
source.input_camera_topic subscribe sensor_msgs/Image source of camera frames
vehicle_speed_topic subscribe Current ego speed
vehicle_steering_topic publish Lateral command out of the planner
vehicle_acceleration_topic publish Longitudinal command out of the planner

For CARLA, set the camera topic to the bridge’s output:

source.input_camera_topic = /carla/hero/main_cam/image

See the simulation guide for the full closed-loop setup.

Common configurations

Replay the sample data on a GPU machine

# vision_pilot.conf
source.mode      = video
engine.provider  = cuda
visualization_on = true

Live camera, no GPU, headless with a browser view

source.mode        = v4l2
source.v4l2_device = /dev/video0
engine.provider    = cpu
visualization_on   = false
webrtc_on          = true
webrtc_port        = 8080

CARLA closed loop with Rerun logging

source.mode     = ros2
engine.provider = cuda
rrd_on          = true
rrd_log         = carla_run.rrd
Something out of date or missing? Edit this page. Report an issue ↗