Package Summary
| Version | 0.53.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 | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kotaro Uetake
- Yoshi Ri
- Taekjin Lee
Authors
autoware_predicted_path_postprocessor
Purpose
The autoware_predicted_path_postprocessor performs post-processing on predicted paths.
Inner-workings / Algorithms
The following processors are supported:
-
RefineBySpeed
- Refine the paths of objects based on their current speed.
-
RefinePenetrationByStaticObjects
- Refine the penetrated paths of objects based on the other static objects.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/objects |
autoware_perception_msgs::msg::PredictedObjects |
Predicted objects |
~/input/lanelet_map |
autoware_msgs::msg::LaneletMapBin |
[OPTIONAL] Lanelet map |
Output
| Name | Type | Description |
|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::PredictedObjects |
Processed objects |
Quick Start
Launch ROS 2 Node
To use this package, you can launch it with the following command:
ros2 launch autoware_predicted_path_postprocessor predicted_path_postprocessor.launch.xml
Leverage Processor in Your Codebase
You can leverage the processor in your codebase by including the appropriate headers and using the ComposableProcessor class:
#include <autoware/predicted_path_postprocessor/processor/composable.hpp>
#include <autoware/predicted_path_postprocessor/processor/interface.hpp>
class SomeNode final : public rclcpp::Node
{
public:
explicit SomeNode(const rclcpp::NodeOptions& options)
: Node("some_node", options)
{
// Initialize your node here
auto processors = declare_parameter<std::vector<std::string>>("processors");
context_ = std::make_unique<autoware::predicted_path_postprocessor::processor::Context>();
processor_ = std::make_unique<autoware::predicted_path_postprocessor::processor::ComposableProcessor>(this, processors);
}
private:
void callback(const autoware_perception_msgs::msg::PredictedObjects::ConstSharedPtr & msg)
{
auto objects = std::make_shared<autoware_perception_msgs::msg::PredictedObjects>(*msg);
// update the context with the predicted objects
context_->update(objects);
// process the predicted objects using the processor
const auto result = processor_->process(objects, context_);
if (result) {
const auto processed_objects = result.ok();
// do something with the processed objects
// ...
} else {
RCLCPP_ERROR(get_logger(), "Failed to process predicted objects");
}
}
std::unique_ptr<autoware::predicted_path_postprocessor::processor::Context> context_;
std::unique_ptr<autoware::predicted_path_postprocessor::processor::ComposableProcessor> processor_;
};
How to Add New Processor
Processors in this package should follow a structured naming convention as below:
| Class Name | String Identifier | Roles |
|---|---|---|
RefineBy** |
refine_by_** |
Modify or improve existing paths based on specific criteria |
FilterBy** |
filter_by_** |
Remove or exclude paths that don’t meet specific criteria |
As an example, let’s see how to add a new processor by using a processor called FilterBySomething.
- Create a new processor class that inherits from
ProcessorInterface:
```cpp class FilterBySomething final : public ProcessorInterface {
File truncated at 100 lines see the full file
Changelog for package autoware_predicted_path_postprocessor
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
chore(pre-commit): update clang-format to v22.1.5 (#13126)
- chore(pre-commit): update clang-format to v22.1.5
* style(pre-commit): autofix ---------
-
fix(pre-commit): update pre-commit-hooks-ros to v0.10.3 and adapt include guards (#13083)
- chore: sync files
* fix(pre-commit): adapt include guards to pre-commit-hooks-ros v0.10.3 ros-include-guard v0.10.3 only recognises an include guard when #endif is the last non-empty line of the file, so that feature test macros are no longer mistaken for guards. 29 headers failed that check. 25 headers wrap the guard in "// clang-format off" / "// clang-format on" because the #endif comment plus its // NOLINT exceeds the 100 column limit. Drop only the trailing "on" marker; the "off" marker then runs to end of file and still protects the line from being wrapped. 3 CUDA headers ended with "/* INDENT-ON /". Move it above the #endif so it stays paired with the "/ INDENT-OFF */" near the top of the file. autoware_behavior_path_planner/test/input.hpp closed its guard immediately after opening it, leaving the entire body unguarded. Move the #endif to the end. Also hold clang-format at v21.1.8. clang-format 22 migrates "AlignAfterOpenBracket: AlwaysBreak" to "BreakAfterOpenBracketIf: true", which forces a break after every "if (" whose condition does not fit on one line and reformats 88 files. ---------Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>>
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, awf-autoware-bot[bot]
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(predicted_path_postprocessor): add a processor to refine penetration by static objects (#11672)
- feat: add processor to refine penetration for static objects
- feat: add a utility function to build interpolation function
- feat: update builder logic, config and schema file
- fix: try-catch exception while converting obstacle to polygon
- test: add unit testings for RefinePenetrationByStaticObjects
- docs: update README
- feat: update find_collision() to consider OBB collision detection
- fix: resolve shadow variable
- chore: clean up includes
* chore: fix cpplint error ---------
-
Contributors: Kotaro Uetake, github-actions
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- fix: add missing ament_index_cpp dependency (#11875)
- Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(autoware_lanelet2_utils): replace from/toBinMsg (Sensing, Visualization and Perception Component) (#11785)
- perception component toBinMsg replacement
- visualization component fromBinMsg replacement
- sensing component fromBinMsg replacement
* perception component fromBinMsg replacement ---------
-
Contributors: Ryohsuke Mitsudome, Sarun MUKDAPITAK
0.48.0 (2025-11-18)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/predicted_path_postprocessor.launch.xml
-
- input/objects [default: /input/objects]
- input/lanelet_map [default: /input/lanelet_map]
- output/objects [default: /output/objects]
- file/parameter [default: $(find-pkg-share autoware_predicted_path_postprocessor)/config/predicted_path_postprocessor.param.yaml]
- debug [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_predicted_path_postprocessor at Robotics Stack Exchange
Package Summary
| Version | 0.53.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 | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kotaro Uetake
- Yoshi Ri
- Taekjin Lee
Authors
autoware_predicted_path_postprocessor
Purpose
The autoware_predicted_path_postprocessor performs post-processing on predicted paths.
Inner-workings / Algorithms
The following processors are supported:
-
RefineBySpeed
- Refine the paths of objects based on their current speed.
-
RefinePenetrationByStaticObjects
- Refine the penetrated paths of objects based on the other static objects.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/objects |
autoware_perception_msgs::msg::PredictedObjects |
Predicted objects |
~/input/lanelet_map |
autoware_msgs::msg::LaneletMapBin |
[OPTIONAL] Lanelet map |
Output
| Name | Type | Description |
|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::PredictedObjects |
Processed objects |
Quick Start
Launch ROS 2 Node
To use this package, you can launch it with the following command:
ros2 launch autoware_predicted_path_postprocessor predicted_path_postprocessor.launch.xml
Leverage Processor in Your Codebase
You can leverage the processor in your codebase by including the appropriate headers and using the ComposableProcessor class:
#include <autoware/predicted_path_postprocessor/processor/composable.hpp>
#include <autoware/predicted_path_postprocessor/processor/interface.hpp>
class SomeNode final : public rclcpp::Node
{
public:
explicit SomeNode(const rclcpp::NodeOptions& options)
: Node("some_node", options)
{
// Initialize your node here
auto processors = declare_parameter<std::vector<std::string>>("processors");
context_ = std::make_unique<autoware::predicted_path_postprocessor::processor::Context>();
processor_ = std::make_unique<autoware::predicted_path_postprocessor::processor::ComposableProcessor>(this, processors);
}
private:
void callback(const autoware_perception_msgs::msg::PredictedObjects::ConstSharedPtr & msg)
{
auto objects = std::make_shared<autoware_perception_msgs::msg::PredictedObjects>(*msg);
// update the context with the predicted objects
context_->update(objects);
// process the predicted objects using the processor
const auto result = processor_->process(objects, context_);
if (result) {
const auto processed_objects = result.ok();
// do something with the processed objects
// ...
} else {
RCLCPP_ERROR(get_logger(), "Failed to process predicted objects");
}
}
std::unique_ptr<autoware::predicted_path_postprocessor::processor::Context> context_;
std::unique_ptr<autoware::predicted_path_postprocessor::processor::ComposableProcessor> processor_;
};
How to Add New Processor
Processors in this package should follow a structured naming convention as below:
| Class Name | String Identifier | Roles |
|---|---|---|
RefineBy** |
refine_by_** |
Modify or improve existing paths based on specific criteria |
FilterBy** |
filter_by_** |
Remove or exclude paths that don’t meet specific criteria |
As an example, let’s see how to add a new processor by using a processor called FilterBySomething.
- Create a new processor class that inherits from
ProcessorInterface:
```cpp class FilterBySomething final : public ProcessorInterface {
File truncated at 100 lines see the full file
Changelog for package autoware_predicted_path_postprocessor
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
chore(pre-commit): update clang-format to v22.1.5 (#13126)
- chore(pre-commit): update clang-format to v22.1.5
* style(pre-commit): autofix ---------
-
fix(pre-commit): update pre-commit-hooks-ros to v0.10.3 and adapt include guards (#13083)
- chore: sync files
* fix(pre-commit): adapt include guards to pre-commit-hooks-ros v0.10.3 ros-include-guard v0.10.3 only recognises an include guard when #endif is the last non-empty line of the file, so that feature test macros are no longer mistaken for guards. 29 headers failed that check. 25 headers wrap the guard in "// clang-format off" / "// clang-format on" because the #endif comment plus its // NOLINT exceeds the 100 column limit. Drop only the trailing "on" marker; the "off" marker then runs to end of file and still protects the line from being wrapped. 3 CUDA headers ended with "/* INDENT-ON /". Move it above the #endif so it stays paired with the "/ INDENT-OFF */" near the top of the file. autoware_behavior_path_planner/test/input.hpp closed its guard immediately after opening it, leaving the entire body unguarded. Move the #endif to the end. Also hold clang-format at v21.1.8. clang-format 22 migrates "AlignAfterOpenBracket: AlwaysBreak" to "BreakAfterOpenBracketIf: true", which forces a break after every "if (" whose condition does not fit on one line and reformats 88 files. ---------Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>>
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, awf-autoware-bot[bot]
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(predicted_path_postprocessor): add a processor to refine penetration by static objects (#11672)
- feat: add processor to refine penetration for static objects
- feat: add a utility function to build interpolation function
- feat: update builder logic, config and schema file
- fix: try-catch exception while converting obstacle to polygon
- test: add unit testings for RefinePenetrationByStaticObjects
- docs: update README
- feat: update find_collision() to consider OBB collision detection
- fix: resolve shadow variable
- chore: clean up includes
* chore: fix cpplint error ---------
-
Contributors: Kotaro Uetake, github-actions
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- fix: add missing ament_index_cpp dependency (#11875)
- Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(autoware_lanelet2_utils): replace from/toBinMsg (Sensing, Visualization and Perception Component) (#11785)
- perception component toBinMsg replacement
- visualization component fromBinMsg replacement
- sensing component fromBinMsg replacement
* perception component fromBinMsg replacement ---------
-
Contributors: Ryohsuke Mitsudome, Sarun MUKDAPITAK
0.48.0 (2025-11-18)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/predicted_path_postprocessor.launch.xml
-
- input/objects [default: /input/objects]
- input/lanelet_map [default: /input/lanelet_map]
- output/objects [default: /output/objects]
- file/parameter [default: $(find-pkg-share autoware_predicted_path_postprocessor)/config/predicted_path_postprocessor.param.yaml]
- debug [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_predicted_path_postprocessor at Robotics Stack Exchange
Package Summary
| Version | 0.53.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 | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kotaro Uetake
- Yoshi Ri
- Taekjin Lee
Authors
autoware_predicted_path_postprocessor
Purpose
The autoware_predicted_path_postprocessor performs post-processing on predicted paths.
Inner-workings / Algorithms
The following processors are supported:
-
RefineBySpeed
- Refine the paths of objects based on their current speed.
-
RefinePenetrationByStaticObjects
- Refine the penetrated paths of objects based on the other static objects.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/objects |
autoware_perception_msgs::msg::PredictedObjects |
Predicted objects |
~/input/lanelet_map |
autoware_msgs::msg::LaneletMapBin |
[OPTIONAL] Lanelet map |
Output
| Name | Type | Description |
|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::PredictedObjects |
Processed objects |
Quick Start
Launch ROS 2 Node
To use this package, you can launch it with the following command:
ros2 launch autoware_predicted_path_postprocessor predicted_path_postprocessor.launch.xml
Leverage Processor in Your Codebase
You can leverage the processor in your codebase by including the appropriate headers and using the ComposableProcessor class:
#include <autoware/predicted_path_postprocessor/processor/composable.hpp>
#include <autoware/predicted_path_postprocessor/processor/interface.hpp>
class SomeNode final : public rclcpp::Node
{
public:
explicit SomeNode(const rclcpp::NodeOptions& options)
: Node("some_node", options)
{
// Initialize your node here
auto processors = declare_parameter<std::vector<std::string>>("processors");
context_ = std::make_unique<autoware::predicted_path_postprocessor::processor::Context>();
processor_ = std::make_unique<autoware::predicted_path_postprocessor::processor::ComposableProcessor>(this, processors);
}
private:
void callback(const autoware_perception_msgs::msg::PredictedObjects::ConstSharedPtr & msg)
{
auto objects = std::make_shared<autoware_perception_msgs::msg::PredictedObjects>(*msg);
// update the context with the predicted objects
context_->update(objects);
// process the predicted objects using the processor
const auto result = processor_->process(objects, context_);
if (result) {
const auto processed_objects = result.ok();
// do something with the processed objects
// ...
} else {
RCLCPP_ERROR(get_logger(), "Failed to process predicted objects");
}
}
std::unique_ptr<autoware::predicted_path_postprocessor::processor::Context> context_;
std::unique_ptr<autoware::predicted_path_postprocessor::processor::ComposableProcessor> processor_;
};
How to Add New Processor
Processors in this package should follow a structured naming convention as below:
| Class Name | String Identifier | Roles |
|---|---|---|
RefineBy** |
refine_by_** |
Modify or improve existing paths based on specific criteria |
FilterBy** |
filter_by_** |
Remove or exclude paths that don’t meet specific criteria |
As an example, let’s see how to add a new processor by using a processor called FilterBySomething.
- Create a new processor class that inherits from
ProcessorInterface:
```cpp class FilterBySomething final : public ProcessorInterface {
File truncated at 100 lines see the full file
Changelog for package autoware_predicted_path_postprocessor
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
chore(pre-commit): update clang-format to v22.1.5 (#13126)
- chore(pre-commit): update clang-format to v22.1.5
* style(pre-commit): autofix ---------
-
fix(pre-commit): update pre-commit-hooks-ros to v0.10.3 and adapt include guards (#13083)
- chore: sync files
* fix(pre-commit): adapt include guards to pre-commit-hooks-ros v0.10.3 ros-include-guard v0.10.3 only recognises an include guard when #endif is the last non-empty line of the file, so that feature test macros are no longer mistaken for guards. 29 headers failed that check. 25 headers wrap the guard in "// clang-format off" / "// clang-format on" because the #endif comment plus its // NOLINT exceeds the 100 column limit. Drop only the trailing "on" marker; the "off" marker then runs to end of file and still protects the line from being wrapped. 3 CUDA headers ended with "/* INDENT-ON /". Move it above the #endif so it stays paired with the "/ INDENT-OFF */" near the top of the file. autoware_behavior_path_planner/test/input.hpp closed its guard immediately after opening it, leaving the entire body unguarded. Move the #endif to the end. Also hold clang-format at v21.1.8. clang-format 22 migrates "AlignAfterOpenBracket: AlwaysBreak" to "BreakAfterOpenBracketIf: true", which forces a break after every "if (" whose condition does not fit on one line and reformats 88 files. ---------Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>>
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, awf-autoware-bot[bot]
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(predicted_path_postprocessor): add a processor to refine penetration by static objects (#11672)
- feat: add processor to refine penetration for static objects
- feat: add a utility function to build interpolation function
- feat: update builder logic, config and schema file
- fix: try-catch exception while converting obstacle to polygon
- test: add unit testings for RefinePenetrationByStaticObjects
- docs: update README
- feat: update find_collision() to consider OBB collision detection
- fix: resolve shadow variable
- chore: clean up includes
* chore: fix cpplint error ---------
-
Contributors: Kotaro Uetake, github-actions
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- fix: add missing ament_index_cpp dependency (#11875)
- Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(autoware_lanelet2_utils): replace from/toBinMsg (Sensing, Visualization and Perception Component) (#11785)
- perception component toBinMsg replacement
- visualization component fromBinMsg replacement
- sensing component fromBinMsg replacement
* perception component fromBinMsg replacement ---------
-
Contributors: Ryohsuke Mitsudome, Sarun MUKDAPITAK
0.48.0 (2025-11-18)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/predicted_path_postprocessor.launch.xml
-
- input/objects [default: /input/objects]
- input/lanelet_map [default: /input/lanelet_map]
- output/objects [default: /output/objects]
- file/parameter [default: $(find-pkg-share autoware_predicted_path_postprocessor)/config/predicted_path_postprocessor.param.yaml]
- debug [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_predicted_path_postprocessor at Robotics Stack Exchange
Package Summary
| Version | 0.53.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 | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kotaro Uetake
- Yoshi Ri
- Taekjin Lee
Authors
autoware_predicted_path_postprocessor
Purpose
The autoware_predicted_path_postprocessor performs post-processing on predicted paths.
Inner-workings / Algorithms
The following processors are supported:
-
RefineBySpeed
- Refine the paths of objects based on their current speed.
-
RefinePenetrationByStaticObjects
- Refine the penetrated paths of objects based on the other static objects.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/objects |
autoware_perception_msgs::msg::PredictedObjects |
Predicted objects |
~/input/lanelet_map |
autoware_msgs::msg::LaneletMapBin |
[OPTIONAL] Lanelet map |
Output
| Name | Type | Description |
|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::PredictedObjects |
Processed objects |
Quick Start
Launch ROS 2 Node
To use this package, you can launch it with the following command:
ros2 launch autoware_predicted_path_postprocessor predicted_path_postprocessor.launch.xml
Leverage Processor in Your Codebase
You can leverage the processor in your codebase by including the appropriate headers and using the ComposableProcessor class:
#include <autoware/predicted_path_postprocessor/processor/composable.hpp>
#include <autoware/predicted_path_postprocessor/processor/interface.hpp>
class SomeNode final : public rclcpp::Node
{
public:
explicit SomeNode(const rclcpp::NodeOptions& options)
: Node("some_node", options)
{
// Initialize your node here
auto processors = declare_parameter<std::vector<std::string>>("processors");
context_ = std::make_unique<autoware::predicted_path_postprocessor::processor::Context>();
processor_ = std::make_unique<autoware::predicted_path_postprocessor::processor::ComposableProcessor>(this, processors);
}
private:
void callback(const autoware_perception_msgs::msg::PredictedObjects::ConstSharedPtr & msg)
{
auto objects = std::make_shared<autoware_perception_msgs::msg::PredictedObjects>(*msg);
// update the context with the predicted objects
context_->update(objects);
// process the predicted objects using the processor
const auto result = processor_->process(objects, context_);
if (result) {
const auto processed_objects = result.ok();
// do something with the processed objects
// ...
} else {
RCLCPP_ERROR(get_logger(), "Failed to process predicted objects");
}
}
std::unique_ptr<autoware::predicted_path_postprocessor::processor::Context> context_;
std::unique_ptr<autoware::predicted_path_postprocessor::processor::ComposableProcessor> processor_;
};
How to Add New Processor
Processors in this package should follow a structured naming convention as below:
| Class Name | String Identifier | Roles |
|---|---|---|
RefineBy** |
refine_by_** |
Modify or improve existing paths based on specific criteria |
FilterBy** |
filter_by_** |
Remove or exclude paths that don’t meet specific criteria |
As an example, let’s see how to add a new processor by using a processor called FilterBySomething.
- Create a new processor class that inherits from
ProcessorInterface:
```cpp class FilterBySomething final : public ProcessorInterface {
File truncated at 100 lines see the full file
Changelog for package autoware_predicted_path_postprocessor
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
chore(pre-commit): update clang-format to v22.1.5 (#13126)
- chore(pre-commit): update clang-format to v22.1.5
* style(pre-commit): autofix ---------
-
fix(pre-commit): update pre-commit-hooks-ros to v0.10.3 and adapt include guards (#13083)
- chore: sync files
* fix(pre-commit): adapt include guards to pre-commit-hooks-ros v0.10.3 ros-include-guard v0.10.3 only recognises an include guard when #endif is the last non-empty line of the file, so that feature test macros are no longer mistaken for guards. 29 headers failed that check. 25 headers wrap the guard in "// clang-format off" / "// clang-format on" because the #endif comment plus its // NOLINT exceeds the 100 column limit. Drop only the trailing "on" marker; the "off" marker then runs to end of file and still protects the line from being wrapped. 3 CUDA headers ended with "/* INDENT-ON /". Move it above the #endif so it stays paired with the "/ INDENT-OFF */" near the top of the file. autoware_behavior_path_planner/test/input.hpp closed its guard immediately after opening it, leaving the entire body unguarded. Move the #endif to the end. Also hold clang-format at v21.1.8. clang-format 22 migrates "AlignAfterOpenBracket: AlwaysBreak" to "BreakAfterOpenBracketIf: true", which forces a break after every "if (" whose condition does not fit on one line and reformats 88 files. ---------Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>>
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, awf-autoware-bot[bot]
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(predicted_path_postprocessor): add a processor to refine penetration by static objects (#11672)
- feat: add processor to refine penetration for static objects
- feat: add a utility function to build interpolation function
- feat: update builder logic, config and schema file
- fix: try-catch exception while converting obstacle to polygon
- test: add unit testings for RefinePenetrationByStaticObjects
- docs: update README
- feat: update find_collision() to consider OBB collision detection
- fix: resolve shadow variable
- chore: clean up includes
* chore: fix cpplint error ---------
-
Contributors: Kotaro Uetake, github-actions
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- fix: add missing ament_index_cpp dependency (#11875)
- Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(autoware_lanelet2_utils): replace from/toBinMsg (Sensing, Visualization and Perception Component) (#11785)
- perception component toBinMsg replacement
- visualization component fromBinMsg replacement
- sensing component fromBinMsg replacement
* perception component fromBinMsg replacement ---------
-
Contributors: Ryohsuke Mitsudome, Sarun MUKDAPITAK
0.48.0 (2025-11-18)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/predicted_path_postprocessor.launch.xml
-
- input/objects [default: /input/objects]
- input/lanelet_map [default: /input/lanelet_map]
- output/objects [default: /output/objects]
- file/parameter [default: $(find-pkg-share autoware_predicted_path_postprocessor)/config/predicted_path_postprocessor.param.yaml]
- debug [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_predicted_path_postprocessor at Robotics Stack Exchange
Package Summary
| Version | 0.53.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 | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kotaro Uetake
- Yoshi Ri
- Taekjin Lee
Authors
autoware_predicted_path_postprocessor
Purpose
The autoware_predicted_path_postprocessor performs post-processing on predicted paths.
Inner-workings / Algorithms
The following processors are supported:
-
RefineBySpeed
- Refine the paths of objects based on their current speed.
-
RefinePenetrationByStaticObjects
- Refine the penetrated paths of objects based on the other static objects.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/objects |
autoware_perception_msgs::msg::PredictedObjects |
Predicted objects |
~/input/lanelet_map |
autoware_msgs::msg::LaneletMapBin |
[OPTIONAL] Lanelet map |
Output
| Name | Type | Description |
|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::PredictedObjects |
Processed objects |
Quick Start
Launch ROS 2 Node
To use this package, you can launch it with the following command:
ros2 launch autoware_predicted_path_postprocessor predicted_path_postprocessor.launch.xml
Leverage Processor in Your Codebase
You can leverage the processor in your codebase by including the appropriate headers and using the ComposableProcessor class:
#include <autoware/predicted_path_postprocessor/processor/composable.hpp>
#include <autoware/predicted_path_postprocessor/processor/interface.hpp>
class SomeNode final : public rclcpp::Node
{
public:
explicit SomeNode(const rclcpp::NodeOptions& options)
: Node("some_node", options)
{
// Initialize your node here
auto processors = declare_parameter<std::vector<std::string>>("processors");
context_ = std::make_unique<autoware::predicted_path_postprocessor::processor::Context>();
processor_ = std::make_unique<autoware::predicted_path_postprocessor::processor::ComposableProcessor>(this, processors);
}
private:
void callback(const autoware_perception_msgs::msg::PredictedObjects::ConstSharedPtr & msg)
{
auto objects = std::make_shared<autoware_perception_msgs::msg::PredictedObjects>(*msg);
// update the context with the predicted objects
context_->update(objects);
// process the predicted objects using the processor
const auto result = processor_->process(objects, context_);
if (result) {
const auto processed_objects = result.ok();
// do something with the processed objects
// ...
} else {
RCLCPP_ERROR(get_logger(), "Failed to process predicted objects");
}
}
std::unique_ptr<autoware::predicted_path_postprocessor::processor::Context> context_;
std::unique_ptr<autoware::predicted_path_postprocessor::processor::ComposableProcessor> processor_;
};
How to Add New Processor
Processors in this package should follow a structured naming convention as below:
| Class Name | String Identifier | Roles |
|---|---|---|
RefineBy** |
refine_by_** |
Modify or improve existing paths based on specific criteria |
FilterBy** |
filter_by_** |
Remove or exclude paths that don’t meet specific criteria |
As an example, let’s see how to add a new processor by using a processor called FilterBySomething.
- Create a new processor class that inherits from
ProcessorInterface:
```cpp class FilterBySomething final : public ProcessorInterface {
File truncated at 100 lines see the full file
Changelog for package autoware_predicted_path_postprocessor
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
chore(pre-commit): update clang-format to v22.1.5 (#13126)
- chore(pre-commit): update clang-format to v22.1.5
* style(pre-commit): autofix ---------
-
fix(pre-commit): update pre-commit-hooks-ros to v0.10.3 and adapt include guards (#13083)
- chore: sync files
* fix(pre-commit): adapt include guards to pre-commit-hooks-ros v0.10.3 ros-include-guard v0.10.3 only recognises an include guard when #endif is the last non-empty line of the file, so that feature test macros are no longer mistaken for guards. 29 headers failed that check. 25 headers wrap the guard in "// clang-format off" / "// clang-format on" because the #endif comment plus its // NOLINT exceeds the 100 column limit. Drop only the trailing "on" marker; the "off" marker then runs to end of file and still protects the line from being wrapped. 3 CUDA headers ended with "/* INDENT-ON /". Move it above the #endif so it stays paired with the "/ INDENT-OFF */" near the top of the file. autoware_behavior_path_planner/test/input.hpp closed its guard immediately after opening it, leaving the entire body unguarded. Move the #endif to the end. Also hold clang-format at v21.1.8. clang-format 22 migrates "AlignAfterOpenBracket: AlwaysBreak" to "BreakAfterOpenBracketIf: true", which forces a break after every "if (" whose condition does not fit on one line and reformats 88 files. ---------Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>>
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, awf-autoware-bot[bot]
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(predicted_path_postprocessor): add a processor to refine penetration by static objects (#11672)
- feat: add processor to refine penetration for static objects
- feat: add a utility function to build interpolation function
- feat: update builder logic, config and schema file
- fix: try-catch exception while converting obstacle to polygon
- test: add unit testings for RefinePenetrationByStaticObjects
- docs: update README
- feat: update find_collision() to consider OBB collision detection
- fix: resolve shadow variable
- chore: clean up includes
* chore: fix cpplint error ---------
-
Contributors: Kotaro Uetake, github-actions
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- fix: add missing ament_index_cpp dependency (#11875)
- Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(autoware_lanelet2_utils): replace from/toBinMsg (Sensing, Visualization and Perception Component) (#11785)
- perception component toBinMsg replacement
- visualization component fromBinMsg replacement
- sensing component fromBinMsg replacement
* perception component fromBinMsg replacement ---------
-
Contributors: Ryohsuke Mitsudome, Sarun MUKDAPITAK
0.48.0 (2025-11-18)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/predicted_path_postprocessor.launch.xml
-
- input/objects [default: /input/objects]
- input/lanelet_map [default: /input/lanelet_map]
- output/objects [default: /output/objects]
- file/parameter [default: $(find-pkg-share autoware_predicted_path_postprocessor)/config/predicted_path_postprocessor.param.yaml]
- debug [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_predicted_path_postprocessor at Robotics Stack Exchange
Package Summary
| Version | 0.53.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 | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kotaro Uetake
- Yoshi Ri
- Taekjin Lee
Authors
autoware_predicted_path_postprocessor
Purpose
The autoware_predicted_path_postprocessor performs post-processing on predicted paths.
Inner-workings / Algorithms
The following processors are supported:
-
RefineBySpeed
- Refine the paths of objects based on their current speed.
-
RefinePenetrationByStaticObjects
- Refine the penetrated paths of objects based on the other static objects.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/objects |
autoware_perception_msgs::msg::PredictedObjects |
Predicted objects |
~/input/lanelet_map |
autoware_msgs::msg::LaneletMapBin |
[OPTIONAL] Lanelet map |
Output
| Name | Type | Description |
|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::PredictedObjects |
Processed objects |
Quick Start
Launch ROS 2 Node
To use this package, you can launch it with the following command:
ros2 launch autoware_predicted_path_postprocessor predicted_path_postprocessor.launch.xml
Leverage Processor in Your Codebase
You can leverage the processor in your codebase by including the appropriate headers and using the ComposableProcessor class:
#include <autoware/predicted_path_postprocessor/processor/composable.hpp>
#include <autoware/predicted_path_postprocessor/processor/interface.hpp>
class SomeNode final : public rclcpp::Node
{
public:
explicit SomeNode(const rclcpp::NodeOptions& options)
: Node("some_node", options)
{
// Initialize your node here
auto processors = declare_parameter<std::vector<std::string>>("processors");
context_ = std::make_unique<autoware::predicted_path_postprocessor::processor::Context>();
processor_ = std::make_unique<autoware::predicted_path_postprocessor::processor::ComposableProcessor>(this, processors);
}
private:
void callback(const autoware_perception_msgs::msg::PredictedObjects::ConstSharedPtr & msg)
{
auto objects = std::make_shared<autoware_perception_msgs::msg::PredictedObjects>(*msg);
// update the context with the predicted objects
context_->update(objects);
// process the predicted objects using the processor
const auto result = processor_->process(objects, context_);
if (result) {
const auto processed_objects = result.ok();
// do something with the processed objects
// ...
} else {
RCLCPP_ERROR(get_logger(), "Failed to process predicted objects");
}
}
std::unique_ptr<autoware::predicted_path_postprocessor::processor::Context> context_;
std::unique_ptr<autoware::predicted_path_postprocessor::processor::ComposableProcessor> processor_;
};
How to Add New Processor
Processors in this package should follow a structured naming convention as below:
| Class Name | String Identifier | Roles |
|---|---|---|
RefineBy** |
refine_by_** |
Modify or improve existing paths based on specific criteria |
FilterBy** |
filter_by_** |
Remove or exclude paths that don’t meet specific criteria |
As an example, let’s see how to add a new processor by using a processor called FilterBySomething.
- Create a new processor class that inherits from
ProcessorInterface:
```cpp class FilterBySomething final : public ProcessorInterface {
File truncated at 100 lines see the full file
Changelog for package autoware_predicted_path_postprocessor
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
chore(pre-commit): update clang-format to v22.1.5 (#13126)
- chore(pre-commit): update clang-format to v22.1.5
* style(pre-commit): autofix ---------
-
fix(pre-commit): update pre-commit-hooks-ros to v0.10.3 and adapt include guards (#13083)
- chore: sync files
* fix(pre-commit): adapt include guards to pre-commit-hooks-ros v0.10.3 ros-include-guard v0.10.3 only recognises an include guard when #endif is the last non-empty line of the file, so that feature test macros are no longer mistaken for guards. 29 headers failed that check. 25 headers wrap the guard in "// clang-format off" / "// clang-format on" because the #endif comment plus its // NOLINT exceeds the 100 column limit. Drop only the trailing "on" marker; the "off" marker then runs to end of file and still protects the line from being wrapped. 3 CUDA headers ended with "/* INDENT-ON /". Move it above the #endif so it stays paired with the "/ INDENT-OFF */" near the top of the file. autoware_behavior_path_planner/test/input.hpp closed its guard immediately after opening it, leaving the entire body unguarded. Move the #endif to the end. Also hold clang-format at v21.1.8. clang-format 22 migrates "AlignAfterOpenBracket: AlwaysBreak" to "BreakAfterOpenBracketIf: true", which forces a break after every "if (" whose condition does not fit on one line and reformats 88 files. ---------Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>>
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, awf-autoware-bot[bot]
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(predicted_path_postprocessor): add a processor to refine penetration by static objects (#11672)
- feat: add processor to refine penetration for static objects
- feat: add a utility function to build interpolation function
- feat: update builder logic, config and schema file
- fix: try-catch exception while converting obstacle to polygon
- test: add unit testings for RefinePenetrationByStaticObjects
- docs: update README
- feat: update find_collision() to consider OBB collision detection
- fix: resolve shadow variable
- chore: clean up includes
* chore: fix cpplint error ---------
-
Contributors: Kotaro Uetake, github-actions
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- fix: add missing ament_index_cpp dependency (#11875)
- Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(autoware_lanelet2_utils): replace from/toBinMsg (Sensing, Visualization and Perception Component) (#11785)
- perception component toBinMsg replacement
- visualization component fromBinMsg replacement
- sensing component fromBinMsg replacement
* perception component fromBinMsg replacement ---------
-
Contributors: Ryohsuke Mitsudome, Sarun MUKDAPITAK
0.48.0 (2025-11-18)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/predicted_path_postprocessor.launch.xml
-
- input/objects [default: /input/objects]
- input/lanelet_map [default: /input/lanelet_map]
- output/objects [default: /output/objects]
- file/parameter [default: $(find-pkg-share autoware_predicted_path_postprocessor)/config/predicted_path_postprocessor.param.yaml]
- debug [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_predicted_path_postprocessor at Robotics Stack Exchange
Package Summary
| Version | 0.53.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 | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kotaro Uetake
- Yoshi Ri
- Taekjin Lee
Authors
autoware_predicted_path_postprocessor
Purpose
The autoware_predicted_path_postprocessor performs post-processing on predicted paths.
Inner-workings / Algorithms
The following processors are supported:
-
RefineBySpeed
- Refine the paths of objects based on their current speed.
-
RefinePenetrationByStaticObjects
- Refine the penetrated paths of objects based on the other static objects.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/objects |
autoware_perception_msgs::msg::PredictedObjects |
Predicted objects |
~/input/lanelet_map |
autoware_msgs::msg::LaneletMapBin |
[OPTIONAL] Lanelet map |
Output
| Name | Type | Description |
|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::PredictedObjects |
Processed objects |
Quick Start
Launch ROS 2 Node
To use this package, you can launch it with the following command:
ros2 launch autoware_predicted_path_postprocessor predicted_path_postprocessor.launch.xml
Leverage Processor in Your Codebase
You can leverage the processor in your codebase by including the appropriate headers and using the ComposableProcessor class:
#include <autoware/predicted_path_postprocessor/processor/composable.hpp>
#include <autoware/predicted_path_postprocessor/processor/interface.hpp>
class SomeNode final : public rclcpp::Node
{
public:
explicit SomeNode(const rclcpp::NodeOptions& options)
: Node("some_node", options)
{
// Initialize your node here
auto processors = declare_parameter<std::vector<std::string>>("processors");
context_ = std::make_unique<autoware::predicted_path_postprocessor::processor::Context>();
processor_ = std::make_unique<autoware::predicted_path_postprocessor::processor::ComposableProcessor>(this, processors);
}
private:
void callback(const autoware_perception_msgs::msg::PredictedObjects::ConstSharedPtr & msg)
{
auto objects = std::make_shared<autoware_perception_msgs::msg::PredictedObjects>(*msg);
// update the context with the predicted objects
context_->update(objects);
// process the predicted objects using the processor
const auto result = processor_->process(objects, context_);
if (result) {
const auto processed_objects = result.ok();
// do something with the processed objects
// ...
} else {
RCLCPP_ERROR(get_logger(), "Failed to process predicted objects");
}
}
std::unique_ptr<autoware::predicted_path_postprocessor::processor::Context> context_;
std::unique_ptr<autoware::predicted_path_postprocessor::processor::ComposableProcessor> processor_;
};
How to Add New Processor
Processors in this package should follow a structured naming convention as below:
| Class Name | String Identifier | Roles |
|---|---|---|
RefineBy** |
refine_by_** |
Modify or improve existing paths based on specific criteria |
FilterBy** |
filter_by_** |
Remove or exclude paths that don’t meet specific criteria |
As an example, let’s see how to add a new processor by using a processor called FilterBySomething.
- Create a new processor class that inherits from
ProcessorInterface:
```cpp class FilterBySomething final : public ProcessorInterface {
File truncated at 100 lines see the full file
Changelog for package autoware_predicted_path_postprocessor
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
chore(pre-commit): update clang-format to v22.1.5 (#13126)
- chore(pre-commit): update clang-format to v22.1.5
* style(pre-commit): autofix ---------
-
fix(pre-commit): update pre-commit-hooks-ros to v0.10.3 and adapt include guards (#13083)
- chore: sync files
* fix(pre-commit): adapt include guards to pre-commit-hooks-ros v0.10.3 ros-include-guard v0.10.3 only recognises an include guard when #endif is the last non-empty line of the file, so that feature test macros are no longer mistaken for guards. 29 headers failed that check. 25 headers wrap the guard in "// clang-format off" / "// clang-format on" because the #endif comment plus its // NOLINT exceeds the 100 column limit. Drop only the trailing "on" marker; the "off" marker then runs to end of file and still protects the line from being wrapped. 3 CUDA headers ended with "/* INDENT-ON /". Move it above the #endif so it stays paired with the "/ INDENT-OFF */" near the top of the file. autoware_behavior_path_planner/test/input.hpp closed its guard immediately after opening it, leaving the entire body unguarded. Move the #endif to the end. Also hold clang-format at v21.1.8. clang-format 22 migrates "AlignAfterOpenBracket: AlwaysBreak" to "BreakAfterOpenBracketIf: true", which forces a break after every "if (" whose condition does not fit on one line and reformats 88 files. ---------Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>>
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, awf-autoware-bot[bot]
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(predicted_path_postprocessor): add a processor to refine penetration by static objects (#11672)
- feat: add processor to refine penetration for static objects
- feat: add a utility function to build interpolation function
- feat: update builder logic, config and schema file
- fix: try-catch exception while converting obstacle to polygon
- test: add unit testings for RefinePenetrationByStaticObjects
- docs: update README
- feat: update find_collision() to consider OBB collision detection
- fix: resolve shadow variable
- chore: clean up includes
* chore: fix cpplint error ---------
-
Contributors: Kotaro Uetake, github-actions
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- fix: add missing ament_index_cpp dependency (#11875)
- Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(autoware_lanelet2_utils): replace from/toBinMsg (Sensing, Visualization and Perception Component) (#11785)
- perception component toBinMsg replacement
- visualization component fromBinMsg replacement
- sensing component fromBinMsg replacement
* perception component fromBinMsg replacement ---------
-
Contributors: Ryohsuke Mitsudome, Sarun MUKDAPITAK
0.48.0 (2025-11-18)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/predicted_path_postprocessor.launch.xml
-
- input/objects [default: /input/objects]
- input/lanelet_map [default: /input/lanelet_map]
- output/objects [default: /output/objects]
- file/parameter [default: $(find-pkg-share autoware_predicted_path_postprocessor)/config/predicted_path_postprocessor.param.yaml]
- debug [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_predicted_path_postprocessor at Robotics Stack Exchange
Package Summary
| Version | 0.53.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 | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kotaro Uetake
- Yoshi Ri
- Taekjin Lee
Authors
autoware_predicted_path_postprocessor
Purpose
The autoware_predicted_path_postprocessor performs post-processing on predicted paths.
Inner-workings / Algorithms
The following processors are supported:
-
RefineBySpeed
- Refine the paths of objects based on their current speed.
-
RefinePenetrationByStaticObjects
- Refine the penetrated paths of objects based on the other static objects.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/objects |
autoware_perception_msgs::msg::PredictedObjects |
Predicted objects |
~/input/lanelet_map |
autoware_msgs::msg::LaneletMapBin |
[OPTIONAL] Lanelet map |
Output
| Name | Type | Description |
|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::PredictedObjects |
Processed objects |
Quick Start
Launch ROS 2 Node
To use this package, you can launch it with the following command:
ros2 launch autoware_predicted_path_postprocessor predicted_path_postprocessor.launch.xml
Leverage Processor in Your Codebase
You can leverage the processor in your codebase by including the appropriate headers and using the ComposableProcessor class:
#include <autoware/predicted_path_postprocessor/processor/composable.hpp>
#include <autoware/predicted_path_postprocessor/processor/interface.hpp>
class SomeNode final : public rclcpp::Node
{
public:
explicit SomeNode(const rclcpp::NodeOptions& options)
: Node("some_node", options)
{
// Initialize your node here
auto processors = declare_parameter<std::vector<std::string>>("processors");
context_ = std::make_unique<autoware::predicted_path_postprocessor::processor::Context>();
processor_ = std::make_unique<autoware::predicted_path_postprocessor::processor::ComposableProcessor>(this, processors);
}
private:
void callback(const autoware_perception_msgs::msg::PredictedObjects::ConstSharedPtr & msg)
{
auto objects = std::make_shared<autoware_perception_msgs::msg::PredictedObjects>(*msg);
// update the context with the predicted objects
context_->update(objects);
// process the predicted objects using the processor
const auto result = processor_->process(objects, context_);
if (result) {
const auto processed_objects = result.ok();
// do something with the processed objects
// ...
} else {
RCLCPP_ERROR(get_logger(), "Failed to process predicted objects");
}
}
std::unique_ptr<autoware::predicted_path_postprocessor::processor::Context> context_;
std::unique_ptr<autoware::predicted_path_postprocessor::processor::ComposableProcessor> processor_;
};
How to Add New Processor
Processors in this package should follow a structured naming convention as below:
| Class Name | String Identifier | Roles |
|---|---|---|
RefineBy** |
refine_by_** |
Modify or improve existing paths based on specific criteria |
FilterBy** |
filter_by_** |
Remove or exclude paths that don’t meet specific criteria |
As an example, let’s see how to add a new processor by using a processor called FilterBySomething.
- Create a new processor class that inherits from
ProcessorInterface:
```cpp class FilterBySomething final : public ProcessorInterface {
File truncated at 100 lines see the full file
Changelog for package autoware_predicted_path_postprocessor
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
chore(pre-commit): update clang-format to v22.1.5 (#13126)
- chore(pre-commit): update clang-format to v22.1.5
* style(pre-commit): autofix ---------
-
fix(pre-commit): update pre-commit-hooks-ros to v0.10.3 and adapt include guards (#13083)
- chore: sync files
* fix(pre-commit): adapt include guards to pre-commit-hooks-ros v0.10.3 ros-include-guard v0.10.3 only recognises an include guard when #endif is the last non-empty line of the file, so that feature test macros are no longer mistaken for guards. 29 headers failed that check. 25 headers wrap the guard in "// clang-format off" / "// clang-format on" because the #endif comment plus its // NOLINT exceeds the 100 column limit. Drop only the trailing "on" marker; the "off" marker then runs to end of file and still protects the line from being wrapped. 3 CUDA headers ended with "/* INDENT-ON /". Move it above the #endif so it stays paired with the "/ INDENT-OFF */" near the top of the file. autoware_behavior_path_planner/test/input.hpp closed its guard immediately after opening it, leaving the entire body unguarded. Move the #endif to the end. Also hold clang-format at v21.1.8. clang-format 22 migrates "AlignAfterOpenBracket: AlwaysBreak" to "BreakAfterOpenBracketIf: true", which forces a break after every "if (" whose condition does not fit on one line and reformats 88 files. ---------Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>>
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, awf-autoware-bot[bot]
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(predicted_path_postprocessor): add a processor to refine penetration by static objects (#11672)
- feat: add processor to refine penetration for static objects
- feat: add a utility function to build interpolation function
- feat: update builder logic, config and schema file
- fix: try-catch exception while converting obstacle to polygon
- test: add unit testings for RefinePenetrationByStaticObjects
- docs: update README
- feat: update find_collision() to consider OBB collision detection
- fix: resolve shadow variable
- chore: clean up includes
* chore: fix cpplint error ---------
-
Contributors: Kotaro Uetake, github-actions
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- fix: add missing ament_index_cpp dependency (#11875)
- Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(autoware_lanelet2_utils): replace from/toBinMsg (Sensing, Visualization and Perception Component) (#11785)
- perception component toBinMsg replacement
- visualization component fromBinMsg replacement
- sensing component fromBinMsg replacement
* perception component fromBinMsg replacement ---------
-
Contributors: Ryohsuke Mitsudome, Sarun MUKDAPITAK
0.48.0 (2025-11-18)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/predicted_path_postprocessor.launch.xml
-
- input/objects [default: /input/objects]
- input/lanelet_map [default: /input/lanelet_map]
- output/objects [default: /output/objects]
- file/parameter [default: $(find-pkg-share autoware_predicted_path_postprocessor)/config/predicted_path_postprocessor.param.yaml]
- debug [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_predicted_path_postprocessor at Robotics Stack Exchange
Package Summary
| Version | 0.53.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 | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kotaro Uetake
- Yoshi Ri
- Taekjin Lee
Authors
autoware_predicted_path_postprocessor
Purpose
The autoware_predicted_path_postprocessor performs post-processing on predicted paths.
Inner-workings / Algorithms
The following processors are supported:
-
RefineBySpeed
- Refine the paths of objects based on their current speed.
-
RefinePenetrationByStaticObjects
- Refine the penetrated paths of objects based on the other static objects.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/objects |
autoware_perception_msgs::msg::PredictedObjects |
Predicted objects |
~/input/lanelet_map |
autoware_msgs::msg::LaneletMapBin |
[OPTIONAL] Lanelet map |
Output
| Name | Type | Description |
|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::PredictedObjects |
Processed objects |
Quick Start
Launch ROS 2 Node
To use this package, you can launch it with the following command:
ros2 launch autoware_predicted_path_postprocessor predicted_path_postprocessor.launch.xml
Leverage Processor in Your Codebase
You can leverage the processor in your codebase by including the appropriate headers and using the ComposableProcessor class:
#include <autoware/predicted_path_postprocessor/processor/composable.hpp>
#include <autoware/predicted_path_postprocessor/processor/interface.hpp>
class SomeNode final : public rclcpp::Node
{
public:
explicit SomeNode(const rclcpp::NodeOptions& options)
: Node("some_node", options)
{
// Initialize your node here
auto processors = declare_parameter<std::vector<std::string>>("processors");
context_ = std::make_unique<autoware::predicted_path_postprocessor::processor::Context>();
processor_ = std::make_unique<autoware::predicted_path_postprocessor::processor::ComposableProcessor>(this, processors);
}
private:
void callback(const autoware_perception_msgs::msg::PredictedObjects::ConstSharedPtr & msg)
{
auto objects = std::make_shared<autoware_perception_msgs::msg::PredictedObjects>(*msg);
// update the context with the predicted objects
context_->update(objects);
// process the predicted objects using the processor
const auto result = processor_->process(objects, context_);
if (result) {
const auto processed_objects = result.ok();
// do something with the processed objects
// ...
} else {
RCLCPP_ERROR(get_logger(), "Failed to process predicted objects");
}
}
std::unique_ptr<autoware::predicted_path_postprocessor::processor::Context> context_;
std::unique_ptr<autoware::predicted_path_postprocessor::processor::ComposableProcessor> processor_;
};
How to Add New Processor
Processors in this package should follow a structured naming convention as below:
| Class Name | String Identifier | Roles |
|---|---|---|
RefineBy** |
refine_by_** |
Modify or improve existing paths based on specific criteria |
FilterBy** |
filter_by_** |
Remove or exclude paths that don’t meet specific criteria |
As an example, let’s see how to add a new processor by using a processor called FilterBySomething.
- Create a new processor class that inherits from
ProcessorInterface:
```cpp class FilterBySomething final : public ProcessorInterface {
File truncated at 100 lines see the full file
Changelog for package autoware_predicted_path_postprocessor
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
chore(pre-commit): update clang-format to v22.1.5 (#13126)
- chore(pre-commit): update clang-format to v22.1.5
* style(pre-commit): autofix ---------
-
fix(pre-commit): update pre-commit-hooks-ros to v0.10.3 and adapt include guards (#13083)
- chore: sync files
* fix(pre-commit): adapt include guards to pre-commit-hooks-ros v0.10.3 ros-include-guard v0.10.3 only recognises an include guard when #endif is the last non-empty line of the file, so that feature test macros are no longer mistaken for guards. 29 headers failed that check. 25 headers wrap the guard in "// clang-format off" / "// clang-format on" because the #endif comment plus its // NOLINT exceeds the 100 column limit. Drop only the trailing "on" marker; the "off" marker then runs to end of file and still protects the line from being wrapped. 3 CUDA headers ended with "/* INDENT-ON /". Move it above the #endif so it stays paired with the "/ INDENT-OFF */" near the top of the file. autoware_behavior_path_planner/test/input.hpp closed its guard immediately after opening it, leaving the entire body unguarded. Move the #endif to the end. Also hold clang-format at v21.1.8. clang-format 22 migrates "AlignAfterOpenBracket: AlwaysBreak" to "BreakAfterOpenBracketIf: true", which forces a break after every "if (" whose condition does not fit on one line and reformats 88 files. ---------Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>>
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, awf-autoware-bot[bot]
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(predicted_path_postprocessor): add a processor to refine penetration by static objects (#11672)
- feat: add processor to refine penetration for static objects
- feat: add a utility function to build interpolation function
- feat: update builder logic, config and schema file
- fix: try-catch exception while converting obstacle to polygon
- test: add unit testings for RefinePenetrationByStaticObjects
- docs: update README
- feat: update find_collision() to consider OBB collision detection
- fix: resolve shadow variable
- chore: clean up includes
* chore: fix cpplint error ---------
-
Contributors: Kotaro Uetake, github-actions
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- fix: add missing ament_index_cpp dependency (#11875)
- Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(autoware_lanelet2_utils): replace from/toBinMsg (Sensing, Visualization and Perception Component) (#11785)
- perception component toBinMsg replacement
- visualization component fromBinMsg replacement
- sensing component fromBinMsg replacement
* perception component fromBinMsg replacement ---------
-
Contributors: Ryohsuke Mitsudome, Sarun MUKDAPITAK
0.48.0 (2025-11-18)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/predicted_path_postprocessor.launch.xml
-
- input/objects [default: /input/objects]
- input/lanelet_map [default: /input/lanelet_map]
- output/objects [default: /output/objects]
- file/parameter [default: $(find-pkg-share autoware_predicted_path_postprocessor)/config/predicted_path_postprocessor.param.yaml]
- debug [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_predicted_path_postprocessor at Robotics Stack Exchange
Package Summary
| Version | 0.53.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 | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kotaro Uetake
- Yoshi Ri
- Taekjin Lee
Authors
autoware_predicted_path_postprocessor
Purpose
The autoware_predicted_path_postprocessor performs post-processing on predicted paths.
Inner-workings / Algorithms
The following processors are supported:
-
RefineBySpeed
- Refine the paths of objects based on their current speed.
-
RefinePenetrationByStaticObjects
- Refine the penetrated paths of objects based on the other static objects.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/objects |
autoware_perception_msgs::msg::PredictedObjects |
Predicted objects |
~/input/lanelet_map |
autoware_msgs::msg::LaneletMapBin |
[OPTIONAL] Lanelet map |
Output
| Name | Type | Description |
|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::PredictedObjects |
Processed objects |
Quick Start
Launch ROS 2 Node
To use this package, you can launch it with the following command:
ros2 launch autoware_predicted_path_postprocessor predicted_path_postprocessor.launch.xml
Leverage Processor in Your Codebase
You can leverage the processor in your codebase by including the appropriate headers and using the ComposableProcessor class:
#include <autoware/predicted_path_postprocessor/processor/composable.hpp>
#include <autoware/predicted_path_postprocessor/processor/interface.hpp>
class SomeNode final : public rclcpp::Node
{
public:
explicit SomeNode(const rclcpp::NodeOptions& options)
: Node("some_node", options)
{
// Initialize your node here
auto processors = declare_parameter<std::vector<std::string>>("processors");
context_ = std::make_unique<autoware::predicted_path_postprocessor::processor::Context>();
processor_ = std::make_unique<autoware::predicted_path_postprocessor::processor::ComposableProcessor>(this, processors);
}
private:
void callback(const autoware_perception_msgs::msg::PredictedObjects::ConstSharedPtr & msg)
{
auto objects = std::make_shared<autoware_perception_msgs::msg::PredictedObjects>(*msg);
// update the context with the predicted objects
context_->update(objects);
// process the predicted objects using the processor
const auto result = processor_->process(objects, context_);
if (result) {
const auto processed_objects = result.ok();
// do something with the processed objects
// ...
} else {
RCLCPP_ERROR(get_logger(), "Failed to process predicted objects");
}
}
std::unique_ptr<autoware::predicted_path_postprocessor::processor::Context> context_;
std::unique_ptr<autoware::predicted_path_postprocessor::processor::ComposableProcessor> processor_;
};
How to Add New Processor
Processors in this package should follow a structured naming convention as below:
| Class Name | String Identifier | Roles |
|---|---|---|
RefineBy** |
refine_by_** |
Modify or improve existing paths based on specific criteria |
FilterBy** |
filter_by_** |
Remove or exclude paths that don’t meet specific criteria |
As an example, let’s see how to add a new processor by using a processor called FilterBySomething.
- Create a new processor class that inherits from
ProcessorInterface:
```cpp class FilterBySomething final : public ProcessorInterface {
File truncated at 100 lines see the full file
Changelog for package autoware_predicted_path_postprocessor
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
chore(pre-commit): update clang-format to v22.1.5 (#13126)
- chore(pre-commit): update clang-format to v22.1.5
* style(pre-commit): autofix ---------
-
fix(pre-commit): update pre-commit-hooks-ros to v0.10.3 and adapt include guards (#13083)
- chore: sync files
* fix(pre-commit): adapt include guards to pre-commit-hooks-ros v0.10.3 ros-include-guard v0.10.3 only recognises an include guard when #endif is the last non-empty line of the file, so that feature test macros are no longer mistaken for guards. 29 headers failed that check. 25 headers wrap the guard in "// clang-format off" / "// clang-format on" because the #endif comment plus its // NOLINT exceeds the 100 column limit. Drop only the trailing "on" marker; the "off" marker then runs to end of file and still protects the line from being wrapped. 3 CUDA headers ended with "/* INDENT-ON /". Move it above the #endif so it stays paired with the "/ INDENT-OFF */" near the top of the file. autoware_behavior_path_planner/test/input.hpp closed its guard immediately after opening it, leaving the entire body unguarded. Move the #endif to the end. Also hold clang-format at v21.1.8. clang-format 22 migrates "AlignAfterOpenBracket: AlwaysBreak" to "BreakAfterOpenBracketIf: true", which forces a break after every "if (" whose condition does not fit on one line and reformats 88 files. ---------Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>>
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, awf-autoware-bot[bot]
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(predicted_path_postprocessor): add a processor to refine penetration by static objects (#11672)
- feat: add processor to refine penetration for static objects
- feat: add a utility function to build interpolation function
- feat: update builder logic, config and schema file
- fix: try-catch exception while converting obstacle to polygon
- test: add unit testings for RefinePenetrationByStaticObjects
- docs: update README
- feat: update find_collision() to consider OBB collision detection
- fix: resolve shadow variable
- chore: clean up includes
* chore: fix cpplint error ---------
-
Contributors: Kotaro Uetake, github-actions
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- fix: add missing ament_index_cpp dependency (#11875)
- Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(autoware_lanelet2_utils): replace from/toBinMsg (Sensing, Visualization and Perception Component) (#11785)
- perception component toBinMsg replacement
- visualization component fromBinMsg replacement
- sensing component fromBinMsg replacement
* perception component fromBinMsg replacement ---------
-
Contributors: Ryohsuke Mitsudome, Sarun MUKDAPITAK
0.48.0 (2025-11-18)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/predicted_path_postprocessor.launch.xml
-
- input/objects [default: /input/objects]
- input/lanelet_map [default: /input/lanelet_map]
- output/objects [default: /output/objects]
- file/parameter [default: $(find-pkg-share autoware_predicted_path_postprocessor)/config/predicted_path_postprocessor.param.yaml]
- debug [default: false]