Package Summary
| Version | 1.10.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-10-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Koji Minoda
autoware_twist2accel
Purpose
This package is responsible for estimating acceleration using the output of ekf_localizer. It uses lowpass filter to mitigate the noise.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/odom |
nav_msgs::msg::Odometry |
localization odometry |
input/twist |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist |
Output
| Name | Type | Description |
|---|---|---|
output/accel |
geometry_msgs::msg::AccelWithCovarianceStamped |
estimated acceleration |
Parameters
{{ json_to_markdown(“localization/autoware_twist2accel/schema/twist2accel.schema.json”) }}
Future work
Future work includes integrating acceleration into the EKF state.
Changelog for package autoware_twist2accel
1.1.0 (2025-05-01)
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(localization): add node designs for the pose/twist estimation nodes (#1409)
* feat(localization): add node designs for the pose/twist estimation nodes Declare NdtScanMatcher, EkfLocalizer, GyroOdometer, StopFilter and Twist2Accel node designs, with remap_target set to each node's hardcoded topic and service names, and extend PoseInitializer with the map, GNSS, stop-check inputs and the align/trigger/partial-map-load clients that pose_initializer.launch.xml remaps. These let a system designer module compose the localization stack directly from nodes.
* feat(localization): describe node designs and bump to format 0.4.0 ---------
-
refactor(autoware_twist2accel): shrink characterization test (#1256)
- refactor(autoware_twist2accel): simplify publishing procedure
* refactor(autoware_twist2accel): shrink characterization test to simple integration test The estimation math (finite differencing, low-pass filtering, dt clamping, covariance, header/pose handling) is already covered by test_accel_estimator.cpp unit tests. Reduce the node-level test to just the Node's own routing logic: which input topic drives output/accel publishing for a given use_odom value. ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
fix(localization): fix test to use [get_node_base_interface]{.title-ref} for [agnocast_wrapper::Node]{.title-ref} (#1209) fix test for agnocast_wrapper::Node
-
Contributors: Koichi Imai, Taekjin LEE, Takahisa Ishikawa, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(twist2accel): apply [agnocast_wrapper::Node]{.title-ref} to [twist2accel]{.title-ref} (#1189)
- apply agnocast_wrapper::Node
- fix to use ALLOCATE
- fix Cmake
- fix cpplint
* disable test when agnocast enabled ---------
-
refactor(autoware_twist2accel): arrange class interface (#1186)
* refactor(autoware_twist2accel): encapsulate dt and previous twist in AccelEstimator AccelEstimator::estimate() now takes only the current twist sample and owns the per-call state that previously lived in the node: it holds the previous twist, derives dt from successive header stamps, and returns a ready-to-publish AccelWithCovarianceStamped with the header copied from the input. Add TwistWithCovarianceStamped and Odometry overloads that normalize to a TwistStamped and delegate, so the node callbacks can pass the raw message directly and the estimate_accel helper is no longer needed.
* style(autoware_twist2accel): remove redundant comments ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests (#1111)
* refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests Extract the ROS-free acceleration math (dt-clamped finite difference plus 6-channel LowpassFilter1d smoothing) out of Twist2Accel::estimate_accel into a pure, injectable AccelEstimator class, mirroring the sibling autoware_stop_filter::StopFilter pattern. estimate_accel becomes a thin wrapper that computes dt from the ROS clock, calls the estimator, fills the message, and publishes. This makes the previously untestable estimation logic exercisable without spinning a ROS node and adds gtest coverage for the no-smoothing-on-first-sample, finite-difference, low-pass smoothing, dt-clamp, channel-independence, and covariance-index branches. Behavior-preserving: the dt clamp (>= 1e-3), per-component LPF order, and the first-message zero/empty accel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_localization |
Launch files
- launch/twist2accel.launch.xml
-
- param_file [default: $(find-pkg-share autoware_twist2accel)/config/twist2accel.param.yaml]
- in_odom [default: in_odom]
- in_twist [default: in_twist]
- out_accel [default: out_accel]
Messages
Services
Plugins
Recent questions tagged autoware_twist2accel at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Koji Minoda
autoware_twist2accel
Purpose
This package is responsible for estimating acceleration using the output of ekf_localizer. It uses lowpass filter to mitigate the noise.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/odom |
nav_msgs::msg::Odometry |
localization odometry |
input/twist |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist |
Output
| Name | Type | Description |
|---|---|---|
output/accel |
geometry_msgs::msg::AccelWithCovarianceStamped |
estimated acceleration |
Parameters
{{ json_to_markdown(“localization/autoware_twist2accel/schema/twist2accel.schema.json”) }}
Future work
Future work includes integrating acceleration into the EKF state.
Changelog for package autoware_twist2accel
1.1.0 (2025-05-01)
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(localization): add node designs for the pose/twist estimation nodes (#1409)
* feat(localization): add node designs for the pose/twist estimation nodes Declare NdtScanMatcher, EkfLocalizer, GyroOdometer, StopFilter and Twist2Accel node designs, with remap_target set to each node's hardcoded topic and service names, and extend PoseInitializer with the map, GNSS, stop-check inputs and the align/trigger/partial-map-load clients that pose_initializer.launch.xml remaps. These let a system designer module compose the localization stack directly from nodes.
* feat(localization): describe node designs and bump to format 0.4.0 ---------
-
refactor(autoware_twist2accel): shrink characterization test (#1256)
- refactor(autoware_twist2accel): simplify publishing procedure
* refactor(autoware_twist2accel): shrink characterization test to simple integration test The estimation math (finite differencing, low-pass filtering, dt clamping, covariance, header/pose handling) is already covered by test_accel_estimator.cpp unit tests. Reduce the node-level test to just the Node's own routing logic: which input topic drives output/accel publishing for a given use_odom value. ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
fix(localization): fix test to use [get_node_base_interface]{.title-ref} for [agnocast_wrapper::Node]{.title-ref} (#1209) fix test for agnocast_wrapper::Node
-
Contributors: Koichi Imai, Taekjin LEE, Takahisa Ishikawa, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(twist2accel): apply [agnocast_wrapper::Node]{.title-ref} to [twist2accel]{.title-ref} (#1189)
- apply agnocast_wrapper::Node
- fix to use ALLOCATE
- fix Cmake
- fix cpplint
* disable test when agnocast enabled ---------
-
refactor(autoware_twist2accel): arrange class interface (#1186)
* refactor(autoware_twist2accel): encapsulate dt and previous twist in AccelEstimator AccelEstimator::estimate() now takes only the current twist sample and owns the per-call state that previously lived in the node: it holds the previous twist, derives dt from successive header stamps, and returns a ready-to-publish AccelWithCovarianceStamped with the header copied from the input. Add TwistWithCovarianceStamped and Odometry overloads that normalize to a TwistStamped and delegate, so the node callbacks can pass the raw message directly and the estimate_accel helper is no longer needed.
* style(autoware_twist2accel): remove redundant comments ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests (#1111)
* refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests Extract the ROS-free acceleration math (dt-clamped finite difference plus 6-channel LowpassFilter1d smoothing) out of Twist2Accel::estimate_accel into a pure, injectable AccelEstimator class, mirroring the sibling autoware_stop_filter::StopFilter pattern. estimate_accel becomes a thin wrapper that computes dt from the ROS clock, calls the estimator, fills the message, and publishes. This makes the previously untestable estimation logic exercisable without spinning a ROS node and adds gtest coverage for the no-smoothing-on-first-sample, finite-difference, low-pass smoothing, dt-clamp, channel-independence, and covariance-index branches. Behavior-preserving: the dt clamp (>= 1e-3), per-component LPF order, and the first-message zero/empty accel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_localization |
Launch files
- launch/twist2accel.launch.xml
-
- param_file [default: $(find-pkg-share autoware_twist2accel)/config/twist2accel.param.yaml]
- in_odom [default: in_odom]
- in_twist [default: in_twist]
- out_accel [default: out_accel]
Messages
Services
Plugins
Recent questions tagged autoware_twist2accel at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Koji Minoda
autoware_twist2accel
Purpose
This package is responsible for estimating acceleration using the output of ekf_localizer. It uses lowpass filter to mitigate the noise.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/odom |
nav_msgs::msg::Odometry |
localization odometry |
input/twist |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist |
Output
| Name | Type | Description |
|---|---|---|
output/accel |
geometry_msgs::msg::AccelWithCovarianceStamped |
estimated acceleration |
Parameters
{{ json_to_markdown(“localization/autoware_twist2accel/schema/twist2accel.schema.json”) }}
Future work
Future work includes integrating acceleration into the EKF state.
Changelog for package autoware_twist2accel
1.1.0 (2025-05-01)
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(localization): add node designs for the pose/twist estimation nodes (#1409)
* feat(localization): add node designs for the pose/twist estimation nodes Declare NdtScanMatcher, EkfLocalizer, GyroOdometer, StopFilter and Twist2Accel node designs, with remap_target set to each node's hardcoded topic and service names, and extend PoseInitializer with the map, GNSS, stop-check inputs and the align/trigger/partial-map-load clients that pose_initializer.launch.xml remaps. These let a system designer module compose the localization stack directly from nodes.
* feat(localization): describe node designs and bump to format 0.4.0 ---------
-
refactor(autoware_twist2accel): shrink characterization test (#1256)
- refactor(autoware_twist2accel): simplify publishing procedure
* refactor(autoware_twist2accel): shrink characterization test to simple integration test The estimation math (finite differencing, low-pass filtering, dt clamping, covariance, header/pose handling) is already covered by test_accel_estimator.cpp unit tests. Reduce the node-level test to just the Node's own routing logic: which input topic drives output/accel publishing for a given use_odom value. ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
fix(localization): fix test to use [get_node_base_interface]{.title-ref} for [agnocast_wrapper::Node]{.title-ref} (#1209) fix test for agnocast_wrapper::Node
-
Contributors: Koichi Imai, Taekjin LEE, Takahisa Ishikawa, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(twist2accel): apply [agnocast_wrapper::Node]{.title-ref} to [twist2accel]{.title-ref} (#1189)
- apply agnocast_wrapper::Node
- fix to use ALLOCATE
- fix Cmake
- fix cpplint
* disable test when agnocast enabled ---------
-
refactor(autoware_twist2accel): arrange class interface (#1186)
* refactor(autoware_twist2accel): encapsulate dt and previous twist in AccelEstimator AccelEstimator::estimate() now takes only the current twist sample and owns the per-call state that previously lived in the node: it holds the previous twist, derives dt from successive header stamps, and returns a ready-to-publish AccelWithCovarianceStamped with the header copied from the input. Add TwistWithCovarianceStamped and Odometry overloads that normalize to a TwistStamped and delegate, so the node callbacks can pass the raw message directly and the estimate_accel helper is no longer needed.
* style(autoware_twist2accel): remove redundant comments ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests (#1111)
* refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests Extract the ROS-free acceleration math (dt-clamped finite difference plus 6-channel LowpassFilter1d smoothing) out of Twist2Accel::estimate_accel into a pure, injectable AccelEstimator class, mirroring the sibling autoware_stop_filter::StopFilter pattern. estimate_accel becomes a thin wrapper that computes dt from the ROS clock, calls the estimator, fills the message, and publishes. This makes the previously untestable estimation logic exercisable without spinning a ROS node and adds gtest coverage for the no-smoothing-on-first-sample, finite-difference, low-pass smoothing, dt-clamp, channel-independence, and covariance-index branches. Behavior-preserving: the dt clamp (>= 1e-3), per-component LPF order, and the first-message zero/empty accel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_localization |
Launch files
- launch/twist2accel.launch.xml
-
- param_file [default: $(find-pkg-share autoware_twist2accel)/config/twist2accel.param.yaml]
- in_odom [default: in_odom]
- in_twist [default: in_twist]
- out_accel [default: out_accel]
Messages
Services
Plugins
Recent questions tagged autoware_twist2accel at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Koji Minoda
autoware_twist2accel
Purpose
This package is responsible for estimating acceleration using the output of ekf_localizer. It uses lowpass filter to mitigate the noise.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/odom |
nav_msgs::msg::Odometry |
localization odometry |
input/twist |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist |
Output
| Name | Type | Description |
|---|---|---|
output/accel |
geometry_msgs::msg::AccelWithCovarianceStamped |
estimated acceleration |
Parameters
{{ json_to_markdown(“localization/autoware_twist2accel/schema/twist2accel.schema.json”) }}
Future work
Future work includes integrating acceleration into the EKF state.
Changelog for package autoware_twist2accel
1.1.0 (2025-05-01)
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(localization): add node designs for the pose/twist estimation nodes (#1409)
* feat(localization): add node designs for the pose/twist estimation nodes Declare NdtScanMatcher, EkfLocalizer, GyroOdometer, StopFilter and Twist2Accel node designs, with remap_target set to each node's hardcoded topic and service names, and extend PoseInitializer with the map, GNSS, stop-check inputs and the align/trigger/partial-map-load clients that pose_initializer.launch.xml remaps. These let a system designer module compose the localization stack directly from nodes.
* feat(localization): describe node designs and bump to format 0.4.0 ---------
-
refactor(autoware_twist2accel): shrink characterization test (#1256)
- refactor(autoware_twist2accel): simplify publishing procedure
* refactor(autoware_twist2accel): shrink characterization test to simple integration test The estimation math (finite differencing, low-pass filtering, dt clamping, covariance, header/pose handling) is already covered by test_accel_estimator.cpp unit tests. Reduce the node-level test to just the Node's own routing logic: which input topic drives output/accel publishing for a given use_odom value. ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
fix(localization): fix test to use [get_node_base_interface]{.title-ref} for [agnocast_wrapper::Node]{.title-ref} (#1209) fix test for agnocast_wrapper::Node
-
Contributors: Koichi Imai, Taekjin LEE, Takahisa Ishikawa, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(twist2accel): apply [agnocast_wrapper::Node]{.title-ref} to [twist2accel]{.title-ref} (#1189)
- apply agnocast_wrapper::Node
- fix to use ALLOCATE
- fix Cmake
- fix cpplint
* disable test when agnocast enabled ---------
-
refactor(autoware_twist2accel): arrange class interface (#1186)
* refactor(autoware_twist2accel): encapsulate dt and previous twist in AccelEstimator AccelEstimator::estimate() now takes only the current twist sample and owns the per-call state that previously lived in the node: it holds the previous twist, derives dt from successive header stamps, and returns a ready-to-publish AccelWithCovarianceStamped with the header copied from the input. Add TwistWithCovarianceStamped and Odometry overloads that normalize to a TwistStamped and delegate, so the node callbacks can pass the raw message directly and the estimate_accel helper is no longer needed.
* style(autoware_twist2accel): remove redundant comments ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests (#1111)
* refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests Extract the ROS-free acceleration math (dt-clamped finite difference plus 6-channel LowpassFilter1d smoothing) out of Twist2Accel::estimate_accel into a pure, injectable AccelEstimator class, mirroring the sibling autoware_stop_filter::StopFilter pattern. estimate_accel becomes a thin wrapper that computes dt from the ROS clock, calls the estimator, fills the message, and publishes. This makes the previously untestable estimation logic exercisable without spinning a ROS node and adds gtest coverage for the no-smoothing-on-first-sample, finite-difference, low-pass smoothing, dt-clamp, channel-independence, and covariance-index branches. Behavior-preserving: the dt clamp (>= 1e-3), per-component LPF order, and the first-message zero/empty accel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_localization |
Launch files
- launch/twist2accel.launch.xml
-
- param_file [default: $(find-pkg-share autoware_twist2accel)/config/twist2accel.param.yaml]
- in_odom [default: in_odom]
- in_twist [default: in_twist]
- out_accel [default: out_accel]
Messages
Services
Plugins
Recent questions tagged autoware_twist2accel at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Koji Minoda
autoware_twist2accel
Purpose
This package is responsible for estimating acceleration using the output of ekf_localizer. It uses lowpass filter to mitigate the noise.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/odom |
nav_msgs::msg::Odometry |
localization odometry |
input/twist |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist |
Output
| Name | Type | Description |
|---|---|---|
output/accel |
geometry_msgs::msg::AccelWithCovarianceStamped |
estimated acceleration |
Parameters
{{ json_to_markdown(“localization/autoware_twist2accel/schema/twist2accel.schema.json”) }}
Future work
Future work includes integrating acceleration into the EKF state.
Changelog for package autoware_twist2accel
1.1.0 (2025-05-01)
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(localization): add node designs for the pose/twist estimation nodes (#1409)
* feat(localization): add node designs for the pose/twist estimation nodes Declare NdtScanMatcher, EkfLocalizer, GyroOdometer, StopFilter and Twist2Accel node designs, with remap_target set to each node's hardcoded topic and service names, and extend PoseInitializer with the map, GNSS, stop-check inputs and the align/trigger/partial-map-load clients that pose_initializer.launch.xml remaps. These let a system designer module compose the localization stack directly from nodes.
* feat(localization): describe node designs and bump to format 0.4.0 ---------
-
refactor(autoware_twist2accel): shrink characterization test (#1256)
- refactor(autoware_twist2accel): simplify publishing procedure
* refactor(autoware_twist2accel): shrink characterization test to simple integration test The estimation math (finite differencing, low-pass filtering, dt clamping, covariance, header/pose handling) is already covered by test_accel_estimator.cpp unit tests. Reduce the node-level test to just the Node's own routing logic: which input topic drives output/accel publishing for a given use_odom value. ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
fix(localization): fix test to use [get_node_base_interface]{.title-ref} for [agnocast_wrapper::Node]{.title-ref} (#1209) fix test for agnocast_wrapper::Node
-
Contributors: Koichi Imai, Taekjin LEE, Takahisa Ishikawa, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(twist2accel): apply [agnocast_wrapper::Node]{.title-ref} to [twist2accel]{.title-ref} (#1189)
- apply agnocast_wrapper::Node
- fix to use ALLOCATE
- fix Cmake
- fix cpplint
* disable test when agnocast enabled ---------
-
refactor(autoware_twist2accel): arrange class interface (#1186)
* refactor(autoware_twist2accel): encapsulate dt and previous twist in AccelEstimator AccelEstimator::estimate() now takes only the current twist sample and owns the per-call state that previously lived in the node: it holds the previous twist, derives dt from successive header stamps, and returns a ready-to-publish AccelWithCovarianceStamped with the header copied from the input. Add TwistWithCovarianceStamped and Odometry overloads that normalize to a TwistStamped and delegate, so the node callbacks can pass the raw message directly and the estimate_accel helper is no longer needed.
* style(autoware_twist2accel): remove redundant comments ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests (#1111)
* refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests Extract the ROS-free acceleration math (dt-clamped finite difference plus 6-channel LowpassFilter1d smoothing) out of Twist2Accel::estimate_accel into a pure, injectable AccelEstimator class, mirroring the sibling autoware_stop_filter::StopFilter pattern. estimate_accel becomes a thin wrapper that computes dt from the ROS clock, calls the estimator, fills the message, and publishes. This makes the previously untestable estimation logic exercisable without spinning a ROS node and adds gtest coverage for the no-smoothing-on-first-sample, finite-difference, low-pass smoothing, dt-clamp, channel-independence, and covariance-index branches. Behavior-preserving: the dt clamp (>= 1e-3), per-component LPF order, and the first-message zero/empty accel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_localization |
Launch files
- launch/twist2accel.launch.xml
-
- param_file [default: $(find-pkg-share autoware_twist2accel)/config/twist2accel.param.yaml]
- in_odom [default: in_odom]
- in_twist [default: in_twist]
- out_accel [default: out_accel]
Messages
Services
Plugins
Recent questions tagged autoware_twist2accel at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Koji Minoda
autoware_twist2accel
Purpose
This package is responsible for estimating acceleration using the output of ekf_localizer. It uses lowpass filter to mitigate the noise.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/odom |
nav_msgs::msg::Odometry |
localization odometry |
input/twist |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist |
Output
| Name | Type | Description |
|---|---|---|
output/accel |
geometry_msgs::msg::AccelWithCovarianceStamped |
estimated acceleration |
Parameters
{{ json_to_markdown(“localization/autoware_twist2accel/schema/twist2accel.schema.json”) }}
Future work
Future work includes integrating acceleration into the EKF state.
Changelog for package autoware_twist2accel
1.1.0 (2025-05-01)
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(localization): add node designs for the pose/twist estimation nodes (#1409)
* feat(localization): add node designs for the pose/twist estimation nodes Declare NdtScanMatcher, EkfLocalizer, GyroOdometer, StopFilter and Twist2Accel node designs, with remap_target set to each node's hardcoded topic and service names, and extend PoseInitializer with the map, GNSS, stop-check inputs and the align/trigger/partial-map-load clients that pose_initializer.launch.xml remaps. These let a system designer module compose the localization stack directly from nodes.
* feat(localization): describe node designs and bump to format 0.4.0 ---------
-
refactor(autoware_twist2accel): shrink characterization test (#1256)
- refactor(autoware_twist2accel): simplify publishing procedure
* refactor(autoware_twist2accel): shrink characterization test to simple integration test The estimation math (finite differencing, low-pass filtering, dt clamping, covariance, header/pose handling) is already covered by test_accel_estimator.cpp unit tests. Reduce the node-level test to just the Node's own routing logic: which input topic drives output/accel publishing for a given use_odom value. ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
fix(localization): fix test to use [get_node_base_interface]{.title-ref} for [agnocast_wrapper::Node]{.title-ref} (#1209) fix test for agnocast_wrapper::Node
-
Contributors: Koichi Imai, Taekjin LEE, Takahisa Ishikawa, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(twist2accel): apply [agnocast_wrapper::Node]{.title-ref} to [twist2accel]{.title-ref} (#1189)
- apply agnocast_wrapper::Node
- fix to use ALLOCATE
- fix Cmake
- fix cpplint
* disable test when agnocast enabled ---------
-
refactor(autoware_twist2accel): arrange class interface (#1186)
* refactor(autoware_twist2accel): encapsulate dt and previous twist in AccelEstimator AccelEstimator::estimate() now takes only the current twist sample and owns the per-call state that previously lived in the node: it holds the previous twist, derives dt from successive header stamps, and returns a ready-to-publish AccelWithCovarianceStamped with the header copied from the input. Add TwistWithCovarianceStamped and Odometry overloads that normalize to a TwistStamped and delegate, so the node callbacks can pass the raw message directly and the estimate_accel helper is no longer needed.
* style(autoware_twist2accel): remove redundant comments ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests (#1111)
* refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests Extract the ROS-free acceleration math (dt-clamped finite difference plus 6-channel LowpassFilter1d smoothing) out of Twist2Accel::estimate_accel into a pure, injectable AccelEstimator class, mirroring the sibling autoware_stop_filter::StopFilter pattern. estimate_accel becomes a thin wrapper that computes dt from the ROS clock, calls the estimator, fills the message, and publishes. This makes the previously untestable estimation logic exercisable without spinning a ROS node and adds gtest coverage for the no-smoothing-on-first-sample, finite-difference, low-pass smoothing, dt-clamp, channel-independence, and covariance-index branches. Behavior-preserving: the dt clamp (>= 1e-3), per-component LPF order, and the first-message zero/empty accel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_localization |
Launch files
- launch/twist2accel.launch.xml
-
- param_file [default: $(find-pkg-share autoware_twist2accel)/config/twist2accel.param.yaml]
- in_odom [default: in_odom]
- in_twist [default: in_twist]
- out_accel [default: out_accel]
Messages
Services
Plugins
Recent questions tagged autoware_twist2accel at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Koji Minoda
autoware_twist2accel
Purpose
This package is responsible for estimating acceleration using the output of ekf_localizer. It uses lowpass filter to mitigate the noise.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/odom |
nav_msgs::msg::Odometry |
localization odometry |
input/twist |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist |
Output
| Name | Type | Description |
|---|---|---|
output/accel |
geometry_msgs::msg::AccelWithCovarianceStamped |
estimated acceleration |
Parameters
{{ json_to_markdown(“localization/autoware_twist2accel/schema/twist2accel.schema.json”) }}
Future work
Future work includes integrating acceleration into the EKF state.
Changelog for package autoware_twist2accel
1.1.0 (2025-05-01)
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(localization): add node designs for the pose/twist estimation nodes (#1409)
* feat(localization): add node designs for the pose/twist estimation nodes Declare NdtScanMatcher, EkfLocalizer, GyroOdometer, StopFilter and Twist2Accel node designs, with remap_target set to each node's hardcoded topic and service names, and extend PoseInitializer with the map, GNSS, stop-check inputs and the align/trigger/partial-map-load clients that pose_initializer.launch.xml remaps. These let a system designer module compose the localization stack directly from nodes.
* feat(localization): describe node designs and bump to format 0.4.0 ---------
-
refactor(autoware_twist2accel): shrink characterization test (#1256)
- refactor(autoware_twist2accel): simplify publishing procedure
* refactor(autoware_twist2accel): shrink characterization test to simple integration test The estimation math (finite differencing, low-pass filtering, dt clamping, covariance, header/pose handling) is already covered by test_accel_estimator.cpp unit tests. Reduce the node-level test to just the Node's own routing logic: which input topic drives output/accel publishing for a given use_odom value. ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
fix(localization): fix test to use [get_node_base_interface]{.title-ref} for [agnocast_wrapper::Node]{.title-ref} (#1209) fix test for agnocast_wrapper::Node
-
Contributors: Koichi Imai, Taekjin LEE, Takahisa Ishikawa, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(twist2accel): apply [agnocast_wrapper::Node]{.title-ref} to [twist2accel]{.title-ref} (#1189)
- apply agnocast_wrapper::Node
- fix to use ALLOCATE
- fix Cmake
- fix cpplint
* disable test when agnocast enabled ---------
-
refactor(autoware_twist2accel): arrange class interface (#1186)
* refactor(autoware_twist2accel): encapsulate dt and previous twist in AccelEstimator AccelEstimator::estimate() now takes only the current twist sample and owns the per-call state that previously lived in the node: it holds the previous twist, derives dt from successive header stamps, and returns a ready-to-publish AccelWithCovarianceStamped with the header copied from the input. Add TwistWithCovarianceStamped and Odometry overloads that normalize to a TwistStamped and delegate, so the node callbacks can pass the raw message directly and the estimate_accel helper is no longer needed.
* style(autoware_twist2accel): remove redundant comments ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests (#1111)
* refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests Extract the ROS-free acceleration math (dt-clamped finite difference plus 6-channel LowpassFilter1d smoothing) out of Twist2Accel::estimate_accel into a pure, injectable AccelEstimator class, mirroring the sibling autoware_stop_filter::StopFilter pattern. estimate_accel becomes a thin wrapper that computes dt from the ROS clock, calls the estimator, fills the message, and publishes. This makes the previously untestable estimation logic exercisable without spinning a ROS node and adds gtest coverage for the no-smoothing-on-first-sample, finite-difference, low-pass smoothing, dt-clamp, channel-independence, and covariance-index branches. Behavior-preserving: the dt clamp (>= 1e-3), per-component LPF order, and the first-message zero/empty accel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_localization |
Launch files
- launch/twist2accel.launch.xml
-
- param_file [default: $(find-pkg-share autoware_twist2accel)/config/twist2accel.param.yaml]
- in_odom [default: in_odom]
- in_twist [default: in_twist]
- out_accel [default: out_accel]
Messages
Services
Plugins
Recent questions tagged autoware_twist2accel at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Koji Minoda
autoware_twist2accel
Purpose
This package is responsible for estimating acceleration using the output of ekf_localizer. It uses lowpass filter to mitigate the noise.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/odom |
nav_msgs::msg::Odometry |
localization odometry |
input/twist |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist |
Output
| Name | Type | Description |
|---|---|---|
output/accel |
geometry_msgs::msg::AccelWithCovarianceStamped |
estimated acceleration |
Parameters
{{ json_to_markdown(“localization/autoware_twist2accel/schema/twist2accel.schema.json”) }}
Future work
Future work includes integrating acceleration into the EKF state.
Changelog for package autoware_twist2accel
1.1.0 (2025-05-01)
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(localization): add node designs for the pose/twist estimation nodes (#1409)
* feat(localization): add node designs for the pose/twist estimation nodes Declare NdtScanMatcher, EkfLocalizer, GyroOdometer, StopFilter and Twist2Accel node designs, with remap_target set to each node's hardcoded topic and service names, and extend PoseInitializer with the map, GNSS, stop-check inputs and the align/trigger/partial-map-load clients that pose_initializer.launch.xml remaps. These let a system designer module compose the localization stack directly from nodes.
* feat(localization): describe node designs and bump to format 0.4.0 ---------
-
refactor(autoware_twist2accel): shrink characterization test (#1256)
- refactor(autoware_twist2accel): simplify publishing procedure
* refactor(autoware_twist2accel): shrink characterization test to simple integration test The estimation math (finite differencing, low-pass filtering, dt clamping, covariance, header/pose handling) is already covered by test_accel_estimator.cpp unit tests. Reduce the node-level test to just the Node's own routing logic: which input topic drives output/accel publishing for a given use_odom value. ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
fix(localization): fix test to use [get_node_base_interface]{.title-ref} for [agnocast_wrapper::Node]{.title-ref} (#1209) fix test for agnocast_wrapper::Node
-
Contributors: Koichi Imai, Taekjin LEE, Takahisa Ishikawa, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(twist2accel): apply [agnocast_wrapper::Node]{.title-ref} to [twist2accel]{.title-ref} (#1189)
- apply agnocast_wrapper::Node
- fix to use ALLOCATE
- fix Cmake
- fix cpplint
* disable test when agnocast enabled ---------
-
refactor(autoware_twist2accel): arrange class interface (#1186)
* refactor(autoware_twist2accel): encapsulate dt and previous twist in AccelEstimator AccelEstimator::estimate() now takes only the current twist sample and owns the per-call state that previously lived in the node: it holds the previous twist, derives dt from successive header stamps, and returns a ready-to-publish AccelWithCovarianceStamped with the header copied from the input. Add TwistWithCovarianceStamped and Odometry overloads that normalize to a TwistStamped and delegate, so the node callbacks can pass the raw message directly and the estimate_accel helper is no longer needed.
* style(autoware_twist2accel): remove redundant comments ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests (#1111)
* refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests Extract the ROS-free acceleration math (dt-clamped finite difference plus 6-channel LowpassFilter1d smoothing) out of Twist2Accel::estimate_accel into a pure, injectable AccelEstimator class, mirroring the sibling autoware_stop_filter::StopFilter pattern. estimate_accel becomes a thin wrapper that computes dt from the ROS clock, calls the estimator, fills the message, and publishes. This makes the previously untestable estimation logic exercisable without spinning a ROS node and adds gtest coverage for the no-smoothing-on-first-sample, finite-difference, low-pass smoothing, dt-clamp, channel-independence, and covariance-index branches. Behavior-preserving: the dt clamp (>= 1e-3), per-component LPF order, and the first-message zero/empty accel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_localization |
Launch files
- launch/twist2accel.launch.xml
-
- param_file [default: $(find-pkg-share autoware_twist2accel)/config/twist2accel.param.yaml]
- in_odom [default: in_odom]
- in_twist [default: in_twist]
- out_accel [default: out_accel]
Messages
Services
Plugins
Recent questions tagged autoware_twist2accel at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Koji Minoda
autoware_twist2accel
Purpose
This package is responsible for estimating acceleration using the output of ekf_localizer. It uses lowpass filter to mitigate the noise.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/odom |
nav_msgs::msg::Odometry |
localization odometry |
input/twist |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist |
Output
| Name | Type | Description |
|---|---|---|
output/accel |
geometry_msgs::msg::AccelWithCovarianceStamped |
estimated acceleration |
Parameters
{{ json_to_markdown(“localization/autoware_twist2accel/schema/twist2accel.schema.json”) }}
Future work
Future work includes integrating acceleration into the EKF state.
Changelog for package autoware_twist2accel
1.1.0 (2025-05-01)
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(localization): add node designs for the pose/twist estimation nodes (#1409)
* feat(localization): add node designs for the pose/twist estimation nodes Declare NdtScanMatcher, EkfLocalizer, GyroOdometer, StopFilter and Twist2Accel node designs, with remap_target set to each node's hardcoded topic and service names, and extend PoseInitializer with the map, GNSS, stop-check inputs and the align/trigger/partial-map-load clients that pose_initializer.launch.xml remaps. These let a system designer module compose the localization stack directly from nodes.
* feat(localization): describe node designs and bump to format 0.4.0 ---------
-
refactor(autoware_twist2accel): shrink characterization test (#1256)
- refactor(autoware_twist2accel): simplify publishing procedure
* refactor(autoware_twist2accel): shrink characterization test to simple integration test The estimation math (finite differencing, low-pass filtering, dt clamping, covariance, header/pose handling) is already covered by test_accel_estimator.cpp unit tests. Reduce the node-level test to just the Node's own routing logic: which input topic drives output/accel publishing for a given use_odom value. ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
fix(localization): fix test to use [get_node_base_interface]{.title-ref} for [agnocast_wrapper::Node]{.title-ref} (#1209) fix test for agnocast_wrapper::Node
-
Contributors: Koichi Imai, Taekjin LEE, Takahisa Ishikawa, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(twist2accel): apply [agnocast_wrapper::Node]{.title-ref} to [twist2accel]{.title-ref} (#1189)
- apply agnocast_wrapper::Node
- fix to use ALLOCATE
- fix Cmake
- fix cpplint
* disable test when agnocast enabled ---------
-
refactor(autoware_twist2accel): arrange class interface (#1186)
* refactor(autoware_twist2accel): encapsulate dt and previous twist in AccelEstimator AccelEstimator::estimate() now takes only the current twist sample and owns the per-call state that previously lived in the node: it holds the previous twist, derives dt from successive header stamps, and returns a ready-to-publish AccelWithCovarianceStamped with the header copied from the input. Add TwistWithCovarianceStamped and Odometry overloads that normalize to a TwistStamped and delegate, so the node callbacks can pass the raw message directly and the estimate_accel helper is no longer needed.
* style(autoware_twist2accel): remove redundant comments ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests (#1111)
* refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests Extract the ROS-free acceleration math (dt-clamped finite difference plus 6-channel LowpassFilter1d smoothing) out of Twist2Accel::estimate_accel into a pure, injectable AccelEstimator class, mirroring the sibling autoware_stop_filter::StopFilter pattern. estimate_accel becomes a thin wrapper that computes dt from the ROS clock, calls the estimator, fills the message, and publishes. This makes the previously untestable estimation logic exercisable without spinning a ROS node and adds gtest coverage for the no-smoothing-on-first-sample, finite-difference, low-pass smoothing, dt-clamp, channel-independence, and covariance-index branches. Behavior-preserving: the dt clamp (>= 1e-3), per-component LPF order, and the first-message zero/empty accel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_localization |
Launch files
- launch/twist2accel.launch.xml
-
- param_file [default: $(find-pkg-share autoware_twist2accel)/config/twist2accel.param.yaml]
- in_odom [default: in_odom]
- in_twist [default: in_twist]
- out_accel [default: out_accel]
Messages
Services
Plugins
Recent questions tagged autoware_twist2accel at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Koji Minoda
autoware_twist2accel
Purpose
This package is responsible for estimating acceleration using the output of ekf_localizer. It uses lowpass filter to mitigate the noise.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/odom |
nav_msgs::msg::Odometry |
localization odometry |
input/twist |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist |
Output
| Name | Type | Description |
|---|---|---|
output/accel |
geometry_msgs::msg::AccelWithCovarianceStamped |
estimated acceleration |
Parameters
{{ json_to_markdown(“localization/autoware_twist2accel/schema/twist2accel.schema.json”) }}
Future work
Future work includes integrating acceleration into the EKF state.
Changelog for package autoware_twist2accel
1.1.0 (2025-05-01)
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(localization): add node designs for the pose/twist estimation nodes (#1409)
* feat(localization): add node designs for the pose/twist estimation nodes Declare NdtScanMatcher, EkfLocalizer, GyroOdometer, StopFilter and Twist2Accel node designs, with remap_target set to each node's hardcoded topic and service names, and extend PoseInitializer with the map, GNSS, stop-check inputs and the align/trigger/partial-map-load clients that pose_initializer.launch.xml remaps. These let a system designer module compose the localization stack directly from nodes.
* feat(localization): describe node designs and bump to format 0.4.0 ---------
-
refactor(autoware_twist2accel): shrink characterization test (#1256)
- refactor(autoware_twist2accel): simplify publishing procedure
* refactor(autoware_twist2accel): shrink characterization test to simple integration test The estimation math (finite differencing, low-pass filtering, dt clamping, covariance, header/pose handling) is already covered by test_accel_estimator.cpp unit tests. Reduce the node-level test to just the Node's own routing logic: which input topic drives output/accel publishing for a given use_odom value. ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
fix(localization): fix test to use [get_node_base_interface]{.title-ref} for [agnocast_wrapper::Node]{.title-ref} (#1209) fix test for agnocast_wrapper::Node
-
Contributors: Koichi Imai, Taekjin LEE, Takahisa Ishikawa, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(twist2accel): apply [agnocast_wrapper::Node]{.title-ref} to [twist2accel]{.title-ref} (#1189)
- apply agnocast_wrapper::Node
- fix to use ALLOCATE
- fix Cmake
- fix cpplint
* disable test when agnocast enabled ---------
-
refactor(autoware_twist2accel): arrange class interface (#1186)
* refactor(autoware_twist2accel): encapsulate dt and previous twist in AccelEstimator AccelEstimator::estimate() now takes only the current twist sample and owns the per-call state that previously lived in the node: it holds the previous twist, derives dt from successive header stamps, and returns a ready-to-publish AccelWithCovarianceStamped with the header copied from the input. Add TwistWithCovarianceStamped and Odometry overloads that normalize to a TwistStamped and delegate, so the node callbacks can pass the raw message directly and the estimate_accel helper is no longer needed.
* style(autoware_twist2accel): remove redundant comments ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests (#1111)
* refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests Extract the ROS-free acceleration math (dt-clamped finite difference plus 6-channel LowpassFilter1d smoothing) out of Twist2Accel::estimate_accel into a pure, injectable AccelEstimator class, mirroring the sibling autoware_stop_filter::StopFilter pattern. estimate_accel becomes a thin wrapper that computes dt from the ROS clock, calls the estimator, fills the message, and publishes. This makes the previously untestable estimation logic exercisable without spinning a ROS node and adds gtest coverage for the no-smoothing-on-first-sample, finite-difference, low-pass smoothing, dt-clamp, channel-independence, and covariance-index branches. Behavior-preserving: the dt clamp (>= 1e-3), per-component LPF order, and the first-message zero/empty accel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_localization |
Launch files
- launch/twist2accel.launch.xml
-
- param_file [default: $(find-pkg-share autoware_twist2accel)/config/twist2accel.param.yaml]
- in_odom [default: in_odom]
- in_twist [default: in_twist]
- out_accel [default: out_accel]
Messages
Services
Plugins
Recent questions tagged autoware_twist2accel at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Koji Minoda
autoware_twist2accel
Purpose
This package is responsible for estimating acceleration using the output of ekf_localizer. It uses lowpass filter to mitigate the noise.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/odom |
nav_msgs::msg::Odometry |
localization odometry |
input/twist |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist |
Output
| Name | Type | Description |
|---|---|---|
output/accel |
geometry_msgs::msg::AccelWithCovarianceStamped |
estimated acceleration |
Parameters
{{ json_to_markdown(“localization/autoware_twist2accel/schema/twist2accel.schema.json”) }}
Future work
Future work includes integrating acceleration into the EKF state.
Changelog for package autoware_twist2accel
1.1.0 (2025-05-01)
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(localization): add node designs for the pose/twist estimation nodes (#1409)
* feat(localization): add node designs for the pose/twist estimation nodes Declare NdtScanMatcher, EkfLocalizer, GyroOdometer, StopFilter and Twist2Accel node designs, with remap_target set to each node's hardcoded topic and service names, and extend PoseInitializer with the map, GNSS, stop-check inputs and the align/trigger/partial-map-load clients that pose_initializer.launch.xml remaps. These let a system designer module compose the localization stack directly from nodes.
* feat(localization): describe node designs and bump to format 0.4.0 ---------
-
refactor(autoware_twist2accel): shrink characterization test (#1256)
- refactor(autoware_twist2accel): simplify publishing procedure
* refactor(autoware_twist2accel): shrink characterization test to simple integration test The estimation math (finite differencing, low-pass filtering, dt clamping, covariance, header/pose handling) is already covered by test_accel_estimator.cpp unit tests. Reduce the node-level test to just the Node's own routing logic: which input topic drives output/accel publishing for a given use_odom value. ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
fix(localization): fix test to use [get_node_base_interface]{.title-ref} for [agnocast_wrapper::Node]{.title-ref} (#1209) fix test for agnocast_wrapper::Node
-
Contributors: Koichi Imai, Taekjin LEE, Takahisa Ishikawa, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(twist2accel): apply [agnocast_wrapper::Node]{.title-ref} to [twist2accel]{.title-ref} (#1189)
- apply agnocast_wrapper::Node
- fix to use ALLOCATE
- fix Cmake
- fix cpplint
* disable test when agnocast enabled ---------
-
refactor(autoware_twist2accel): arrange class interface (#1186)
* refactor(autoware_twist2accel): encapsulate dt and previous twist in AccelEstimator AccelEstimator::estimate() now takes only the current twist sample and owns the per-call state that previously lived in the node: it holds the previous twist, derives dt from successive header stamps, and returns a ready-to-publish AccelWithCovarianceStamped with the header copied from the input. Add TwistWithCovarianceStamped and Odometry overloads that normalize to a TwistStamped and delegate, so the node callbacks can pass the raw message directly and the estimate_accel helper is no longer needed.
* style(autoware_twist2accel): remove redundant comments ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests (#1111)
* refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests Extract the ROS-free acceleration math (dt-clamped finite difference plus 6-channel LowpassFilter1d smoothing) out of Twist2Accel::estimate_accel into a pure, injectable AccelEstimator class, mirroring the sibling autoware_stop_filter::StopFilter pattern. estimate_accel becomes a thin wrapper that computes dt from the ROS clock, calls the estimator, fills the message, and publishes. This makes the previously untestable estimation logic exercisable without spinning a ROS node and adds gtest coverage for the no-smoothing-on-first-sample, finite-difference, low-pass smoothing, dt-clamp, channel-independence, and covariance-index branches. Behavior-preserving: the dt clamp (>= 1e-3), per-component LPF order, and the first-message zero/empty accel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_localization |
Launch files
- launch/twist2accel.launch.xml
-
- param_file [default: $(find-pkg-share autoware_twist2accel)/config/twist2accel.param.yaml]
- in_odom [default: in_odom]
- in_twist [default: in_twist]
- out_accel [default: out_accel]
Messages
Services
Plugins
Recent questions tagged autoware_twist2accel at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Koji Minoda
autoware_twist2accel
Purpose
This package is responsible for estimating acceleration using the output of ekf_localizer. It uses lowpass filter to mitigate the noise.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/odom |
nav_msgs::msg::Odometry |
localization odometry |
input/twist |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist |
Output
| Name | Type | Description |
|---|---|---|
output/accel |
geometry_msgs::msg::AccelWithCovarianceStamped |
estimated acceleration |
Parameters
{{ json_to_markdown(“localization/autoware_twist2accel/schema/twist2accel.schema.json”) }}
Future work
Future work includes integrating acceleration into the EKF state.
Changelog for package autoware_twist2accel
1.1.0 (2025-05-01)
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(localization): add node designs for the pose/twist estimation nodes (#1409)
* feat(localization): add node designs for the pose/twist estimation nodes Declare NdtScanMatcher, EkfLocalizer, GyroOdometer, StopFilter and Twist2Accel node designs, with remap_target set to each node's hardcoded topic and service names, and extend PoseInitializer with the map, GNSS, stop-check inputs and the align/trigger/partial-map-load clients that pose_initializer.launch.xml remaps. These let a system designer module compose the localization stack directly from nodes.
* feat(localization): describe node designs and bump to format 0.4.0 ---------
-
refactor(autoware_twist2accel): shrink characterization test (#1256)
- refactor(autoware_twist2accel): simplify publishing procedure
* refactor(autoware_twist2accel): shrink characterization test to simple integration test The estimation math (finite differencing, low-pass filtering, dt clamping, covariance, header/pose handling) is already covered by test_accel_estimator.cpp unit tests. Reduce the node-level test to just the Node's own routing logic: which input topic drives output/accel publishing for a given use_odom value. ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
fix(localization): fix test to use [get_node_base_interface]{.title-ref} for [agnocast_wrapper::Node]{.title-ref} (#1209) fix test for agnocast_wrapper::Node
-
Contributors: Koichi Imai, Taekjin LEE, Takahisa Ishikawa, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(twist2accel): apply [agnocast_wrapper::Node]{.title-ref} to [twist2accel]{.title-ref} (#1189)
- apply agnocast_wrapper::Node
- fix to use ALLOCATE
- fix Cmake
- fix cpplint
* disable test when agnocast enabled ---------
-
refactor(autoware_twist2accel): arrange class interface (#1186)
* refactor(autoware_twist2accel): encapsulate dt and previous twist in AccelEstimator AccelEstimator::estimate() now takes only the current twist sample and owns the per-call state that previously lived in the node: it holds the previous twist, derives dt from successive header stamps, and returns a ready-to-publish AccelWithCovarianceStamped with the header copied from the input. Add TwistWithCovarianceStamped and Odometry overloads that normalize to a TwistStamped and delegate, so the node callbacks can pass the raw message directly and the estimate_accel helper is no longer needed.
* style(autoware_twist2accel): remove redundant comments ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests (#1111)
* refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests Extract the ROS-free acceleration math (dt-clamped finite difference plus 6-channel LowpassFilter1d smoothing) out of Twist2Accel::estimate_accel into a pure, injectable AccelEstimator class, mirroring the sibling autoware_stop_filter::StopFilter pattern. estimate_accel becomes a thin wrapper that computes dt from the ROS clock, calls the estimator, fills the message, and publishes. This makes the previously untestable estimation logic exercisable without spinning a ROS node and adds gtest coverage for the no-smoothing-on-first-sample, finite-difference, low-pass smoothing, dt-clamp, channel-independence, and covariance-index branches. Behavior-preserving: the dt clamp (>= 1e-3), per-component LPF order, and the first-message zero/empty accel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_localization |
Launch files
- launch/twist2accel.launch.xml
-
- param_file [default: $(find-pkg-share autoware_twist2accel)/config/twist2accel.param.yaml]
- in_odom [default: in_odom]
- in_twist [default: in_twist]
- out_accel [default: out_accel]
Messages
Services
Plugins
Recent questions tagged autoware_twist2accel at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Koji Minoda
autoware_twist2accel
Purpose
This package is responsible for estimating acceleration using the output of ekf_localizer. It uses lowpass filter to mitigate the noise.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/odom |
nav_msgs::msg::Odometry |
localization odometry |
input/twist |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist |
Output
| Name | Type | Description |
|---|---|---|
output/accel |
geometry_msgs::msg::AccelWithCovarianceStamped |
estimated acceleration |
Parameters
{{ json_to_markdown(“localization/autoware_twist2accel/schema/twist2accel.schema.json”) }}
Future work
Future work includes integrating acceleration into the EKF state.
Changelog for package autoware_twist2accel
1.1.0 (2025-05-01)
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(localization): add node designs for the pose/twist estimation nodes (#1409)
* feat(localization): add node designs for the pose/twist estimation nodes Declare NdtScanMatcher, EkfLocalizer, GyroOdometer, StopFilter and Twist2Accel node designs, with remap_target set to each node's hardcoded topic and service names, and extend PoseInitializer with the map, GNSS, stop-check inputs and the align/trigger/partial-map-load clients that pose_initializer.launch.xml remaps. These let a system designer module compose the localization stack directly from nodes.
* feat(localization): describe node designs and bump to format 0.4.0 ---------
-
refactor(autoware_twist2accel): shrink characterization test (#1256)
- refactor(autoware_twist2accel): simplify publishing procedure
* refactor(autoware_twist2accel): shrink characterization test to simple integration test The estimation math (finite differencing, low-pass filtering, dt clamping, covariance, header/pose handling) is already covered by test_accel_estimator.cpp unit tests. Reduce the node-level test to just the Node's own routing logic: which input topic drives output/accel publishing for a given use_odom value. ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
fix(localization): fix test to use [get_node_base_interface]{.title-ref} for [agnocast_wrapper::Node]{.title-ref} (#1209) fix test for agnocast_wrapper::Node
-
Contributors: Koichi Imai, Taekjin LEE, Takahisa Ishikawa, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(twist2accel): apply [agnocast_wrapper::Node]{.title-ref} to [twist2accel]{.title-ref} (#1189)
- apply agnocast_wrapper::Node
- fix to use ALLOCATE
- fix Cmake
- fix cpplint
* disable test when agnocast enabled ---------
-
refactor(autoware_twist2accel): arrange class interface (#1186)
* refactor(autoware_twist2accel): encapsulate dt and previous twist in AccelEstimator AccelEstimator::estimate() now takes only the current twist sample and owns the per-call state that previously lived in the node: it holds the previous twist, derives dt from successive header stamps, and returns a ready-to-publish AccelWithCovarianceStamped with the header copied from the input. Add TwistWithCovarianceStamped and Odometry overloads that normalize to a TwistStamped and delegate, so the node callbacks can pass the raw message directly and the estimate_accel helper is no longer needed.
* style(autoware_twist2accel): remove redundant comments ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests (#1111)
* refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests Extract the ROS-free acceleration math (dt-clamped finite difference plus 6-channel LowpassFilter1d smoothing) out of Twist2Accel::estimate_accel into a pure, injectable AccelEstimator class, mirroring the sibling autoware_stop_filter::StopFilter pattern. estimate_accel becomes a thin wrapper that computes dt from the ROS clock, calls the estimator, fills the message, and publishes. This makes the previously untestable estimation logic exercisable without spinning a ROS node and adds gtest coverage for the no-smoothing-on-first-sample, finite-difference, low-pass smoothing, dt-clamp, channel-independence, and covariance-index branches. Behavior-preserving: the dt clamp (>= 1e-3), per-component LPF order, and the first-message zero/empty accel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_localization |
Launch files
- launch/twist2accel.launch.xml
-
- param_file [default: $(find-pkg-share autoware_twist2accel)/config/twist2accel.param.yaml]
- in_odom [default: in_odom]
- in_twist [default: in_twist]
- out_accel [default: out_accel]
Messages
Services
Plugins
Recent questions tagged autoware_twist2accel at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Koji Minoda
autoware_twist2accel
Purpose
This package is responsible for estimating acceleration using the output of ekf_localizer. It uses lowpass filter to mitigate the noise.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/odom |
nav_msgs::msg::Odometry |
localization odometry |
input/twist |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist |
Output
| Name | Type | Description |
|---|---|---|
output/accel |
geometry_msgs::msg::AccelWithCovarianceStamped |
estimated acceleration |
Parameters
{{ json_to_markdown(“localization/autoware_twist2accel/schema/twist2accel.schema.json”) }}
Future work
Future work includes integrating acceleration into the EKF state.
Changelog for package autoware_twist2accel
1.1.0 (2025-05-01)
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(localization): add node designs for the pose/twist estimation nodes (#1409)
* feat(localization): add node designs for the pose/twist estimation nodes Declare NdtScanMatcher, EkfLocalizer, GyroOdometer, StopFilter and Twist2Accel node designs, with remap_target set to each node's hardcoded topic and service names, and extend PoseInitializer with the map, GNSS, stop-check inputs and the align/trigger/partial-map-load clients that pose_initializer.launch.xml remaps. These let a system designer module compose the localization stack directly from nodes.
* feat(localization): describe node designs and bump to format 0.4.0 ---------
-
refactor(autoware_twist2accel): shrink characterization test (#1256)
- refactor(autoware_twist2accel): simplify publishing procedure
* refactor(autoware_twist2accel): shrink characterization test to simple integration test The estimation math (finite differencing, low-pass filtering, dt clamping, covariance, header/pose handling) is already covered by test_accel_estimator.cpp unit tests. Reduce the node-level test to just the Node's own routing logic: which input topic drives output/accel publishing for a given use_odom value. ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
fix(localization): fix test to use [get_node_base_interface]{.title-ref} for [agnocast_wrapper::Node]{.title-ref} (#1209) fix test for agnocast_wrapper::Node
-
Contributors: Koichi Imai, Taekjin LEE, Takahisa Ishikawa, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(twist2accel): apply [agnocast_wrapper::Node]{.title-ref} to [twist2accel]{.title-ref} (#1189)
- apply agnocast_wrapper::Node
- fix to use ALLOCATE
- fix Cmake
- fix cpplint
* disable test when agnocast enabled ---------
-
refactor(autoware_twist2accel): arrange class interface (#1186)
* refactor(autoware_twist2accel): encapsulate dt and previous twist in AccelEstimator AccelEstimator::estimate() now takes only the current twist sample and owns the per-call state that previously lived in the node: it holds the previous twist, derives dt from successive header stamps, and returns a ready-to-publish AccelWithCovarianceStamped with the header copied from the input. Add TwistWithCovarianceStamped and Odometry overloads that normalize to a TwistStamped and delegate, so the node callbacks can pass the raw message directly and the estimate_accel helper is no longer needed.
* style(autoware_twist2accel): remove redundant comments ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests (#1111)
* refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests Extract the ROS-free acceleration math (dt-clamped finite difference plus 6-channel LowpassFilter1d smoothing) out of Twist2Accel::estimate_accel into a pure, injectable AccelEstimator class, mirroring the sibling autoware_stop_filter::StopFilter pattern. estimate_accel becomes a thin wrapper that computes dt from the ROS clock, calls the estimator, fills the message, and publishes. This makes the previously untestable estimation logic exercisable without spinning a ROS node and adds gtest coverage for the no-smoothing-on-first-sample, finite-difference, low-pass smoothing, dt-clamp, channel-independence, and covariance-index branches. Behavior-preserving: the dt clamp (>= 1e-3), per-component LPF order, and the first-message zero/empty accel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_localization |
Launch files
- launch/twist2accel.launch.xml
-
- param_file [default: $(find-pkg-share autoware_twist2accel)/config/twist2accel.param.yaml]
- in_odom [default: in_odom]
- in_twist [default: in_twist]
- out_accel [default: out_accel]
Messages
Services
Plugins
Recent questions tagged autoware_twist2accel at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Koji Minoda
autoware_twist2accel
Purpose
This package is responsible for estimating acceleration using the output of ekf_localizer. It uses lowpass filter to mitigate the noise.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/odom |
nav_msgs::msg::Odometry |
localization odometry |
input/twist |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist |
Output
| Name | Type | Description |
|---|---|---|
output/accel |
geometry_msgs::msg::AccelWithCovarianceStamped |
estimated acceleration |
Parameters
{{ json_to_markdown(“localization/autoware_twist2accel/schema/twist2accel.schema.json”) }}
Future work
Future work includes integrating acceleration into the EKF state.
Changelog for package autoware_twist2accel
1.1.0 (2025-05-01)
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(localization): add node designs for the pose/twist estimation nodes (#1409)
* feat(localization): add node designs for the pose/twist estimation nodes Declare NdtScanMatcher, EkfLocalizer, GyroOdometer, StopFilter and Twist2Accel node designs, with remap_target set to each node's hardcoded topic and service names, and extend PoseInitializer with the map, GNSS, stop-check inputs and the align/trigger/partial-map-load clients that pose_initializer.launch.xml remaps. These let a system designer module compose the localization stack directly from nodes.
* feat(localization): describe node designs and bump to format 0.4.0 ---------
-
refactor(autoware_twist2accel): shrink characterization test (#1256)
- refactor(autoware_twist2accel): simplify publishing procedure
* refactor(autoware_twist2accel): shrink characterization test to simple integration test The estimation math (finite differencing, low-pass filtering, dt clamping, covariance, header/pose handling) is already covered by test_accel_estimator.cpp unit tests. Reduce the node-level test to just the Node's own routing logic: which input topic drives output/accel publishing for a given use_odom value. ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
fix(localization): fix test to use [get_node_base_interface]{.title-ref} for [agnocast_wrapper::Node]{.title-ref} (#1209) fix test for agnocast_wrapper::Node
-
Contributors: Koichi Imai, Taekjin LEE, Takahisa Ishikawa, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(twist2accel): apply [agnocast_wrapper::Node]{.title-ref} to [twist2accel]{.title-ref} (#1189)
- apply agnocast_wrapper::Node
- fix to use ALLOCATE
- fix Cmake
- fix cpplint
* disable test when agnocast enabled ---------
-
refactor(autoware_twist2accel): arrange class interface (#1186)
* refactor(autoware_twist2accel): encapsulate dt and previous twist in AccelEstimator AccelEstimator::estimate() now takes only the current twist sample and owns the per-call state that previously lived in the node: it holds the previous twist, derives dt from successive header stamps, and returns a ready-to-publish AccelWithCovarianceStamped with the header copied from the input. Add TwistWithCovarianceStamped and Odometry overloads that normalize to a TwistStamped and delegate, so the node callbacks can pass the raw message directly and the estimate_accel helper is no longer needed.
* style(autoware_twist2accel): remove redundant comments ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests (#1111)
* refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests Extract the ROS-free acceleration math (dt-clamped finite difference plus 6-channel LowpassFilter1d smoothing) out of Twist2Accel::estimate_accel into a pure, injectable AccelEstimator class, mirroring the sibling autoware_stop_filter::StopFilter pattern. estimate_accel becomes a thin wrapper that computes dt from the ROS clock, calls the estimator, fills the message, and publishes. This makes the previously untestable estimation logic exercisable without spinning a ROS node and adds gtest coverage for the no-smoothing-on-first-sample, finite-difference, low-pass smoothing, dt-clamp, channel-independence, and covariance-index branches. Behavior-preserving: the dt clamp (>= 1e-3), per-component LPF order, and the first-message zero/empty accel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_localization |
Launch files
- launch/twist2accel.launch.xml
-
- param_file [default: $(find-pkg-share autoware_twist2accel)/config/twist2accel.param.yaml]
- in_odom [default: in_odom]
- in_twist [default: in_twist]
- out_accel [default: out_accel]
Messages
Services
Plugins
Recent questions tagged autoware_twist2accel at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Koji Minoda
autoware_twist2accel
Purpose
This package is responsible for estimating acceleration using the output of ekf_localizer. It uses lowpass filter to mitigate the noise.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/odom |
nav_msgs::msg::Odometry |
localization odometry |
input/twist |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist |
Output
| Name | Type | Description |
|---|---|---|
output/accel |
geometry_msgs::msg::AccelWithCovarianceStamped |
estimated acceleration |
Parameters
{{ json_to_markdown(“localization/autoware_twist2accel/schema/twist2accel.schema.json”) }}
Future work
Future work includes integrating acceleration into the EKF state.
Changelog for package autoware_twist2accel
1.1.0 (2025-05-01)
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(localization): add node designs for the pose/twist estimation nodes (#1409)
* feat(localization): add node designs for the pose/twist estimation nodes Declare NdtScanMatcher, EkfLocalizer, GyroOdometer, StopFilter and Twist2Accel node designs, with remap_target set to each node's hardcoded topic and service names, and extend PoseInitializer with the map, GNSS, stop-check inputs and the align/trigger/partial-map-load clients that pose_initializer.launch.xml remaps. These let a system designer module compose the localization stack directly from nodes.
* feat(localization): describe node designs and bump to format 0.4.0 ---------
-
refactor(autoware_twist2accel): shrink characterization test (#1256)
- refactor(autoware_twist2accel): simplify publishing procedure
* refactor(autoware_twist2accel): shrink characterization test to simple integration test The estimation math (finite differencing, low-pass filtering, dt clamping, covariance, header/pose handling) is already covered by test_accel_estimator.cpp unit tests. Reduce the node-level test to just the Node's own routing logic: which input topic drives output/accel publishing for a given use_odom value. ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
fix(localization): fix test to use [get_node_base_interface]{.title-ref} for [agnocast_wrapper::Node]{.title-ref} (#1209) fix test for agnocast_wrapper::Node
-
Contributors: Koichi Imai, Taekjin LEE, Takahisa Ishikawa, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(twist2accel): apply [agnocast_wrapper::Node]{.title-ref} to [twist2accel]{.title-ref} (#1189)
- apply agnocast_wrapper::Node
- fix to use ALLOCATE
- fix Cmake
- fix cpplint
* disable test when agnocast enabled ---------
-
refactor(autoware_twist2accel): arrange class interface (#1186)
* refactor(autoware_twist2accel): encapsulate dt and previous twist in AccelEstimator AccelEstimator::estimate() now takes only the current twist sample and owns the per-call state that previously lived in the node: it holds the previous twist, derives dt from successive header stamps, and returns a ready-to-publish AccelWithCovarianceStamped with the header copied from the input. Add TwistWithCovarianceStamped and Odometry overloads that normalize to a TwistStamped and delegate, so the node callbacks can pass the raw message directly and the estimate_accel helper is no longer needed.
* style(autoware_twist2accel): remove redundant comments ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests (#1111)
* refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests Extract the ROS-free acceleration math (dt-clamped finite difference plus 6-channel LowpassFilter1d smoothing) out of Twist2Accel::estimate_accel into a pure, injectable AccelEstimator class, mirroring the sibling autoware_stop_filter::StopFilter pattern. estimate_accel becomes a thin wrapper that computes dt from the ROS clock, calls the estimator, fills the message, and publishes. This makes the previously untestable estimation logic exercisable without spinning a ROS node and adds gtest coverage for the no-smoothing-on-first-sample, finite-difference, low-pass smoothing, dt-clamp, channel-independence, and covariance-index branches. Behavior-preserving: the dt clamp (>= 1e-3), per-component LPF order, and the first-message zero/empty accel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_localization |
Launch files
- launch/twist2accel.launch.xml
-
- param_file [default: $(find-pkg-share autoware_twist2accel)/config/twist2accel.param.yaml]
- in_odom [default: in_odom]
- in_twist [default: in_twist]
- out_accel [default: out_accel]
Messages
Services
Plugins
Recent questions tagged autoware_twist2accel at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Koji Minoda
autoware_twist2accel
Purpose
This package is responsible for estimating acceleration using the output of ekf_localizer. It uses lowpass filter to mitigate the noise.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/odom |
nav_msgs::msg::Odometry |
localization odometry |
input/twist |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist |
Output
| Name | Type | Description |
|---|---|---|
output/accel |
geometry_msgs::msg::AccelWithCovarianceStamped |
estimated acceleration |
Parameters
{{ json_to_markdown(“localization/autoware_twist2accel/schema/twist2accel.schema.json”) }}
Future work
Future work includes integrating acceleration into the EKF state.
Changelog for package autoware_twist2accel
1.1.0 (2025-05-01)
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(localization): add node designs for the pose/twist estimation nodes (#1409)
* feat(localization): add node designs for the pose/twist estimation nodes Declare NdtScanMatcher, EkfLocalizer, GyroOdometer, StopFilter and Twist2Accel node designs, with remap_target set to each node's hardcoded topic and service names, and extend PoseInitializer with the map, GNSS, stop-check inputs and the align/trigger/partial-map-load clients that pose_initializer.launch.xml remaps. These let a system designer module compose the localization stack directly from nodes.
* feat(localization): describe node designs and bump to format 0.4.0 ---------
-
refactor(autoware_twist2accel): shrink characterization test (#1256)
- refactor(autoware_twist2accel): simplify publishing procedure
* refactor(autoware_twist2accel): shrink characterization test to simple integration test The estimation math (finite differencing, low-pass filtering, dt clamping, covariance, header/pose handling) is already covered by test_accel_estimator.cpp unit tests. Reduce the node-level test to just the Node's own routing logic: which input topic drives output/accel publishing for a given use_odom value. ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
fix(localization): fix test to use [get_node_base_interface]{.title-ref} for [agnocast_wrapper::Node]{.title-ref} (#1209) fix test for agnocast_wrapper::Node
-
Contributors: Koichi Imai, Taekjin LEE, Takahisa Ishikawa, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(twist2accel): apply [agnocast_wrapper::Node]{.title-ref} to [twist2accel]{.title-ref} (#1189)
- apply agnocast_wrapper::Node
- fix to use ALLOCATE
- fix Cmake
- fix cpplint
* disable test when agnocast enabled ---------
-
refactor(autoware_twist2accel): arrange class interface (#1186)
* refactor(autoware_twist2accel): encapsulate dt and previous twist in AccelEstimator AccelEstimator::estimate() now takes only the current twist sample and owns the per-call state that previously lived in the node: it holds the previous twist, derives dt from successive header stamps, and returns a ready-to-publish AccelWithCovarianceStamped with the header copied from the input. Add TwistWithCovarianceStamped and Odometry overloads that normalize to a TwistStamped and delegate, so the node callbacks can pass the raw message directly and the estimate_accel helper is no longer needed.
* style(autoware_twist2accel): remove redundant comments ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests (#1111)
* refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests Extract the ROS-free acceleration math (dt-clamped finite difference plus 6-channel LowpassFilter1d smoothing) out of Twist2Accel::estimate_accel into a pure, injectable AccelEstimator class, mirroring the sibling autoware_stop_filter::StopFilter pattern. estimate_accel becomes a thin wrapper that computes dt from the ROS clock, calls the estimator, fills the message, and publishes. This makes the previously untestable estimation logic exercisable without spinning a ROS node and adds gtest coverage for the no-smoothing-on-first-sample, finite-difference, low-pass smoothing, dt-clamp, channel-independence, and covariance-index branches. Behavior-preserving: the dt clamp (>= 1e-3), per-component LPF order, and the first-message zero/empty accel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_localization |
Launch files
- launch/twist2accel.launch.xml
-
- param_file [default: $(find-pkg-share autoware_twist2accel)/config/twist2accel.param.yaml]
- in_odom [default: in_odom]
- in_twist [default: in_twist]
- out_accel [default: out_accel]
Messages
Services
Plugins
Recent questions tagged autoware_twist2accel at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Koji Minoda
autoware_twist2accel
Purpose
This package is responsible for estimating acceleration using the output of ekf_localizer. It uses lowpass filter to mitigate the noise.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/odom |
nav_msgs::msg::Odometry |
localization odometry |
input/twist |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist |
Output
| Name | Type | Description |
|---|---|---|
output/accel |
geometry_msgs::msg::AccelWithCovarianceStamped |
estimated acceleration |
Parameters
{{ json_to_markdown(“localization/autoware_twist2accel/schema/twist2accel.schema.json”) }}
Future work
Future work includes integrating acceleration into the EKF state.
Changelog for package autoware_twist2accel
1.1.0 (2025-05-01)
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(localization): add node designs for the pose/twist estimation nodes (#1409)
* feat(localization): add node designs for the pose/twist estimation nodes Declare NdtScanMatcher, EkfLocalizer, GyroOdometer, StopFilter and Twist2Accel node designs, with remap_target set to each node's hardcoded topic and service names, and extend PoseInitializer with the map, GNSS, stop-check inputs and the align/trigger/partial-map-load clients that pose_initializer.launch.xml remaps. These let a system designer module compose the localization stack directly from nodes.
* feat(localization): describe node designs and bump to format 0.4.0 ---------
-
refactor(autoware_twist2accel): shrink characterization test (#1256)
- refactor(autoware_twist2accel): simplify publishing procedure
* refactor(autoware_twist2accel): shrink characterization test to simple integration test The estimation math (finite differencing, low-pass filtering, dt clamping, covariance, header/pose handling) is already covered by test_accel_estimator.cpp unit tests. Reduce the node-level test to just the Node's own routing logic: which input topic drives output/accel publishing for a given use_odom value. ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
fix(localization): fix test to use [get_node_base_interface]{.title-ref} for [agnocast_wrapper::Node]{.title-ref} (#1209) fix test for agnocast_wrapper::Node
-
Contributors: Koichi Imai, Taekjin LEE, Takahisa Ishikawa, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(twist2accel): apply [agnocast_wrapper::Node]{.title-ref} to [twist2accel]{.title-ref} (#1189)
- apply agnocast_wrapper::Node
- fix to use ALLOCATE
- fix Cmake
- fix cpplint
* disable test when agnocast enabled ---------
-
refactor(autoware_twist2accel): arrange class interface (#1186)
* refactor(autoware_twist2accel): encapsulate dt and previous twist in AccelEstimator AccelEstimator::estimate() now takes only the current twist sample and owns the per-call state that previously lived in the node: it holds the previous twist, derives dt from successive header stamps, and returns a ready-to-publish AccelWithCovarianceStamped with the header copied from the input. Add TwistWithCovarianceStamped and Odometry overloads that normalize to a TwistStamped and delegate, so the node callbacks can pass the raw message directly and the estimate_accel helper is no longer needed.
* style(autoware_twist2accel): remove redundant comments ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests (#1111)
* refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests Extract the ROS-free acceleration math (dt-clamped finite difference plus 6-channel LowpassFilter1d smoothing) out of Twist2Accel::estimate_accel into a pure, injectable AccelEstimator class, mirroring the sibling autoware_stop_filter::StopFilter pattern. estimate_accel becomes a thin wrapper that computes dt from the ROS clock, calls the estimator, fills the message, and publishes. This makes the previously untestable estimation logic exercisable without spinning a ROS node and adds gtest coverage for the no-smoothing-on-first-sample, finite-difference, low-pass smoothing, dt-clamp, channel-independence, and covariance-index branches. Behavior-preserving: the dt clamp (>= 1e-3), per-component LPF order, and the first-message zero/empty accel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_localization |
Launch files
- launch/twist2accel.launch.xml
-
- param_file [default: $(find-pkg-share autoware_twist2accel)/config/twist2accel.param.yaml]
- in_odom [default: in_odom]
- in_twist [default: in_twist]
- out_accel [default: out_accel]
Messages
Services
Plugins
Recent questions tagged autoware_twist2accel at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Koji Minoda
autoware_twist2accel
Purpose
This package is responsible for estimating acceleration using the output of ekf_localizer. It uses lowpass filter to mitigate the noise.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/odom |
nav_msgs::msg::Odometry |
localization odometry |
input/twist |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist |
Output
| Name | Type | Description |
|---|---|---|
output/accel |
geometry_msgs::msg::AccelWithCovarianceStamped |
estimated acceleration |
Parameters
{{ json_to_markdown(“localization/autoware_twist2accel/schema/twist2accel.schema.json”) }}
Future work
Future work includes integrating acceleration into the EKF state.
Changelog for package autoware_twist2accel
1.1.0 (2025-05-01)
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(localization): add node designs for the pose/twist estimation nodes (#1409)
* feat(localization): add node designs for the pose/twist estimation nodes Declare NdtScanMatcher, EkfLocalizer, GyroOdometer, StopFilter and Twist2Accel node designs, with remap_target set to each node's hardcoded topic and service names, and extend PoseInitializer with the map, GNSS, stop-check inputs and the align/trigger/partial-map-load clients that pose_initializer.launch.xml remaps. These let a system designer module compose the localization stack directly from nodes.
* feat(localization): describe node designs and bump to format 0.4.0 ---------
-
refactor(autoware_twist2accel): shrink characterization test (#1256)
- refactor(autoware_twist2accel): simplify publishing procedure
* refactor(autoware_twist2accel): shrink characterization test to simple integration test The estimation math (finite differencing, low-pass filtering, dt clamping, covariance, header/pose handling) is already covered by test_accel_estimator.cpp unit tests. Reduce the node-level test to just the Node's own routing logic: which input topic drives output/accel publishing for a given use_odom value. ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
fix(localization): fix test to use [get_node_base_interface]{.title-ref} for [agnocast_wrapper::Node]{.title-ref} (#1209) fix test for agnocast_wrapper::Node
-
Contributors: Koichi Imai, Taekjin LEE, Takahisa Ishikawa, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(twist2accel): apply [agnocast_wrapper::Node]{.title-ref} to [twist2accel]{.title-ref} (#1189)
- apply agnocast_wrapper::Node
- fix to use ALLOCATE
- fix Cmake
- fix cpplint
* disable test when agnocast enabled ---------
-
refactor(autoware_twist2accel): arrange class interface (#1186)
* refactor(autoware_twist2accel): encapsulate dt and previous twist in AccelEstimator AccelEstimator::estimate() now takes only the current twist sample and owns the per-call state that previously lived in the node: it holds the previous twist, derives dt from successive header stamps, and returns a ready-to-publish AccelWithCovarianceStamped with the header copied from the input. Add TwistWithCovarianceStamped and Odometry overloads that normalize to a TwistStamped and delegate, so the node callbacks can pass the raw message directly and the estimate_accel helper is no longer needed.
* style(autoware_twist2accel): remove redundant comments ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests (#1111)
* refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests Extract the ROS-free acceleration math (dt-clamped finite difference plus 6-channel LowpassFilter1d smoothing) out of Twist2Accel::estimate_accel into a pure, injectable AccelEstimator class, mirroring the sibling autoware_stop_filter::StopFilter pattern. estimate_accel becomes a thin wrapper that computes dt from the ROS clock, calls the estimator, fills the message, and publishes. This makes the previously untestable estimation logic exercisable without spinning a ROS node and adds gtest coverage for the no-smoothing-on-first-sample, finite-difference, low-pass smoothing, dt-clamp, channel-independence, and covariance-index branches. Behavior-preserving: the dt clamp (>= 1e-3), per-component LPF order, and the first-message zero/empty accel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_localization |
Launch files
- launch/twist2accel.launch.xml
-
- param_file [default: $(find-pkg-share autoware_twist2accel)/config/twist2accel.param.yaml]
- in_odom [default: in_odom]
- in_twist [default: in_twist]
- out_accel [default: out_accel]
Messages
Services
Plugins
Recent questions tagged autoware_twist2accel at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Koji Minoda
autoware_twist2accel
Purpose
This package is responsible for estimating acceleration using the output of ekf_localizer. It uses lowpass filter to mitigate the noise.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/odom |
nav_msgs::msg::Odometry |
localization odometry |
input/twist |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist |
Output
| Name | Type | Description |
|---|---|---|
output/accel |
geometry_msgs::msg::AccelWithCovarianceStamped |
estimated acceleration |
Parameters
{{ json_to_markdown(“localization/autoware_twist2accel/schema/twist2accel.schema.json”) }}
Future work
Future work includes integrating acceleration into the EKF state.
Changelog for package autoware_twist2accel
1.1.0 (2025-05-01)
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(localization): add node designs for the pose/twist estimation nodes (#1409)
* feat(localization): add node designs for the pose/twist estimation nodes Declare NdtScanMatcher, EkfLocalizer, GyroOdometer, StopFilter and Twist2Accel node designs, with remap_target set to each node's hardcoded topic and service names, and extend PoseInitializer with the map, GNSS, stop-check inputs and the align/trigger/partial-map-load clients that pose_initializer.launch.xml remaps. These let a system designer module compose the localization stack directly from nodes.
* feat(localization): describe node designs and bump to format 0.4.0 ---------
-
refactor(autoware_twist2accel): shrink characterization test (#1256)
- refactor(autoware_twist2accel): simplify publishing procedure
* refactor(autoware_twist2accel): shrink characterization test to simple integration test The estimation math (finite differencing, low-pass filtering, dt clamping, covariance, header/pose handling) is already covered by test_accel_estimator.cpp unit tests. Reduce the node-level test to just the Node's own routing logic: which input topic drives output/accel publishing for a given use_odom value. ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
fix(localization): fix test to use [get_node_base_interface]{.title-ref} for [agnocast_wrapper::Node]{.title-ref} (#1209) fix test for agnocast_wrapper::Node
-
Contributors: Koichi Imai, Taekjin LEE, Takahisa Ishikawa, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(twist2accel): apply [agnocast_wrapper::Node]{.title-ref} to [twist2accel]{.title-ref} (#1189)
- apply agnocast_wrapper::Node
- fix to use ALLOCATE
- fix Cmake
- fix cpplint
* disable test when agnocast enabled ---------
-
refactor(autoware_twist2accel): arrange class interface (#1186)
* refactor(autoware_twist2accel): encapsulate dt and previous twist in AccelEstimator AccelEstimator::estimate() now takes only the current twist sample and owns the per-call state that previously lived in the node: it holds the previous twist, derives dt from successive header stamps, and returns a ready-to-publish AccelWithCovarianceStamped with the header copied from the input. Add TwistWithCovarianceStamped and Odometry overloads that normalize to a TwistStamped and delegate, so the node callbacks can pass the raw message directly and the estimate_accel helper is no longer needed.
* style(autoware_twist2accel): remove redundant comments ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests (#1111)
* refactor(autoware_twist2accel): extract pure AccelEstimator and add unit tests Extract the ROS-free acceleration math (dt-clamped finite difference plus 6-channel LowpassFilter1d smoothing) out of Twist2Accel::estimate_accel into a pure, injectable AccelEstimator class, mirroring the sibling autoware_stop_filter::StopFilter pattern. estimate_accel becomes a thin wrapper that computes dt from the ROS clock, calls the estimator, fills the message, and publishes. This makes the previously untestable estimation logic exercisable without spinning a ROS node and adds gtest coverage for the no-smoothing-on-first-sample, finite-difference, low-pass smoothing, dt-clamp, channel-independence, and covariance-index branches. Behavior-preserving: the dt clamp (>= 1e-3), per-component LPF order, and the first-message zero/empty accel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_localization |
Launch files
- launch/twist2accel.launch.xml
-
- param_file [default: $(find-pkg-share autoware_twist2accel)/config/twist2accel.param.yaml]
- in_odom [default: in_odom]
- in_twist [default: in_twist]
- out_accel [default: out_accel]