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
- Yuki Takagi
- Kosuke Takeuchi
- Takayuki Murooka
Authors
Simple Pure Pursuit
The simple_pure_pursuit node receives a reference trajectory from motion_velocity_smoother and calculates the control command using the pure pursuit algorithm.
Flowchart
@startuml
title on_timer
start
:takeData;
if (is data ready?) then (yes)
else
stop
endif
group create_control_command
if (reached goal?) then (yes)
:publish stop command;
stop
endif
:calc_longitudinal_control;
:calc_steering_angle;
end group
:publish control command;
stop
@enduml
Input topics
| Name | Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs::msg::Odometry |
ego odometry |
~/input/trajectory |
autoware_planning_msgs::msg::Trajectory |
reference trajectory |
Output topics
| Name | Type | Description | QoS Durability |
|---|---|---|---|
~/output/control_command |
autoware_control_msgs::msg::Control |
control command | volatile |
Parameters
{{ json_to_markdown(“control/autoware_simple_pure_pursuit/schema/simple_pure_pursuit.schema.json”) }}
Changelog for package autoware_simple_pure_pursuit
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: [codecov/refactoring] [simple_pure_pursuit] isolation of core logics, and full revamp of unit tests (#1182)
- init simpupu core logics module with Apache license
- init simpupu core logics module with Apache license
- init simpupu core logics header with Apache license
- defined simpupu params struct
- define public funcs
- defined private funcs and entities for core logics
- implement simple pure pursuit constructor and param setter
- isolate create_control_command's core logics from the mess of ROS2+core logics in original node module
- isolatecalc_longitudinal_control the same way
- isolate calc_lateral_coltrol the same way
- modified calc_lateral_control as for now completely immitates the original func (after discussing with the team)
- refactored the simpupu main header - removing all core logics, leaving only ROS-related
- refactored the simpupu main module - same way as headers - only ROS2 related + core logics inference
- quick fixes based for clang compiler suggests
- adapt cmakelists, package xml and header of core logics, thus wrapping up step 2
- test_simple_pure_pursuit.cpp - first make it work on build
- removed the old test cases in unit test module because the old ones are bundled and obsoleted with new architecture
- added test 1 of perfectly normal case ahppy tracking
- added test 2 of strong terminal brake at trajectory goal
- added test 3 of strong terminal brake when trajectory is wayyyyyyyy too short
- added test 4 of overriding with external target velocity
- adeed test 5 of lateral offset correcting
- added test 6 of lookahead distance clamping (the current calc logic is weird so I had to resort to infinity check)
- added final branch coverage case of lookahead point search exceeding trajectory length case
- some final touchups, all good I guess
- style(pre-commit): autofix
- deal with spell-check-differential
- fixed that cpplink precommit test of you dont need a ; after a } thingy
- style(pre-commit): autofix
- fixed that cpplint precommit of Add #include <memory> for make_unique<> [build/include_what_you_use]
- change all to (yeah lol right, tbf I've used English for too long to the point of not thinking twice about plural single forms of these words
- style(pre-commit): autofix
- refactoring the file/class names as Ishikawa-san suggested
- style(pre-commit): autofix
- bring trajectory fallback to core logics
- prevent node to return early upon false validation
- dropping set_params() for ummitability
- successful build
- rebased, gonna add the precommit lint locally later
- style(pre-commit): autofix
- rebase
- style(pre-commit): autofix
- fixed spellcheck differentials
- unified namespaces
* Update control/autoware_simple_pure_pursuit/src/simple_pure_pursuit.hpp Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
- [akamine] redundant function set_params() at header
- [akamine] remove branch redundancy in clongitudinal control command core logic
- [akamine] name the magic number -10.0 as terminal_brake_accel at simple_pure_pursuit logic header and apply it to whole node
- [akamine] fix typo EXCEPT=>EXPECT
- [akamine] fix class name in docstring
* [akamine] node name inconsistency fix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
-
feat: [codecod/refactoring] [simple_pure_pursuit] implement characterization test (#1179)
- init characterization test for simple pure pursuit node with Apache license
- include generic dependencies
- declare naemspace structures
- added a dummy odometry generator
- added a dummy trajectory generator
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
- launch/simple_pure_pursuit.launch.xml
-
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_simple_pure_pursuit 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
- Yuki Takagi
- Kosuke Takeuchi
- Takayuki Murooka
Authors
Simple Pure Pursuit
The simple_pure_pursuit node receives a reference trajectory from motion_velocity_smoother and calculates the control command using the pure pursuit algorithm.
Flowchart
@startuml
title on_timer
start
:takeData;
if (is data ready?) then (yes)
else
stop
endif
group create_control_command
if (reached goal?) then (yes)
:publish stop command;
stop
endif
:calc_longitudinal_control;
:calc_steering_angle;
end group
:publish control command;
stop
@enduml
Input topics
| Name | Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs::msg::Odometry |
ego odometry |
~/input/trajectory |
autoware_planning_msgs::msg::Trajectory |
reference trajectory |
Output topics
| Name | Type | Description | QoS Durability |
|---|---|---|---|
~/output/control_command |
autoware_control_msgs::msg::Control |
control command | volatile |
Parameters
{{ json_to_markdown(“control/autoware_simple_pure_pursuit/schema/simple_pure_pursuit.schema.json”) }}
Changelog for package autoware_simple_pure_pursuit
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: [codecov/refactoring] [simple_pure_pursuit] isolation of core logics, and full revamp of unit tests (#1182)
- init simpupu core logics module with Apache license
- init simpupu core logics module with Apache license
- init simpupu core logics header with Apache license
- defined simpupu params struct
- define public funcs
- defined private funcs and entities for core logics
- implement simple pure pursuit constructor and param setter
- isolate create_control_command's core logics from the mess of ROS2+core logics in original node module
- isolatecalc_longitudinal_control the same way
- isolate calc_lateral_coltrol the same way
- modified calc_lateral_control as for now completely immitates the original func (after discussing with the team)
- refactored the simpupu main header - removing all core logics, leaving only ROS-related
- refactored the simpupu main module - same way as headers - only ROS2 related + core logics inference
- quick fixes based for clang compiler suggests
- adapt cmakelists, package xml and header of core logics, thus wrapping up step 2
- test_simple_pure_pursuit.cpp - first make it work on build
- removed the old test cases in unit test module because the old ones are bundled and obsoleted with new architecture
- added test 1 of perfectly normal case ahppy tracking
- added test 2 of strong terminal brake at trajectory goal
- added test 3 of strong terminal brake when trajectory is wayyyyyyyy too short
- added test 4 of overriding with external target velocity
- adeed test 5 of lateral offset correcting
- added test 6 of lookahead distance clamping (the current calc logic is weird so I had to resort to infinity check)
- added final branch coverage case of lookahead point search exceeding trajectory length case
- some final touchups, all good I guess
- style(pre-commit): autofix
- deal with spell-check-differential
- fixed that cpplink precommit test of you dont need a ; after a } thingy
- style(pre-commit): autofix
- fixed that cpplint precommit of Add #include <memory> for make_unique<> [build/include_what_you_use]
- change all to (yeah lol right, tbf I've used English for too long to the point of not thinking twice about plural single forms of these words
- style(pre-commit): autofix
- refactoring the file/class names as Ishikawa-san suggested
- style(pre-commit): autofix
- bring trajectory fallback to core logics
- prevent node to return early upon false validation
- dropping set_params() for ummitability
- successful build
- rebased, gonna add the precommit lint locally later
- style(pre-commit): autofix
- rebase
- style(pre-commit): autofix
- fixed spellcheck differentials
- unified namespaces
* Update control/autoware_simple_pure_pursuit/src/simple_pure_pursuit.hpp Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
- [akamine] redundant function set_params() at header
- [akamine] remove branch redundancy in clongitudinal control command core logic
- [akamine] name the magic number -10.0 as terminal_brake_accel at simple_pure_pursuit logic header and apply it to whole node
- [akamine] fix typo EXCEPT=>EXPECT
- [akamine] fix class name in docstring
* [akamine] node name inconsistency fix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
-
feat: [codecod/refactoring] [simple_pure_pursuit] implement characterization test (#1179)
- init characterization test for simple pure pursuit node with Apache license
- include generic dependencies
- declare naemspace structures
- added a dummy odometry generator
- added a dummy trajectory generator
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
- launch/simple_pure_pursuit.launch.xml
-
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_simple_pure_pursuit 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
- Yuki Takagi
- Kosuke Takeuchi
- Takayuki Murooka
Authors
Simple Pure Pursuit
The simple_pure_pursuit node receives a reference trajectory from motion_velocity_smoother and calculates the control command using the pure pursuit algorithm.
Flowchart
@startuml
title on_timer
start
:takeData;
if (is data ready?) then (yes)
else
stop
endif
group create_control_command
if (reached goal?) then (yes)
:publish stop command;
stop
endif
:calc_longitudinal_control;
:calc_steering_angle;
end group
:publish control command;
stop
@enduml
Input topics
| Name | Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs::msg::Odometry |
ego odometry |
~/input/trajectory |
autoware_planning_msgs::msg::Trajectory |
reference trajectory |
Output topics
| Name | Type | Description | QoS Durability |
|---|---|---|---|
~/output/control_command |
autoware_control_msgs::msg::Control |
control command | volatile |
Parameters
{{ json_to_markdown(“control/autoware_simple_pure_pursuit/schema/simple_pure_pursuit.schema.json”) }}
Changelog for package autoware_simple_pure_pursuit
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: [codecov/refactoring] [simple_pure_pursuit] isolation of core logics, and full revamp of unit tests (#1182)
- init simpupu core logics module with Apache license
- init simpupu core logics module with Apache license
- init simpupu core logics header with Apache license
- defined simpupu params struct
- define public funcs
- defined private funcs and entities for core logics
- implement simple pure pursuit constructor and param setter
- isolate create_control_command's core logics from the mess of ROS2+core logics in original node module
- isolatecalc_longitudinal_control the same way
- isolate calc_lateral_coltrol the same way
- modified calc_lateral_control as for now completely immitates the original func (after discussing with the team)
- refactored the simpupu main header - removing all core logics, leaving only ROS-related
- refactored the simpupu main module - same way as headers - only ROS2 related + core logics inference
- quick fixes based for clang compiler suggests
- adapt cmakelists, package xml and header of core logics, thus wrapping up step 2
- test_simple_pure_pursuit.cpp - first make it work on build
- removed the old test cases in unit test module because the old ones are bundled and obsoleted with new architecture
- added test 1 of perfectly normal case ahppy tracking
- added test 2 of strong terminal brake at trajectory goal
- added test 3 of strong terminal brake when trajectory is wayyyyyyyy too short
- added test 4 of overriding with external target velocity
- adeed test 5 of lateral offset correcting
- added test 6 of lookahead distance clamping (the current calc logic is weird so I had to resort to infinity check)
- added final branch coverage case of lookahead point search exceeding trajectory length case
- some final touchups, all good I guess
- style(pre-commit): autofix
- deal with spell-check-differential
- fixed that cpplink precommit test of you dont need a ; after a } thingy
- style(pre-commit): autofix
- fixed that cpplint precommit of Add #include <memory> for make_unique<> [build/include_what_you_use]
- change all to (yeah lol right, tbf I've used English for too long to the point of not thinking twice about plural single forms of these words
- style(pre-commit): autofix
- refactoring the file/class names as Ishikawa-san suggested
- style(pre-commit): autofix
- bring trajectory fallback to core logics
- prevent node to return early upon false validation
- dropping set_params() for ummitability
- successful build
- rebased, gonna add the precommit lint locally later
- style(pre-commit): autofix
- rebase
- style(pre-commit): autofix
- fixed spellcheck differentials
- unified namespaces
* Update control/autoware_simple_pure_pursuit/src/simple_pure_pursuit.hpp Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
- [akamine] redundant function set_params() at header
- [akamine] remove branch redundancy in clongitudinal control command core logic
- [akamine] name the magic number -10.0 as terminal_brake_accel at simple_pure_pursuit logic header and apply it to whole node
- [akamine] fix typo EXCEPT=>EXPECT
- [akamine] fix class name in docstring
* [akamine] node name inconsistency fix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
-
feat: [codecod/refactoring] [simple_pure_pursuit] implement characterization test (#1179)
- init characterization test for simple pure pursuit node with Apache license
- include generic dependencies
- declare naemspace structures
- added a dummy odometry generator
- added a dummy trajectory generator
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
- launch/simple_pure_pursuit.launch.xml
-
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_simple_pure_pursuit 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
- Yuki Takagi
- Kosuke Takeuchi
- Takayuki Murooka
Authors
Simple Pure Pursuit
The simple_pure_pursuit node receives a reference trajectory from motion_velocity_smoother and calculates the control command using the pure pursuit algorithm.
Flowchart
@startuml
title on_timer
start
:takeData;
if (is data ready?) then (yes)
else
stop
endif
group create_control_command
if (reached goal?) then (yes)
:publish stop command;
stop
endif
:calc_longitudinal_control;
:calc_steering_angle;
end group
:publish control command;
stop
@enduml
Input topics
| Name | Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs::msg::Odometry |
ego odometry |
~/input/trajectory |
autoware_planning_msgs::msg::Trajectory |
reference trajectory |
Output topics
| Name | Type | Description | QoS Durability |
|---|---|---|---|
~/output/control_command |
autoware_control_msgs::msg::Control |
control command | volatile |
Parameters
{{ json_to_markdown(“control/autoware_simple_pure_pursuit/schema/simple_pure_pursuit.schema.json”) }}
Changelog for package autoware_simple_pure_pursuit
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: [codecov/refactoring] [simple_pure_pursuit] isolation of core logics, and full revamp of unit tests (#1182)
- init simpupu core logics module with Apache license
- init simpupu core logics module with Apache license
- init simpupu core logics header with Apache license
- defined simpupu params struct
- define public funcs
- defined private funcs and entities for core logics
- implement simple pure pursuit constructor and param setter
- isolate create_control_command's core logics from the mess of ROS2+core logics in original node module
- isolatecalc_longitudinal_control the same way
- isolate calc_lateral_coltrol the same way
- modified calc_lateral_control as for now completely immitates the original func (after discussing with the team)
- refactored the simpupu main header - removing all core logics, leaving only ROS-related
- refactored the simpupu main module - same way as headers - only ROS2 related + core logics inference
- quick fixes based for clang compiler suggests
- adapt cmakelists, package xml and header of core logics, thus wrapping up step 2
- test_simple_pure_pursuit.cpp - first make it work on build
- removed the old test cases in unit test module because the old ones are bundled and obsoleted with new architecture
- added test 1 of perfectly normal case ahppy tracking
- added test 2 of strong terminal brake at trajectory goal
- added test 3 of strong terminal brake when trajectory is wayyyyyyyy too short
- added test 4 of overriding with external target velocity
- adeed test 5 of lateral offset correcting
- added test 6 of lookahead distance clamping (the current calc logic is weird so I had to resort to infinity check)
- added final branch coverage case of lookahead point search exceeding trajectory length case
- some final touchups, all good I guess
- style(pre-commit): autofix
- deal with spell-check-differential
- fixed that cpplink precommit test of you dont need a ; after a } thingy
- style(pre-commit): autofix
- fixed that cpplint precommit of Add #include <memory> for make_unique<> [build/include_what_you_use]
- change all to (yeah lol right, tbf I've used English for too long to the point of not thinking twice about plural single forms of these words
- style(pre-commit): autofix
- refactoring the file/class names as Ishikawa-san suggested
- style(pre-commit): autofix
- bring trajectory fallback to core logics
- prevent node to return early upon false validation
- dropping set_params() for ummitability
- successful build
- rebased, gonna add the precommit lint locally later
- style(pre-commit): autofix
- rebase
- style(pre-commit): autofix
- fixed spellcheck differentials
- unified namespaces
* Update control/autoware_simple_pure_pursuit/src/simple_pure_pursuit.hpp Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
- [akamine] redundant function set_params() at header
- [akamine] remove branch redundancy in clongitudinal control command core logic
- [akamine] name the magic number -10.0 as terminal_brake_accel at simple_pure_pursuit logic header and apply it to whole node
- [akamine] fix typo EXCEPT=>EXPECT
- [akamine] fix class name in docstring
* [akamine] node name inconsistency fix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
-
feat: [codecod/refactoring] [simple_pure_pursuit] implement characterization test (#1179)
- init characterization test for simple pure pursuit node with Apache license
- include generic dependencies
- declare naemspace structures
- added a dummy odometry generator
- added a dummy trajectory generator
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
- launch/simple_pure_pursuit.launch.xml
-
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_simple_pure_pursuit 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
- Yuki Takagi
- Kosuke Takeuchi
- Takayuki Murooka
Authors
Simple Pure Pursuit
The simple_pure_pursuit node receives a reference trajectory from motion_velocity_smoother and calculates the control command using the pure pursuit algorithm.
Flowchart
@startuml
title on_timer
start
:takeData;
if (is data ready?) then (yes)
else
stop
endif
group create_control_command
if (reached goal?) then (yes)
:publish stop command;
stop
endif
:calc_longitudinal_control;
:calc_steering_angle;
end group
:publish control command;
stop
@enduml
Input topics
| Name | Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs::msg::Odometry |
ego odometry |
~/input/trajectory |
autoware_planning_msgs::msg::Trajectory |
reference trajectory |
Output topics
| Name | Type | Description | QoS Durability |
|---|---|---|---|
~/output/control_command |
autoware_control_msgs::msg::Control |
control command | volatile |
Parameters
{{ json_to_markdown(“control/autoware_simple_pure_pursuit/schema/simple_pure_pursuit.schema.json”) }}
Changelog for package autoware_simple_pure_pursuit
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: [codecov/refactoring] [simple_pure_pursuit] isolation of core logics, and full revamp of unit tests (#1182)
- init simpupu core logics module with Apache license
- init simpupu core logics module with Apache license
- init simpupu core logics header with Apache license
- defined simpupu params struct
- define public funcs
- defined private funcs and entities for core logics
- implement simple pure pursuit constructor and param setter
- isolate create_control_command's core logics from the mess of ROS2+core logics in original node module
- isolatecalc_longitudinal_control the same way
- isolate calc_lateral_coltrol the same way
- modified calc_lateral_control as for now completely immitates the original func (after discussing with the team)
- refactored the simpupu main header - removing all core logics, leaving only ROS-related
- refactored the simpupu main module - same way as headers - only ROS2 related + core logics inference
- quick fixes based for clang compiler suggests
- adapt cmakelists, package xml and header of core logics, thus wrapping up step 2
- test_simple_pure_pursuit.cpp - first make it work on build
- removed the old test cases in unit test module because the old ones are bundled and obsoleted with new architecture
- added test 1 of perfectly normal case ahppy tracking
- added test 2 of strong terminal brake at trajectory goal
- added test 3 of strong terminal brake when trajectory is wayyyyyyyy too short
- added test 4 of overriding with external target velocity
- adeed test 5 of lateral offset correcting
- added test 6 of lookahead distance clamping (the current calc logic is weird so I had to resort to infinity check)
- added final branch coverage case of lookahead point search exceeding trajectory length case
- some final touchups, all good I guess
- style(pre-commit): autofix
- deal with spell-check-differential
- fixed that cpplink precommit test of you dont need a ; after a } thingy
- style(pre-commit): autofix
- fixed that cpplint precommit of Add #include <memory> for make_unique<> [build/include_what_you_use]
- change all to (yeah lol right, tbf I've used English for too long to the point of not thinking twice about plural single forms of these words
- style(pre-commit): autofix
- refactoring the file/class names as Ishikawa-san suggested
- style(pre-commit): autofix
- bring trajectory fallback to core logics
- prevent node to return early upon false validation
- dropping set_params() for ummitability
- successful build
- rebased, gonna add the precommit lint locally later
- style(pre-commit): autofix
- rebase
- style(pre-commit): autofix
- fixed spellcheck differentials
- unified namespaces
* Update control/autoware_simple_pure_pursuit/src/simple_pure_pursuit.hpp Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
- [akamine] redundant function set_params() at header
- [akamine] remove branch redundancy in clongitudinal control command core logic
- [akamine] name the magic number -10.0 as terminal_brake_accel at simple_pure_pursuit logic header and apply it to whole node
- [akamine] fix typo EXCEPT=>EXPECT
- [akamine] fix class name in docstring
* [akamine] node name inconsistency fix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
-
feat: [codecod/refactoring] [simple_pure_pursuit] implement characterization test (#1179)
- init characterization test for simple pure pursuit node with Apache license
- include generic dependencies
- declare naemspace structures
- added a dummy odometry generator
- added a dummy trajectory generator
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
- launch/simple_pure_pursuit.launch.xml
-
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_simple_pure_pursuit 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
- Yuki Takagi
- Kosuke Takeuchi
- Takayuki Murooka
Authors
Simple Pure Pursuit
The simple_pure_pursuit node receives a reference trajectory from motion_velocity_smoother and calculates the control command using the pure pursuit algorithm.
Flowchart
@startuml
title on_timer
start
:takeData;
if (is data ready?) then (yes)
else
stop
endif
group create_control_command
if (reached goal?) then (yes)
:publish stop command;
stop
endif
:calc_longitudinal_control;
:calc_steering_angle;
end group
:publish control command;
stop
@enduml
Input topics
| Name | Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs::msg::Odometry |
ego odometry |
~/input/trajectory |
autoware_planning_msgs::msg::Trajectory |
reference trajectory |
Output topics
| Name | Type | Description | QoS Durability |
|---|---|---|---|
~/output/control_command |
autoware_control_msgs::msg::Control |
control command | volatile |
Parameters
{{ json_to_markdown(“control/autoware_simple_pure_pursuit/schema/simple_pure_pursuit.schema.json”) }}
Changelog for package autoware_simple_pure_pursuit
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: [codecov/refactoring] [simple_pure_pursuit] isolation of core logics, and full revamp of unit tests (#1182)
- init simpupu core logics module with Apache license
- init simpupu core logics module with Apache license
- init simpupu core logics header with Apache license
- defined simpupu params struct
- define public funcs
- defined private funcs and entities for core logics
- implement simple pure pursuit constructor and param setter
- isolate create_control_command's core logics from the mess of ROS2+core logics in original node module
- isolatecalc_longitudinal_control the same way
- isolate calc_lateral_coltrol the same way
- modified calc_lateral_control as for now completely immitates the original func (after discussing with the team)
- refactored the simpupu main header - removing all core logics, leaving only ROS-related
- refactored the simpupu main module - same way as headers - only ROS2 related + core logics inference
- quick fixes based for clang compiler suggests
- adapt cmakelists, package xml and header of core logics, thus wrapping up step 2
- test_simple_pure_pursuit.cpp - first make it work on build
- removed the old test cases in unit test module because the old ones are bundled and obsoleted with new architecture
- added test 1 of perfectly normal case ahppy tracking
- added test 2 of strong terminal brake at trajectory goal
- added test 3 of strong terminal brake when trajectory is wayyyyyyyy too short
- added test 4 of overriding with external target velocity
- adeed test 5 of lateral offset correcting
- added test 6 of lookahead distance clamping (the current calc logic is weird so I had to resort to infinity check)
- added final branch coverage case of lookahead point search exceeding trajectory length case
- some final touchups, all good I guess
- style(pre-commit): autofix
- deal with spell-check-differential
- fixed that cpplink precommit test of you dont need a ; after a } thingy
- style(pre-commit): autofix
- fixed that cpplint precommit of Add #include <memory> for make_unique<> [build/include_what_you_use]
- change all to (yeah lol right, tbf I've used English for too long to the point of not thinking twice about plural single forms of these words
- style(pre-commit): autofix
- refactoring the file/class names as Ishikawa-san suggested
- style(pre-commit): autofix
- bring trajectory fallback to core logics
- prevent node to return early upon false validation
- dropping set_params() for ummitability
- successful build
- rebased, gonna add the precommit lint locally later
- style(pre-commit): autofix
- rebase
- style(pre-commit): autofix
- fixed spellcheck differentials
- unified namespaces
* Update control/autoware_simple_pure_pursuit/src/simple_pure_pursuit.hpp Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
- [akamine] redundant function set_params() at header
- [akamine] remove branch redundancy in clongitudinal control command core logic
- [akamine] name the magic number -10.0 as terminal_brake_accel at simple_pure_pursuit logic header and apply it to whole node
- [akamine] fix typo EXCEPT=>EXPECT
- [akamine] fix class name in docstring
* [akamine] node name inconsistency fix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
-
feat: [codecod/refactoring] [simple_pure_pursuit] implement characterization test (#1179)
- init characterization test for simple pure pursuit node with Apache license
- include generic dependencies
- declare naemspace structures
- added a dummy odometry generator
- added a dummy trajectory generator
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
- launch/simple_pure_pursuit.launch.xml
-
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_simple_pure_pursuit 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
- Yuki Takagi
- Kosuke Takeuchi
- Takayuki Murooka
Authors
Simple Pure Pursuit
The simple_pure_pursuit node receives a reference trajectory from motion_velocity_smoother and calculates the control command using the pure pursuit algorithm.
Flowchart
@startuml
title on_timer
start
:takeData;
if (is data ready?) then (yes)
else
stop
endif
group create_control_command
if (reached goal?) then (yes)
:publish stop command;
stop
endif
:calc_longitudinal_control;
:calc_steering_angle;
end group
:publish control command;
stop
@enduml
Input topics
| Name | Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs::msg::Odometry |
ego odometry |
~/input/trajectory |
autoware_planning_msgs::msg::Trajectory |
reference trajectory |
Output topics
| Name | Type | Description | QoS Durability |
|---|---|---|---|
~/output/control_command |
autoware_control_msgs::msg::Control |
control command | volatile |
Parameters
{{ json_to_markdown(“control/autoware_simple_pure_pursuit/schema/simple_pure_pursuit.schema.json”) }}
Changelog for package autoware_simple_pure_pursuit
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: [codecov/refactoring] [simple_pure_pursuit] isolation of core logics, and full revamp of unit tests (#1182)
- init simpupu core logics module with Apache license
- init simpupu core logics module with Apache license
- init simpupu core logics header with Apache license
- defined simpupu params struct
- define public funcs
- defined private funcs and entities for core logics
- implement simple pure pursuit constructor and param setter
- isolate create_control_command's core logics from the mess of ROS2+core logics in original node module
- isolatecalc_longitudinal_control the same way
- isolate calc_lateral_coltrol the same way
- modified calc_lateral_control as for now completely immitates the original func (after discussing with the team)
- refactored the simpupu main header - removing all core logics, leaving only ROS-related
- refactored the simpupu main module - same way as headers - only ROS2 related + core logics inference
- quick fixes based for clang compiler suggests
- adapt cmakelists, package xml and header of core logics, thus wrapping up step 2
- test_simple_pure_pursuit.cpp - first make it work on build
- removed the old test cases in unit test module because the old ones are bundled and obsoleted with new architecture
- added test 1 of perfectly normal case ahppy tracking
- added test 2 of strong terminal brake at trajectory goal
- added test 3 of strong terminal brake when trajectory is wayyyyyyyy too short
- added test 4 of overriding with external target velocity
- adeed test 5 of lateral offset correcting
- added test 6 of lookahead distance clamping (the current calc logic is weird so I had to resort to infinity check)
- added final branch coverage case of lookahead point search exceeding trajectory length case
- some final touchups, all good I guess
- style(pre-commit): autofix
- deal with spell-check-differential
- fixed that cpplink precommit test of you dont need a ; after a } thingy
- style(pre-commit): autofix
- fixed that cpplint precommit of Add #include <memory> for make_unique<> [build/include_what_you_use]
- change all to (yeah lol right, tbf I've used English for too long to the point of not thinking twice about plural single forms of these words
- style(pre-commit): autofix
- refactoring the file/class names as Ishikawa-san suggested
- style(pre-commit): autofix
- bring trajectory fallback to core logics
- prevent node to return early upon false validation
- dropping set_params() for ummitability
- successful build
- rebased, gonna add the precommit lint locally later
- style(pre-commit): autofix
- rebase
- style(pre-commit): autofix
- fixed spellcheck differentials
- unified namespaces
* Update control/autoware_simple_pure_pursuit/src/simple_pure_pursuit.hpp Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
- [akamine] redundant function set_params() at header
- [akamine] remove branch redundancy in clongitudinal control command core logic
- [akamine] name the magic number -10.0 as terminal_brake_accel at simple_pure_pursuit logic header and apply it to whole node
- [akamine] fix typo EXCEPT=>EXPECT
- [akamine] fix class name in docstring
* [akamine] node name inconsistency fix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
-
feat: [codecod/refactoring] [simple_pure_pursuit] implement characterization test (#1179)
- init characterization test for simple pure pursuit node with Apache license
- include generic dependencies
- declare naemspace structures
- added a dummy odometry generator
- added a dummy trajectory generator
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
- launch/simple_pure_pursuit.launch.xml
-
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_simple_pure_pursuit 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
- Yuki Takagi
- Kosuke Takeuchi
- Takayuki Murooka
Authors
Simple Pure Pursuit
The simple_pure_pursuit node receives a reference trajectory from motion_velocity_smoother and calculates the control command using the pure pursuit algorithm.
Flowchart
@startuml
title on_timer
start
:takeData;
if (is data ready?) then (yes)
else
stop
endif
group create_control_command
if (reached goal?) then (yes)
:publish stop command;
stop
endif
:calc_longitudinal_control;
:calc_steering_angle;
end group
:publish control command;
stop
@enduml
Input topics
| Name | Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs::msg::Odometry |
ego odometry |
~/input/trajectory |
autoware_planning_msgs::msg::Trajectory |
reference trajectory |
Output topics
| Name | Type | Description | QoS Durability |
|---|---|---|---|
~/output/control_command |
autoware_control_msgs::msg::Control |
control command | volatile |
Parameters
{{ json_to_markdown(“control/autoware_simple_pure_pursuit/schema/simple_pure_pursuit.schema.json”) }}
Changelog for package autoware_simple_pure_pursuit
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: [codecov/refactoring] [simple_pure_pursuit] isolation of core logics, and full revamp of unit tests (#1182)
- init simpupu core logics module with Apache license
- init simpupu core logics module with Apache license
- init simpupu core logics header with Apache license
- defined simpupu params struct
- define public funcs
- defined private funcs and entities for core logics
- implement simple pure pursuit constructor and param setter
- isolate create_control_command's core logics from the mess of ROS2+core logics in original node module
- isolatecalc_longitudinal_control the same way
- isolate calc_lateral_coltrol the same way
- modified calc_lateral_control as for now completely immitates the original func (after discussing with the team)
- refactored the simpupu main header - removing all core logics, leaving only ROS-related
- refactored the simpupu main module - same way as headers - only ROS2 related + core logics inference
- quick fixes based for clang compiler suggests
- adapt cmakelists, package xml and header of core logics, thus wrapping up step 2
- test_simple_pure_pursuit.cpp - first make it work on build
- removed the old test cases in unit test module because the old ones are bundled and obsoleted with new architecture
- added test 1 of perfectly normal case ahppy tracking
- added test 2 of strong terminal brake at trajectory goal
- added test 3 of strong terminal brake when trajectory is wayyyyyyyy too short
- added test 4 of overriding with external target velocity
- adeed test 5 of lateral offset correcting
- added test 6 of lookahead distance clamping (the current calc logic is weird so I had to resort to infinity check)
- added final branch coverage case of lookahead point search exceeding trajectory length case
- some final touchups, all good I guess
- style(pre-commit): autofix
- deal with spell-check-differential
- fixed that cpplink precommit test of you dont need a ; after a } thingy
- style(pre-commit): autofix
- fixed that cpplint precommit of Add #include <memory> for make_unique<> [build/include_what_you_use]
- change all to (yeah lol right, tbf I've used English for too long to the point of not thinking twice about plural single forms of these words
- style(pre-commit): autofix
- refactoring the file/class names as Ishikawa-san suggested
- style(pre-commit): autofix
- bring trajectory fallback to core logics
- prevent node to return early upon false validation
- dropping set_params() for ummitability
- successful build
- rebased, gonna add the precommit lint locally later
- style(pre-commit): autofix
- rebase
- style(pre-commit): autofix
- fixed spellcheck differentials
- unified namespaces
* Update control/autoware_simple_pure_pursuit/src/simple_pure_pursuit.hpp Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
- [akamine] redundant function set_params() at header
- [akamine] remove branch redundancy in clongitudinal control command core logic
- [akamine] name the magic number -10.0 as terminal_brake_accel at simple_pure_pursuit logic header and apply it to whole node
- [akamine] fix typo EXCEPT=>EXPECT
- [akamine] fix class name in docstring
* [akamine] node name inconsistency fix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
-
feat: [codecod/refactoring] [simple_pure_pursuit] implement characterization test (#1179)
- init characterization test for simple pure pursuit node with Apache license
- include generic dependencies
- declare naemspace structures
- added a dummy odometry generator
- added a dummy trajectory generator
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
- launch/simple_pure_pursuit.launch.xml
-
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_simple_pure_pursuit 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
- Yuki Takagi
- Kosuke Takeuchi
- Takayuki Murooka
Authors
Simple Pure Pursuit
The simple_pure_pursuit node receives a reference trajectory from motion_velocity_smoother and calculates the control command using the pure pursuit algorithm.
Flowchart
@startuml
title on_timer
start
:takeData;
if (is data ready?) then (yes)
else
stop
endif
group create_control_command
if (reached goal?) then (yes)
:publish stop command;
stop
endif
:calc_longitudinal_control;
:calc_steering_angle;
end group
:publish control command;
stop
@enduml
Input topics
| Name | Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs::msg::Odometry |
ego odometry |
~/input/trajectory |
autoware_planning_msgs::msg::Trajectory |
reference trajectory |
Output topics
| Name | Type | Description | QoS Durability |
|---|---|---|---|
~/output/control_command |
autoware_control_msgs::msg::Control |
control command | volatile |
Parameters
{{ json_to_markdown(“control/autoware_simple_pure_pursuit/schema/simple_pure_pursuit.schema.json”) }}
Changelog for package autoware_simple_pure_pursuit
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: [codecov/refactoring] [simple_pure_pursuit] isolation of core logics, and full revamp of unit tests (#1182)
- init simpupu core logics module with Apache license
- init simpupu core logics module with Apache license
- init simpupu core logics header with Apache license
- defined simpupu params struct
- define public funcs
- defined private funcs and entities for core logics
- implement simple pure pursuit constructor and param setter
- isolate create_control_command's core logics from the mess of ROS2+core logics in original node module
- isolatecalc_longitudinal_control the same way
- isolate calc_lateral_coltrol the same way
- modified calc_lateral_control as for now completely immitates the original func (after discussing with the team)
- refactored the simpupu main header - removing all core logics, leaving only ROS-related
- refactored the simpupu main module - same way as headers - only ROS2 related + core logics inference
- quick fixes based for clang compiler suggests
- adapt cmakelists, package xml and header of core logics, thus wrapping up step 2
- test_simple_pure_pursuit.cpp - first make it work on build
- removed the old test cases in unit test module because the old ones are bundled and obsoleted with new architecture
- added test 1 of perfectly normal case ahppy tracking
- added test 2 of strong terminal brake at trajectory goal
- added test 3 of strong terminal brake when trajectory is wayyyyyyyy too short
- added test 4 of overriding with external target velocity
- adeed test 5 of lateral offset correcting
- added test 6 of lookahead distance clamping (the current calc logic is weird so I had to resort to infinity check)
- added final branch coverage case of lookahead point search exceeding trajectory length case
- some final touchups, all good I guess
- style(pre-commit): autofix
- deal with spell-check-differential
- fixed that cpplink precommit test of you dont need a ; after a } thingy
- style(pre-commit): autofix
- fixed that cpplint precommit of Add #include <memory> for make_unique<> [build/include_what_you_use]
- change all to (yeah lol right, tbf I've used English for too long to the point of not thinking twice about plural single forms of these words
- style(pre-commit): autofix
- refactoring the file/class names as Ishikawa-san suggested
- style(pre-commit): autofix
- bring trajectory fallback to core logics
- prevent node to return early upon false validation
- dropping set_params() for ummitability
- successful build
- rebased, gonna add the precommit lint locally later
- style(pre-commit): autofix
- rebase
- style(pre-commit): autofix
- fixed spellcheck differentials
- unified namespaces
* Update control/autoware_simple_pure_pursuit/src/simple_pure_pursuit.hpp Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
- [akamine] redundant function set_params() at header
- [akamine] remove branch redundancy in clongitudinal control command core logic
- [akamine] name the magic number -10.0 as terminal_brake_accel at simple_pure_pursuit logic header and apply it to whole node
- [akamine] fix typo EXCEPT=>EXPECT
- [akamine] fix class name in docstring
* [akamine] node name inconsistency fix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
-
feat: [codecod/refactoring] [simple_pure_pursuit] implement characterization test (#1179)
- init characterization test for simple pure pursuit node with Apache license
- include generic dependencies
- declare naemspace structures
- added a dummy odometry generator
- added a dummy trajectory generator
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
- launch/simple_pure_pursuit.launch.xml
-
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_simple_pure_pursuit 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
- Yuki Takagi
- Kosuke Takeuchi
- Takayuki Murooka
Authors
Simple Pure Pursuit
The simple_pure_pursuit node receives a reference trajectory from motion_velocity_smoother and calculates the control command using the pure pursuit algorithm.
Flowchart
@startuml
title on_timer
start
:takeData;
if (is data ready?) then (yes)
else
stop
endif
group create_control_command
if (reached goal?) then (yes)
:publish stop command;
stop
endif
:calc_longitudinal_control;
:calc_steering_angle;
end group
:publish control command;
stop
@enduml
Input topics
| Name | Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs::msg::Odometry |
ego odometry |
~/input/trajectory |
autoware_planning_msgs::msg::Trajectory |
reference trajectory |
Output topics
| Name | Type | Description | QoS Durability |
|---|---|---|---|
~/output/control_command |
autoware_control_msgs::msg::Control |
control command | volatile |
Parameters
{{ json_to_markdown(“control/autoware_simple_pure_pursuit/schema/simple_pure_pursuit.schema.json”) }}
Changelog for package autoware_simple_pure_pursuit
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: [codecov/refactoring] [simple_pure_pursuit] isolation of core logics, and full revamp of unit tests (#1182)
- init simpupu core logics module with Apache license
- init simpupu core logics module with Apache license
- init simpupu core logics header with Apache license
- defined simpupu params struct
- define public funcs
- defined private funcs and entities for core logics
- implement simple pure pursuit constructor and param setter
- isolate create_control_command's core logics from the mess of ROS2+core logics in original node module
- isolatecalc_longitudinal_control the same way
- isolate calc_lateral_coltrol the same way
- modified calc_lateral_control as for now completely immitates the original func (after discussing with the team)
- refactored the simpupu main header - removing all core logics, leaving only ROS-related
- refactored the simpupu main module - same way as headers - only ROS2 related + core logics inference
- quick fixes based for clang compiler suggests
- adapt cmakelists, package xml and header of core logics, thus wrapping up step 2
- test_simple_pure_pursuit.cpp - first make it work on build
- removed the old test cases in unit test module because the old ones are bundled and obsoleted with new architecture
- added test 1 of perfectly normal case ahppy tracking
- added test 2 of strong terminal brake at trajectory goal
- added test 3 of strong terminal brake when trajectory is wayyyyyyyy too short
- added test 4 of overriding with external target velocity
- adeed test 5 of lateral offset correcting
- added test 6 of lookahead distance clamping (the current calc logic is weird so I had to resort to infinity check)
- added final branch coverage case of lookahead point search exceeding trajectory length case
- some final touchups, all good I guess
- style(pre-commit): autofix
- deal with spell-check-differential
- fixed that cpplink precommit test of you dont need a ; after a } thingy
- style(pre-commit): autofix
- fixed that cpplint precommit of Add #include <memory> for make_unique<> [build/include_what_you_use]
- change all to (yeah lol right, tbf I've used English for too long to the point of not thinking twice about plural single forms of these words
- style(pre-commit): autofix
- refactoring the file/class names as Ishikawa-san suggested
- style(pre-commit): autofix
- bring trajectory fallback to core logics
- prevent node to return early upon false validation
- dropping set_params() for ummitability
- successful build
- rebased, gonna add the precommit lint locally later
- style(pre-commit): autofix
- rebase
- style(pre-commit): autofix
- fixed spellcheck differentials
- unified namespaces
* Update control/autoware_simple_pure_pursuit/src/simple_pure_pursuit.hpp Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
- [akamine] redundant function set_params() at header
- [akamine] remove branch redundancy in clongitudinal control command core logic
- [akamine] name the magic number -10.0 as terminal_brake_accel at simple_pure_pursuit logic header and apply it to whole node
- [akamine] fix typo EXCEPT=>EXPECT
- [akamine] fix class name in docstring
* [akamine] node name inconsistency fix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
-
feat: [codecod/refactoring] [simple_pure_pursuit] implement characterization test (#1179)
- init characterization test for simple pure pursuit node with Apache license
- include generic dependencies
- declare naemspace structures
- added a dummy odometry generator
- added a dummy trajectory generator
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
- launch/simple_pure_pursuit.launch.xml
-
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_simple_pure_pursuit 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
- Yuki Takagi
- Kosuke Takeuchi
- Takayuki Murooka
Authors
Simple Pure Pursuit
The simple_pure_pursuit node receives a reference trajectory from motion_velocity_smoother and calculates the control command using the pure pursuit algorithm.
Flowchart
@startuml
title on_timer
start
:takeData;
if (is data ready?) then (yes)
else
stop
endif
group create_control_command
if (reached goal?) then (yes)
:publish stop command;
stop
endif
:calc_longitudinal_control;
:calc_steering_angle;
end group
:publish control command;
stop
@enduml
Input topics
| Name | Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs::msg::Odometry |
ego odometry |
~/input/trajectory |
autoware_planning_msgs::msg::Trajectory |
reference trajectory |
Output topics
| Name | Type | Description | QoS Durability |
|---|---|---|---|
~/output/control_command |
autoware_control_msgs::msg::Control |
control command | volatile |
Parameters
{{ json_to_markdown(“control/autoware_simple_pure_pursuit/schema/simple_pure_pursuit.schema.json”) }}
Changelog for package autoware_simple_pure_pursuit
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: [codecov/refactoring] [simple_pure_pursuit] isolation of core logics, and full revamp of unit tests (#1182)
- init simpupu core logics module with Apache license
- init simpupu core logics module with Apache license
- init simpupu core logics header with Apache license
- defined simpupu params struct
- define public funcs
- defined private funcs and entities for core logics
- implement simple pure pursuit constructor and param setter
- isolate create_control_command's core logics from the mess of ROS2+core logics in original node module
- isolatecalc_longitudinal_control the same way
- isolate calc_lateral_coltrol the same way
- modified calc_lateral_control as for now completely immitates the original func (after discussing with the team)
- refactored the simpupu main header - removing all core logics, leaving only ROS-related
- refactored the simpupu main module - same way as headers - only ROS2 related + core logics inference
- quick fixes based for clang compiler suggests
- adapt cmakelists, package xml and header of core logics, thus wrapping up step 2
- test_simple_pure_pursuit.cpp - first make it work on build
- removed the old test cases in unit test module because the old ones are bundled and obsoleted with new architecture
- added test 1 of perfectly normal case ahppy tracking
- added test 2 of strong terminal brake at trajectory goal
- added test 3 of strong terminal brake when trajectory is wayyyyyyyy too short
- added test 4 of overriding with external target velocity
- adeed test 5 of lateral offset correcting
- added test 6 of lookahead distance clamping (the current calc logic is weird so I had to resort to infinity check)
- added final branch coverage case of lookahead point search exceeding trajectory length case
- some final touchups, all good I guess
- style(pre-commit): autofix
- deal with spell-check-differential
- fixed that cpplink precommit test of you dont need a ; after a } thingy
- style(pre-commit): autofix
- fixed that cpplint precommit of Add #include <memory> for make_unique<> [build/include_what_you_use]
- change all to (yeah lol right, tbf I've used English for too long to the point of not thinking twice about plural single forms of these words
- style(pre-commit): autofix
- refactoring the file/class names as Ishikawa-san suggested
- style(pre-commit): autofix
- bring trajectory fallback to core logics
- prevent node to return early upon false validation
- dropping set_params() for ummitability
- successful build
- rebased, gonna add the precommit lint locally later
- style(pre-commit): autofix
- rebase
- style(pre-commit): autofix
- fixed spellcheck differentials
- unified namespaces
* Update control/autoware_simple_pure_pursuit/src/simple_pure_pursuit.hpp Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
- [akamine] redundant function set_params() at header
- [akamine] remove branch redundancy in clongitudinal control command core logic
- [akamine] name the magic number -10.0 as terminal_brake_accel at simple_pure_pursuit logic header and apply it to whole node
- [akamine] fix typo EXCEPT=>EXPECT
- [akamine] fix class name in docstring
* [akamine] node name inconsistency fix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
-
feat: [codecod/refactoring] [simple_pure_pursuit] implement characterization test (#1179)
- init characterization test for simple pure pursuit node with Apache license
- include generic dependencies
- declare naemspace structures
- added a dummy odometry generator
- added a dummy trajectory generator
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
- launch/simple_pure_pursuit.launch.xml
-
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_simple_pure_pursuit 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
- Yuki Takagi
- Kosuke Takeuchi
- Takayuki Murooka
Authors
Simple Pure Pursuit
The simple_pure_pursuit node receives a reference trajectory from motion_velocity_smoother and calculates the control command using the pure pursuit algorithm.
Flowchart
@startuml
title on_timer
start
:takeData;
if (is data ready?) then (yes)
else
stop
endif
group create_control_command
if (reached goal?) then (yes)
:publish stop command;
stop
endif
:calc_longitudinal_control;
:calc_steering_angle;
end group
:publish control command;
stop
@enduml
Input topics
| Name | Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs::msg::Odometry |
ego odometry |
~/input/trajectory |
autoware_planning_msgs::msg::Trajectory |
reference trajectory |
Output topics
| Name | Type | Description | QoS Durability |
|---|---|---|---|
~/output/control_command |
autoware_control_msgs::msg::Control |
control command | volatile |
Parameters
{{ json_to_markdown(“control/autoware_simple_pure_pursuit/schema/simple_pure_pursuit.schema.json”) }}
Changelog for package autoware_simple_pure_pursuit
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: [codecov/refactoring] [simple_pure_pursuit] isolation of core logics, and full revamp of unit tests (#1182)
- init simpupu core logics module with Apache license
- init simpupu core logics module with Apache license
- init simpupu core logics header with Apache license
- defined simpupu params struct
- define public funcs
- defined private funcs and entities for core logics
- implement simple pure pursuit constructor and param setter
- isolate create_control_command's core logics from the mess of ROS2+core logics in original node module
- isolatecalc_longitudinal_control the same way
- isolate calc_lateral_coltrol the same way
- modified calc_lateral_control as for now completely immitates the original func (after discussing with the team)
- refactored the simpupu main header - removing all core logics, leaving only ROS-related
- refactored the simpupu main module - same way as headers - only ROS2 related + core logics inference
- quick fixes based for clang compiler suggests
- adapt cmakelists, package xml and header of core logics, thus wrapping up step 2
- test_simple_pure_pursuit.cpp - first make it work on build
- removed the old test cases in unit test module because the old ones are bundled and obsoleted with new architecture
- added test 1 of perfectly normal case ahppy tracking
- added test 2 of strong terminal brake at trajectory goal
- added test 3 of strong terminal brake when trajectory is wayyyyyyyy too short
- added test 4 of overriding with external target velocity
- adeed test 5 of lateral offset correcting
- added test 6 of lookahead distance clamping (the current calc logic is weird so I had to resort to infinity check)
- added final branch coverage case of lookahead point search exceeding trajectory length case
- some final touchups, all good I guess
- style(pre-commit): autofix
- deal with spell-check-differential
- fixed that cpplink precommit test of you dont need a ; after a } thingy
- style(pre-commit): autofix
- fixed that cpplint precommit of Add #include <memory> for make_unique<> [build/include_what_you_use]
- change all to (yeah lol right, tbf I've used English for too long to the point of not thinking twice about plural single forms of these words
- style(pre-commit): autofix
- refactoring the file/class names as Ishikawa-san suggested
- style(pre-commit): autofix
- bring trajectory fallback to core logics
- prevent node to return early upon false validation
- dropping set_params() for ummitability
- successful build
- rebased, gonna add the precommit lint locally later
- style(pre-commit): autofix
- rebase
- style(pre-commit): autofix
- fixed spellcheck differentials
- unified namespaces
* Update control/autoware_simple_pure_pursuit/src/simple_pure_pursuit.hpp Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
- [akamine] redundant function set_params() at header
- [akamine] remove branch redundancy in clongitudinal control command core logic
- [akamine] name the magic number -10.0 as terminal_brake_accel at simple_pure_pursuit logic header and apply it to whole node
- [akamine] fix typo EXCEPT=>EXPECT
- [akamine] fix class name in docstring
* [akamine] node name inconsistency fix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
-
feat: [codecod/refactoring] [simple_pure_pursuit] implement characterization test (#1179)
- init characterization test for simple pure pursuit node with Apache license
- include generic dependencies
- declare naemspace structures
- added a dummy odometry generator
- added a dummy trajectory generator
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
- launch/simple_pure_pursuit.launch.xml
-
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_simple_pure_pursuit 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
- Yuki Takagi
- Kosuke Takeuchi
- Takayuki Murooka
Authors
Simple Pure Pursuit
The simple_pure_pursuit node receives a reference trajectory from motion_velocity_smoother and calculates the control command using the pure pursuit algorithm.
Flowchart
@startuml
title on_timer
start
:takeData;
if (is data ready?) then (yes)
else
stop
endif
group create_control_command
if (reached goal?) then (yes)
:publish stop command;
stop
endif
:calc_longitudinal_control;
:calc_steering_angle;
end group
:publish control command;
stop
@enduml
Input topics
| Name | Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs::msg::Odometry |
ego odometry |
~/input/trajectory |
autoware_planning_msgs::msg::Trajectory |
reference trajectory |
Output topics
| Name | Type | Description | QoS Durability |
|---|---|---|---|
~/output/control_command |
autoware_control_msgs::msg::Control |
control command | volatile |
Parameters
{{ json_to_markdown(“control/autoware_simple_pure_pursuit/schema/simple_pure_pursuit.schema.json”) }}
Changelog for package autoware_simple_pure_pursuit
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: [codecov/refactoring] [simple_pure_pursuit] isolation of core logics, and full revamp of unit tests (#1182)
- init simpupu core logics module with Apache license
- init simpupu core logics module with Apache license
- init simpupu core logics header with Apache license
- defined simpupu params struct
- define public funcs
- defined private funcs and entities for core logics
- implement simple pure pursuit constructor and param setter
- isolate create_control_command's core logics from the mess of ROS2+core logics in original node module
- isolatecalc_longitudinal_control the same way
- isolate calc_lateral_coltrol the same way
- modified calc_lateral_control as for now completely immitates the original func (after discussing with the team)
- refactored the simpupu main header - removing all core logics, leaving only ROS-related
- refactored the simpupu main module - same way as headers - only ROS2 related + core logics inference
- quick fixes based for clang compiler suggests
- adapt cmakelists, package xml and header of core logics, thus wrapping up step 2
- test_simple_pure_pursuit.cpp - first make it work on build
- removed the old test cases in unit test module because the old ones are bundled and obsoleted with new architecture
- added test 1 of perfectly normal case ahppy tracking
- added test 2 of strong terminal brake at trajectory goal
- added test 3 of strong terminal brake when trajectory is wayyyyyyyy too short
- added test 4 of overriding with external target velocity
- adeed test 5 of lateral offset correcting
- added test 6 of lookahead distance clamping (the current calc logic is weird so I had to resort to infinity check)
- added final branch coverage case of lookahead point search exceeding trajectory length case
- some final touchups, all good I guess
- style(pre-commit): autofix
- deal with spell-check-differential
- fixed that cpplink precommit test of you dont need a ; after a } thingy
- style(pre-commit): autofix
- fixed that cpplint precommit of Add #include <memory> for make_unique<> [build/include_what_you_use]
- change all to (yeah lol right, tbf I've used English for too long to the point of not thinking twice about plural single forms of these words
- style(pre-commit): autofix
- refactoring the file/class names as Ishikawa-san suggested
- style(pre-commit): autofix
- bring trajectory fallback to core logics
- prevent node to return early upon false validation
- dropping set_params() for ummitability
- successful build
- rebased, gonna add the precommit lint locally later
- style(pre-commit): autofix
- rebase
- style(pre-commit): autofix
- fixed spellcheck differentials
- unified namespaces
* Update control/autoware_simple_pure_pursuit/src/simple_pure_pursuit.hpp Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
- [akamine] redundant function set_params() at header
- [akamine] remove branch redundancy in clongitudinal control command core logic
- [akamine] name the magic number -10.0 as terminal_brake_accel at simple_pure_pursuit logic header and apply it to whole node
- [akamine] fix typo EXCEPT=>EXPECT
- [akamine] fix class name in docstring
* [akamine] node name inconsistency fix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
-
feat: [codecod/refactoring] [simple_pure_pursuit] implement characterization test (#1179)
- init characterization test for simple pure pursuit node with Apache license
- include generic dependencies
- declare naemspace structures
- added a dummy odometry generator
- added a dummy trajectory generator
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
- launch/simple_pure_pursuit.launch.xml
-
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_simple_pure_pursuit 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
- Yuki Takagi
- Kosuke Takeuchi
- Takayuki Murooka
Authors
Simple Pure Pursuit
The simple_pure_pursuit node receives a reference trajectory from motion_velocity_smoother and calculates the control command using the pure pursuit algorithm.
Flowchart
@startuml
title on_timer
start
:takeData;
if (is data ready?) then (yes)
else
stop
endif
group create_control_command
if (reached goal?) then (yes)
:publish stop command;
stop
endif
:calc_longitudinal_control;
:calc_steering_angle;
end group
:publish control command;
stop
@enduml
Input topics
| Name | Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs::msg::Odometry |
ego odometry |
~/input/trajectory |
autoware_planning_msgs::msg::Trajectory |
reference trajectory |
Output topics
| Name | Type | Description | QoS Durability |
|---|---|---|---|
~/output/control_command |
autoware_control_msgs::msg::Control |
control command | volatile |
Parameters
{{ json_to_markdown(“control/autoware_simple_pure_pursuit/schema/simple_pure_pursuit.schema.json”) }}
Changelog for package autoware_simple_pure_pursuit
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: [codecov/refactoring] [simple_pure_pursuit] isolation of core logics, and full revamp of unit tests (#1182)
- init simpupu core logics module with Apache license
- init simpupu core logics module with Apache license
- init simpupu core logics header with Apache license
- defined simpupu params struct
- define public funcs
- defined private funcs and entities for core logics
- implement simple pure pursuit constructor and param setter
- isolate create_control_command's core logics from the mess of ROS2+core logics in original node module
- isolatecalc_longitudinal_control the same way
- isolate calc_lateral_coltrol the same way
- modified calc_lateral_control as for now completely immitates the original func (after discussing with the team)
- refactored the simpupu main header - removing all core logics, leaving only ROS-related
- refactored the simpupu main module - same way as headers - only ROS2 related + core logics inference
- quick fixes based for clang compiler suggests
- adapt cmakelists, package xml and header of core logics, thus wrapping up step 2
- test_simple_pure_pursuit.cpp - first make it work on build
- removed the old test cases in unit test module because the old ones are bundled and obsoleted with new architecture
- added test 1 of perfectly normal case ahppy tracking
- added test 2 of strong terminal brake at trajectory goal
- added test 3 of strong terminal brake when trajectory is wayyyyyyyy too short
- added test 4 of overriding with external target velocity
- adeed test 5 of lateral offset correcting
- added test 6 of lookahead distance clamping (the current calc logic is weird so I had to resort to infinity check)
- added final branch coverage case of lookahead point search exceeding trajectory length case
- some final touchups, all good I guess
- style(pre-commit): autofix
- deal with spell-check-differential
- fixed that cpplink precommit test of you dont need a ; after a } thingy
- style(pre-commit): autofix
- fixed that cpplint precommit of Add #include <memory> for make_unique<> [build/include_what_you_use]
- change all to (yeah lol right, tbf I've used English for too long to the point of not thinking twice about plural single forms of these words
- style(pre-commit): autofix
- refactoring the file/class names as Ishikawa-san suggested
- style(pre-commit): autofix
- bring trajectory fallback to core logics
- prevent node to return early upon false validation
- dropping set_params() for ummitability
- successful build
- rebased, gonna add the precommit lint locally later
- style(pre-commit): autofix
- rebase
- style(pre-commit): autofix
- fixed spellcheck differentials
- unified namespaces
* Update control/autoware_simple_pure_pursuit/src/simple_pure_pursuit.hpp Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
- [akamine] redundant function set_params() at header
- [akamine] remove branch redundancy in clongitudinal control command core logic
- [akamine] name the magic number -10.0 as terminal_brake_accel at simple_pure_pursuit logic header and apply it to whole node
- [akamine] fix typo EXCEPT=>EXPECT
- [akamine] fix class name in docstring
* [akamine] node name inconsistency fix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
-
feat: [codecod/refactoring] [simple_pure_pursuit] implement characterization test (#1179)
- init characterization test for simple pure pursuit node with Apache license
- include generic dependencies
- declare naemspace structures
- added a dummy odometry generator
- added a dummy trajectory generator
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
- launch/simple_pure_pursuit.launch.xml
-
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_simple_pure_pursuit 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
- Yuki Takagi
- Kosuke Takeuchi
- Takayuki Murooka
Authors
Simple Pure Pursuit
The simple_pure_pursuit node receives a reference trajectory from motion_velocity_smoother and calculates the control command using the pure pursuit algorithm.
Flowchart
@startuml
title on_timer
start
:takeData;
if (is data ready?) then (yes)
else
stop
endif
group create_control_command
if (reached goal?) then (yes)
:publish stop command;
stop
endif
:calc_longitudinal_control;
:calc_steering_angle;
end group
:publish control command;
stop
@enduml
Input topics
| Name | Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs::msg::Odometry |
ego odometry |
~/input/trajectory |
autoware_planning_msgs::msg::Trajectory |
reference trajectory |
Output topics
| Name | Type | Description | QoS Durability |
|---|---|---|---|
~/output/control_command |
autoware_control_msgs::msg::Control |
control command | volatile |
Parameters
{{ json_to_markdown(“control/autoware_simple_pure_pursuit/schema/simple_pure_pursuit.schema.json”) }}
Changelog for package autoware_simple_pure_pursuit
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: [codecov/refactoring] [simple_pure_pursuit] isolation of core logics, and full revamp of unit tests (#1182)
- init simpupu core logics module with Apache license
- init simpupu core logics module with Apache license
- init simpupu core logics header with Apache license
- defined simpupu params struct
- define public funcs
- defined private funcs and entities for core logics
- implement simple pure pursuit constructor and param setter
- isolate create_control_command's core logics from the mess of ROS2+core logics in original node module
- isolatecalc_longitudinal_control the same way
- isolate calc_lateral_coltrol the same way
- modified calc_lateral_control as for now completely immitates the original func (after discussing with the team)
- refactored the simpupu main header - removing all core logics, leaving only ROS-related
- refactored the simpupu main module - same way as headers - only ROS2 related + core logics inference
- quick fixes based for clang compiler suggests
- adapt cmakelists, package xml and header of core logics, thus wrapping up step 2
- test_simple_pure_pursuit.cpp - first make it work on build
- removed the old test cases in unit test module because the old ones are bundled and obsoleted with new architecture
- added test 1 of perfectly normal case ahppy tracking
- added test 2 of strong terminal brake at trajectory goal
- added test 3 of strong terminal brake when trajectory is wayyyyyyyy too short
- added test 4 of overriding with external target velocity
- adeed test 5 of lateral offset correcting
- added test 6 of lookahead distance clamping (the current calc logic is weird so I had to resort to infinity check)
- added final branch coverage case of lookahead point search exceeding trajectory length case
- some final touchups, all good I guess
- style(pre-commit): autofix
- deal with spell-check-differential
- fixed that cpplink precommit test of you dont need a ; after a } thingy
- style(pre-commit): autofix
- fixed that cpplint precommit of Add #include <memory> for make_unique<> [build/include_what_you_use]
- change all to (yeah lol right, tbf I've used English for too long to the point of not thinking twice about plural single forms of these words
- style(pre-commit): autofix
- refactoring the file/class names as Ishikawa-san suggested
- style(pre-commit): autofix
- bring trajectory fallback to core logics
- prevent node to return early upon false validation
- dropping set_params() for ummitability
- successful build
- rebased, gonna add the precommit lint locally later
- style(pre-commit): autofix
- rebase
- style(pre-commit): autofix
- fixed spellcheck differentials
- unified namespaces
* Update control/autoware_simple_pure_pursuit/src/simple_pure_pursuit.hpp Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
- [akamine] redundant function set_params() at header
- [akamine] remove branch redundancy in clongitudinal control command core logic
- [akamine] name the magic number -10.0 as terminal_brake_accel at simple_pure_pursuit logic header and apply it to whole node
- [akamine] fix typo EXCEPT=>EXPECT
- [akamine] fix class name in docstring
* [akamine] node name inconsistency fix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
-
feat: [codecod/refactoring] [simple_pure_pursuit] implement characterization test (#1179)
- init characterization test for simple pure pursuit node with Apache license
- include generic dependencies
- declare naemspace structures
- added a dummy odometry generator
- added a dummy trajectory generator
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
- launch/simple_pure_pursuit.launch.xml
-
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_simple_pure_pursuit 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
- Yuki Takagi
- Kosuke Takeuchi
- Takayuki Murooka
Authors
Simple Pure Pursuit
The simple_pure_pursuit node receives a reference trajectory from motion_velocity_smoother and calculates the control command using the pure pursuit algorithm.
Flowchart
@startuml
title on_timer
start
:takeData;
if (is data ready?) then (yes)
else
stop
endif
group create_control_command
if (reached goal?) then (yes)
:publish stop command;
stop
endif
:calc_longitudinal_control;
:calc_steering_angle;
end group
:publish control command;
stop
@enduml
Input topics
| Name | Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs::msg::Odometry |
ego odometry |
~/input/trajectory |
autoware_planning_msgs::msg::Trajectory |
reference trajectory |
Output topics
| Name | Type | Description | QoS Durability |
|---|---|---|---|
~/output/control_command |
autoware_control_msgs::msg::Control |
control command | volatile |
Parameters
{{ json_to_markdown(“control/autoware_simple_pure_pursuit/schema/simple_pure_pursuit.schema.json”) }}
Changelog for package autoware_simple_pure_pursuit
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: [codecov/refactoring] [simple_pure_pursuit] isolation of core logics, and full revamp of unit tests (#1182)
- init simpupu core logics module with Apache license
- init simpupu core logics module with Apache license
- init simpupu core logics header with Apache license
- defined simpupu params struct
- define public funcs
- defined private funcs and entities for core logics
- implement simple pure pursuit constructor and param setter
- isolate create_control_command's core logics from the mess of ROS2+core logics in original node module
- isolatecalc_longitudinal_control the same way
- isolate calc_lateral_coltrol the same way
- modified calc_lateral_control as for now completely immitates the original func (after discussing with the team)
- refactored the simpupu main header - removing all core logics, leaving only ROS-related
- refactored the simpupu main module - same way as headers - only ROS2 related + core logics inference
- quick fixes based for clang compiler suggests
- adapt cmakelists, package xml and header of core logics, thus wrapping up step 2
- test_simple_pure_pursuit.cpp - first make it work on build
- removed the old test cases in unit test module because the old ones are bundled and obsoleted with new architecture
- added test 1 of perfectly normal case ahppy tracking
- added test 2 of strong terminal brake at trajectory goal
- added test 3 of strong terminal brake when trajectory is wayyyyyyyy too short
- added test 4 of overriding with external target velocity
- adeed test 5 of lateral offset correcting
- added test 6 of lookahead distance clamping (the current calc logic is weird so I had to resort to infinity check)
- added final branch coverage case of lookahead point search exceeding trajectory length case
- some final touchups, all good I guess
- style(pre-commit): autofix
- deal with spell-check-differential
- fixed that cpplink precommit test of you dont need a ; after a } thingy
- style(pre-commit): autofix
- fixed that cpplint precommit of Add #include <memory> for make_unique<> [build/include_what_you_use]
- change all to (yeah lol right, tbf I've used English for too long to the point of not thinking twice about plural single forms of these words
- style(pre-commit): autofix
- refactoring the file/class names as Ishikawa-san suggested
- style(pre-commit): autofix
- bring trajectory fallback to core logics
- prevent node to return early upon false validation
- dropping set_params() for ummitability
- successful build
- rebased, gonna add the precommit lint locally later
- style(pre-commit): autofix
- rebase
- style(pre-commit): autofix
- fixed spellcheck differentials
- unified namespaces
* Update control/autoware_simple_pure_pursuit/src/simple_pure_pursuit.hpp Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
- [akamine] redundant function set_params() at header
- [akamine] remove branch redundancy in clongitudinal control command core logic
- [akamine] name the magic number -10.0 as terminal_brake_accel at simple_pure_pursuit logic header and apply it to whole node
- [akamine] fix typo EXCEPT=>EXPECT
- [akamine] fix class name in docstring
* [akamine] node name inconsistency fix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
-
feat: [codecod/refactoring] [simple_pure_pursuit] implement characterization test (#1179)
- init characterization test for simple pure pursuit node with Apache license
- include generic dependencies
- declare naemspace structures
- added a dummy odometry generator
- added a dummy trajectory generator
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
- launch/simple_pure_pursuit.launch.xml
-
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_simple_pure_pursuit 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
- Yuki Takagi
- Kosuke Takeuchi
- Takayuki Murooka
Authors
Simple Pure Pursuit
The simple_pure_pursuit node receives a reference trajectory from motion_velocity_smoother and calculates the control command using the pure pursuit algorithm.
Flowchart
@startuml
title on_timer
start
:takeData;
if (is data ready?) then (yes)
else
stop
endif
group create_control_command
if (reached goal?) then (yes)
:publish stop command;
stop
endif
:calc_longitudinal_control;
:calc_steering_angle;
end group
:publish control command;
stop
@enduml
Input topics
| Name | Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs::msg::Odometry |
ego odometry |
~/input/trajectory |
autoware_planning_msgs::msg::Trajectory |
reference trajectory |
Output topics
| Name | Type | Description | QoS Durability |
|---|---|---|---|
~/output/control_command |
autoware_control_msgs::msg::Control |
control command | volatile |
Parameters
{{ json_to_markdown(“control/autoware_simple_pure_pursuit/schema/simple_pure_pursuit.schema.json”) }}
Changelog for package autoware_simple_pure_pursuit
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: [codecov/refactoring] [simple_pure_pursuit] isolation of core logics, and full revamp of unit tests (#1182)
- init simpupu core logics module with Apache license
- init simpupu core logics module with Apache license
- init simpupu core logics header with Apache license
- defined simpupu params struct
- define public funcs
- defined private funcs and entities for core logics
- implement simple pure pursuit constructor and param setter
- isolate create_control_command's core logics from the mess of ROS2+core logics in original node module
- isolatecalc_longitudinal_control the same way
- isolate calc_lateral_coltrol the same way
- modified calc_lateral_control as for now completely immitates the original func (after discussing with the team)
- refactored the simpupu main header - removing all core logics, leaving only ROS-related
- refactored the simpupu main module - same way as headers - only ROS2 related + core logics inference
- quick fixes based for clang compiler suggests
- adapt cmakelists, package xml and header of core logics, thus wrapping up step 2
- test_simple_pure_pursuit.cpp - first make it work on build
- removed the old test cases in unit test module because the old ones are bundled and obsoleted with new architecture
- added test 1 of perfectly normal case ahppy tracking
- added test 2 of strong terminal brake at trajectory goal
- added test 3 of strong terminal brake when trajectory is wayyyyyyyy too short
- added test 4 of overriding with external target velocity
- adeed test 5 of lateral offset correcting
- added test 6 of lookahead distance clamping (the current calc logic is weird so I had to resort to infinity check)
- added final branch coverage case of lookahead point search exceeding trajectory length case
- some final touchups, all good I guess
- style(pre-commit): autofix
- deal with spell-check-differential
- fixed that cpplink precommit test of you dont need a ; after a } thingy
- style(pre-commit): autofix
- fixed that cpplint precommit of Add #include <memory> for make_unique<> [build/include_what_you_use]
- change all to (yeah lol right, tbf I've used English for too long to the point of not thinking twice about plural single forms of these words
- style(pre-commit): autofix
- refactoring the file/class names as Ishikawa-san suggested
- style(pre-commit): autofix
- bring trajectory fallback to core logics
- prevent node to return early upon false validation
- dropping set_params() for ummitability
- successful build
- rebased, gonna add the precommit lint locally later
- style(pre-commit): autofix
- rebase
- style(pre-commit): autofix
- fixed spellcheck differentials
- unified namespaces
* Update control/autoware_simple_pure_pursuit/src/simple_pure_pursuit.hpp Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
- [akamine] redundant function set_params() at header
- [akamine] remove branch redundancy in clongitudinal control command core logic
- [akamine] name the magic number -10.0 as terminal_brake_accel at simple_pure_pursuit logic header and apply it to whole node
- [akamine] fix typo EXCEPT=>EXPECT
- [akamine] fix class name in docstring
* [akamine] node name inconsistency fix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
-
feat: [codecod/refactoring] [simple_pure_pursuit] implement characterization test (#1179)
- init characterization test for simple pure pursuit node with Apache license
- include generic dependencies
- declare naemspace structures
- added a dummy odometry generator
- added a dummy trajectory generator
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
- launch/simple_pure_pursuit.launch.xml
-
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_simple_pure_pursuit 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
- Yuki Takagi
- Kosuke Takeuchi
- Takayuki Murooka
Authors
Simple Pure Pursuit
The simple_pure_pursuit node receives a reference trajectory from motion_velocity_smoother and calculates the control command using the pure pursuit algorithm.
Flowchart
@startuml
title on_timer
start
:takeData;
if (is data ready?) then (yes)
else
stop
endif
group create_control_command
if (reached goal?) then (yes)
:publish stop command;
stop
endif
:calc_longitudinal_control;
:calc_steering_angle;
end group
:publish control command;
stop
@enduml
Input topics
| Name | Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs::msg::Odometry |
ego odometry |
~/input/trajectory |
autoware_planning_msgs::msg::Trajectory |
reference trajectory |
Output topics
| Name | Type | Description | QoS Durability |
|---|---|---|---|
~/output/control_command |
autoware_control_msgs::msg::Control |
control command | volatile |
Parameters
{{ json_to_markdown(“control/autoware_simple_pure_pursuit/schema/simple_pure_pursuit.schema.json”) }}
Changelog for package autoware_simple_pure_pursuit
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: [codecov/refactoring] [simple_pure_pursuit] isolation of core logics, and full revamp of unit tests (#1182)
- init simpupu core logics module with Apache license
- init simpupu core logics module with Apache license
- init simpupu core logics header with Apache license
- defined simpupu params struct
- define public funcs
- defined private funcs and entities for core logics
- implement simple pure pursuit constructor and param setter
- isolate create_control_command's core logics from the mess of ROS2+core logics in original node module
- isolatecalc_longitudinal_control the same way
- isolate calc_lateral_coltrol the same way
- modified calc_lateral_control as for now completely immitates the original func (after discussing with the team)
- refactored the simpupu main header - removing all core logics, leaving only ROS-related
- refactored the simpupu main module - same way as headers - only ROS2 related + core logics inference
- quick fixes based for clang compiler suggests
- adapt cmakelists, package xml and header of core logics, thus wrapping up step 2
- test_simple_pure_pursuit.cpp - first make it work on build
- removed the old test cases in unit test module because the old ones are bundled and obsoleted with new architecture
- added test 1 of perfectly normal case ahppy tracking
- added test 2 of strong terminal brake at trajectory goal
- added test 3 of strong terminal brake when trajectory is wayyyyyyyy too short
- added test 4 of overriding with external target velocity
- adeed test 5 of lateral offset correcting
- added test 6 of lookahead distance clamping (the current calc logic is weird so I had to resort to infinity check)
- added final branch coverage case of lookahead point search exceeding trajectory length case
- some final touchups, all good I guess
- style(pre-commit): autofix
- deal with spell-check-differential
- fixed that cpplink precommit test of you dont need a ; after a } thingy
- style(pre-commit): autofix
- fixed that cpplint precommit of Add #include <memory> for make_unique<> [build/include_what_you_use]
- change all to (yeah lol right, tbf I've used English for too long to the point of not thinking twice about plural single forms of these words
- style(pre-commit): autofix
- refactoring the file/class names as Ishikawa-san suggested
- style(pre-commit): autofix
- bring trajectory fallback to core logics
- prevent node to return early upon false validation
- dropping set_params() for ummitability
- successful build
- rebased, gonna add the precommit lint locally later
- style(pre-commit): autofix
- rebase
- style(pre-commit): autofix
- fixed spellcheck differentials
- unified namespaces
* Update control/autoware_simple_pure_pursuit/src/simple_pure_pursuit.hpp Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
- [akamine] redundant function set_params() at header
- [akamine] remove branch redundancy in clongitudinal control command core logic
- [akamine] name the magic number -10.0 as terminal_brake_accel at simple_pure_pursuit logic header and apply it to whole node
- [akamine] fix typo EXCEPT=>EXPECT
- [akamine] fix class name in docstring
* [akamine] node name inconsistency fix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
-
feat: [codecod/refactoring] [simple_pure_pursuit] implement characterization test (#1179)
- init characterization test for simple pure pursuit node with Apache license
- include generic dependencies
- declare naemspace structures
- added a dummy odometry generator
- added a dummy trajectory generator
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
- launch/simple_pure_pursuit.launch.xml
-
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_simple_pure_pursuit 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
- Yuki Takagi
- Kosuke Takeuchi
- Takayuki Murooka
Authors
Simple Pure Pursuit
The simple_pure_pursuit node receives a reference trajectory from motion_velocity_smoother and calculates the control command using the pure pursuit algorithm.
Flowchart
@startuml
title on_timer
start
:takeData;
if (is data ready?) then (yes)
else
stop
endif
group create_control_command
if (reached goal?) then (yes)
:publish stop command;
stop
endif
:calc_longitudinal_control;
:calc_steering_angle;
end group
:publish control command;
stop
@enduml
Input topics
| Name | Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs::msg::Odometry |
ego odometry |
~/input/trajectory |
autoware_planning_msgs::msg::Trajectory |
reference trajectory |
Output topics
| Name | Type | Description | QoS Durability |
|---|---|---|---|
~/output/control_command |
autoware_control_msgs::msg::Control |
control command | volatile |
Parameters
{{ json_to_markdown(“control/autoware_simple_pure_pursuit/schema/simple_pure_pursuit.schema.json”) }}
Changelog for package autoware_simple_pure_pursuit
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: [codecov/refactoring] [simple_pure_pursuit] isolation of core logics, and full revamp of unit tests (#1182)
- init simpupu core logics module with Apache license
- init simpupu core logics module with Apache license
- init simpupu core logics header with Apache license
- defined simpupu params struct
- define public funcs
- defined private funcs and entities for core logics
- implement simple pure pursuit constructor and param setter
- isolate create_control_command's core logics from the mess of ROS2+core logics in original node module
- isolatecalc_longitudinal_control the same way
- isolate calc_lateral_coltrol the same way
- modified calc_lateral_control as for now completely immitates the original func (after discussing with the team)
- refactored the simpupu main header - removing all core logics, leaving only ROS-related
- refactored the simpupu main module - same way as headers - only ROS2 related + core logics inference
- quick fixes based for clang compiler suggests
- adapt cmakelists, package xml and header of core logics, thus wrapping up step 2
- test_simple_pure_pursuit.cpp - first make it work on build
- removed the old test cases in unit test module because the old ones are bundled and obsoleted with new architecture
- added test 1 of perfectly normal case ahppy tracking
- added test 2 of strong terminal brake at trajectory goal
- added test 3 of strong terminal brake when trajectory is wayyyyyyyy too short
- added test 4 of overriding with external target velocity
- adeed test 5 of lateral offset correcting
- added test 6 of lookahead distance clamping (the current calc logic is weird so I had to resort to infinity check)
- added final branch coverage case of lookahead point search exceeding trajectory length case
- some final touchups, all good I guess
- style(pre-commit): autofix
- deal with spell-check-differential
- fixed that cpplink precommit test of you dont need a ; after a } thingy
- style(pre-commit): autofix
- fixed that cpplint precommit of Add #include <memory> for make_unique<> [build/include_what_you_use]
- change all to (yeah lol right, tbf I've used English for too long to the point of not thinking twice about plural single forms of these words
- style(pre-commit): autofix
- refactoring the file/class names as Ishikawa-san suggested
- style(pre-commit): autofix
- bring trajectory fallback to core logics
- prevent node to return early upon false validation
- dropping set_params() for ummitability
- successful build
- rebased, gonna add the precommit lint locally later
- style(pre-commit): autofix
- rebase
- style(pre-commit): autofix
- fixed spellcheck differentials
- unified namespaces
* Update control/autoware_simple_pure_pursuit/src/simple_pure_pursuit.hpp Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
- [akamine] redundant function set_params() at header
- [akamine] remove branch redundancy in clongitudinal control command core logic
- [akamine] name the magic number -10.0 as terminal_brake_accel at simple_pure_pursuit logic header and apply it to whole node
- [akamine] fix typo EXCEPT=>EXPECT
- [akamine] fix class name in docstring
* [akamine] node name inconsistency fix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
-
feat: [codecod/refactoring] [simple_pure_pursuit] implement characterization test (#1179)
- init characterization test for simple pure pursuit node with Apache license
- include generic dependencies
- declare naemspace structures
- added a dummy odometry generator
- added a dummy trajectory generator
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
- launch/simple_pure_pursuit.launch.xml
-
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_simple_pure_pursuit 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
- Yuki Takagi
- Kosuke Takeuchi
- Takayuki Murooka
Authors
Simple Pure Pursuit
The simple_pure_pursuit node receives a reference trajectory from motion_velocity_smoother and calculates the control command using the pure pursuit algorithm.
Flowchart
@startuml
title on_timer
start
:takeData;
if (is data ready?) then (yes)
else
stop
endif
group create_control_command
if (reached goal?) then (yes)
:publish stop command;
stop
endif
:calc_longitudinal_control;
:calc_steering_angle;
end group
:publish control command;
stop
@enduml
Input topics
| Name | Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs::msg::Odometry |
ego odometry |
~/input/trajectory |
autoware_planning_msgs::msg::Trajectory |
reference trajectory |
Output topics
| Name | Type | Description | QoS Durability |
|---|---|---|---|
~/output/control_command |
autoware_control_msgs::msg::Control |
control command | volatile |
Parameters
{{ json_to_markdown(“control/autoware_simple_pure_pursuit/schema/simple_pure_pursuit.schema.json”) }}
Changelog for package autoware_simple_pure_pursuit
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: [codecov/refactoring] [simple_pure_pursuit] isolation of core logics, and full revamp of unit tests (#1182)
- init simpupu core logics module with Apache license
- init simpupu core logics module with Apache license
- init simpupu core logics header with Apache license
- defined simpupu params struct
- define public funcs
- defined private funcs and entities for core logics
- implement simple pure pursuit constructor and param setter
- isolate create_control_command's core logics from the mess of ROS2+core logics in original node module
- isolatecalc_longitudinal_control the same way
- isolate calc_lateral_coltrol the same way
- modified calc_lateral_control as for now completely immitates the original func (after discussing with the team)
- refactored the simpupu main header - removing all core logics, leaving only ROS-related
- refactored the simpupu main module - same way as headers - only ROS2 related + core logics inference
- quick fixes based for clang compiler suggests
- adapt cmakelists, package xml and header of core logics, thus wrapping up step 2
- test_simple_pure_pursuit.cpp - first make it work on build
- removed the old test cases in unit test module because the old ones are bundled and obsoleted with new architecture
- added test 1 of perfectly normal case ahppy tracking
- added test 2 of strong terminal brake at trajectory goal
- added test 3 of strong terminal brake when trajectory is wayyyyyyyy too short
- added test 4 of overriding with external target velocity
- adeed test 5 of lateral offset correcting
- added test 6 of lookahead distance clamping (the current calc logic is weird so I had to resort to infinity check)
- added final branch coverage case of lookahead point search exceeding trajectory length case
- some final touchups, all good I guess
- style(pre-commit): autofix
- deal with spell-check-differential
- fixed that cpplink precommit test of you dont need a ; after a } thingy
- style(pre-commit): autofix
- fixed that cpplint precommit of Add #include <memory> for make_unique<> [build/include_what_you_use]
- change all to (yeah lol right, tbf I've used English for too long to the point of not thinking twice about plural single forms of these words
- style(pre-commit): autofix
- refactoring the file/class names as Ishikawa-san suggested
- style(pre-commit): autofix
- bring trajectory fallback to core logics
- prevent node to return early upon false validation
- dropping set_params() for ummitability
- successful build
- rebased, gonna add the precommit lint locally later
- style(pre-commit): autofix
- rebase
- style(pre-commit): autofix
- fixed spellcheck differentials
- unified namespaces
* Update control/autoware_simple_pure_pursuit/src/simple_pure_pursuit.hpp Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
- [akamine] redundant function set_params() at header
- [akamine] remove branch redundancy in clongitudinal control command core logic
- [akamine] name the magic number -10.0 as terminal_brake_accel at simple_pure_pursuit logic header and apply it to whole node
- [akamine] fix typo EXCEPT=>EXPECT
- [akamine] fix class name in docstring
* [akamine] node name inconsistency fix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takayuki AKAMINE <<38586589+takam5f2@users.noreply.github.com>>
-
feat: [codecod/refactoring] [simple_pure_pursuit] implement characterization test (#1179)
- init characterization test for simple pure pursuit node with Apache license
- include generic dependencies
- declare naemspace structures
- added a dummy odometry generator
- added a dummy trajectory generator
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
- launch/simple_pure_pursuit.launch.xml
-
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]