Instructions to use AutowareFoundation/simpl_prediction with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- TensorRT
How to use AutowareFoundation/simpl_prediction with TensorRT:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
SIMPL for Autoware (simpl_prediction)
Multi-agent motion prediction model for autonomous driving, used by the
autoware_simpl_prediction
node in Autoware.
The model follows the SIMPL [1] architecture (A Simple and Efficient Multi-agent Motion Prediction Baseline for Autonomous Driving) and runs with TensorRT inside Autoware. It is exported as ONNX so it can be deployed across hardware; Autoware builds the TensorRT engine from the ONNX file on first launch.
Model overview
| Task | Multi-modal trajectory prediction for tracked traffic agents |
| Architecture | SIMPL [1] |
| Predicted agent classes | VEHICLE, PEDESTRIAN, MOTORCYCLIST, CYCLIST, LARGE_VEHICLE |
| Runtime | TensorRT (FP32 by default) via the autoware_simpl_prediction ROS 2 node |
| Format | ONNX (Autoware builds the TensorRT engine locally on first launch) |
| License | Apache-2.0 |
Autoware object labels are mapped to the model's agent classes as follows: CAR to VEHICLE, PEDESTRIAN
to PEDESTRIAN, BICYCLE to CYCLIST, MOTORCYCLE to MOTORCYCLIST, and TRUCK / TRAILER / BUS to
LARGE_VEHICLE. Only agents whose mapped label is listed in the node's preprocess.labels parameter are
predicted and published.
The following dimensions are fixed at ONNX export time (dynamic shape inference is not supported yet), and the default node configuration matches them:
| Parameter | Symbol | Value |
|---|---|---|
| Maximum number of agents | N | 50 |
| Past history length | T_past | 8 |
| Maximum number of map polylines | K | 300 |
| Maximum points per polyline | P | 10 |
| Number of prediction modes | M | 6 |
| Future horizon length | T_future | 80 |
Files
| File | Description |
|---|---|
simpl.onnx |
SIMPL motion prediction network (ONNX) |
deploy_metadata.yaml |
Deployment metadata recording the artifact version of this repository |
TensorRT engines are not distributed here. TensorRT engines are specific to the GPU architecture and TensorRT version they are built on and are not portable, so Autoware builds them locally from the ONNX file on first launch (or via
build_only:=true).
Inputs and outputs
Network inputs
- Agent histories:
N x D_agent x T_past(past states of the tracked agents) - Map points:
K x P x D_map(lanelet map polylines) - Relative pose encoding:
(N + K) x (N + K) x D_rpe
Network outputs
- Predicted scores:
N x M(confidence per agent and mode) - Predicted trajectories:
N x M x T_future x D_trajectory, whereD_trajectoryis(x, y, vx, vy)in the agent local coordinate frame
Node topics (as used by autoware_simpl_prediction)
| Topic | Type | Direction |
|---|---|---|
~/input/objects |
autoware_perception_msgs/msg/TrackedObjects |
input |
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin |
input |
/localization/kinematic_state |
nav_msgs/msg/Odometry |
input |
~/output/objects |
autoware_perception_msgs/msg/PredictedObjects |
output |
Pre-processing (agent history accumulation, lanelet-to-polyline conversion) and post-processing (mode score thresholding) run in the node, not in the ONNX graph.
Usage in Autoware
The node expects the artifacts under ~/autoware_data/ml_models/simpl_prediction/ and launches with:
ros2 launch autoware_simpl_prediction simpl.launch.xml
Add build_only:=true to build the TensorRT engine from the ONNX as a one-off pre-task. The default
parameters (config/simpl.param.yaml) point to simpl.onnx in the data directory and use fp32 precision.
See the package README
for the full parameter reference.
Training
The SIMPL architecture and reference training code originate from the upstream project:
- Original implementation: https://github.com/HKUST-Aerial-Robotics/SIMPL
- Paper: "SIMPL: A Simple and Efficient Multi-agent Motion Prediction Baseline for Autonomous Driving", arXiv:2402.02519
An Autoware library to train and deploy SIMPL and other motion prediction models is work in progress, as
noted in the package README. The training data and training configuration used to produce the released
simpl.onnx weights are not publicly documented.
Limitations
- The number of predictable agents is fixed at export time (
max_num_agent: 50); dynamic shape inference is not supported yet. - Only agents whose label is contained in
preprocess.labelsare published; other road users are ignored. - Predicted modes with a confidence score below
postprocess.score_thresholdare filtered out. If all modes of an object are filtered, the published object contains no path, and the remaining mode confidences are not guaranteed to sum to 100%. - Agent history that is no longer observed in incoming callbacks is dropped, which resets prediction context for reappearing agents.
Provenance
| Original artifact source | https://awf.ml.dev.web.auto/perception/models/simpl/v0.1.0/simpl.onnx |
| Source version string | simpl/v0.1.0 |
| Tag in this repository | v0.1 (normalized from v0.1.0) |
simpl.onnx SHA-256 |
ad5e03983193c4d188432f314334697d6a216e7ffc91fb651eee5d6e4c42f492 |
Citation
@article{zhang2024simpl,
title = {SIMPL: A Simple and Efficient Multi-agent Motion Prediction Baseline for Autonomous Driving},
author = {Zhang, Lu and Li, Peiliang and Liu, Sikang and Shen, Shaojie},
journal = {arXiv preprint arXiv:2402.02519},
year = {2024}
}
References
- [1] Zhang et al., "SIMPL: A Simple and Efficient Multi-agent Motion Prediction Baseline for Autonomous Driving", arXiv:2402.02519, 2024.
- [2] Original implementation: https://github.com/HKUST-Aerial-Robotics/SIMPL
- Downloads last month
- 7