Package Summary
Tags | No category tags. |
Version | 0.46.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-07-30 |
Dev Status | UNKNOWN |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Cynthia
- Yuxuan Liu
Authors
- Cynthia
tensorrt_bevdet
Purpose
The core algorithm, named BEVDet
, it unifies multi-view images into the perspective of BEV for 3D object detection task.
Inner-workings / Algorithms
Cite
- Junjie Huang, Guan Huang, “BEVPoolv2: A Cutting-edge Implementation of BEVDet Toward Deployment”, [ref]
- bevdet_vendor package are copied from the original codes (The TensorRT, C++ implementation by LCH1238) and modified.
- This package is ported version toward Autoware from bevdet_vendor.
Inputs / Outputs
Inputs
Name | Type | Description |
---|---|---|
~/input/topic_img_front_left |
sensor_msgs::msg::Image |
input front_left camera image |
~/input/topic_img_front |
sensor_msgs::msg::Image |
input front camera image |
~/input/topic_img_front_right |
sensor_msgs::msg::Image |
input front_right camera image |
~/input/topic_img_back_left |
sensor_msgs::msg::Image |
input back_left camera image |
~/input/topic_img_back |
sensor_msgs::msg::Image |
input back camera image |
~/input/topic_img_back_right |
sensor_msgs::msg::Image |
input back_right camera image |
~/input/topic_img_front_left/camera_info |
sensor_msgs::msg::CameraInfo |
input front_left camera parameters |
~/input/topic_img_front/camera_info |
sensor_msgs::msg::CameraInfo |
input front camera parameters |
~/input/topic_img_front_right/camera_info |
sensor_msgs::msg::CameraInfo |
input front_right camera parameters |
~/input/topic_img_back_left/camera_info |
sensor_msgs::msg::CameraInfo |
input back_left camera parameters |
~/input/topic_img_back/camera_info |
sensor_msgs::msg::CameraInfo |
input back camera parameters |
~/input/topic_img_back_right/camera_info |
sensor_msgs::msg::CameraInfo |
input back_right camera parameters |
Outputs
Name | Type | Description |
---|---|---|
~/output/boxes |
autoware_perception_msgs::msg::DetectedObjects |
detected objects |
~/output_bboxes |
visualization_msgs::msg::MarkerArray |
detected objects for nuScenes visualization |
How to Use Tensorrt BEVDet Node
Prerequisites
- Tensorrt 10.8.0.43
- CUDA 12.4
- cuDNN 8.9.2
Trained Models
Download the trained models with the instructions in Autoware artifacts.
The BEVDet
model was trained in NuScenes
dataset for 20 epochs.
Test Tensorrt BEVDet Node with Nuscenes
-
Integrate this branch changes in your autoware_universe/perception directory
-
Include this bevdet_vendor pr in src/universe/external/bevdet_vendor as this supports fp16 precision and api support for Tensorrt 10.x.x
-
To play ros2 bag of nuScenes data
cd autoware/src
git clone https://github.com/Owen-Liuyuxuan/ros2_dataset_bridge
cd ..
# Open the launch file to configure dataset settings:
nano src/ros2_dataset_bridge/launch/nuscenes_launch.xml
# Update the following lines with the correct NuScenes dataset path and set the publishing frequency to 10 Hz for optimal data streaming:
<arg name="NUSCENES_DIR" default="<nuscenes_dataset_path>"/>
<arg name="NUSCENES_VER" default="v1.0-trainval"/>
<arg name="UPDATE_FREQUENCY" default="10.0"/>
# Open the ros_utils script:
nano src/ros2_dataset_bridge/ros2_dataset_bridge/utils/ros_util.py
# Modify the encoding to bgr8 at line 92:
image_msg = self.cv_bridge.cv2_to_imgmsg(image, encoding="bgr8")
- Build the
autoware_tensorrt_bevdet
andros2_dataset_bridge
packages
# Build autoware_tensorrt_bevdet
colcon build --packages-up-to autoware_tensorrt_bevdet
# Build ros2_dataset_bridge
colcon build --packages-select=ros2_dataset_bridge
# Source the environment
source install/setup.bash # install/setup.zsh or install/setup.sh for your own need.
source /opt/ros/humble/setup.bash
- Launch
ros2_dataset_bridge
that publishes nuScenes dataset
# Launch the data publisher, RViz, and GUI controller:
ros2 launch ros2_dataset_bridge nuscenes_launch.xml
# Tip: If NuScenes boxes are not visible in RViz, ensure the "Stop" checkbox in the GUI controller is unchecked, then click "OK".
# Note: ROS bag playback is limited to 10 Hz, which constrains the BEVDet node to the same rate. However, based on callback execution time, BEVDet can run at up to 35 FPS with FP16 and 17 FPS with FP32.
- Launch
tensorrt_bevdet_node
ros2 launch autoware_tensorrt_bevdet tensorrt_bevdet.launch.xml
Configuration
The configuration file in config/bevdet.param.yaml
can be modified to suit your needs:
- Modify
precision
tofp16
orfp32
- Set
debug_mode
totrue
to enable publishing bounding box markers.
Limitation
The model is trained on open-source dataset NuScenes
and has poor generalization on its own dataset, If you want to use this model to infer your data, you need to retrain it.
Training BEVDet Model
If you want to train model using the TIER IV’s internal database(~2600 key frames), please refer to the following repositories:BEVDet adapted to TIER IV dataset.
References/External links
[1] https://github.com/HuangJunJie2017/BEVDet/tree/dev2.1
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
libopencv-dev |
Dependant Packages
Launch files
- launch/tensorrt_bevdet.launch.xml
-
- input/img_front_left [default: /nuscenes/CAM_FRONT_LEFT/image]
- input/img_front [default: /nuscenes/CAM_FRONT/image]
- input/img_front_right [default: /nuscenes/CAM_FRONT_RIGHT/image]
- input/img_back_left [default: /nuscenes/CAM_BACK_LEFT/image]
- input/img_back [default: /nuscenes/CAM_BACK/image]
- input/img_back_right [default: /nuscenes/CAM_BACK_RIGHT/image]
- output/boxes [default: /bboxes]
- output/bboxes [default: /debug/markers_boxes]
- input/img_front_left/camera_info [default: /nuscenes/CAM_FRONT_LEFT/camera_info]
- input/img_front/camera_info [default: /nuscenes/CAM_FRONT/camera_info]
- input/img_front_right/camera_info [default: /nuscenes/CAM_FRONT_RIGHT/camera_info]
- input/img_back_left/camera_info [default: /nuscenes/CAM_BACK_LEFT/camera_info]
- input/img_back/camera_info [default: /nuscenes/CAM_BACK/camera_info]
- input/img_back_right/camera_info [default: /nuscenes/CAM_BACK_RIGHT/camera_info]
- data_path [default: $(env HOME)/autoware_data]
- model_name [default: bevdet_one_lt_d]
- model_path [default: $(var data_path)/tensorrt_bevdet]
- model_config [default: $(find-pkg-share autoware_tensorrt_bevdet)/config/bevdet_r50_4dlongterm_depth.yaml]
- param_file [default: $(find-pkg-share autoware_tensorrt_bevdet)/config/bevdet.param.yaml]