Package Summary
Tags | No category tags. |
Version | 0.47.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-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kotaro Uetake
Authors
autoware_simpl_prediction
Purpose
The autoware_simpl_prediction
is used for 3D object motion prediction based on ML-based model called SIMPL.
Inner-workings / Algorithms
The implementation bases on SIMPL [1] [2] work. It uses TensorRT library for data process and network interface.
Workflow overview of this node is as follows:
flowchart TD
In1@{ shape: card, label: "~/input/objects" } -- autoware_perception_msgs::msg::TrackedObjects --> Callback1@{ shape: rect, label: "SimplNode::callback(...)" }
Callback1 --> B@{ shape: stadium, label: "Start measuring Processing Time" }
In2@{ shape: card, label: "/localization/kinematic_state" } -- nav_msgs::msg::Odometry --> C
B --> C@{ shape: subproc, label: "SimplNode::subscribe_ego(...)" }
In3@{ shape: card, label: "~/input/vector_map" } -- "autoware_map_msgs::msg::LaneletMapBin" --> Callback2@{ shape: rect, label: "SimplNode::on_map(...)" }
Callback2 --> X@{ shape: subproc, label: "LaneletConverter::convert(...)" }
C -->|✅| D@{ shape: subproc, label: "LaneletConverter::polylines()" }
C -->|❌| Z1@{ shape: curv-trap, label: "⚠️WARNING: Failed to subscribe ego" } --> END@{ shape: stadium }
D -->|✅| E@{ shape: subproc, label: "SimplNode::update_history(...)" }
D -->|❌| Z2@{ shape: curv-trap, label: "⚠️WARNING: No map points" } --> END
E --> F@{ shape: subproc, label: "PreProcessor::process(...)" }
F --> G@{ shape: subproc, label: "TrtSimpl::do_inference(...)" }
G -->|✅| I@{ shape: subproc, label: "PostProcessor::process(...)" } --> J@{ shape: stadium, label: "Publish Predicted Objects" }
G -->|❌| Z3@{ shape: curv-trap, label: "⚠️ERROR: Inference failed" } --> H
J -- autoware_perception_msgs::msg::PredictedObjects --> Out1@{ shape: card, label: "~/output/objects" }
J --> H@{ shape: stadium, label: "Publish Processing & Cyclic Time" }
H -- autoware_internal_debug_msgs::msg::Float64Stamped --> Out3@{ shape: card, label: "~/debug/cyclic_time_ms" }
H -- autoware_internal_debug_msgs::msg::Float64Stamped --> Out2@{ shape: card, label: "~/debug/processing_time_ms" }
H --> END
Inputs Representation
- $X_A\in R^{N\times D_{agent}\times T_{past}}$: Agent histories input.
- $X_M\in R^{K\times P\times D_{map}}$: Map points input.
- $X_{RPE}\in R^{(N+K)\times (N+K)\times D_{rpe}}$: Relative pose encoding input.
Outputs Representation
- $P_{score}\in R^{N\times M}$: Predicted scores for each agent and mode.
- $P_{trajectory}\in R^{N\times M\times T_{future}\times D_{trajectory}}$: Predicted trajectories for each agent and mode.
- Where, $D_{trajectory}$ is $(x, y, v_x, v_y)$ in the agent local coordinate frame.
Inputs / Outputs
Inputs
Name | Type | Description |
---|---|---|
~/input/objects |
autoware_perception_msgs::msg::TrackedObjects |
Input tracked agents. |
~/input/vector_map |
autoware_map_msgs::msg::LaneletMapBin |
Input vector map. |
/localization/kinematic_state |
nav_msgs::msg::Odometry |
Ego vehicle odometry. |
Outputs
Name | Type | Description |
---|---|---|
~/output/objects |
autoware_perception_msgs::msg::PredictedObjects |
Predicted agents’ motion. |
Debug Outputs
Name | Type | Description |
---|---|---|
~/debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Cyclic time [ms]. |
~/debug/processing_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Processing time [ms]. |
Parameters
{{ json_to_markdown(“perception/autoware_simpl/schema/simpl.scheme.json”) }}
[WIP] Model Training / Deployment
Now we are preparing a library to train and deploy SIMPL and other ML models featuring motion prediction tasks.
Testing
Unit tests are provided and can be run with:
colcon test --packages-select autoware_simpl
colcon test-result --all
To print the test’s details with while the tests are being run, use the --event-handlers console_cohesion+
option to print the details directly to the console:
```bash colcon test –event-handlers console_cohesion+ –packages-select autoware_simpl
File truncated at 100 lines see the full file
Changelog for package autoware_simpl_prediction
0.47.0 (2025-08-11)
- feat(autoware_simpl): add ML-based motion prediction node (#10824)
- Contributors: Kotaro Uetake
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/simpl.launch.xml
-
- data_path [default: $(env HOME)/autoware_data/simpl_prediction]
- param_path [default: $(find-pkg-share autoware_simpl_prediction)/config/simpl.param.yaml]
- input/objects [default: /input/objects]
- input/vector_map [default: /map/vector_map]
- output/objects [default: /output/objects]
- build_only [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_simpl_prediction at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.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-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kotaro Uetake
Authors
autoware_simpl_prediction
Purpose
The autoware_simpl_prediction
is used for 3D object motion prediction based on ML-based model called SIMPL.
Inner-workings / Algorithms
The implementation bases on SIMPL [1] [2] work. It uses TensorRT library for data process and network interface.
Workflow overview of this node is as follows:
flowchart TD
In1@{ shape: card, label: "~/input/objects" } -- autoware_perception_msgs::msg::TrackedObjects --> Callback1@{ shape: rect, label: "SimplNode::callback(...)" }
Callback1 --> B@{ shape: stadium, label: "Start measuring Processing Time" }
In2@{ shape: card, label: "/localization/kinematic_state" } -- nav_msgs::msg::Odometry --> C
B --> C@{ shape: subproc, label: "SimplNode::subscribe_ego(...)" }
In3@{ shape: card, label: "~/input/vector_map" } -- "autoware_map_msgs::msg::LaneletMapBin" --> Callback2@{ shape: rect, label: "SimplNode::on_map(...)" }
Callback2 --> X@{ shape: subproc, label: "LaneletConverter::convert(...)" }
C -->|✅| D@{ shape: subproc, label: "LaneletConverter::polylines()" }
C -->|❌| Z1@{ shape: curv-trap, label: "⚠️WARNING: Failed to subscribe ego" } --> END@{ shape: stadium }
D -->|✅| E@{ shape: subproc, label: "SimplNode::update_history(...)" }
D -->|❌| Z2@{ shape: curv-trap, label: "⚠️WARNING: No map points" } --> END
E --> F@{ shape: subproc, label: "PreProcessor::process(...)" }
F --> G@{ shape: subproc, label: "TrtSimpl::do_inference(...)" }
G -->|✅| I@{ shape: subproc, label: "PostProcessor::process(...)" } --> J@{ shape: stadium, label: "Publish Predicted Objects" }
G -->|❌| Z3@{ shape: curv-trap, label: "⚠️ERROR: Inference failed" } --> H
J -- autoware_perception_msgs::msg::PredictedObjects --> Out1@{ shape: card, label: "~/output/objects" }
J --> H@{ shape: stadium, label: "Publish Processing & Cyclic Time" }
H -- autoware_internal_debug_msgs::msg::Float64Stamped --> Out3@{ shape: card, label: "~/debug/cyclic_time_ms" }
H -- autoware_internal_debug_msgs::msg::Float64Stamped --> Out2@{ shape: card, label: "~/debug/processing_time_ms" }
H --> END
Inputs Representation
- $X_A\in R^{N\times D_{agent}\times T_{past}}$: Agent histories input.
- $X_M\in R^{K\times P\times D_{map}}$: Map points input.
- $X_{RPE}\in R^{(N+K)\times (N+K)\times D_{rpe}}$: Relative pose encoding input.
Outputs Representation
- $P_{score}\in R^{N\times M}$: Predicted scores for each agent and mode.
- $P_{trajectory}\in R^{N\times M\times T_{future}\times D_{trajectory}}$: Predicted trajectories for each agent and mode.
- Where, $D_{trajectory}$ is $(x, y, v_x, v_y)$ in the agent local coordinate frame.
Inputs / Outputs
Inputs
Name | Type | Description |
---|---|---|
~/input/objects |
autoware_perception_msgs::msg::TrackedObjects |
Input tracked agents. |
~/input/vector_map |
autoware_map_msgs::msg::LaneletMapBin |
Input vector map. |
/localization/kinematic_state |
nav_msgs::msg::Odometry |
Ego vehicle odometry. |
Outputs
Name | Type | Description |
---|---|---|
~/output/objects |
autoware_perception_msgs::msg::PredictedObjects |
Predicted agents’ motion. |
Debug Outputs
Name | Type | Description |
---|---|---|
~/debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Cyclic time [ms]. |
~/debug/processing_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Processing time [ms]. |
Parameters
{{ json_to_markdown(“perception/autoware_simpl/schema/simpl.scheme.json”) }}
[WIP] Model Training / Deployment
Now we are preparing a library to train and deploy SIMPL and other ML models featuring motion prediction tasks.
Testing
Unit tests are provided and can be run with:
colcon test --packages-select autoware_simpl
colcon test-result --all
To print the test’s details with while the tests are being run, use the --event-handlers console_cohesion+
option to print the details directly to the console:
```bash colcon test –event-handlers console_cohesion+ –packages-select autoware_simpl
File truncated at 100 lines see the full file
Changelog for package autoware_simpl_prediction
0.47.0 (2025-08-11)
- feat(autoware_simpl): add ML-based motion prediction node (#10824)
- Contributors: Kotaro Uetake
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/simpl.launch.xml
-
- data_path [default: $(env HOME)/autoware_data/simpl_prediction]
- param_path [default: $(find-pkg-share autoware_simpl_prediction)/config/simpl.param.yaml]
- input/objects [default: /input/objects]
- input/vector_map [default: /map/vector_map]
- output/objects [default: /output/objects]
- build_only [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_simpl_prediction at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.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-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kotaro Uetake
Authors
autoware_simpl_prediction
Purpose
The autoware_simpl_prediction
is used for 3D object motion prediction based on ML-based model called SIMPL.
Inner-workings / Algorithms
The implementation bases on SIMPL [1] [2] work. It uses TensorRT library for data process and network interface.
Workflow overview of this node is as follows:
flowchart TD
In1@{ shape: card, label: "~/input/objects" } -- autoware_perception_msgs::msg::TrackedObjects --> Callback1@{ shape: rect, label: "SimplNode::callback(...)" }
Callback1 --> B@{ shape: stadium, label: "Start measuring Processing Time" }
In2@{ shape: card, label: "/localization/kinematic_state" } -- nav_msgs::msg::Odometry --> C
B --> C@{ shape: subproc, label: "SimplNode::subscribe_ego(...)" }
In3@{ shape: card, label: "~/input/vector_map" } -- "autoware_map_msgs::msg::LaneletMapBin" --> Callback2@{ shape: rect, label: "SimplNode::on_map(...)" }
Callback2 --> X@{ shape: subproc, label: "LaneletConverter::convert(...)" }
C -->|✅| D@{ shape: subproc, label: "LaneletConverter::polylines()" }
C -->|❌| Z1@{ shape: curv-trap, label: "⚠️WARNING: Failed to subscribe ego" } --> END@{ shape: stadium }
D -->|✅| E@{ shape: subproc, label: "SimplNode::update_history(...)" }
D -->|❌| Z2@{ shape: curv-trap, label: "⚠️WARNING: No map points" } --> END
E --> F@{ shape: subproc, label: "PreProcessor::process(...)" }
F --> G@{ shape: subproc, label: "TrtSimpl::do_inference(...)" }
G -->|✅| I@{ shape: subproc, label: "PostProcessor::process(...)" } --> J@{ shape: stadium, label: "Publish Predicted Objects" }
G -->|❌| Z3@{ shape: curv-trap, label: "⚠️ERROR: Inference failed" } --> H
J -- autoware_perception_msgs::msg::PredictedObjects --> Out1@{ shape: card, label: "~/output/objects" }
J --> H@{ shape: stadium, label: "Publish Processing & Cyclic Time" }
H -- autoware_internal_debug_msgs::msg::Float64Stamped --> Out3@{ shape: card, label: "~/debug/cyclic_time_ms" }
H -- autoware_internal_debug_msgs::msg::Float64Stamped --> Out2@{ shape: card, label: "~/debug/processing_time_ms" }
H --> END
Inputs Representation
- $X_A\in R^{N\times D_{agent}\times T_{past}}$: Agent histories input.
- $X_M\in R^{K\times P\times D_{map}}$: Map points input.
- $X_{RPE}\in R^{(N+K)\times (N+K)\times D_{rpe}}$: Relative pose encoding input.
Outputs Representation
- $P_{score}\in R^{N\times M}$: Predicted scores for each agent and mode.
- $P_{trajectory}\in R^{N\times M\times T_{future}\times D_{trajectory}}$: Predicted trajectories for each agent and mode.
- Where, $D_{trajectory}$ is $(x, y, v_x, v_y)$ in the agent local coordinate frame.
Inputs / Outputs
Inputs
Name | Type | Description |
---|---|---|
~/input/objects |
autoware_perception_msgs::msg::TrackedObjects |
Input tracked agents. |
~/input/vector_map |
autoware_map_msgs::msg::LaneletMapBin |
Input vector map. |
/localization/kinematic_state |
nav_msgs::msg::Odometry |
Ego vehicle odometry. |
Outputs
Name | Type | Description |
---|---|---|
~/output/objects |
autoware_perception_msgs::msg::PredictedObjects |
Predicted agents’ motion. |
Debug Outputs
Name | Type | Description |
---|---|---|
~/debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Cyclic time [ms]. |
~/debug/processing_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Processing time [ms]. |
Parameters
{{ json_to_markdown(“perception/autoware_simpl/schema/simpl.scheme.json”) }}
[WIP] Model Training / Deployment
Now we are preparing a library to train and deploy SIMPL and other ML models featuring motion prediction tasks.
Testing
Unit tests are provided and can be run with:
colcon test --packages-select autoware_simpl
colcon test-result --all
To print the test’s details with while the tests are being run, use the --event-handlers console_cohesion+
option to print the details directly to the console:
```bash colcon test –event-handlers console_cohesion+ –packages-select autoware_simpl
File truncated at 100 lines see the full file
Changelog for package autoware_simpl_prediction
0.47.0 (2025-08-11)
- feat(autoware_simpl): add ML-based motion prediction node (#10824)
- Contributors: Kotaro Uetake
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/simpl.launch.xml
-
- data_path [default: $(env HOME)/autoware_data/simpl_prediction]
- param_path [default: $(find-pkg-share autoware_simpl_prediction)/config/simpl.param.yaml]
- input/objects [default: /input/objects]
- input/vector_map [default: /map/vector_map]
- output/objects [default: /output/objects]
- build_only [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_simpl_prediction at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.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-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kotaro Uetake
Authors
autoware_simpl_prediction
Purpose
The autoware_simpl_prediction
is used for 3D object motion prediction based on ML-based model called SIMPL.
Inner-workings / Algorithms
The implementation bases on SIMPL [1] [2] work. It uses TensorRT library for data process and network interface.
Workflow overview of this node is as follows:
flowchart TD
In1@{ shape: card, label: "~/input/objects" } -- autoware_perception_msgs::msg::TrackedObjects --> Callback1@{ shape: rect, label: "SimplNode::callback(...)" }
Callback1 --> B@{ shape: stadium, label: "Start measuring Processing Time" }
In2@{ shape: card, label: "/localization/kinematic_state" } -- nav_msgs::msg::Odometry --> C
B --> C@{ shape: subproc, label: "SimplNode::subscribe_ego(...)" }
In3@{ shape: card, label: "~/input/vector_map" } -- "autoware_map_msgs::msg::LaneletMapBin" --> Callback2@{ shape: rect, label: "SimplNode::on_map(...)" }
Callback2 --> X@{ shape: subproc, label: "LaneletConverter::convert(...)" }
C -->|✅| D@{ shape: subproc, label: "LaneletConverter::polylines()" }
C -->|❌| Z1@{ shape: curv-trap, label: "⚠️WARNING: Failed to subscribe ego" } --> END@{ shape: stadium }
D -->|✅| E@{ shape: subproc, label: "SimplNode::update_history(...)" }
D -->|❌| Z2@{ shape: curv-trap, label: "⚠️WARNING: No map points" } --> END
E --> F@{ shape: subproc, label: "PreProcessor::process(...)" }
F --> G@{ shape: subproc, label: "TrtSimpl::do_inference(...)" }
G -->|✅| I@{ shape: subproc, label: "PostProcessor::process(...)" } --> J@{ shape: stadium, label: "Publish Predicted Objects" }
G -->|❌| Z3@{ shape: curv-trap, label: "⚠️ERROR: Inference failed" } --> H
J -- autoware_perception_msgs::msg::PredictedObjects --> Out1@{ shape: card, label: "~/output/objects" }
J --> H@{ shape: stadium, label: "Publish Processing & Cyclic Time" }
H -- autoware_internal_debug_msgs::msg::Float64Stamped --> Out3@{ shape: card, label: "~/debug/cyclic_time_ms" }
H -- autoware_internal_debug_msgs::msg::Float64Stamped --> Out2@{ shape: card, label: "~/debug/processing_time_ms" }
H --> END
Inputs Representation
- $X_A\in R^{N\times D_{agent}\times T_{past}}$: Agent histories input.
- $X_M\in R^{K\times P\times D_{map}}$: Map points input.
- $X_{RPE}\in R^{(N+K)\times (N+K)\times D_{rpe}}$: Relative pose encoding input.
Outputs Representation
- $P_{score}\in R^{N\times M}$: Predicted scores for each agent and mode.
- $P_{trajectory}\in R^{N\times M\times T_{future}\times D_{trajectory}}$: Predicted trajectories for each agent and mode.
- Where, $D_{trajectory}$ is $(x, y, v_x, v_y)$ in the agent local coordinate frame.
Inputs / Outputs
Inputs
Name | Type | Description |
---|---|---|
~/input/objects |
autoware_perception_msgs::msg::TrackedObjects |
Input tracked agents. |
~/input/vector_map |
autoware_map_msgs::msg::LaneletMapBin |
Input vector map. |
/localization/kinematic_state |
nav_msgs::msg::Odometry |
Ego vehicle odometry. |
Outputs
Name | Type | Description |
---|---|---|
~/output/objects |
autoware_perception_msgs::msg::PredictedObjects |
Predicted agents’ motion. |
Debug Outputs
Name | Type | Description |
---|---|---|
~/debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Cyclic time [ms]. |
~/debug/processing_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Processing time [ms]. |
Parameters
{{ json_to_markdown(“perception/autoware_simpl/schema/simpl.scheme.json”) }}
[WIP] Model Training / Deployment
Now we are preparing a library to train and deploy SIMPL and other ML models featuring motion prediction tasks.
Testing
Unit tests are provided and can be run with:
colcon test --packages-select autoware_simpl
colcon test-result --all
To print the test’s details with while the tests are being run, use the --event-handlers console_cohesion+
option to print the details directly to the console:
```bash colcon test –event-handlers console_cohesion+ –packages-select autoware_simpl
File truncated at 100 lines see the full file
Changelog for package autoware_simpl_prediction
0.47.0 (2025-08-11)
- feat(autoware_simpl): add ML-based motion prediction node (#10824)
- Contributors: Kotaro Uetake
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/simpl.launch.xml
-
- data_path [default: $(env HOME)/autoware_data/simpl_prediction]
- param_path [default: $(find-pkg-share autoware_simpl_prediction)/config/simpl.param.yaml]
- input/objects [default: /input/objects]
- input/vector_map [default: /map/vector_map]
- output/objects [default: /output/objects]
- build_only [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_simpl_prediction at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.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-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kotaro Uetake
Authors
autoware_simpl_prediction
Purpose
The autoware_simpl_prediction
is used for 3D object motion prediction based on ML-based model called SIMPL.
Inner-workings / Algorithms
The implementation bases on SIMPL [1] [2] work. It uses TensorRT library for data process and network interface.
Workflow overview of this node is as follows:
flowchart TD
In1@{ shape: card, label: "~/input/objects" } -- autoware_perception_msgs::msg::TrackedObjects --> Callback1@{ shape: rect, label: "SimplNode::callback(...)" }
Callback1 --> B@{ shape: stadium, label: "Start measuring Processing Time" }
In2@{ shape: card, label: "/localization/kinematic_state" } -- nav_msgs::msg::Odometry --> C
B --> C@{ shape: subproc, label: "SimplNode::subscribe_ego(...)" }
In3@{ shape: card, label: "~/input/vector_map" } -- "autoware_map_msgs::msg::LaneletMapBin" --> Callback2@{ shape: rect, label: "SimplNode::on_map(...)" }
Callback2 --> X@{ shape: subproc, label: "LaneletConverter::convert(...)" }
C -->|✅| D@{ shape: subproc, label: "LaneletConverter::polylines()" }
C -->|❌| Z1@{ shape: curv-trap, label: "⚠️WARNING: Failed to subscribe ego" } --> END@{ shape: stadium }
D -->|✅| E@{ shape: subproc, label: "SimplNode::update_history(...)" }
D -->|❌| Z2@{ shape: curv-trap, label: "⚠️WARNING: No map points" } --> END
E --> F@{ shape: subproc, label: "PreProcessor::process(...)" }
F --> G@{ shape: subproc, label: "TrtSimpl::do_inference(...)" }
G -->|✅| I@{ shape: subproc, label: "PostProcessor::process(...)" } --> J@{ shape: stadium, label: "Publish Predicted Objects" }
G -->|❌| Z3@{ shape: curv-trap, label: "⚠️ERROR: Inference failed" } --> H
J -- autoware_perception_msgs::msg::PredictedObjects --> Out1@{ shape: card, label: "~/output/objects" }
J --> H@{ shape: stadium, label: "Publish Processing & Cyclic Time" }
H -- autoware_internal_debug_msgs::msg::Float64Stamped --> Out3@{ shape: card, label: "~/debug/cyclic_time_ms" }
H -- autoware_internal_debug_msgs::msg::Float64Stamped --> Out2@{ shape: card, label: "~/debug/processing_time_ms" }
H --> END
Inputs Representation
- $X_A\in R^{N\times D_{agent}\times T_{past}}$: Agent histories input.
- $X_M\in R^{K\times P\times D_{map}}$: Map points input.
- $X_{RPE}\in R^{(N+K)\times (N+K)\times D_{rpe}}$: Relative pose encoding input.
Outputs Representation
- $P_{score}\in R^{N\times M}$: Predicted scores for each agent and mode.
- $P_{trajectory}\in R^{N\times M\times T_{future}\times D_{trajectory}}$: Predicted trajectories for each agent and mode.
- Where, $D_{trajectory}$ is $(x, y, v_x, v_y)$ in the agent local coordinate frame.
Inputs / Outputs
Inputs
Name | Type | Description |
---|---|---|
~/input/objects |
autoware_perception_msgs::msg::TrackedObjects |
Input tracked agents. |
~/input/vector_map |
autoware_map_msgs::msg::LaneletMapBin |
Input vector map. |
/localization/kinematic_state |
nav_msgs::msg::Odometry |
Ego vehicle odometry. |
Outputs
Name | Type | Description |
---|---|---|
~/output/objects |
autoware_perception_msgs::msg::PredictedObjects |
Predicted agents’ motion. |
Debug Outputs
Name | Type | Description |
---|---|---|
~/debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Cyclic time [ms]. |
~/debug/processing_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Processing time [ms]. |
Parameters
{{ json_to_markdown(“perception/autoware_simpl/schema/simpl.scheme.json”) }}
[WIP] Model Training / Deployment
Now we are preparing a library to train and deploy SIMPL and other ML models featuring motion prediction tasks.
Testing
Unit tests are provided and can be run with:
colcon test --packages-select autoware_simpl
colcon test-result --all
To print the test’s details with while the tests are being run, use the --event-handlers console_cohesion+
option to print the details directly to the console:
```bash colcon test –event-handlers console_cohesion+ –packages-select autoware_simpl
File truncated at 100 lines see the full file
Changelog for package autoware_simpl_prediction
0.47.0 (2025-08-11)
- feat(autoware_simpl): add ML-based motion prediction node (#10824)
- Contributors: Kotaro Uetake
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/simpl.launch.xml
-
- data_path [default: $(env HOME)/autoware_data/simpl_prediction]
- param_path [default: $(find-pkg-share autoware_simpl_prediction)/config/simpl.param.yaml]
- input/objects [default: /input/objects]
- input/vector_map [default: /map/vector_map]
- output/objects [default: /output/objects]
- build_only [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_simpl_prediction at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.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-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kotaro Uetake
Authors
autoware_simpl_prediction
Purpose
The autoware_simpl_prediction
is used for 3D object motion prediction based on ML-based model called SIMPL.
Inner-workings / Algorithms
The implementation bases on SIMPL [1] [2] work. It uses TensorRT library for data process and network interface.
Workflow overview of this node is as follows:
flowchart TD
In1@{ shape: card, label: "~/input/objects" } -- autoware_perception_msgs::msg::TrackedObjects --> Callback1@{ shape: rect, label: "SimplNode::callback(...)" }
Callback1 --> B@{ shape: stadium, label: "Start measuring Processing Time" }
In2@{ shape: card, label: "/localization/kinematic_state" } -- nav_msgs::msg::Odometry --> C
B --> C@{ shape: subproc, label: "SimplNode::subscribe_ego(...)" }
In3@{ shape: card, label: "~/input/vector_map" } -- "autoware_map_msgs::msg::LaneletMapBin" --> Callback2@{ shape: rect, label: "SimplNode::on_map(...)" }
Callback2 --> X@{ shape: subproc, label: "LaneletConverter::convert(...)" }
C -->|✅| D@{ shape: subproc, label: "LaneletConverter::polylines()" }
C -->|❌| Z1@{ shape: curv-trap, label: "⚠️WARNING: Failed to subscribe ego" } --> END@{ shape: stadium }
D -->|✅| E@{ shape: subproc, label: "SimplNode::update_history(...)" }
D -->|❌| Z2@{ shape: curv-trap, label: "⚠️WARNING: No map points" } --> END
E --> F@{ shape: subproc, label: "PreProcessor::process(...)" }
F --> G@{ shape: subproc, label: "TrtSimpl::do_inference(...)" }
G -->|✅| I@{ shape: subproc, label: "PostProcessor::process(...)" } --> J@{ shape: stadium, label: "Publish Predicted Objects" }
G -->|❌| Z3@{ shape: curv-trap, label: "⚠️ERROR: Inference failed" } --> H
J -- autoware_perception_msgs::msg::PredictedObjects --> Out1@{ shape: card, label: "~/output/objects" }
J --> H@{ shape: stadium, label: "Publish Processing & Cyclic Time" }
H -- autoware_internal_debug_msgs::msg::Float64Stamped --> Out3@{ shape: card, label: "~/debug/cyclic_time_ms" }
H -- autoware_internal_debug_msgs::msg::Float64Stamped --> Out2@{ shape: card, label: "~/debug/processing_time_ms" }
H --> END
Inputs Representation
- $X_A\in R^{N\times D_{agent}\times T_{past}}$: Agent histories input.
- $X_M\in R^{K\times P\times D_{map}}$: Map points input.
- $X_{RPE}\in R^{(N+K)\times (N+K)\times D_{rpe}}$: Relative pose encoding input.
Outputs Representation
- $P_{score}\in R^{N\times M}$: Predicted scores for each agent and mode.
- $P_{trajectory}\in R^{N\times M\times T_{future}\times D_{trajectory}}$: Predicted trajectories for each agent and mode.
- Where, $D_{trajectory}$ is $(x, y, v_x, v_y)$ in the agent local coordinate frame.
Inputs / Outputs
Inputs
Name | Type | Description |
---|---|---|
~/input/objects |
autoware_perception_msgs::msg::TrackedObjects |
Input tracked agents. |
~/input/vector_map |
autoware_map_msgs::msg::LaneletMapBin |
Input vector map. |
/localization/kinematic_state |
nav_msgs::msg::Odometry |
Ego vehicle odometry. |
Outputs
Name | Type | Description |
---|---|---|
~/output/objects |
autoware_perception_msgs::msg::PredictedObjects |
Predicted agents’ motion. |
Debug Outputs
Name | Type | Description |
---|---|---|
~/debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Cyclic time [ms]. |
~/debug/processing_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Processing time [ms]. |
Parameters
{{ json_to_markdown(“perception/autoware_simpl/schema/simpl.scheme.json”) }}
[WIP] Model Training / Deployment
Now we are preparing a library to train and deploy SIMPL and other ML models featuring motion prediction tasks.
Testing
Unit tests are provided and can be run with:
colcon test --packages-select autoware_simpl
colcon test-result --all
To print the test’s details with while the tests are being run, use the --event-handlers console_cohesion+
option to print the details directly to the console:
```bash colcon test –event-handlers console_cohesion+ –packages-select autoware_simpl
File truncated at 100 lines see the full file
Changelog for package autoware_simpl_prediction
0.47.0 (2025-08-11)
- feat(autoware_simpl): add ML-based motion prediction node (#10824)
- Contributors: Kotaro Uetake
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/simpl.launch.xml
-
- data_path [default: $(env HOME)/autoware_data/simpl_prediction]
- param_path [default: $(find-pkg-share autoware_simpl_prediction)/config/simpl.param.yaml]
- input/objects [default: /input/objects]
- input/vector_map [default: /map/vector_map]
- output/objects [default: /output/objects]
- build_only [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_simpl_prediction at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.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-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kotaro Uetake
Authors
autoware_simpl_prediction
Purpose
The autoware_simpl_prediction
is used for 3D object motion prediction based on ML-based model called SIMPL.
Inner-workings / Algorithms
The implementation bases on SIMPL [1] [2] work. It uses TensorRT library for data process and network interface.
Workflow overview of this node is as follows:
flowchart TD
In1@{ shape: card, label: "~/input/objects" } -- autoware_perception_msgs::msg::TrackedObjects --> Callback1@{ shape: rect, label: "SimplNode::callback(...)" }
Callback1 --> B@{ shape: stadium, label: "Start measuring Processing Time" }
In2@{ shape: card, label: "/localization/kinematic_state" } -- nav_msgs::msg::Odometry --> C
B --> C@{ shape: subproc, label: "SimplNode::subscribe_ego(...)" }
In3@{ shape: card, label: "~/input/vector_map" } -- "autoware_map_msgs::msg::LaneletMapBin" --> Callback2@{ shape: rect, label: "SimplNode::on_map(...)" }
Callback2 --> X@{ shape: subproc, label: "LaneletConverter::convert(...)" }
C -->|✅| D@{ shape: subproc, label: "LaneletConverter::polylines()" }
C -->|❌| Z1@{ shape: curv-trap, label: "⚠️WARNING: Failed to subscribe ego" } --> END@{ shape: stadium }
D -->|✅| E@{ shape: subproc, label: "SimplNode::update_history(...)" }
D -->|❌| Z2@{ shape: curv-trap, label: "⚠️WARNING: No map points" } --> END
E --> F@{ shape: subproc, label: "PreProcessor::process(...)" }
F --> G@{ shape: subproc, label: "TrtSimpl::do_inference(...)" }
G -->|✅| I@{ shape: subproc, label: "PostProcessor::process(...)" } --> J@{ shape: stadium, label: "Publish Predicted Objects" }
G -->|❌| Z3@{ shape: curv-trap, label: "⚠️ERROR: Inference failed" } --> H
J -- autoware_perception_msgs::msg::PredictedObjects --> Out1@{ shape: card, label: "~/output/objects" }
J --> H@{ shape: stadium, label: "Publish Processing & Cyclic Time" }
H -- autoware_internal_debug_msgs::msg::Float64Stamped --> Out3@{ shape: card, label: "~/debug/cyclic_time_ms" }
H -- autoware_internal_debug_msgs::msg::Float64Stamped --> Out2@{ shape: card, label: "~/debug/processing_time_ms" }
H --> END
Inputs Representation
- $X_A\in R^{N\times D_{agent}\times T_{past}}$: Agent histories input.
- $X_M\in R^{K\times P\times D_{map}}$: Map points input.
- $X_{RPE}\in R^{(N+K)\times (N+K)\times D_{rpe}}$: Relative pose encoding input.
Outputs Representation
- $P_{score}\in R^{N\times M}$: Predicted scores for each agent and mode.
- $P_{trajectory}\in R^{N\times M\times T_{future}\times D_{trajectory}}$: Predicted trajectories for each agent and mode.
- Where, $D_{trajectory}$ is $(x, y, v_x, v_y)$ in the agent local coordinate frame.
Inputs / Outputs
Inputs
Name | Type | Description |
---|---|---|
~/input/objects |
autoware_perception_msgs::msg::TrackedObjects |
Input tracked agents. |
~/input/vector_map |
autoware_map_msgs::msg::LaneletMapBin |
Input vector map. |
/localization/kinematic_state |
nav_msgs::msg::Odometry |
Ego vehicle odometry. |
Outputs
Name | Type | Description |
---|---|---|
~/output/objects |
autoware_perception_msgs::msg::PredictedObjects |
Predicted agents’ motion. |
Debug Outputs
Name | Type | Description |
---|---|---|
~/debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Cyclic time [ms]. |
~/debug/processing_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Processing time [ms]. |
Parameters
{{ json_to_markdown(“perception/autoware_simpl/schema/simpl.scheme.json”) }}
[WIP] Model Training / Deployment
Now we are preparing a library to train and deploy SIMPL and other ML models featuring motion prediction tasks.
Testing
Unit tests are provided and can be run with:
colcon test --packages-select autoware_simpl
colcon test-result --all
To print the test’s details with while the tests are being run, use the --event-handlers console_cohesion+
option to print the details directly to the console:
```bash colcon test –event-handlers console_cohesion+ –packages-select autoware_simpl
File truncated at 100 lines see the full file
Changelog for package autoware_simpl_prediction
0.47.0 (2025-08-11)
- feat(autoware_simpl): add ML-based motion prediction node (#10824)
- Contributors: Kotaro Uetake
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/simpl.launch.xml
-
- data_path [default: $(env HOME)/autoware_data/simpl_prediction]
- param_path [default: $(find-pkg-share autoware_simpl_prediction)/config/simpl.param.yaml]
- input/objects [default: /input/objects]
- input/vector_map [default: /map/vector_map]
- output/objects [default: /output/objects]
- build_only [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_simpl_prediction at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.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-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kotaro Uetake
Authors
autoware_simpl_prediction
Purpose
The autoware_simpl_prediction
is used for 3D object motion prediction based on ML-based model called SIMPL.
Inner-workings / Algorithms
The implementation bases on SIMPL [1] [2] work. It uses TensorRT library for data process and network interface.
Workflow overview of this node is as follows:
flowchart TD
In1@{ shape: card, label: "~/input/objects" } -- autoware_perception_msgs::msg::TrackedObjects --> Callback1@{ shape: rect, label: "SimplNode::callback(...)" }
Callback1 --> B@{ shape: stadium, label: "Start measuring Processing Time" }
In2@{ shape: card, label: "/localization/kinematic_state" } -- nav_msgs::msg::Odometry --> C
B --> C@{ shape: subproc, label: "SimplNode::subscribe_ego(...)" }
In3@{ shape: card, label: "~/input/vector_map" } -- "autoware_map_msgs::msg::LaneletMapBin" --> Callback2@{ shape: rect, label: "SimplNode::on_map(...)" }
Callback2 --> X@{ shape: subproc, label: "LaneletConverter::convert(...)" }
C -->|✅| D@{ shape: subproc, label: "LaneletConverter::polylines()" }
C -->|❌| Z1@{ shape: curv-trap, label: "⚠️WARNING: Failed to subscribe ego" } --> END@{ shape: stadium }
D -->|✅| E@{ shape: subproc, label: "SimplNode::update_history(...)" }
D -->|❌| Z2@{ shape: curv-trap, label: "⚠️WARNING: No map points" } --> END
E --> F@{ shape: subproc, label: "PreProcessor::process(...)" }
F --> G@{ shape: subproc, label: "TrtSimpl::do_inference(...)" }
G -->|✅| I@{ shape: subproc, label: "PostProcessor::process(...)" } --> J@{ shape: stadium, label: "Publish Predicted Objects" }
G -->|❌| Z3@{ shape: curv-trap, label: "⚠️ERROR: Inference failed" } --> H
J -- autoware_perception_msgs::msg::PredictedObjects --> Out1@{ shape: card, label: "~/output/objects" }
J --> H@{ shape: stadium, label: "Publish Processing & Cyclic Time" }
H -- autoware_internal_debug_msgs::msg::Float64Stamped --> Out3@{ shape: card, label: "~/debug/cyclic_time_ms" }
H -- autoware_internal_debug_msgs::msg::Float64Stamped --> Out2@{ shape: card, label: "~/debug/processing_time_ms" }
H --> END
Inputs Representation
- $X_A\in R^{N\times D_{agent}\times T_{past}}$: Agent histories input.
- $X_M\in R^{K\times P\times D_{map}}$: Map points input.
- $X_{RPE}\in R^{(N+K)\times (N+K)\times D_{rpe}}$: Relative pose encoding input.
Outputs Representation
- $P_{score}\in R^{N\times M}$: Predicted scores for each agent and mode.
- $P_{trajectory}\in R^{N\times M\times T_{future}\times D_{trajectory}}$: Predicted trajectories for each agent and mode.
- Where, $D_{trajectory}$ is $(x, y, v_x, v_y)$ in the agent local coordinate frame.
Inputs / Outputs
Inputs
Name | Type | Description |
---|---|---|
~/input/objects |
autoware_perception_msgs::msg::TrackedObjects |
Input tracked agents. |
~/input/vector_map |
autoware_map_msgs::msg::LaneletMapBin |
Input vector map. |
/localization/kinematic_state |
nav_msgs::msg::Odometry |
Ego vehicle odometry. |
Outputs
Name | Type | Description |
---|---|---|
~/output/objects |
autoware_perception_msgs::msg::PredictedObjects |
Predicted agents’ motion. |
Debug Outputs
Name | Type | Description |
---|---|---|
~/debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Cyclic time [ms]. |
~/debug/processing_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Processing time [ms]. |
Parameters
{{ json_to_markdown(“perception/autoware_simpl/schema/simpl.scheme.json”) }}
[WIP] Model Training / Deployment
Now we are preparing a library to train and deploy SIMPL and other ML models featuring motion prediction tasks.
Testing
Unit tests are provided and can be run with:
colcon test --packages-select autoware_simpl
colcon test-result --all
To print the test’s details with while the tests are being run, use the --event-handlers console_cohesion+
option to print the details directly to the console:
```bash colcon test –event-handlers console_cohesion+ –packages-select autoware_simpl
File truncated at 100 lines see the full file
Changelog for package autoware_simpl_prediction
0.47.0 (2025-08-11)
- feat(autoware_simpl): add ML-based motion prediction node (#10824)
- Contributors: Kotaro Uetake
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/simpl.launch.xml
-
- data_path [default: $(env HOME)/autoware_data/simpl_prediction]
- param_path [default: $(find-pkg-share autoware_simpl_prediction)/config/simpl.param.yaml]
- input/objects [default: /input/objects]
- input/vector_map [default: /map/vector_map]
- output/objects [default: /output/objects]
- build_only [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_simpl_prediction at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.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-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kotaro Uetake
Authors
autoware_simpl_prediction
Purpose
The autoware_simpl_prediction
is used for 3D object motion prediction based on ML-based model called SIMPL.
Inner-workings / Algorithms
The implementation bases on SIMPL [1] [2] work. It uses TensorRT library for data process and network interface.
Workflow overview of this node is as follows:
flowchart TD
In1@{ shape: card, label: "~/input/objects" } -- autoware_perception_msgs::msg::TrackedObjects --> Callback1@{ shape: rect, label: "SimplNode::callback(...)" }
Callback1 --> B@{ shape: stadium, label: "Start measuring Processing Time" }
In2@{ shape: card, label: "/localization/kinematic_state" } -- nav_msgs::msg::Odometry --> C
B --> C@{ shape: subproc, label: "SimplNode::subscribe_ego(...)" }
In3@{ shape: card, label: "~/input/vector_map" } -- "autoware_map_msgs::msg::LaneletMapBin" --> Callback2@{ shape: rect, label: "SimplNode::on_map(...)" }
Callback2 --> X@{ shape: subproc, label: "LaneletConverter::convert(...)" }
C -->|✅| D@{ shape: subproc, label: "LaneletConverter::polylines()" }
C -->|❌| Z1@{ shape: curv-trap, label: "⚠️WARNING: Failed to subscribe ego" } --> END@{ shape: stadium }
D -->|✅| E@{ shape: subproc, label: "SimplNode::update_history(...)" }
D -->|❌| Z2@{ shape: curv-trap, label: "⚠️WARNING: No map points" } --> END
E --> F@{ shape: subproc, label: "PreProcessor::process(...)" }
F --> G@{ shape: subproc, label: "TrtSimpl::do_inference(...)" }
G -->|✅| I@{ shape: subproc, label: "PostProcessor::process(...)" } --> J@{ shape: stadium, label: "Publish Predicted Objects" }
G -->|❌| Z3@{ shape: curv-trap, label: "⚠️ERROR: Inference failed" } --> H
J -- autoware_perception_msgs::msg::PredictedObjects --> Out1@{ shape: card, label: "~/output/objects" }
J --> H@{ shape: stadium, label: "Publish Processing & Cyclic Time" }
H -- autoware_internal_debug_msgs::msg::Float64Stamped --> Out3@{ shape: card, label: "~/debug/cyclic_time_ms" }
H -- autoware_internal_debug_msgs::msg::Float64Stamped --> Out2@{ shape: card, label: "~/debug/processing_time_ms" }
H --> END
Inputs Representation
- $X_A\in R^{N\times D_{agent}\times T_{past}}$: Agent histories input.
- $X_M\in R^{K\times P\times D_{map}}$: Map points input.
- $X_{RPE}\in R^{(N+K)\times (N+K)\times D_{rpe}}$: Relative pose encoding input.
Outputs Representation
- $P_{score}\in R^{N\times M}$: Predicted scores for each agent and mode.
- $P_{trajectory}\in R^{N\times M\times T_{future}\times D_{trajectory}}$: Predicted trajectories for each agent and mode.
- Where, $D_{trajectory}$ is $(x, y, v_x, v_y)$ in the agent local coordinate frame.
Inputs / Outputs
Inputs
Name | Type | Description |
---|---|---|
~/input/objects |
autoware_perception_msgs::msg::TrackedObjects |
Input tracked agents. |
~/input/vector_map |
autoware_map_msgs::msg::LaneletMapBin |
Input vector map. |
/localization/kinematic_state |
nav_msgs::msg::Odometry |
Ego vehicle odometry. |
Outputs
Name | Type | Description |
---|---|---|
~/output/objects |
autoware_perception_msgs::msg::PredictedObjects |
Predicted agents’ motion. |
Debug Outputs
Name | Type | Description |
---|---|---|
~/debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Cyclic time [ms]. |
~/debug/processing_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Processing time [ms]. |
Parameters
{{ json_to_markdown(“perception/autoware_simpl/schema/simpl.scheme.json”) }}
[WIP] Model Training / Deployment
Now we are preparing a library to train and deploy SIMPL and other ML models featuring motion prediction tasks.
Testing
Unit tests are provided and can be run with:
colcon test --packages-select autoware_simpl
colcon test-result --all
To print the test’s details with while the tests are being run, use the --event-handlers console_cohesion+
option to print the details directly to the console:
```bash colcon test –event-handlers console_cohesion+ –packages-select autoware_simpl
File truncated at 100 lines see the full file
Changelog for package autoware_simpl_prediction
0.47.0 (2025-08-11)
- feat(autoware_simpl): add ML-based motion prediction node (#10824)
- Contributors: Kotaro Uetake
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/simpl.launch.xml
-
- data_path [default: $(env HOME)/autoware_data/simpl_prediction]
- param_path [default: $(find-pkg-share autoware_simpl_prediction)/config/simpl.param.yaml]
- input/objects [default: /input/objects]
- input/vector_map [default: /map/vector_map]
- output/objects [default: /output/objects]
- build_only [default: false]