Official ROS2 software stack for the VANTTEC Self-Driving Vehicle (SDV)
This repository contains all modules required to operate the VANTTEC autonomous vehicle,
including acceleration, steering, braking, lighting, LiDAR processing, IMU fusion,
localization, mapping, and path planning.
Getting Started •
Setup •
Launching the System •
Sensors •
Mapping •
Localization •
Path Planning •
SDV Control •
CAN Communication •
Recording Bags
- Linux distribution (Ubuntu 22.04 recommended)
- ROS 2 Humble
- At least 8 GB RAM recommended
Run the environment setup script:
source setup.shIf you need to compile everything from zero:
colcon build --packages-select pointcloud_rotation
colcon build --packages-select lidar_imu_sync
colcon build --packages-select robot_description
colcon build --packages-select vectornav_msgs vectornav
colcon build --packages-select velodyne_msgs velodyne_driver velodyne_laserscan velodyne_pointcloud velodyne
colcon build --packages-select lio_sam
colcon build --packages-select ndt_omp_ros2
colcon build --packages-select lidar_localization_ros2
colcon build --packages-select sensors_launch
colcon build --packages-select sdv_msgs
source install/setup.bash
colcon build --packages-select sdv_control sdv_can
colcon build --packages-select mrt_cmake_modules
colcon build --packages-select polygon_msgs polygon_rviz_plugins polygon_utils
colcon build --packages-select obstacles_information_msgs traffic_information_msgs
source install/setup.bash
colcon build --packages-select pointcloud_clustering lanelet2_core
source install/setup.bash
colcon build --packages-select lanelet2_maps lanelet2_projection lanelet2_traffic_rules
source install/setup.bash
colcon build --packages-select lanelet2_routing lanelet2_io lanelet2_validation
source install/setup.bash
colcon build --packages-select waypoints_routing
colcon build --packages-select path_planning_dynamic
source install/setup.bashThis repository implement many software of this another repository:
🔗 NavPilot Framework (Armando Genis, vanttec member) https://github.com/armando-genis/navpilot-framework
Start the full SDV stack:
source launch.shThis script launches multiple modules via tmux, so each subsystem runs in its own terminal panel.
Some extras commands
ros2 launch sensors_launch lidar_imu.launch.pyInitialize mapping processes:
ros2 launch /workspace/src/mapping_modules/launcher/mapping.launch.pyRun localization modules:
ros2 launch /workspace/src/localization_modules/launch/localization.launch.pyros2 launch navpilot-framework/src/path_planning/launch/planning_obstacles.launch.pyLaunch the control node:
ros2 launch sdv_control control_launch.pyStart the CAN node:
ros2 run sdv_can sdv_can_nodeSteering Services (provided by CAN)
Set steering control mode:
ros2 service call /sdv/steering/set_mode sdv_msgs/srv/Uint8 "{data: 1}"Reset the steering encoder:
ros2 service call /sdv/steering/reset_encoder std_srvs/srv/Empty "{}"Record Rosbag (MCAP format)
ros2 bag record --storage mcap --all --output vanttec_sdv_localization_20250623Play Rosbag
rviz2 -d /workspace/src/localization_modules/launch/localization.rviz
ros2 bag play vanttec_sdv_localization_20250623 -s mcapRead more about the official documentation here.
