Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Satoshi Ota
- Mamoru Sobue
Authors
- Satoshi Ota
autoware_planning_factor_interface
Overview
The PlanningFactorInterface is a C++ class designed to facilitate the addition and publication of planning factors.
Design
The PlanningFactorInterface class is designed to be lightweight and efficient, with the following key components:
-
Add: Methods to add planning factors to the interface.
-
Publisher: The class includes a publisher for
PlanningFactorArraymessages, which are used to distribute planning factors to other nodes in the system.
The design emphasizes flexibility and ease of use, allowing developers to quickly integrate new planning factors into autoware.
Usage
Including the Header
To use the PlanningFactorInterface, include the header file in your code:
#include <autoware/planning_factor_interface/planning_factor_interface.hpp>
Creating an Instance
Instantiate the PlanningFactorInterface by providing a node and a name for the factor module:
class AvoidancePlanner
{
public:
AvoidancePlanner(rclcpp::Node & node)
: planning_factor_interface_{std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner")}
You can also enable console output for debugging by setting the appropriate parameters:
// Enable console output with a 1000ms throttle duration
planning_factor_interface_ = std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner", true, 1000);
Adding Planning Factors
planning_factor_interface_->add(
traj_points, ego_pose, stop_pose,
autoware_internal_planning_msgs::msg::PlanningFactor::NONE,
autoware_internal_planning_msgs::msg::SafetyFactorArray{});
Publishing Factors
After adding planning factors, you can publish them by calling the publish method:
// Publish the added factors
planning_factor_interface_->publish();
Changelog for package autoware_planning_factor_interface
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins (#1152)
* test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins Add the package's first gtest suite, wiring the missing BUILD_TESTING / ament_auto_add_gtest block in CMakeLists. The suite pins:
- single- and two-control-point add() ControlPoint/PlanningFactor field construction (pose, velocity, shift_length, distance, module name, behavior, detail, driving direction, safety factors),
- the templated add() overloads forwarding calcSignedArcLength results into ControlPoint.distance,
- factor accumulation across multiple add() calls in insertion order,
- the publish() contract: header.frame_id == 'map', factors forwarded into the PlanningFactorArray (verified via a test subscription), and factors_ cleared afterwards so the next cycle starts empty. Apply the low-risk, behavior-preserving perf wins flagged for this package: move the locally-built PlanningFactor into factors_ in both add() overloads, move factors_ into msg.factors in publish() (the buffer is cleared immediately after), and return factors_ by const reference from get_factors() to drop a deep copy per call. The publish() console gate now checks msg.factors (which holds the moved-from factors) so the output behavior is unchanged. Refs: autowarefoundation/autoware_core#1096
- style(pre-commit): autofix
* fix(autoware_planning_factor_interface): make factor non-const for real move A const-qualified factor caused std::move to bind to the copy constructor, silently degrading the intended move into factors_ to a copy. Drop the const qualifier on both add() overloads so push_back uses the move constructor. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
1.7.0 (2026-02-14)
1.6.0 (2025-12-30)
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(obstacle_stop_module, motion_velocity_planner_common): add safety_factor to obstacle_stop module (#572) add safety factor, add planning_factor test
-
chore: bump version (1.4.0) and update changelog (#608)
-
Contributors: Mete Fatih Cırıt, Yuki TAKAGI, Yutaka Kondo, mitsudome-r
1.4.0 (2025-08-11)
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome
1.3.0 (2025-06-23)
- fix: to be consistent version in all package.xml(s)
- feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
- feat!: remove obstacle_stop_planner and obstacle_cruise_planner
(#495)
- feat: remove obstacle_stop_planner and obstacle_cruise_planner
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_factor_interface at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Satoshi Ota
- Mamoru Sobue
Authors
- Satoshi Ota
autoware_planning_factor_interface
Overview
The PlanningFactorInterface is a C++ class designed to facilitate the addition and publication of planning factors.
Design
The PlanningFactorInterface class is designed to be lightweight and efficient, with the following key components:
-
Add: Methods to add planning factors to the interface.
-
Publisher: The class includes a publisher for
PlanningFactorArraymessages, which are used to distribute planning factors to other nodes in the system.
The design emphasizes flexibility and ease of use, allowing developers to quickly integrate new planning factors into autoware.
Usage
Including the Header
To use the PlanningFactorInterface, include the header file in your code:
#include <autoware/planning_factor_interface/planning_factor_interface.hpp>
Creating an Instance
Instantiate the PlanningFactorInterface by providing a node and a name for the factor module:
class AvoidancePlanner
{
public:
AvoidancePlanner(rclcpp::Node & node)
: planning_factor_interface_{std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner")}
You can also enable console output for debugging by setting the appropriate parameters:
// Enable console output with a 1000ms throttle duration
planning_factor_interface_ = std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner", true, 1000);
Adding Planning Factors
planning_factor_interface_->add(
traj_points, ego_pose, stop_pose,
autoware_internal_planning_msgs::msg::PlanningFactor::NONE,
autoware_internal_planning_msgs::msg::SafetyFactorArray{});
Publishing Factors
After adding planning factors, you can publish them by calling the publish method:
// Publish the added factors
planning_factor_interface_->publish();
Changelog for package autoware_planning_factor_interface
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins (#1152)
* test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins Add the package's first gtest suite, wiring the missing BUILD_TESTING / ament_auto_add_gtest block in CMakeLists. The suite pins:
- single- and two-control-point add() ControlPoint/PlanningFactor field construction (pose, velocity, shift_length, distance, module name, behavior, detail, driving direction, safety factors),
- the templated add() overloads forwarding calcSignedArcLength results into ControlPoint.distance,
- factor accumulation across multiple add() calls in insertion order,
- the publish() contract: header.frame_id == 'map', factors forwarded into the PlanningFactorArray (verified via a test subscription), and factors_ cleared afterwards so the next cycle starts empty. Apply the low-risk, behavior-preserving perf wins flagged for this package: move the locally-built PlanningFactor into factors_ in both add() overloads, move factors_ into msg.factors in publish() (the buffer is cleared immediately after), and return factors_ by const reference from get_factors() to drop a deep copy per call. The publish() console gate now checks msg.factors (which holds the moved-from factors) so the output behavior is unchanged. Refs: autowarefoundation/autoware_core#1096
- style(pre-commit): autofix
* fix(autoware_planning_factor_interface): make factor non-const for real move A const-qualified factor caused std::move to bind to the copy constructor, silently degrading the intended move into factors_ to a copy. Drop the const qualifier on both add() overloads so push_back uses the move constructor. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
1.7.0 (2026-02-14)
1.6.0 (2025-12-30)
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(obstacle_stop_module, motion_velocity_planner_common): add safety_factor to obstacle_stop module (#572) add safety factor, add planning_factor test
-
chore: bump version (1.4.0) and update changelog (#608)
-
Contributors: Mete Fatih Cırıt, Yuki TAKAGI, Yutaka Kondo, mitsudome-r
1.4.0 (2025-08-11)
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome
1.3.0 (2025-06-23)
- fix: to be consistent version in all package.xml(s)
- feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
- feat!: remove obstacle_stop_planner and obstacle_cruise_planner
(#495)
- feat: remove obstacle_stop_planner and obstacle_cruise_planner
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_factor_interface at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Satoshi Ota
- Mamoru Sobue
Authors
- Satoshi Ota
autoware_planning_factor_interface
Overview
The PlanningFactorInterface is a C++ class designed to facilitate the addition and publication of planning factors.
Design
The PlanningFactorInterface class is designed to be lightweight and efficient, with the following key components:
-
Add: Methods to add planning factors to the interface.
-
Publisher: The class includes a publisher for
PlanningFactorArraymessages, which are used to distribute planning factors to other nodes in the system.
The design emphasizes flexibility and ease of use, allowing developers to quickly integrate new planning factors into autoware.
Usage
Including the Header
To use the PlanningFactorInterface, include the header file in your code:
#include <autoware/planning_factor_interface/planning_factor_interface.hpp>
Creating an Instance
Instantiate the PlanningFactorInterface by providing a node and a name for the factor module:
class AvoidancePlanner
{
public:
AvoidancePlanner(rclcpp::Node & node)
: planning_factor_interface_{std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner")}
You can also enable console output for debugging by setting the appropriate parameters:
// Enable console output with a 1000ms throttle duration
planning_factor_interface_ = std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner", true, 1000);
Adding Planning Factors
planning_factor_interface_->add(
traj_points, ego_pose, stop_pose,
autoware_internal_planning_msgs::msg::PlanningFactor::NONE,
autoware_internal_planning_msgs::msg::SafetyFactorArray{});
Publishing Factors
After adding planning factors, you can publish them by calling the publish method:
// Publish the added factors
planning_factor_interface_->publish();
Changelog for package autoware_planning_factor_interface
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins (#1152)
* test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins Add the package's first gtest suite, wiring the missing BUILD_TESTING / ament_auto_add_gtest block in CMakeLists. The suite pins:
- single- and two-control-point add() ControlPoint/PlanningFactor field construction (pose, velocity, shift_length, distance, module name, behavior, detail, driving direction, safety factors),
- the templated add() overloads forwarding calcSignedArcLength results into ControlPoint.distance,
- factor accumulation across multiple add() calls in insertion order,
- the publish() contract: header.frame_id == 'map', factors forwarded into the PlanningFactorArray (verified via a test subscription), and factors_ cleared afterwards so the next cycle starts empty. Apply the low-risk, behavior-preserving perf wins flagged for this package: move the locally-built PlanningFactor into factors_ in both add() overloads, move factors_ into msg.factors in publish() (the buffer is cleared immediately after), and return factors_ by const reference from get_factors() to drop a deep copy per call. The publish() console gate now checks msg.factors (which holds the moved-from factors) so the output behavior is unchanged. Refs: autowarefoundation/autoware_core#1096
- style(pre-commit): autofix
* fix(autoware_planning_factor_interface): make factor non-const for real move A const-qualified factor caused std::move to bind to the copy constructor, silently degrading the intended move into factors_ to a copy. Drop the const qualifier on both add() overloads so push_back uses the move constructor. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
1.7.0 (2026-02-14)
1.6.0 (2025-12-30)
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(obstacle_stop_module, motion_velocity_planner_common): add safety_factor to obstacle_stop module (#572) add safety factor, add planning_factor test
-
chore: bump version (1.4.0) and update changelog (#608)
-
Contributors: Mete Fatih Cırıt, Yuki TAKAGI, Yutaka Kondo, mitsudome-r
1.4.0 (2025-08-11)
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome
1.3.0 (2025-06-23)
- fix: to be consistent version in all package.xml(s)
- feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
- feat!: remove obstacle_stop_planner and obstacle_cruise_planner
(#495)
- feat: remove obstacle_stop_planner and obstacle_cruise_planner
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_factor_interface at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Satoshi Ota
- Mamoru Sobue
Authors
- Satoshi Ota
autoware_planning_factor_interface
Overview
The PlanningFactorInterface is a C++ class designed to facilitate the addition and publication of planning factors.
Design
The PlanningFactorInterface class is designed to be lightweight and efficient, with the following key components:
-
Add: Methods to add planning factors to the interface.
-
Publisher: The class includes a publisher for
PlanningFactorArraymessages, which are used to distribute planning factors to other nodes in the system.
The design emphasizes flexibility and ease of use, allowing developers to quickly integrate new planning factors into autoware.
Usage
Including the Header
To use the PlanningFactorInterface, include the header file in your code:
#include <autoware/planning_factor_interface/planning_factor_interface.hpp>
Creating an Instance
Instantiate the PlanningFactorInterface by providing a node and a name for the factor module:
class AvoidancePlanner
{
public:
AvoidancePlanner(rclcpp::Node & node)
: planning_factor_interface_{std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner")}
You can also enable console output for debugging by setting the appropriate parameters:
// Enable console output with a 1000ms throttle duration
planning_factor_interface_ = std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner", true, 1000);
Adding Planning Factors
planning_factor_interface_->add(
traj_points, ego_pose, stop_pose,
autoware_internal_planning_msgs::msg::PlanningFactor::NONE,
autoware_internal_planning_msgs::msg::SafetyFactorArray{});
Publishing Factors
After adding planning factors, you can publish them by calling the publish method:
// Publish the added factors
planning_factor_interface_->publish();
Changelog for package autoware_planning_factor_interface
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins (#1152)
* test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins Add the package's first gtest suite, wiring the missing BUILD_TESTING / ament_auto_add_gtest block in CMakeLists. The suite pins:
- single- and two-control-point add() ControlPoint/PlanningFactor field construction (pose, velocity, shift_length, distance, module name, behavior, detail, driving direction, safety factors),
- the templated add() overloads forwarding calcSignedArcLength results into ControlPoint.distance,
- factor accumulation across multiple add() calls in insertion order,
- the publish() contract: header.frame_id == 'map', factors forwarded into the PlanningFactorArray (verified via a test subscription), and factors_ cleared afterwards so the next cycle starts empty. Apply the low-risk, behavior-preserving perf wins flagged for this package: move the locally-built PlanningFactor into factors_ in both add() overloads, move factors_ into msg.factors in publish() (the buffer is cleared immediately after), and return factors_ by const reference from get_factors() to drop a deep copy per call. The publish() console gate now checks msg.factors (which holds the moved-from factors) so the output behavior is unchanged. Refs: autowarefoundation/autoware_core#1096
- style(pre-commit): autofix
* fix(autoware_planning_factor_interface): make factor non-const for real move A const-qualified factor caused std::move to bind to the copy constructor, silently degrading the intended move into factors_ to a copy. Drop the const qualifier on both add() overloads so push_back uses the move constructor. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
1.7.0 (2026-02-14)
1.6.0 (2025-12-30)
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(obstacle_stop_module, motion_velocity_planner_common): add safety_factor to obstacle_stop module (#572) add safety factor, add planning_factor test
-
chore: bump version (1.4.0) and update changelog (#608)
-
Contributors: Mete Fatih Cırıt, Yuki TAKAGI, Yutaka Kondo, mitsudome-r
1.4.0 (2025-08-11)
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome
1.3.0 (2025-06-23)
- fix: to be consistent version in all package.xml(s)
- feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
- feat!: remove obstacle_stop_planner and obstacle_cruise_planner
(#495)
- feat: remove obstacle_stop_planner and obstacle_cruise_planner
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_factor_interface at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Satoshi Ota
- Mamoru Sobue
Authors
- Satoshi Ota
autoware_planning_factor_interface
Overview
The PlanningFactorInterface is a C++ class designed to facilitate the addition and publication of planning factors.
Design
The PlanningFactorInterface class is designed to be lightweight and efficient, with the following key components:
-
Add: Methods to add planning factors to the interface.
-
Publisher: The class includes a publisher for
PlanningFactorArraymessages, which are used to distribute planning factors to other nodes in the system.
The design emphasizes flexibility and ease of use, allowing developers to quickly integrate new planning factors into autoware.
Usage
Including the Header
To use the PlanningFactorInterface, include the header file in your code:
#include <autoware/planning_factor_interface/planning_factor_interface.hpp>
Creating an Instance
Instantiate the PlanningFactorInterface by providing a node and a name for the factor module:
class AvoidancePlanner
{
public:
AvoidancePlanner(rclcpp::Node & node)
: planning_factor_interface_{std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner")}
You can also enable console output for debugging by setting the appropriate parameters:
// Enable console output with a 1000ms throttle duration
planning_factor_interface_ = std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner", true, 1000);
Adding Planning Factors
planning_factor_interface_->add(
traj_points, ego_pose, stop_pose,
autoware_internal_planning_msgs::msg::PlanningFactor::NONE,
autoware_internal_planning_msgs::msg::SafetyFactorArray{});
Publishing Factors
After adding planning factors, you can publish them by calling the publish method:
// Publish the added factors
planning_factor_interface_->publish();
Changelog for package autoware_planning_factor_interface
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins (#1152)
* test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins Add the package's first gtest suite, wiring the missing BUILD_TESTING / ament_auto_add_gtest block in CMakeLists. The suite pins:
- single- and two-control-point add() ControlPoint/PlanningFactor field construction (pose, velocity, shift_length, distance, module name, behavior, detail, driving direction, safety factors),
- the templated add() overloads forwarding calcSignedArcLength results into ControlPoint.distance,
- factor accumulation across multiple add() calls in insertion order,
- the publish() contract: header.frame_id == 'map', factors forwarded into the PlanningFactorArray (verified via a test subscription), and factors_ cleared afterwards so the next cycle starts empty. Apply the low-risk, behavior-preserving perf wins flagged for this package: move the locally-built PlanningFactor into factors_ in both add() overloads, move factors_ into msg.factors in publish() (the buffer is cleared immediately after), and return factors_ by const reference from get_factors() to drop a deep copy per call. The publish() console gate now checks msg.factors (which holds the moved-from factors) so the output behavior is unchanged. Refs: autowarefoundation/autoware_core#1096
- style(pre-commit): autofix
* fix(autoware_planning_factor_interface): make factor non-const for real move A const-qualified factor caused std::move to bind to the copy constructor, silently degrading the intended move into factors_ to a copy. Drop the const qualifier on both add() overloads so push_back uses the move constructor. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
1.7.0 (2026-02-14)
1.6.0 (2025-12-30)
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(obstacle_stop_module, motion_velocity_planner_common): add safety_factor to obstacle_stop module (#572) add safety factor, add planning_factor test
-
chore: bump version (1.4.0) and update changelog (#608)
-
Contributors: Mete Fatih Cırıt, Yuki TAKAGI, Yutaka Kondo, mitsudome-r
1.4.0 (2025-08-11)
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome
1.3.0 (2025-06-23)
- fix: to be consistent version in all package.xml(s)
- feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
- feat!: remove obstacle_stop_planner and obstacle_cruise_planner
(#495)
- feat: remove obstacle_stop_planner and obstacle_cruise_planner
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_factor_interface at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Satoshi Ota
- Mamoru Sobue
Authors
- Satoshi Ota
autoware_planning_factor_interface
Overview
The PlanningFactorInterface is a C++ class designed to facilitate the addition and publication of planning factors.
Design
The PlanningFactorInterface class is designed to be lightweight and efficient, with the following key components:
-
Add: Methods to add planning factors to the interface.
-
Publisher: The class includes a publisher for
PlanningFactorArraymessages, which are used to distribute planning factors to other nodes in the system.
The design emphasizes flexibility and ease of use, allowing developers to quickly integrate new planning factors into autoware.
Usage
Including the Header
To use the PlanningFactorInterface, include the header file in your code:
#include <autoware/planning_factor_interface/planning_factor_interface.hpp>
Creating an Instance
Instantiate the PlanningFactorInterface by providing a node and a name for the factor module:
class AvoidancePlanner
{
public:
AvoidancePlanner(rclcpp::Node & node)
: planning_factor_interface_{std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner")}
You can also enable console output for debugging by setting the appropriate parameters:
// Enable console output with a 1000ms throttle duration
planning_factor_interface_ = std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner", true, 1000);
Adding Planning Factors
planning_factor_interface_->add(
traj_points, ego_pose, stop_pose,
autoware_internal_planning_msgs::msg::PlanningFactor::NONE,
autoware_internal_planning_msgs::msg::SafetyFactorArray{});
Publishing Factors
After adding planning factors, you can publish them by calling the publish method:
// Publish the added factors
planning_factor_interface_->publish();
Changelog for package autoware_planning_factor_interface
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins (#1152)
* test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins Add the package's first gtest suite, wiring the missing BUILD_TESTING / ament_auto_add_gtest block in CMakeLists. The suite pins:
- single- and two-control-point add() ControlPoint/PlanningFactor field construction (pose, velocity, shift_length, distance, module name, behavior, detail, driving direction, safety factors),
- the templated add() overloads forwarding calcSignedArcLength results into ControlPoint.distance,
- factor accumulation across multiple add() calls in insertion order,
- the publish() contract: header.frame_id == 'map', factors forwarded into the PlanningFactorArray (verified via a test subscription), and factors_ cleared afterwards so the next cycle starts empty. Apply the low-risk, behavior-preserving perf wins flagged for this package: move the locally-built PlanningFactor into factors_ in both add() overloads, move factors_ into msg.factors in publish() (the buffer is cleared immediately after), and return factors_ by const reference from get_factors() to drop a deep copy per call. The publish() console gate now checks msg.factors (which holds the moved-from factors) so the output behavior is unchanged. Refs: autowarefoundation/autoware_core#1096
- style(pre-commit): autofix
* fix(autoware_planning_factor_interface): make factor non-const for real move A const-qualified factor caused std::move to bind to the copy constructor, silently degrading the intended move into factors_ to a copy. Drop the const qualifier on both add() overloads so push_back uses the move constructor. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
1.7.0 (2026-02-14)
1.6.0 (2025-12-30)
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(obstacle_stop_module, motion_velocity_planner_common): add safety_factor to obstacle_stop module (#572) add safety factor, add planning_factor test
-
chore: bump version (1.4.0) and update changelog (#608)
-
Contributors: Mete Fatih Cırıt, Yuki TAKAGI, Yutaka Kondo, mitsudome-r
1.4.0 (2025-08-11)
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome
1.3.0 (2025-06-23)
- fix: to be consistent version in all package.xml(s)
- feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
- feat!: remove obstacle_stop_planner and obstacle_cruise_planner
(#495)
- feat: remove obstacle_stop_planner and obstacle_cruise_planner
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_factor_interface at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Satoshi Ota
- Mamoru Sobue
Authors
- Satoshi Ota
autoware_planning_factor_interface
Overview
The PlanningFactorInterface is a C++ class designed to facilitate the addition and publication of planning factors.
Design
The PlanningFactorInterface class is designed to be lightweight and efficient, with the following key components:
-
Add: Methods to add planning factors to the interface.
-
Publisher: The class includes a publisher for
PlanningFactorArraymessages, which are used to distribute planning factors to other nodes in the system.
The design emphasizes flexibility and ease of use, allowing developers to quickly integrate new planning factors into autoware.
Usage
Including the Header
To use the PlanningFactorInterface, include the header file in your code:
#include <autoware/planning_factor_interface/planning_factor_interface.hpp>
Creating an Instance
Instantiate the PlanningFactorInterface by providing a node and a name for the factor module:
class AvoidancePlanner
{
public:
AvoidancePlanner(rclcpp::Node & node)
: planning_factor_interface_{std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner")}
You can also enable console output for debugging by setting the appropriate parameters:
// Enable console output with a 1000ms throttle duration
planning_factor_interface_ = std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner", true, 1000);
Adding Planning Factors
planning_factor_interface_->add(
traj_points, ego_pose, stop_pose,
autoware_internal_planning_msgs::msg::PlanningFactor::NONE,
autoware_internal_planning_msgs::msg::SafetyFactorArray{});
Publishing Factors
After adding planning factors, you can publish them by calling the publish method:
// Publish the added factors
planning_factor_interface_->publish();
Changelog for package autoware_planning_factor_interface
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins (#1152)
* test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins Add the package's first gtest suite, wiring the missing BUILD_TESTING / ament_auto_add_gtest block in CMakeLists. The suite pins:
- single- and two-control-point add() ControlPoint/PlanningFactor field construction (pose, velocity, shift_length, distance, module name, behavior, detail, driving direction, safety factors),
- the templated add() overloads forwarding calcSignedArcLength results into ControlPoint.distance,
- factor accumulation across multiple add() calls in insertion order,
- the publish() contract: header.frame_id == 'map', factors forwarded into the PlanningFactorArray (verified via a test subscription), and factors_ cleared afterwards so the next cycle starts empty. Apply the low-risk, behavior-preserving perf wins flagged for this package: move the locally-built PlanningFactor into factors_ in both add() overloads, move factors_ into msg.factors in publish() (the buffer is cleared immediately after), and return factors_ by const reference from get_factors() to drop a deep copy per call. The publish() console gate now checks msg.factors (which holds the moved-from factors) so the output behavior is unchanged. Refs: autowarefoundation/autoware_core#1096
- style(pre-commit): autofix
* fix(autoware_planning_factor_interface): make factor non-const for real move A const-qualified factor caused std::move to bind to the copy constructor, silently degrading the intended move into factors_ to a copy. Drop the const qualifier on both add() overloads so push_back uses the move constructor. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
1.7.0 (2026-02-14)
1.6.0 (2025-12-30)
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(obstacle_stop_module, motion_velocity_planner_common): add safety_factor to obstacle_stop module (#572) add safety factor, add planning_factor test
-
chore: bump version (1.4.0) and update changelog (#608)
-
Contributors: Mete Fatih Cırıt, Yuki TAKAGI, Yutaka Kondo, mitsudome-r
1.4.0 (2025-08-11)
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome
1.3.0 (2025-06-23)
- fix: to be consistent version in all package.xml(s)
- feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
- feat!: remove obstacle_stop_planner and obstacle_cruise_planner
(#495)
- feat: remove obstacle_stop_planner and obstacle_cruise_planner
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_factor_interface at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Satoshi Ota
- Mamoru Sobue
Authors
- Satoshi Ota
autoware_planning_factor_interface
Overview
The PlanningFactorInterface is a C++ class designed to facilitate the addition and publication of planning factors.
Design
The PlanningFactorInterface class is designed to be lightweight and efficient, with the following key components:
-
Add: Methods to add planning factors to the interface.
-
Publisher: The class includes a publisher for
PlanningFactorArraymessages, which are used to distribute planning factors to other nodes in the system.
The design emphasizes flexibility and ease of use, allowing developers to quickly integrate new planning factors into autoware.
Usage
Including the Header
To use the PlanningFactorInterface, include the header file in your code:
#include <autoware/planning_factor_interface/planning_factor_interface.hpp>
Creating an Instance
Instantiate the PlanningFactorInterface by providing a node and a name for the factor module:
class AvoidancePlanner
{
public:
AvoidancePlanner(rclcpp::Node & node)
: planning_factor_interface_{std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner")}
You can also enable console output for debugging by setting the appropriate parameters:
// Enable console output with a 1000ms throttle duration
planning_factor_interface_ = std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner", true, 1000);
Adding Planning Factors
planning_factor_interface_->add(
traj_points, ego_pose, stop_pose,
autoware_internal_planning_msgs::msg::PlanningFactor::NONE,
autoware_internal_planning_msgs::msg::SafetyFactorArray{});
Publishing Factors
After adding planning factors, you can publish them by calling the publish method:
// Publish the added factors
planning_factor_interface_->publish();
Changelog for package autoware_planning_factor_interface
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins (#1152)
* test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins Add the package's first gtest suite, wiring the missing BUILD_TESTING / ament_auto_add_gtest block in CMakeLists. The suite pins:
- single- and two-control-point add() ControlPoint/PlanningFactor field construction (pose, velocity, shift_length, distance, module name, behavior, detail, driving direction, safety factors),
- the templated add() overloads forwarding calcSignedArcLength results into ControlPoint.distance,
- factor accumulation across multiple add() calls in insertion order,
- the publish() contract: header.frame_id == 'map', factors forwarded into the PlanningFactorArray (verified via a test subscription), and factors_ cleared afterwards so the next cycle starts empty. Apply the low-risk, behavior-preserving perf wins flagged for this package: move the locally-built PlanningFactor into factors_ in both add() overloads, move factors_ into msg.factors in publish() (the buffer is cleared immediately after), and return factors_ by const reference from get_factors() to drop a deep copy per call. The publish() console gate now checks msg.factors (which holds the moved-from factors) so the output behavior is unchanged. Refs: autowarefoundation/autoware_core#1096
- style(pre-commit): autofix
* fix(autoware_planning_factor_interface): make factor non-const for real move A const-qualified factor caused std::move to bind to the copy constructor, silently degrading the intended move into factors_ to a copy. Drop the const qualifier on both add() overloads so push_back uses the move constructor. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
1.7.0 (2026-02-14)
1.6.0 (2025-12-30)
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(obstacle_stop_module, motion_velocity_planner_common): add safety_factor to obstacle_stop module (#572) add safety factor, add planning_factor test
-
chore: bump version (1.4.0) and update changelog (#608)
-
Contributors: Mete Fatih Cırıt, Yuki TAKAGI, Yutaka Kondo, mitsudome-r
1.4.0 (2025-08-11)
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome
1.3.0 (2025-06-23)
- fix: to be consistent version in all package.xml(s)
- feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
- feat!: remove obstacle_stop_planner and obstacle_cruise_planner
(#495)
- feat: remove obstacle_stop_planner and obstacle_cruise_planner
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_factor_interface at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Satoshi Ota
- Mamoru Sobue
Authors
- Satoshi Ota
autoware_planning_factor_interface
Overview
The PlanningFactorInterface is a C++ class designed to facilitate the addition and publication of planning factors.
Design
The PlanningFactorInterface class is designed to be lightweight and efficient, with the following key components:
-
Add: Methods to add planning factors to the interface.
-
Publisher: The class includes a publisher for
PlanningFactorArraymessages, which are used to distribute planning factors to other nodes in the system.
The design emphasizes flexibility and ease of use, allowing developers to quickly integrate new planning factors into autoware.
Usage
Including the Header
To use the PlanningFactorInterface, include the header file in your code:
#include <autoware/planning_factor_interface/planning_factor_interface.hpp>
Creating an Instance
Instantiate the PlanningFactorInterface by providing a node and a name for the factor module:
class AvoidancePlanner
{
public:
AvoidancePlanner(rclcpp::Node & node)
: planning_factor_interface_{std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner")}
You can also enable console output for debugging by setting the appropriate parameters:
// Enable console output with a 1000ms throttle duration
planning_factor_interface_ = std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner", true, 1000);
Adding Planning Factors
planning_factor_interface_->add(
traj_points, ego_pose, stop_pose,
autoware_internal_planning_msgs::msg::PlanningFactor::NONE,
autoware_internal_planning_msgs::msg::SafetyFactorArray{});
Publishing Factors
After adding planning factors, you can publish them by calling the publish method:
// Publish the added factors
planning_factor_interface_->publish();
Changelog for package autoware_planning_factor_interface
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins (#1152)
* test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins Add the package's first gtest suite, wiring the missing BUILD_TESTING / ament_auto_add_gtest block in CMakeLists. The suite pins:
- single- and two-control-point add() ControlPoint/PlanningFactor field construction (pose, velocity, shift_length, distance, module name, behavior, detail, driving direction, safety factors),
- the templated add() overloads forwarding calcSignedArcLength results into ControlPoint.distance,
- factor accumulation across multiple add() calls in insertion order,
- the publish() contract: header.frame_id == 'map', factors forwarded into the PlanningFactorArray (verified via a test subscription), and factors_ cleared afterwards so the next cycle starts empty. Apply the low-risk, behavior-preserving perf wins flagged for this package: move the locally-built PlanningFactor into factors_ in both add() overloads, move factors_ into msg.factors in publish() (the buffer is cleared immediately after), and return factors_ by const reference from get_factors() to drop a deep copy per call. The publish() console gate now checks msg.factors (which holds the moved-from factors) so the output behavior is unchanged. Refs: autowarefoundation/autoware_core#1096
- style(pre-commit): autofix
* fix(autoware_planning_factor_interface): make factor non-const for real move A const-qualified factor caused std::move to bind to the copy constructor, silently degrading the intended move into factors_ to a copy. Drop the const qualifier on both add() overloads so push_back uses the move constructor. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
1.7.0 (2026-02-14)
1.6.0 (2025-12-30)
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(obstacle_stop_module, motion_velocity_planner_common): add safety_factor to obstacle_stop module (#572) add safety factor, add planning_factor test
-
chore: bump version (1.4.0) and update changelog (#608)
-
Contributors: Mete Fatih Cırıt, Yuki TAKAGI, Yutaka Kondo, mitsudome-r
1.4.0 (2025-08-11)
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome
1.3.0 (2025-06-23)
- fix: to be consistent version in all package.xml(s)
- feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
- feat!: remove obstacle_stop_planner and obstacle_cruise_planner
(#495)
- feat: remove obstacle_stop_planner and obstacle_cruise_planner
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_factor_interface at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Satoshi Ota
- Mamoru Sobue
Authors
- Satoshi Ota
autoware_planning_factor_interface
Overview
The PlanningFactorInterface is a C++ class designed to facilitate the addition and publication of planning factors.
Design
The PlanningFactorInterface class is designed to be lightweight and efficient, with the following key components:
-
Add: Methods to add planning factors to the interface.
-
Publisher: The class includes a publisher for
PlanningFactorArraymessages, which are used to distribute planning factors to other nodes in the system.
The design emphasizes flexibility and ease of use, allowing developers to quickly integrate new planning factors into autoware.
Usage
Including the Header
To use the PlanningFactorInterface, include the header file in your code:
#include <autoware/planning_factor_interface/planning_factor_interface.hpp>
Creating an Instance
Instantiate the PlanningFactorInterface by providing a node and a name for the factor module:
class AvoidancePlanner
{
public:
AvoidancePlanner(rclcpp::Node & node)
: planning_factor_interface_{std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner")}
You can also enable console output for debugging by setting the appropriate parameters:
// Enable console output with a 1000ms throttle duration
planning_factor_interface_ = std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner", true, 1000);
Adding Planning Factors
planning_factor_interface_->add(
traj_points, ego_pose, stop_pose,
autoware_internal_planning_msgs::msg::PlanningFactor::NONE,
autoware_internal_planning_msgs::msg::SafetyFactorArray{});
Publishing Factors
After adding planning factors, you can publish them by calling the publish method:
// Publish the added factors
planning_factor_interface_->publish();
Changelog for package autoware_planning_factor_interface
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins (#1152)
* test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins Add the package's first gtest suite, wiring the missing BUILD_TESTING / ament_auto_add_gtest block in CMakeLists. The suite pins:
- single- and two-control-point add() ControlPoint/PlanningFactor field construction (pose, velocity, shift_length, distance, module name, behavior, detail, driving direction, safety factors),
- the templated add() overloads forwarding calcSignedArcLength results into ControlPoint.distance,
- factor accumulation across multiple add() calls in insertion order,
- the publish() contract: header.frame_id == 'map', factors forwarded into the PlanningFactorArray (verified via a test subscription), and factors_ cleared afterwards so the next cycle starts empty. Apply the low-risk, behavior-preserving perf wins flagged for this package: move the locally-built PlanningFactor into factors_ in both add() overloads, move factors_ into msg.factors in publish() (the buffer is cleared immediately after), and return factors_ by const reference from get_factors() to drop a deep copy per call. The publish() console gate now checks msg.factors (which holds the moved-from factors) so the output behavior is unchanged. Refs: autowarefoundation/autoware_core#1096
- style(pre-commit): autofix
* fix(autoware_planning_factor_interface): make factor non-const for real move A const-qualified factor caused std::move to bind to the copy constructor, silently degrading the intended move into factors_ to a copy. Drop the const qualifier on both add() overloads so push_back uses the move constructor. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
1.7.0 (2026-02-14)
1.6.0 (2025-12-30)
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(obstacle_stop_module, motion_velocity_planner_common): add safety_factor to obstacle_stop module (#572) add safety factor, add planning_factor test
-
chore: bump version (1.4.0) and update changelog (#608)
-
Contributors: Mete Fatih Cırıt, Yuki TAKAGI, Yutaka Kondo, mitsudome-r
1.4.0 (2025-08-11)
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome
1.3.0 (2025-06-23)
- fix: to be consistent version in all package.xml(s)
- feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
- feat!: remove obstacle_stop_planner and obstacle_cruise_planner
(#495)
- feat: remove obstacle_stop_planner and obstacle_cruise_planner
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_factor_interface at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Satoshi Ota
- Mamoru Sobue
Authors
- Satoshi Ota
autoware_planning_factor_interface
Overview
The PlanningFactorInterface is a C++ class designed to facilitate the addition and publication of planning factors.
Design
The PlanningFactorInterface class is designed to be lightweight and efficient, with the following key components:
-
Add: Methods to add planning factors to the interface.
-
Publisher: The class includes a publisher for
PlanningFactorArraymessages, which are used to distribute planning factors to other nodes in the system.
The design emphasizes flexibility and ease of use, allowing developers to quickly integrate new planning factors into autoware.
Usage
Including the Header
To use the PlanningFactorInterface, include the header file in your code:
#include <autoware/planning_factor_interface/planning_factor_interface.hpp>
Creating an Instance
Instantiate the PlanningFactorInterface by providing a node and a name for the factor module:
class AvoidancePlanner
{
public:
AvoidancePlanner(rclcpp::Node & node)
: planning_factor_interface_{std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner")}
You can also enable console output for debugging by setting the appropriate parameters:
// Enable console output with a 1000ms throttle duration
planning_factor_interface_ = std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner", true, 1000);
Adding Planning Factors
planning_factor_interface_->add(
traj_points, ego_pose, stop_pose,
autoware_internal_planning_msgs::msg::PlanningFactor::NONE,
autoware_internal_planning_msgs::msg::SafetyFactorArray{});
Publishing Factors
After adding planning factors, you can publish them by calling the publish method:
// Publish the added factors
planning_factor_interface_->publish();
Changelog for package autoware_planning_factor_interface
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins (#1152)
* test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins Add the package's first gtest suite, wiring the missing BUILD_TESTING / ament_auto_add_gtest block in CMakeLists. The suite pins:
- single- and two-control-point add() ControlPoint/PlanningFactor field construction (pose, velocity, shift_length, distance, module name, behavior, detail, driving direction, safety factors),
- the templated add() overloads forwarding calcSignedArcLength results into ControlPoint.distance,
- factor accumulation across multiple add() calls in insertion order,
- the publish() contract: header.frame_id == 'map', factors forwarded into the PlanningFactorArray (verified via a test subscription), and factors_ cleared afterwards so the next cycle starts empty. Apply the low-risk, behavior-preserving perf wins flagged for this package: move the locally-built PlanningFactor into factors_ in both add() overloads, move factors_ into msg.factors in publish() (the buffer is cleared immediately after), and return factors_ by const reference from get_factors() to drop a deep copy per call. The publish() console gate now checks msg.factors (which holds the moved-from factors) so the output behavior is unchanged. Refs: autowarefoundation/autoware_core#1096
- style(pre-commit): autofix
* fix(autoware_planning_factor_interface): make factor non-const for real move A const-qualified factor caused std::move to bind to the copy constructor, silently degrading the intended move into factors_ to a copy. Drop the const qualifier on both add() overloads so push_back uses the move constructor. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
1.7.0 (2026-02-14)
1.6.0 (2025-12-30)
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(obstacle_stop_module, motion_velocity_planner_common): add safety_factor to obstacle_stop module (#572) add safety factor, add planning_factor test
-
chore: bump version (1.4.0) and update changelog (#608)
-
Contributors: Mete Fatih Cırıt, Yuki TAKAGI, Yutaka Kondo, mitsudome-r
1.4.0 (2025-08-11)
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome
1.3.0 (2025-06-23)
- fix: to be consistent version in all package.xml(s)
- feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
- feat!: remove obstacle_stop_planner and obstacle_cruise_planner
(#495)
- feat: remove obstacle_stop_planner and obstacle_cruise_planner
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_factor_interface at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Satoshi Ota
- Mamoru Sobue
Authors
- Satoshi Ota
autoware_planning_factor_interface
Overview
The PlanningFactorInterface is a C++ class designed to facilitate the addition and publication of planning factors.
Design
The PlanningFactorInterface class is designed to be lightweight and efficient, with the following key components:
-
Add: Methods to add planning factors to the interface.
-
Publisher: The class includes a publisher for
PlanningFactorArraymessages, which are used to distribute planning factors to other nodes in the system.
The design emphasizes flexibility and ease of use, allowing developers to quickly integrate new planning factors into autoware.
Usage
Including the Header
To use the PlanningFactorInterface, include the header file in your code:
#include <autoware/planning_factor_interface/planning_factor_interface.hpp>
Creating an Instance
Instantiate the PlanningFactorInterface by providing a node and a name for the factor module:
class AvoidancePlanner
{
public:
AvoidancePlanner(rclcpp::Node & node)
: planning_factor_interface_{std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner")}
You can also enable console output for debugging by setting the appropriate parameters:
// Enable console output with a 1000ms throttle duration
planning_factor_interface_ = std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner", true, 1000);
Adding Planning Factors
planning_factor_interface_->add(
traj_points, ego_pose, stop_pose,
autoware_internal_planning_msgs::msg::PlanningFactor::NONE,
autoware_internal_planning_msgs::msg::SafetyFactorArray{});
Publishing Factors
After adding planning factors, you can publish them by calling the publish method:
// Publish the added factors
planning_factor_interface_->publish();
Changelog for package autoware_planning_factor_interface
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins (#1152)
* test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins Add the package's first gtest suite, wiring the missing BUILD_TESTING / ament_auto_add_gtest block in CMakeLists. The suite pins:
- single- and two-control-point add() ControlPoint/PlanningFactor field construction (pose, velocity, shift_length, distance, module name, behavior, detail, driving direction, safety factors),
- the templated add() overloads forwarding calcSignedArcLength results into ControlPoint.distance,
- factor accumulation across multiple add() calls in insertion order,
- the publish() contract: header.frame_id == 'map', factors forwarded into the PlanningFactorArray (verified via a test subscription), and factors_ cleared afterwards so the next cycle starts empty. Apply the low-risk, behavior-preserving perf wins flagged for this package: move the locally-built PlanningFactor into factors_ in both add() overloads, move factors_ into msg.factors in publish() (the buffer is cleared immediately after), and return factors_ by const reference from get_factors() to drop a deep copy per call. The publish() console gate now checks msg.factors (which holds the moved-from factors) so the output behavior is unchanged. Refs: autowarefoundation/autoware_core#1096
- style(pre-commit): autofix
* fix(autoware_planning_factor_interface): make factor non-const for real move A const-qualified factor caused std::move to bind to the copy constructor, silently degrading the intended move into factors_ to a copy. Drop the const qualifier on both add() overloads so push_back uses the move constructor. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
1.7.0 (2026-02-14)
1.6.0 (2025-12-30)
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(obstacle_stop_module, motion_velocity_planner_common): add safety_factor to obstacle_stop module (#572) add safety factor, add planning_factor test
-
chore: bump version (1.4.0) and update changelog (#608)
-
Contributors: Mete Fatih Cırıt, Yuki TAKAGI, Yutaka Kondo, mitsudome-r
1.4.0 (2025-08-11)
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome
1.3.0 (2025-06-23)
- fix: to be consistent version in all package.xml(s)
- feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
- feat!: remove obstacle_stop_planner and obstacle_cruise_planner
(#495)
- feat: remove obstacle_stop_planner and obstacle_cruise_planner
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_factor_interface at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Satoshi Ota
- Mamoru Sobue
Authors
- Satoshi Ota
autoware_planning_factor_interface
Overview
The PlanningFactorInterface is a C++ class designed to facilitate the addition and publication of planning factors.
Design
The PlanningFactorInterface class is designed to be lightweight and efficient, with the following key components:
-
Add: Methods to add planning factors to the interface.
-
Publisher: The class includes a publisher for
PlanningFactorArraymessages, which are used to distribute planning factors to other nodes in the system.
The design emphasizes flexibility and ease of use, allowing developers to quickly integrate new planning factors into autoware.
Usage
Including the Header
To use the PlanningFactorInterface, include the header file in your code:
#include <autoware/planning_factor_interface/planning_factor_interface.hpp>
Creating an Instance
Instantiate the PlanningFactorInterface by providing a node and a name for the factor module:
class AvoidancePlanner
{
public:
AvoidancePlanner(rclcpp::Node & node)
: planning_factor_interface_{std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner")}
You can also enable console output for debugging by setting the appropriate parameters:
// Enable console output with a 1000ms throttle duration
planning_factor_interface_ = std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner", true, 1000);
Adding Planning Factors
planning_factor_interface_->add(
traj_points, ego_pose, stop_pose,
autoware_internal_planning_msgs::msg::PlanningFactor::NONE,
autoware_internal_planning_msgs::msg::SafetyFactorArray{});
Publishing Factors
After adding planning factors, you can publish them by calling the publish method:
// Publish the added factors
planning_factor_interface_->publish();
Changelog for package autoware_planning_factor_interface
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins (#1152)
* test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins Add the package's first gtest suite, wiring the missing BUILD_TESTING / ament_auto_add_gtest block in CMakeLists. The suite pins:
- single- and two-control-point add() ControlPoint/PlanningFactor field construction (pose, velocity, shift_length, distance, module name, behavior, detail, driving direction, safety factors),
- the templated add() overloads forwarding calcSignedArcLength results into ControlPoint.distance,
- factor accumulation across multiple add() calls in insertion order,
- the publish() contract: header.frame_id == 'map', factors forwarded into the PlanningFactorArray (verified via a test subscription), and factors_ cleared afterwards so the next cycle starts empty. Apply the low-risk, behavior-preserving perf wins flagged for this package: move the locally-built PlanningFactor into factors_ in both add() overloads, move factors_ into msg.factors in publish() (the buffer is cleared immediately after), and return factors_ by const reference from get_factors() to drop a deep copy per call. The publish() console gate now checks msg.factors (which holds the moved-from factors) so the output behavior is unchanged. Refs: autowarefoundation/autoware_core#1096
- style(pre-commit): autofix
* fix(autoware_planning_factor_interface): make factor non-const for real move A const-qualified factor caused std::move to bind to the copy constructor, silently degrading the intended move into factors_ to a copy. Drop the const qualifier on both add() overloads so push_back uses the move constructor. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
1.7.0 (2026-02-14)
1.6.0 (2025-12-30)
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(obstacle_stop_module, motion_velocity_planner_common): add safety_factor to obstacle_stop module (#572) add safety factor, add planning_factor test
-
chore: bump version (1.4.0) and update changelog (#608)
-
Contributors: Mete Fatih Cırıt, Yuki TAKAGI, Yutaka Kondo, mitsudome-r
1.4.0 (2025-08-11)
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome
1.3.0 (2025-06-23)
- fix: to be consistent version in all package.xml(s)
- feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
- feat!: remove obstacle_stop_planner and obstacle_cruise_planner
(#495)
- feat: remove obstacle_stop_planner and obstacle_cruise_planner
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_factor_interface at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Satoshi Ota
- Mamoru Sobue
Authors
- Satoshi Ota
autoware_planning_factor_interface
Overview
The PlanningFactorInterface is a C++ class designed to facilitate the addition and publication of planning factors.
Design
The PlanningFactorInterface class is designed to be lightweight and efficient, with the following key components:
-
Add: Methods to add planning factors to the interface.
-
Publisher: The class includes a publisher for
PlanningFactorArraymessages, which are used to distribute planning factors to other nodes in the system.
The design emphasizes flexibility and ease of use, allowing developers to quickly integrate new planning factors into autoware.
Usage
Including the Header
To use the PlanningFactorInterface, include the header file in your code:
#include <autoware/planning_factor_interface/planning_factor_interface.hpp>
Creating an Instance
Instantiate the PlanningFactorInterface by providing a node and a name for the factor module:
class AvoidancePlanner
{
public:
AvoidancePlanner(rclcpp::Node & node)
: planning_factor_interface_{std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner")}
You can also enable console output for debugging by setting the appropriate parameters:
// Enable console output with a 1000ms throttle duration
planning_factor_interface_ = std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner", true, 1000);
Adding Planning Factors
planning_factor_interface_->add(
traj_points, ego_pose, stop_pose,
autoware_internal_planning_msgs::msg::PlanningFactor::NONE,
autoware_internal_planning_msgs::msg::SafetyFactorArray{});
Publishing Factors
After adding planning factors, you can publish them by calling the publish method:
// Publish the added factors
planning_factor_interface_->publish();
Changelog for package autoware_planning_factor_interface
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins (#1152)
* test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins Add the package's first gtest suite, wiring the missing BUILD_TESTING / ament_auto_add_gtest block in CMakeLists. The suite pins:
- single- and two-control-point add() ControlPoint/PlanningFactor field construction (pose, velocity, shift_length, distance, module name, behavior, detail, driving direction, safety factors),
- the templated add() overloads forwarding calcSignedArcLength results into ControlPoint.distance,
- factor accumulation across multiple add() calls in insertion order,
- the publish() contract: header.frame_id == 'map', factors forwarded into the PlanningFactorArray (verified via a test subscription), and factors_ cleared afterwards so the next cycle starts empty. Apply the low-risk, behavior-preserving perf wins flagged for this package: move the locally-built PlanningFactor into factors_ in both add() overloads, move factors_ into msg.factors in publish() (the buffer is cleared immediately after), and return factors_ by const reference from get_factors() to drop a deep copy per call. The publish() console gate now checks msg.factors (which holds the moved-from factors) so the output behavior is unchanged. Refs: autowarefoundation/autoware_core#1096
- style(pre-commit): autofix
* fix(autoware_planning_factor_interface): make factor non-const for real move A const-qualified factor caused std::move to bind to the copy constructor, silently degrading the intended move into factors_ to a copy. Drop the const qualifier on both add() overloads so push_back uses the move constructor. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
1.7.0 (2026-02-14)
1.6.0 (2025-12-30)
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(obstacle_stop_module, motion_velocity_planner_common): add safety_factor to obstacle_stop module (#572) add safety factor, add planning_factor test
-
chore: bump version (1.4.0) and update changelog (#608)
-
Contributors: Mete Fatih Cırıt, Yuki TAKAGI, Yutaka Kondo, mitsudome-r
1.4.0 (2025-08-11)
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome
1.3.0 (2025-06-23)
- fix: to be consistent version in all package.xml(s)
- feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
- feat!: remove obstacle_stop_planner and obstacle_cruise_planner
(#495)
- feat: remove obstacle_stop_planner and obstacle_cruise_planner
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_factor_interface at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Satoshi Ota
- Mamoru Sobue
Authors
- Satoshi Ota
autoware_planning_factor_interface
Overview
The PlanningFactorInterface is a C++ class designed to facilitate the addition and publication of planning factors.
Design
The PlanningFactorInterface class is designed to be lightweight and efficient, with the following key components:
-
Add: Methods to add planning factors to the interface.
-
Publisher: The class includes a publisher for
PlanningFactorArraymessages, which are used to distribute planning factors to other nodes in the system.
The design emphasizes flexibility and ease of use, allowing developers to quickly integrate new planning factors into autoware.
Usage
Including the Header
To use the PlanningFactorInterface, include the header file in your code:
#include <autoware/planning_factor_interface/planning_factor_interface.hpp>
Creating an Instance
Instantiate the PlanningFactorInterface by providing a node and a name for the factor module:
class AvoidancePlanner
{
public:
AvoidancePlanner(rclcpp::Node & node)
: planning_factor_interface_{std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner")}
You can also enable console output for debugging by setting the appropriate parameters:
// Enable console output with a 1000ms throttle duration
planning_factor_interface_ = std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner", true, 1000);
Adding Planning Factors
planning_factor_interface_->add(
traj_points, ego_pose, stop_pose,
autoware_internal_planning_msgs::msg::PlanningFactor::NONE,
autoware_internal_planning_msgs::msg::SafetyFactorArray{});
Publishing Factors
After adding planning factors, you can publish them by calling the publish method:
// Publish the added factors
planning_factor_interface_->publish();
Changelog for package autoware_planning_factor_interface
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins (#1152)
* test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins Add the package's first gtest suite, wiring the missing BUILD_TESTING / ament_auto_add_gtest block in CMakeLists. The suite pins:
- single- and two-control-point add() ControlPoint/PlanningFactor field construction (pose, velocity, shift_length, distance, module name, behavior, detail, driving direction, safety factors),
- the templated add() overloads forwarding calcSignedArcLength results into ControlPoint.distance,
- factor accumulation across multiple add() calls in insertion order,
- the publish() contract: header.frame_id == 'map', factors forwarded into the PlanningFactorArray (verified via a test subscription), and factors_ cleared afterwards so the next cycle starts empty. Apply the low-risk, behavior-preserving perf wins flagged for this package: move the locally-built PlanningFactor into factors_ in both add() overloads, move factors_ into msg.factors in publish() (the buffer is cleared immediately after), and return factors_ by const reference from get_factors() to drop a deep copy per call. The publish() console gate now checks msg.factors (which holds the moved-from factors) so the output behavior is unchanged. Refs: autowarefoundation/autoware_core#1096
- style(pre-commit): autofix
* fix(autoware_planning_factor_interface): make factor non-const for real move A const-qualified factor caused std::move to bind to the copy constructor, silently degrading the intended move into factors_ to a copy. Drop the const qualifier on both add() overloads so push_back uses the move constructor. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
1.7.0 (2026-02-14)
1.6.0 (2025-12-30)
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(obstacle_stop_module, motion_velocity_planner_common): add safety_factor to obstacle_stop module (#572) add safety factor, add planning_factor test
-
chore: bump version (1.4.0) and update changelog (#608)
-
Contributors: Mete Fatih Cırıt, Yuki TAKAGI, Yutaka Kondo, mitsudome-r
1.4.0 (2025-08-11)
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome
1.3.0 (2025-06-23)
- fix: to be consistent version in all package.xml(s)
- feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
- feat!: remove obstacle_stop_planner and obstacle_cruise_planner
(#495)
- feat: remove obstacle_stop_planner and obstacle_cruise_planner
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_factor_interface at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Satoshi Ota
- Mamoru Sobue
Authors
- Satoshi Ota
autoware_planning_factor_interface
Overview
The PlanningFactorInterface is a C++ class designed to facilitate the addition and publication of planning factors.
Design
The PlanningFactorInterface class is designed to be lightweight and efficient, with the following key components:
-
Add: Methods to add planning factors to the interface.
-
Publisher: The class includes a publisher for
PlanningFactorArraymessages, which are used to distribute planning factors to other nodes in the system.
The design emphasizes flexibility and ease of use, allowing developers to quickly integrate new planning factors into autoware.
Usage
Including the Header
To use the PlanningFactorInterface, include the header file in your code:
#include <autoware/planning_factor_interface/planning_factor_interface.hpp>
Creating an Instance
Instantiate the PlanningFactorInterface by providing a node and a name for the factor module:
class AvoidancePlanner
{
public:
AvoidancePlanner(rclcpp::Node & node)
: planning_factor_interface_{std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner")}
You can also enable console output for debugging by setting the appropriate parameters:
// Enable console output with a 1000ms throttle duration
planning_factor_interface_ = std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner", true, 1000);
Adding Planning Factors
planning_factor_interface_->add(
traj_points, ego_pose, stop_pose,
autoware_internal_planning_msgs::msg::PlanningFactor::NONE,
autoware_internal_planning_msgs::msg::SafetyFactorArray{});
Publishing Factors
After adding planning factors, you can publish them by calling the publish method:
// Publish the added factors
planning_factor_interface_->publish();
Changelog for package autoware_planning_factor_interface
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins (#1152)
* test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins Add the package's first gtest suite, wiring the missing BUILD_TESTING / ament_auto_add_gtest block in CMakeLists. The suite pins:
- single- and two-control-point add() ControlPoint/PlanningFactor field construction (pose, velocity, shift_length, distance, module name, behavior, detail, driving direction, safety factors),
- the templated add() overloads forwarding calcSignedArcLength results into ControlPoint.distance,
- factor accumulation across multiple add() calls in insertion order,
- the publish() contract: header.frame_id == 'map', factors forwarded into the PlanningFactorArray (verified via a test subscription), and factors_ cleared afterwards so the next cycle starts empty. Apply the low-risk, behavior-preserving perf wins flagged for this package: move the locally-built PlanningFactor into factors_ in both add() overloads, move factors_ into msg.factors in publish() (the buffer is cleared immediately after), and return factors_ by const reference from get_factors() to drop a deep copy per call. The publish() console gate now checks msg.factors (which holds the moved-from factors) so the output behavior is unchanged. Refs: autowarefoundation/autoware_core#1096
- style(pre-commit): autofix
* fix(autoware_planning_factor_interface): make factor non-const for real move A const-qualified factor caused std::move to bind to the copy constructor, silently degrading the intended move into factors_ to a copy. Drop the const qualifier on both add() overloads so push_back uses the move constructor. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
1.7.0 (2026-02-14)
1.6.0 (2025-12-30)
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(obstacle_stop_module, motion_velocity_planner_common): add safety_factor to obstacle_stop module (#572) add safety factor, add planning_factor test
-
chore: bump version (1.4.0) and update changelog (#608)
-
Contributors: Mete Fatih Cırıt, Yuki TAKAGI, Yutaka Kondo, mitsudome-r
1.4.0 (2025-08-11)
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome
1.3.0 (2025-06-23)
- fix: to be consistent version in all package.xml(s)
- feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
- feat!: remove obstacle_stop_planner and obstacle_cruise_planner
(#495)
- feat: remove obstacle_stop_planner and obstacle_cruise_planner
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_factor_interface at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Satoshi Ota
- Mamoru Sobue
Authors
- Satoshi Ota
autoware_planning_factor_interface
Overview
The PlanningFactorInterface is a C++ class designed to facilitate the addition and publication of planning factors.
Design
The PlanningFactorInterface class is designed to be lightweight and efficient, with the following key components:
-
Add: Methods to add planning factors to the interface.
-
Publisher: The class includes a publisher for
PlanningFactorArraymessages, which are used to distribute planning factors to other nodes in the system.
The design emphasizes flexibility and ease of use, allowing developers to quickly integrate new planning factors into autoware.
Usage
Including the Header
To use the PlanningFactorInterface, include the header file in your code:
#include <autoware/planning_factor_interface/planning_factor_interface.hpp>
Creating an Instance
Instantiate the PlanningFactorInterface by providing a node and a name for the factor module:
class AvoidancePlanner
{
public:
AvoidancePlanner(rclcpp::Node & node)
: planning_factor_interface_{std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner")}
You can also enable console output for debugging by setting the appropriate parameters:
// Enable console output with a 1000ms throttle duration
planning_factor_interface_ = std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner", true, 1000);
Adding Planning Factors
planning_factor_interface_->add(
traj_points, ego_pose, stop_pose,
autoware_internal_planning_msgs::msg::PlanningFactor::NONE,
autoware_internal_planning_msgs::msg::SafetyFactorArray{});
Publishing Factors
After adding planning factors, you can publish them by calling the publish method:
// Publish the added factors
planning_factor_interface_->publish();
Changelog for package autoware_planning_factor_interface
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins (#1152)
* test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins Add the package's first gtest suite, wiring the missing BUILD_TESTING / ament_auto_add_gtest block in CMakeLists. The suite pins:
- single- and two-control-point add() ControlPoint/PlanningFactor field construction (pose, velocity, shift_length, distance, module name, behavior, detail, driving direction, safety factors),
- the templated add() overloads forwarding calcSignedArcLength results into ControlPoint.distance,
- factor accumulation across multiple add() calls in insertion order,
- the publish() contract: header.frame_id == 'map', factors forwarded into the PlanningFactorArray (verified via a test subscription), and factors_ cleared afterwards so the next cycle starts empty. Apply the low-risk, behavior-preserving perf wins flagged for this package: move the locally-built PlanningFactor into factors_ in both add() overloads, move factors_ into msg.factors in publish() (the buffer is cleared immediately after), and return factors_ by const reference from get_factors() to drop a deep copy per call. The publish() console gate now checks msg.factors (which holds the moved-from factors) so the output behavior is unchanged. Refs: autowarefoundation/autoware_core#1096
- style(pre-commit): autofix
* fix(autoware_planning_factor_interface): make factor non-const for real move A const-qualified factor caused std::move to bind to the copy constructor, silently degrading the intended move into factors_ to a copy. Drop the const qualifier on both add() overloads so push_back uses the move constructor. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
1.7.0 (2026-02-14)
1.6.0 (2025-12-30)
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(obstacle_stop_module, motion_velocity_planner_common): add safety_factor to obstacle_stop module (#572) add safety factor, add planning_factor test
-
chore: bump version (1.4.0) and update changelog (#608)
-
Contributors: Mete Fatih Cırıt, Yuki TAKAGI, Yutaka Kondo, mitsudome-r
1.4.0 (2025-08-11)
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome
1.3.0 (2025-06-23)
- fix: to be consistent version in all package.xml(s)
- feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
- feat!: remove obstacle_stop_planner and obstacle_cruise_planner
(#495)
- feat: remove obstacle_stop_planner and obstacle_cruise_planner
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_factor_interface at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Satoshi Ota
- Mamoru Sobue
Authors
- Satoshi Ota
autoware_planning_factor_interface
Overview
The PlanningFactorInterface is a C++ class designed to facilitate the addition and publication of planning factors.
Design
The PlanningFactorInterface class is designed to be lightweight and efficient, with the following key components:
-
Add: Methods to add planning factors to the interface.
-
Publisher: The class includes a publisher for
PlanningFactorArraymessages, which are used to distribute planning factors to other nodes in the system.
The design emphasizes flexibility and ease of use, allowing developers to quickly integrate new planning factors into autoware.
Usage
Including the Header
To use the PlanningFactorInterface, include the header file in your code:
#include <autoware/planning_factor_interface/planning_factor_interface.hpp>
Creating an Instance
Instantiate the PlanningFactorInterface by providing a node and a name for the factor module:
class AvoidancePlanner
{
public:
AvoidancePlanner(rclcpp::Node & node)
: planning_factor_interface_{std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner")}
You can also enable console output for debugging by setting the appropriate parameters:
// Enable console output with a 1000ms throttle duration
planning_factor_interface_ = std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner", true, 1000);
Adding Planning Factors
planning_factor_interface_->add(
traj_points, ego_pose, stop_pose,
autoware_internal_planning_msgs::msg::PlanningFactor::NONE,
autoware_internal_planning_msgs::msg::SafetyFactorArray{});
Publishing Factors
After adding planning factors, you can publish them by calling the publish method:
// Publish the added factors
planning_factor_interface_->publish();
Changelog for package autoware_planning_factor_interface
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins (#1152)
* test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins Add the package's first gtest suite, wiring the missing BUILD_TESTING / ament_auto_add_gtest block in CMakeLists. The suite pins:
- single- and two-control-point add() ControlPoint/PlanningFactor field construction (pose, velocity, shift_length, distance, module name, behavior, detail, driving direction, safety factors),
- the templated add() overloads forwarding calcSignedArcLength results into ControlPoint.distance,
- factor accumulation across multiple add() calls in insertion order,
- the publish() contract: header.frame_id == 'map', factors forwarded into the PlanningFactorArray (verified via a test subscription), and factors_ cleared afterwards so the next cycle starts empty. Apply the low-risk, behavior-preserving perf wins flagged for this package: move the locally-built PlanningFactor into factors_ in both add() overloads, move factors_ into msg.factors in publish() (the buffer is cleared immediately after), and return factors_ by const reference from get_factors() to drop a deep copy per call. The publish() console gate now checks msg.factors (which holds the moved-from factors) so the output behavior is unchanged. Refs: autowarefoundation/autoware_core#1096
- style(pre-commit): autofix
* fix(autoware_planning_factor_interface): make factor non-const for real move A const-qualified factor caused std::move to bind to the copy constructor, silently degrading the intended move into factors_ to a copy. Drop the const qualifier on both add() overloads so push_back uses the move constructor. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
1.7.0 (2026-02-14)
1.6.0 (2025-12-30)
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(obstacle_stop_module, motion_velocity_planner_common): add safety_factor to obstacle_stop module (#572) add safety factor, add planning_factor test
-
chore: bump version (1.4.0) and update changelog (#608)
-
Contributors: Mete Fatih Cırıt, Yuki TAKAGI, Yutaka Kondo, mitsudome-r
1.4.0 (2025-08-11)
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome
1.3.0 (2025-06-23)
- fix: to be consistent version in all package.xml(s)
- feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
- feat!: remove obstacle_stop_planner and obstacle_cruise_planner
(#495)
- feat: remove obstacle_stop_planner and obstacle_cruise_planner
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_factor_interface at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Satoshi Ota
- Mamoru Sobue
Authors
- Satoshi Ota
autoware_planning_factor_interface
Overview
The PlanningFactorInterface is a C++ class designed to facilitate the addition and publication of planning factors.
Design
The PlanningFactorInterface class is designed to be lightweight and efficient, with the following key components:
-
Add: Methods to add planning factors to the interface.
-
Publisher: The class includes a publisher for
PlanningFactorArraymessages, which are used to distribute planning factors to other nodes in the system.
The design emphasizes flexibility and ease of use, allowing developers to quickly integrate new planning factors into autoware.
Usage
Including the Header
To use the PlanningFactorInterface, include the header file in your code:
#include <autoware/planning_factor_interface/planning_factor_interface.hpp>
Creating an Instance
Instantiate the PlanningFactorInterface by providing a node and a name for the factor module:
class AvoidancePlanner
{
public:
AvoidancePlanner(rclcpp::Node & node)
: planning_factor_interface_{std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner")}
You can also enable console output for debugging by setting the appropriate parameters:
// Enable console output with a 1000ms throttle duration
planning_factor_interface_ = std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner", true, 1000);
Adding Planning Factors
planning_factor_interface_->add(
traj_points, ego_pose, stop_pose,
autoware_internal_planning_msgs::msg::PlanningFactor::NONE,
autoware_internal_planning_msgs::msg::SafetyFactorArray{});
Publishing Factors
After adding planning factors, you can publish them by calling the publish method:
// Publish the added factors
planning_factor_interface_->publish();
Changelog for package autoware_planning_factor_interface
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins (#1152)
* test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins Add the package's first gtest suite, wiring the missing BUILD_TESTING / ament_auto_add_gtest block in CMakeLists. The suite pins:
- single- and two-control-point add() ControlPoint/PlanningFactor field construction (pose, velocity, shift_length, distance, module name, behavior, detail, driving direction, safety factors),
- the templated add() overloads forwarding calcSignedArcLength results into ControlPoint.distance,
- factor accumulation across multiple add() calls in insertion order,
- the publish() contract: header.frame_id == 'map', factors forwarded into the PlanningFactorArray (verified via a test subscription), and factors_ cleared afterwards so the next cycle starts empty. Apply the low-risk, behavior-preserving perf wins flagged for this package: move the locally-built PlanningFactor into factors_ in both add() overloads, move factors_ into msg.factors in publish() (the buffer is cleared immediately after), and return factors_ by const reference from get_factors() to drop a deep copy per call. The publish() console gate now checks msg.factors (which holds the moved-from factors) so the output behavior is unchanged. Refs: autowarefoundation/autoware_core#1096
- style(pre-commit): autofix
* fix(autoware_planning_factor_interface): make factor non-const for real move A const-qualified factor caused std::move to bind to the copy constructor, silently degrading the intended move into factors_ to a copy. Drop the const qualifier on both add() overloads so push_back uses the move constructor. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
1.7.0 (2026-02-14)
1.6.0 (2025-12-30)
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(obstacle_stop_module, motion_velocity_planner_common): add safety_factor to obstacle_stop module (#572) add safety factor, add planning_factor test
-
chore: bump version (1.4.0) and update changelog (#608)
-
Contributors: Mete Fatih Cırıt, Yuki TAKAGI, Yutaka Kondo, mitsudome-r
1.4.0 (2025-08-11)
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome
1.3.0 (2025-06-23)
- fix: to be consistent version in all package.xml(s)
- feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
- feat!: remove obstacle_stop_planner and obstacle_cruise_planner
(#495)
- feat: remove obstacle_stop_planner and obstacle_cruise_planner
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_factor_interface at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Satoshi Ota
- Mamoru Sobue
Authors
- Satoshi Ota
autoware_planning_factor_interface
Overview
The PlanningFactorInterface is a C++ class designed to facilitate the addition and publication of planning factors.
Design
The PlanningFactorInterface class is designed to be lightweight and efficient, with the following key components:
-
Add: Methods to add planning factors to the interface.
-
Publisher: The class includes a publisher for
PlanningFactorArraymessages, which are used to distribute planning factors to other nodes in the system.
The design emphasizes flexibility and ease of use, allowing developers to quickly integrate new planning factors into autoware.
Usage
Including the Header
To use the PlanningFactorInterface, include the header file in your code:
#include <autoware/planning_factor_interface/planning_factor_interface.hpp>
Creating an Instance
Instantiate the PlanningFactorInterface by providing a node and a name for the factor module:
class AvoidancePlanner
{
public:
AvoidancePlanner(rclcpp::Node & node)
: planning_factor_interface_{std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner")}
You can also enable console output for debugging by setting the appropriate parameters:
// Enable console output with a 1000ms throttle duration
planning_factor_interface_ = std::make_unique<
autoware::planning_factor_interface::PlanningFactorInterface>(
&node, "avoidance_planner", true, 1000);
Adding Planning Factors
planning_factor_interface_->add(
traj_points, ego_pose, stop_pose,
autoware_internal_planning_msgs::msg::PlanningFactor::NONE,
autoware_internal_planning_msgs::msg::SafetyFactorArray{});
Publishing Factors
After adding planning factors, you can publish them by calling the publish method:
// Publish the added factors
planning_factor_interface_->publish();
Changelog for package autoware_planning_factor_interface
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins (#1152)
* test(autoware_planning_factor_interface): add gtest suite and apply move-based perf wins Add the package's first gtest suite, wiring the missing BUILD_TESTING / ament_auto_add_gtest block in CMakeLists. The suite pins:
- single- and two-control-point add() ControlPoint/PlanningFactor field construction (pose, velocity, shift_length, distance, module name, behavior, detail, driving direction, safety factors),
- the templated add() overloads forwarding calcSignedArcLength results into ControlPoint.distance,
- factor accumulation across multiple add() calls in insertion order,
- the publish() contract: header.frame_id == 'map', factors forwarded into the PlanningFactorArray (verified via a test subscription), and factors_ cleared afterwards so the next cycle starts empty. Apply the low-risk, behavior-preserving perf wins flagged for this package: move the locally-built PlanningFactor into factors_ in both add() overloads, move factors_ into msg.factors in publish() (the buffer is cleared immediately after), and return factors_ by const reference from get_factors() to drop a deep copy per call. The publish() console gate now checks msg.factors (which holds the moved-from factors) so the output behavior is unchanged. Refs: autowarefoundation/autoware_core#1096
- style(pre-commit): autofix
* fix(autoware_planning_factor_interface): make factor non-const for real move A const-qualified factor caused std::move to bind to the copy constructor, silently degrading the intended move into factors_ to a copy. Drop the const qualifier on both add() overloads so push_back uses the move constructor. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
1.7.0 (2026-02-14)
1.6.0 (2025-12-30)
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(obstacle_stop_module, motion_velocity_planner_common): add safety_factor to obstacle_stop module (#572) add safety factor, add planning_factor test
-
chore: bump version (1.4.0) and update changelog (#608)
-
Contributors: Mete Fatih Cırıt, Yuki TAKAGI, Yutaka Kondo, mitsudome-r
1.4.0 (2025-08-11)
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome
1.3.0 (2025-06-23)
- fix: to be consistent version in all package.xml(s)
- feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
- feat!: remove obstacle_stop_planner and obstacle_cruise_planner
(#495)
- feat: remove obstacle_stop_planner and obstacle_cruise_planner
File truncated at 100 lines see the full file