Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masahiro Sakamoto
- Yamato Ando
- NGUYEN Viet Anh
- Taiki Yamada
Authors
autoware_vehicle_velocity_converter
Purpose
This package converts autoware_vehicle_msgs::msg::VehicleReport message to geometry_msgs::msg::TwistWithCovarianceStamped for gyro odometer node.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
velocity_status |
autoware_vehicle_msgs::msg::VehicleReport |
vehicle velocity |
Output
| Name | Type | Description |
|---|---|---|
twist_with_covariance |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist with covariance converted from VehicleReport |
Parameters
| Name | Type | Description |
|---|---|---|
speed_scale_factor |
double | speed scale factor (ideal value is 1.0) |
frame_id |
string | frame id for output message |
velocity_stddev_xx |
double | standard deviation for vx |
angular_velocity_stddev_zz |
double | standard deviation for yaw rate |
Changelog for package autoware_vehicle_velocity_converter
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(vehicle_velocity_converter): remove unused frame_id parameter and warning log (#1201) refactor(vehicle_velocity_converter): remove unused frame_id parameter and warning log Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(vehicle_velocity_converter): extract node from core logic (#1192)
* refactor(vehicle_velocity_converter): extract node into vehicle_velocity_converter_node Split the ROS node out of the core conversion logic, mirroring the autoware_stop_filter layout:
- vehicle_velocity_converter.{hpp,cpp}: core convert() logic only, no longer depends on rclcpp::Node
- vehicle_velocity_converter_node.{hpp,cpp}: new VehicleVelocityConverterNode class and component registration
- split tests into test_vehicle_velocity_converter (pure logic) and test_vehicle_velocity_converter_node (pub/sub integration)
- update CMakeLists.txt (separate _ros library, isolated gtest) and package.xml (ament_cmake_ros test dependency)
* refactor(vehicle_velocity_converter): make convert a member of VehicleVelocityConverter Turn the free convert() function into a VehicleVelocityConverter class that holds the frame-invariant settings (speed_scale_factor, stddev_vx, stddev_wz) supplied at construction, mirroring the StopFilter/StopFilterNode layout. The node now owns a single converter_ member instead of three loose doubles, and the callback becomes converter_.convert(*msg). Conversion behavior is unchanged.
* test(vehicle_velocity_converter): restructure node test with a fixture into AAA shape Move the ROS context, executor thread and test-side pub/sub wiring into a VehicleVelocityConverterNodeTest fixture (SetUp/TearDown + start_converter_node/publish_and_wait helpers) so the test body reads as plain Arrange/Act/Assert. Coverage is unchanged.
* test(vehicle_velocity_converter): compare float-derived twist fields with EXPECT_FLOAT_EQ The VelocityReport velocity fields are float while the Twist fields are double, so the converted values carry float rounding. Comparing them with EXPECT_FLOAT_EQ removes the static_cast<double>(...) on the expected literals while keeping the assertions correct. Covariance entries stay EXPECT_DOUBLE_EQ as they are pure double.
* test(vehicle_velocity_converter): drop redundant float suffixes and align node test helper EXPECT_FLOAT_EQ narrows both operands to float, so the F suffix on the expected literals is unnecessary. Also make the node test's make_velocity_report take double and cast internally, matching make_report in the logic test, so call sites use plain double literals.
- style(vehicle_velocity_converter): clarify AAA pattern
* test(vehicle_velocity_converter): poll for DDS discovery instead of fixed sleep ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
refactor(autoware_vehicle_velocity_converter): extract pure convert() and use XYZRPY_COV_IDX (#1151) Extract the VelocityReport-to-TwistWithCovarianceStamped conversion out of the ROS subscription callback into a pure, namespace-level free function convert(msg, speed_scale_factor, stddev_vx, stddev_wz); the callback now just calls it and publishes. This adds a deterministic, ROS-free seam for unit testing the conversion math. Replace the hand-written row-major covariance indices ([i + j * 6]) with the named autoware_utils_geometry::xyzrpy_covariance_index::XYZRPY_COV_IDX enum, matching the sibling autoware_gyro_odometer usage and removing the most error-prone magic in the file. Rewrite the tests as deterministic synchronous convert() calls that assert the full 36-element covariance (diagonal values and all off-diagonal entries zero), the zeroed unused twist fields, verbatim header copy, and scale-factor/sign edge cases, keeping one thin node-instantiation smoke test for the ROS wiring. This removes the executor thread, 200ms setup sleep, and 10ms poll loop. Behavior-preserving: the published message is byte-for-byte identical to before (the covariance enum indices map to the same array positions). Refs: autowarefoundation/autoware_core#1096
-
Contributors: Takahisa Ishikawa, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_sensing |
Launch files
- launch/vehicle_velocity_converter.launch.xml
-
- input_vehicle_velocity_topic [default: velocity_status]
- output_twist_with_covariance [default: twist_with_covariance]
- config_file [default: $(find-pkg-share autoware_vehicle_velocity_converter)/config/vehicle_velocity_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_vehicle_velocity_converter at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masahiro Sakamoto
- Yamato Ando
- NGUYEN Viet Anh
- Taiki Yamada
Authors
autoware_vehicle_velocity_converter
Purpose
This package converts autoware_vehicle_msgs::msg::VehicleReport message to geometry_msgs::msg::TwistWithCovarianceStamped for gyro odometer node.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
velocity_status |
autoware_vehicle_msgs::msg::VehicleReport |
vehicle velocity |
Output
| Name | Type | Description |
|---|---|---|
twist_with_covariance |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist with covariance converted from VehicleReport |
Parameters
| Name | Type | Description |
|---|---|---|
speed_scale_factor |
double | speed scale factor (ideal value is 1.0) |
frame_id |
string | frame id for output message |
velocity_stddev_xx |
double | standard deviation for vx |
angular_velocity_stddev_zz |
double | standard deviation for yaw rate |
Changelog for package autoware_vehicle_velocity_converter
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(vehicle_velocity_converter): remove unused frame_id parameter and warning log (#1201) refactor(vehicle_velocity_converter): remove unused frame_id parameter and warning log Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(vehicle_velocity_converter): extract node from core logic (#1192)
* refactor(vehicle_velocity_converter): extract node into vehicle_velocity_converter_node Split the ROS node out of the core conversion logic, mirroring the autoware_stop_filter layout:
- vehicle_velocity_converter.{hpp,cpp}: core convert() logic only, no longer depends on rclcpp::Node
- vehicle_velocity_converter_node.{hpp,cpp}: new VehicleVelocityConverterNode class and component registration
- split tests into test_vehicle_velocity_converter (pure logic) and test_vehicle_velocity_converter_node (pub/sub integration)
- update CMakeLists.txt (separate _ros library, isolated gtest) and package.xml (ament_cmake_ros test dependency)
* refactor(vehicle_velocity_converter): make convert a member of VehicleVelocityConverter Turn the free convert() function into a VehicleVelocityConverter class that holds the frame-invariant settings (speed_scale_factor, stddev_vx, stddev_wz) supplied at construction, mirroring the StopFilter/StopFilterNode layout. The node now owns a single converter_ member instead of three loose doubles, and the callback becomes converter_.convert(*msg). Conversion behavior is unchanged.
* test(vehicle_velocity_converter): restructure node test with a fixture into AAA shape Move the ROS context, executor thread and test-side pub/sub wiring into a VehicleVelocityConverterNodeTest fixture (SetUp/TearDown + start_converter_node/publish_and_wait helpers) so the test body reads as plain Arrange/Act/Assert. Coverage is unchanged.
* test(vehicle_velocity_converter): compare float-derived twist fields with EXPECT_FLOAT_EQ The VelocityReport velocity fields are float while the Twist fields are double, so the converted values carry float rounding. Comparing them with EXPECT_FLOAT_EQ removes the static_cast<double>(...) on the expected literals while keeping the assertions correct. Covariance entries stay EXPECT_DOUBLE_EQ as they are pure double.
* test(vehicle_velocity_converter): drop redundant float suffixes and align node test helper EXPECT_FLOAT_EQ narrows both operands to float, so the F suffix on the expected literals is unnecessary. Also make the node test's make_velocity_report take double and cast internally, matching make_report in the logic test, so call sites use plain double literals.
- style(vehicle_velocity_converter): clarify AAA pattern
* test(vehicle_velocity_converter): poll for DDS discovery instead of fixed sleep ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
refactor(autoware_vehicle_velocity_converter): extract pure convert() and use XYZRPY_COV_IDX (#1151) Extract the VelocityReport-to-TwistWithCovarianceStamped conversion out of the ROS subscription callback into a pure, namespace-level free function convert(msg, speed_scale_factor, stddev_vx, stddev_wz); the callback now just calls it and publishes. This adds a deterministic, ROS-free seam for unit testing the conversion math. Replace the hand-written row-major covariance indices ([i + j * 6]) with the named autoware_utils_geometry::xyzrpy_covariance_index::XYZRPY_COV_IDX enum, matching the sibling autoware_gyro_odometer usage and removing the most error-prone magic in the file. Rewrite the tests as deterministic synchronous convert() calls that assert the full 36-element covariance (diagonal values and all off-diagonal entries zero), the zeroed unused twist fields, verbatim header copy, and scale-factor/sign edge cases, keeping one thin node-instantiation smoke test for the ROS wiring. This removes the executor thread, 200ms setup sleep, and 10ms poll loop. Behavior-preserving: the published message is byte-for-byte identical to before (the covariance enum indices map to the same array positions). Refs: autowarefoundation/autoware_core#1096
-
Contributors: Takahisa Ishikawa, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_sensing |
Launch files
- launch/vehicle_velocity_converter.launch.xml
-
- input_vehicle_velocity_topic [default: velocity_status]
- output_twist_with_covariance [default: twist_with_covariance]
- config_file [default: $(find-pkg-share autoware_vehicle_velocity_converter)/config/vehicle_velocity_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_vehicle_velocity_converter at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masahiro Sakamoto
- Yamato Ando
- NGUYEN Viet Anh
- Taiki Yamada
Authors
autoware_vehicle_velocity_converter
Purpose
This package converts autoware_vehicle_msgs::msg::VehicleReport message to geometry_msgs::msg::TwistWithCovarianceStamped for gyro odometer node.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
velocity_status |
autoware_vehicle_msgs::msg::VehicleReport |
vehicle velocity |
Output
| Name | Type | Description |
|---|---|---|
twist_with_covariance |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist with covariance converted from VehicleReport |
Parameters
| Name | Type | Description |
|---|---|---|
speed_scale_factor |
double | speed scale factor (ideal value is 1.0) |
frame_id |
string | frame id for output message |
velocity_stddev_xx |
double | standard deviation for vx |
angular_velocity_stddev_zz |
double | standard deviation for yaw rate |
Changelog for package autoware_vehicle_velocity_converter
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(vehicle_velocity_converter): remove unused frame_id parameter and warning log (#1201) refactor(vehicle_velocity_converter): remove unused frame_id parameter and warning log Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(vehicle_velocity_converter): extract node from core logic (#1192)
* refactor(vehicle_velocity_converter): extract node into vehicle_velocity_converter_node Split the ROS node out of the core conversion logic, mirroring the autoware_stop_filter layout:
- vehicle_velocity_converter.{hpp,cpp}: core convert() logic only, no longer depends on rclcpp::Node
- vehicle_velocity_converter_node.{hpp,cpp}: new VehicleVelocityConverterNode class and component registration
- split tests into test_vehicle_velocity_converter (pure logic) and test_vehicle_velocity_converter_node (pub/sub integration)
- update CMakeLists.txt (separate _ros library, isolated gtest) and package.xml (ament_cmake_ros test dependency)
* refactor(vehicle_velocity_converter): make convert a member of VehicleVelocityConverter Turn the free convert() function into a VehicleVelocityConverter class that holds the frame-invariant settings (speed_scale_factor, stddev_vx, stddev_wz) supplied at construction, mirroring the StopFilter/StopFilterNode layout. The node now owns a single converter_ member instead of three loose doubles, and the callback becomes converter_.convert(*msg). Conversion behavior is unchanged.
* test(vehicle_velocity_converter): restructure node test with a fixture into AAA shape Move the ROS context, executor thread and test-side pub/sub wiring into a VehicleVelocityConverterNodeTest fixture (SetUp/TearDown + start_converter_node/publish_and_wait helpers) so the test body reads as plain Arrange/Act/Assert. Coverage is unchanged.
* test(vehicle_velocity_converter): compare float-derived twist fields with EXPECT_FLOAT_EQ The VelocityReport velocity fields are float while the Twist fields are double, so the converted values carry float rounding. Comparing them with EXPECT_FLOAT_EQ removes the static_cast<double>(...) on the expected literals while keeping the assertions correct. Covariance entries stay EXPECT_DOUBLE_EQ as they are pure double.
* test(vehicle_velocity_converter): drop redundant float suffixes and align node test helper EXPECT_FLOAT_EQ narrows both operands to float, so the F suffix on the expected literals is unnecessary. Also make the node test's make_velocity_report take double and cast internally, matching make_report in the logic test, so call sites use plain double literals.
- style(vehicle_velocity_converter): clarify AAA pattern
* test(vehicle_velocity_converter): poll for DDS discovery instead of fixed sleep ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
refactor(autoware_vehicle_velocity_converter): extract pure convert() and use XYZRPY_COV_IDX (#1151) Extract the VelocityReport-to-TwistWithCovarianceStamped conversion out of the ROS subscription callback into a pure, namespace-level free function convert(msg, speed_scale_factor, stddev_vx, stddev_wz); the callback now just calls it and publishes. This adds a deterministic, ROS-free seam for unit testing the conversion math. Replace the hand-written row-major covariance indices ([i + j * 6]) with the named autoware_utils_geometry::xyzrpy_covariance_index::XYZRPY_COV_IDX enum, matching the sibling autoware_gyro_odometer usage and removing the most error-prone magic in the file. Rewrite the tests as deterministic synchronous convert() calls that assert the full 36-element covariance (diagonal values and all off-diagonal entries zero), the zeroed unused twist fields, verbatim header copy, and scale-factor/sign edge cases, keeping one thin node-instantiation smoke test for the ROS wiring. This removes the executor thread, 200ms setup sleep, and 10ms poll loop. Behavior-preserving: the published message is byte-for-byte identical to before (the covariance enum indices map to the same array positions). Refs: autowarefoundation/autoware_core#1096
-
Contributors: Takahisa Ishikawa, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_sensing |
Launch files
- launch/vehicle_velocity_converter.launch.xml
-
- input_vehicle_velocity_topic [default: velocity_status]
- output_twist_with_covariance [default: twist_with_covariance]
- config_file [default: $(find-pkg-share autoware_vehicle_velocity_converter)/config/vehicle_velocity_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_vehicle_velocity_converter at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masahiro Sakamoto
- Yamato Ando
- NGUYEN Viet Anh
- Taiki Yamada
Authors
autoware_vehicle_velocity_converter
Purpose
This package converts autoware_vehicle_msgs::msg::VehicleReport message to geometry_msgs::msg::TwistWithCovarianceStamped for gyro odometer node.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
velocity_status |
autoware_vehicle_msgs::msg::VehicleReport |
vehicle velocity |
Output
| Name | Type | Description |
|---|---|---|
twist_with_covariance |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist with covariance converted from VehicleReport |
Parameters
| Name | Type | Description |
|---|---|---|
speed_scale_factor |
double | speed scale factor (ideal value is 1.0) |
frame_id |
string | frame id for output message |
velocity_stddev_xx |
double | standard deviation for vx |
angular_velocity_stddev_zz |
double | standard deviation for yaw rate |
Changelog for package autoware_vehicle_velocity_converter
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(vehicle_velocity_converter): remove unused frame_id parameter and warning log (#1201) refactor(vehicle_velocity_converter): remove unused frame_id parameter and warning log Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(vehicle_velocity_converter): extract node from core logic (#1192)
* refactor(vehicle_velocity_converter): extract node into vehicle_velocity_converter_node Split the ROS node out of the core conversion logic, mirroring the autoware_stop_filter layout:
- vehicle_velocity_converter.{hpp,cpp}: core convert() logic only, no longer depends on rclcpp::Node
- vehicle_velocity_converter_node.{hpp,cpp}: new VehicleVelocityConverterNode class and component registration
- split tests into test_vehicle_velocity_converter (pure logic) and test_vehicle_velocity_converter_node (pub/sub integration)
- update CMakeLists.txt (separate _ros library, isolated gtest) and package.xml (ament_cmake_ros test dependency)
* refactor(vehicle_velocity_converter): make convert a member of VehicleVelocityConverter Turn the free convert() function into a VehicleVelocityConverter class that holds the frame-invariant settings (speed_scale_factor, stddev_vx, stddev_wz) supplied at construction, mirroring the StopFilter/StopFilterNode layout. The node now owns a single converter_ member instead of three loose doubles, and the callback becomes converter_.convert(*msg). Conversion behavior is unchanged.
* test(vehicle_velocity_converter): restructure node test with a fixture into AAA shape Move the ROS context, executor thread and test-side pub/sub wiring into a VehicleVelocityConverterNodeTest fixture (SetUp/TearDown + start_converter_node/publish_and_wait helpers) so the test body reads as plain Arrange/Act/Assert. Coverage is unchanged.
* test(vehicle_velocity_converter): compare float-derived twist fields with EXPECT_FLOAT_EQ The VelocityReport velocity fields are float while the Twist fields are double, so the converted values carry float rounding. Comparing them with EXPECT_FLOAT_EQ removes the static_cast<double>(...) on the expected literals while keeping the assertions correct. Covariance entries stay EXPECT_DOUBLE_EQ as they are pure double.
* test(vehicle_velocity_converter): drop redundant float suffixes and align node test helper EXPECT_FLOAT_EQ narrows both operands to float, so the F suffix on the expected literals is unnecessary. Also make the node test's make_velocity_report take double and cast internally, matching make_report in the logic test, so call sites use plain double literals.
- style(vehicle_velocity_converter): clarify AAA pattern
* test(vehicle_velocity_converter): poll for DDS discovery instead of fixed sleep ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
refactor(autoware_vehicle_velocity_converter): extract pure convert() and use XYZRPY_COV_IDX (#1151) Extract the VelocityReport-to-TwistWithCovarianceStamped conversion out of the ROS subscription callback into a pure, namespace-level free function convert(msg, speed_scale_factor, stddev_vx, stddev_wz); the callback now just calls it and publishes. This adds a deterministic, ROS-free seam for unit testing the conversion math. Replace the hand-written row-major covariance indices ([i + j * 6]) with the named autoware_utils_geometry::xyzrpy_covariance_index::XYZRPY_COV_IDX enum, matching the sibling autoware_gyro_odometer usage and removing the most error-prone magic in the file. Rewrite the tests as deterministic synchronous convert() calls that assert the full 36-element covariance (diagonal values and all off-diagonal entries zero), the zeroed unused twist fields, verbatim header copy, and scale-factor/sign edge cases, keeping one thin node-instantiation smoke test for the ROS wiring. This removes the executor thread, 200ms setup sleep, and 10ms poll loop. Behavior-preserving: the published message is byte-for-byte identical to before (the covariance enum indices map to the same array positions). Refs: autowarefoundation/autoware_core#1096
-
Contributors: Takahisa Ishikawa, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_sensing |
Launch files
- launch/vehicle_velocity_converter.launch.xml
-
- input_vehicle_velocity_topic [default: velocity_status]
- output_twist_with_covariance [default: twist_with_covariance]
- config_file [default: $(find-pkg-share autoware_vehicle_velocity_converter)/config/vehicle_velocity_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_vehicle_velocity_converter at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masahiro Sakamoto
- Yamato Ando
- NGUYEN Viet Anh
- Taiki Yamada
Authors
autoware_vehicle_velocity_converter
Purpose
This package converts autoware_vehicle_msgs::msg::VehicleReport message to geometry_msgs::msg::TwistWithCovarianceStamped for gyro odometer node.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
velocity_status |
autoware_vehicle_msgs::msg::VehicleReport |
vehicle velocity |
Output
| Name | Type | Description |
|---|---|---|
twist_with_covariance |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist with covariance converted from VehicleReport |
Parameters
| Name | Type | Description |
|---|---|---|
speed_scale_factor |
double | speed scale factor (ideal value is 1.0) |
frame_id |
string | frame id for output message |
velocity_stddev_xx |
double | standard deviation for vx |
angular_velocity_stddev_zz |
double | standard deviation for yaw rate |
Changelog for package autoware_vehicle_velocity_converter
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(vehicle_velocity_converter): remove unused frame_id parameter and warning log (#1201) refactor(vehicle_velocity_converter): remove unused frame_id parameter and warning log Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(vehicle_velocity_converter): extract node from core logic (#1192)
* refactor(vehicle_velocity_converter): extract node into vehicle_velocity_converter_node Split the ROS node out of the core conversion logic, mirroring the autoware_stop_filter layout:
- vehicle_velocity_converter.{hpp,cpp}: core convert() logic only, no longer depends on rclcpp::Node
- vehicle_velocity_converter_node.{hpp,cpp}: new VehicleVelocityConverterNode class and component registration
- split tests into test_vehicle_velocity_converter (pure logic) and test_vehicle_velocity_converter_node (pub/sub integration)
- update CMakeLists.txt (separate _ros library, isolated gtest) and package.xml (ament_cmake_ros test dependency)
* refactor(vehicle_velocity_converter): make convert a member of VehicleVelocityConverter Turn the free convert() function into a VehicleVelocityConverter class that holds the frame-invariant settings (speed_scale_factor, stddev_vx, stddev_wz) supplied at construction, mirroring the StopFilter/StopFilterNode layout. The node now owns a single converter_ member instead of three loose doubles, and the callback becomes converter_.convert(*msg). Conversion behavior is unchanged.
* test(vehicle_velocity_converter): restructure node test with a fixture into AAA shape Move the ROS context, executor thread and test-side pub/sub wiring into a VehicleVelocityConverterNodeTest fixture (SetUp/TearDown + start_converter_node/publish_and_wait helpers) so the test body reads as plain Arrange/Act/Assert. Coverage is unchanged.
* test(vehicle_velocity_converter): compare float-derived twist fields with EXPECT_FLOAT_EQ The VelocityReport velocity fields are float while the Twist fields are double, so the converted values carry float rounding. Comparing them with EXPECT_FLOAT_EQ removes the static_cast<double>(...) on the expected literals while keeping the assertions correct. Covariance entries stay EXPECT_DOUBLE_EQ as they are pure double.
* test(vehicle_velocity_converter): drop redundant float suffixes and align node test helper EXPECT_FLOAT_EQ narrows both operands to float, so the F suffix on the expected literals is unnecessary. Also make the node test's make_velocity_report take double and cast internally, matching make_report in the logic test, so call sites use plain double literals.
- style(vehicle_velocity_converter): clarify AAA pattern
* test(vehicle_velocity_converter): poll for DDS discovery instead of fixed sleep ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
refactor(autoware_vehicle_velocity_converter): extract pure convert() and use XYZRPY_COV_IDX (#1151) Extract the VelocityReport-to-TwistWithCovarianceStamped conversion out of the ROS subscription callback into a pure, namespace-level free function convert(msg, speed_scale_factor, stddev_vx, stddev_wz); the callback now just calls it and publishes. This adds a deterministic, ROS-free seam for unit testing the conversion math. Replace the hand-written row-major covariance indices ([i + j * 6]) with the named autoware_utils_geometry::xyzrpy_covariance_index::XYZRPY_COV_IDX enum, matching the sibling autoware_gyro_odometer usage and removing the most error-prone magic in the file. Rewrite the tests as deterministic synchronous convert() calls that assert the full 36-element covariance (diagonal values and all off-diagonal entries zero), the zeroed unused twist fields, verbatim header copy, and scale-factor/sign edge cases, keeping one thin node-instantiation smoke test for the ROS wiring. This removes the executor thread, 200ms setup sleep, and 10ms poll loop. Behavior-preserving: the published message is byte-for-byte identical to before (the covariance enum indices map to the same array positions). Refs: autowarefoundation/autoware_core#1096
-
Contributors: Takahisa Ishikawa, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_sensing |
Launch files
- launch/vehicle_velocity_converter.launch.xml
-
- input_vehicle_velocity_topic [default: velocity_status]
- output_twist_with_covariance [default: twist_with_covariance]
- config_file [default: $(find-pkg-share autoware_vehicle_velocity_converter)/config/vehicle_velocity_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_vehicle_velocity_converter at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masahiro Sakamoto
- Yamato Ando
- NGUYEN Viet Anh
- Taiki Yamada
Authors
autoware_vehicle_velocity_converter
Purpose
This package converts autoware_vehicle_msgs::msg::VehicleReport message to geometry_msgs::msg::TwistWithCovarianceStamped for gyro odometer node.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
velocity_status |
autoware_vehicle_msgs::msg::VehicleReport |
vehicle velocity |
Output
| Name | Type | Description |
|---|---|---|
twist_with_covariance |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist with covariance converted from VehicleReport |
Parameters
| Name | Type | Description |
|---|---|---|
speed_scale_factor |
double | speed scale factor (ideal value is 1.0) |
frame_id |
string | frame id for output message |
velocity_stddev_xx |
double | standard deviation for vx |
angular_velocity_stddev_zz |
double | standard deviation for yaw rate |
Changelog for package autoware_vehicle_velocity_converter
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(vehicle_velocity_converter): remove unused frame_id parameter and warning log (#1201) refactor(vehicle_velocity_converter): remove unused frame_id parameter and warning log Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(vehicle_velocity_converter): extract node from core logic (#1192)
* refactor(vehicle_velocity_converter): extract node into vehicle_velocity_converter_node Split the ROS node out of the core conversion logic, mirroring the autoware_stop_filter layout:
- vehicle_velocity_converter.{hpp,cpp}: core convert() logic only, no longer depends on rclcpp::Node
- vehicle_velocity_converter_node.{hpp,cpp}: new VehicleVelocityConverterNode class and component registration
- split tests into test_vehicle_velocity_converter (pure logic) and test_vehicle_velocity_converter_node (pub/sub integration)
- update CMakeLists.txt (separate _ros library, isolated gtest) and package.xml (ament_cmake_ros test dependency)
* refactor(vehicle_velocity_converter): make convert a member of VehicleVelocityConverter Turn the free convert() function into a VehicleVelocityConverter class that holds the frame-invariant settings (speed_scale_factor, stddev_vx, stddev_wz) supplied at construction, mirroring the StopFilter/StopFilterNode layout. The node now owns a single converter_ member instead of three loose doubles, and the callback becomes converter_.convert(*msg). Conversion behavior is unchanged.
* test(vehicle_velocity_converter): restructure node test with a fixture into AAA shape Move the ROS context, executor thread and test-side pub/sub wiring into a VehicleVelocityConverterNodeTest fixture (SetUp/TearDown + start_converter_node/publish_and_wait helpers) so the test body reads as plain Arrange/Act/Assert. Coverage is unchanged.
* test(vehicle_velocity_converter): compare float-derived twist fields with EXPECT_FLOAT_EQ The VelocityReport velocity fields are float while the Twist fields are double, so the converted values carry float rounding. Comparing them with EXPECT_FLOAT_EQ removes the static_cast<double>(...) on the expected literals while keeping the assertions correct. Covariance entries stay EXPECT_DOUBLE_EQ as they are pure double.
* test(vehicle_velocity_converter): drop redundant float suffixes and align node test helper EXPECT_FLOAT_EQ narrows both operands to float, so the F suffix on the expected literals is unnecessary. Also make the node test's make_velocity_report take double and cast internally, matching make_report in the logic test, so call sites use plain double literals.
- style(vehicle_velocity_converter): clarify AAA pattern
* test(vehicle_velocity_converter): poll for DDS discovery instead of fixed sleep ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
refactor(autoware_vehicle_velocity_converter): extract pure convert() and use XYZRPY_COV_IDX (#1151) Extract the VelocityReport-to-TwistWithCovarianceStamped conversion out of the ROS subscription callback into a pure, namespace-level free function convert(msg, speed_scale_factor, stddev_vx, stddev_wz); the callback now just calls it and publishes. This adds a deterministic, ROS-free seam for unit testing the conversion math. Replace the hand-written row-major covariance indices ([i + j * 6]) with the named autoware_utils_geometry::xyzrpy_covariance_index::XYZRPY_COV_IDX enum, matching the sibling autoware_gyro_odometer usage and removing the most error-prone magic in the file. Rewrite the tests as deterministic synchronous convert() calls that assert the full 36-element covariance (diagonal values and all off-diagonal entries zero), the zeroed unused twist fields, verbatim header copy, and scale-factor/sign edge cases, keeping one thin node-instantiation smoke test for the ROS wiring. This removes the executor thread, 200ms setup sleep, and 10ms poll loop. Behavior-preserving: the published message is byte-for-byte identical to before (the covariance enum indices map to the same array positions). Refs: autowarefoundation/autoware_core#1096
-
Contributors: Takahisa Ishikawa, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_sensing |
Launch files
- launch/vehicle_velocity_converter.launch.xml
-
- input_vehicle_velocity_topic [default: velocity_status]
- output_twist_with_covariance [default: twist_with_covariance]
- config_file [default: $(find-pkg-share autoware_vehicle_velocity_converter)/config/vehicle_velocity_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_vehicle_velocity_converter at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masahiro Sakamoto
- Yamato Ando
- NGUYEN Viet Anh
- Taiki Yamada
Authors
autoware_vehicle_velocity_converter
Purpose
This package converts autoware_vehicle_msgs::msg::VehicleReport message to geometry_msgs::msg::TwistWithCovarianceStamped for gyro odometer node.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
velocity_status |
autoware_vehicle_msgs::msg::VehicleReport |
vehicle velocity |
Output
| Name | Type | Description |
|---|---|---|
twist_with_covariance |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist with covariance converted from VehicleReport |
Parameters
| Name | Type | Description |
|---|---|---|
speed_scale_factor |
double | speed scale factor (ideal value is 1.0) |
frame_id |
string | frame id for output message |
velocity_stddev_xx |
double | standard deviation for vx |
angular_velocity_stddev_zz |
double | standard deviation for yaw rate |
Changelog for package autoware_vehicle_velocity_converter
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(vehicle_velocity_converter): remove unused frame_id parameter and warning log (#1201) refactor(vehicle_velocity_converter): remove unused frame_id parameter and warning log Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(vehicle_velocity_converter): extract node from core logic (#1192)
* refactor(vehicle_velocity_converter): extract node into vehicle_velocity_converter_node Split the ROS node out of the core conversion logic, mirroring the autoware_stop_filter layout:
- vehicle_velocity_converter.{hpp,cpp}: core convert() logic only, no longer depends on rclcpp::Node
- vehicle_velocity_converter_node.{hpp,cpp}: new VehicleVelocityConverterNode class and component registration
- split tests into test_vehicle_velocity_converter (pure logic) and test_vehicle_velocity_converter_node (pub/sub integration)
- update CMakeLists.txt (separate _ros library, isolated gtest) and package.xml (ament_cmake_ros test dependency)
* refactor(vehicle_velocity_converter): make convert a member of VehicleVelocityConverter Turn the free convert() function into a VehicleVelocityConverter class that holds the frame-invariant settings (speed_scale_factor, stddev_vx, stddev_wz) supplied at construction, mirroring the StopFilter/StopFilterNode layout. The node now owns a single converter_ member instead of three loose doubles, and the callback becomes converter_.convert(*msg). Conversion behavior is unchanged.
* test(vehicle_velocity_converter): restructure node test with a fixture into AAA shape Move the ROS context, executor thread and test-side pub/sub wiring into a VehicleVelocityConverterNodeTest fixture (SetUp/TearDown + start_converter_node/publish_and_wait helpers) so the test body reads as plain Arrange/Act/Assert. Coverage is unchanged.
* test(vehicle_velocity_converter): compare float-derived twist fields with EXPECT_FLOAT_EQ The VelocityReport velocity fields are float while the Twist fields are double, so the converted values carry float rounding. Comparing them with EXPECT_FLOAT_EQ removes the static_cast<double>(...) on the expected literals while keeping the assertions correct. Covariance entries stay EXPECT_DOUBLE_EQ as they are pure double.
* test(vehicle_velocity_converter): drop redundant float suffixes and align node test helper EXPECT_FLOAT_EQ narrows both operands to float, so the F suffix on the expected literals is unnecessary. Also make the node test's make_velocity_report take double and cast internally, matching make_report in the logic test, so call sites use plain double literals.
- style(vehicle_velocity_converter): clarify AAA pattern
* test(vehicle_velocity_converter): poll for DDS discovery instead of fixed sleep ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
refactor(autoware_vehicle_velocity_converter): extract pure convert() and use XYZRPY_COV_IDX (#1151) Extract the VelocityReport-to-TwistWithCovarianceStamped conversion out of the ROS subscription callback into a pure, namespace-level free function convert(msg, speed_scale_factor, stddev_vx, stddev_wz); the callback now just calls it and publishes. This adds a deterministic, ROS-free seam for unit testing the conversion math. Replace the hand-written row-major covariance indices ([i + j * 6]) with the named autoware_utils_geometry::xyzrpy_covariance_index::XYZRPY_COV_IDX enum, matching the sibling autoware_gyro_odometer usage and removing the most error-prone magic in the file. Rewrite the tests as deterministic synchronous convert() calls that assert the full 36-element covariance (diagonal values and all off-diagonal entries zero), the zeroed unused twist fields, verbatim header copy, and scale-factor/sign edge cases, keeping one thin node-instantiation smoke test for the ROS wiring. This removes the executor thread, 200ms setup sleep, and 10ms poll loop. Behavior-preserving: the published message is byte-for-byte identical to before (the covariance enum indices map to the same array positions). Refs: autowarefoundation/autoware_core#1096
-
Contributors: Takahisa Ishikawa, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_sensing |
Launch files
- launch/vehicle_velocity_converter.launch.xml
-
- input_vehicle_velocity_topic [default: velocity_status]
- output_twist_with_covariance [default: twist_with_covariance]
- config_file [default: $(find-pkg-share autoware_vehicle_velocity_converter)/config/vehicle_velocity_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_vehicle_velocity_converter at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masahiro Sakamoto
- Yamato Ando
- NGUYEN Viet Anh
- Taiki Yamada
Authors
autoware_vehicle_velocity_converter
Purpose
This package converts autoware_vehicle_msgs::msg::VehicleReport message to geometry_msgs::msg::TwistWithCovarianceStamped for gyro odometer node.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
velocity_status |
autoware_vehicle_msgs::msg::VehicleReport |
vehicle velocity |
Output
| Name | Type | Description |
|---|---|---|
twist_with_covariance |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist with covariance converted from VehicleReport |
Parameters
| Name | Type | Description |
|---|---|---|
speed_scale_factor |
double | speed scale factor (ideal value is 1.0) |
frame_id |
string | frame id for output message |
velocity_stddev_xx |
double | standard deviation for vx |
angular_velocity_stddev_zz |
double | standard deviation for yaw rate |
Changelog for package autoware_vehicle_velocity_converter
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(vehicle_velocity_converter): remove unused frame_id parameter and warning log (#1201) refactor(vehicle_velocity_converter): remove unused frame_id parameter and warning log Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(vehicle_velocity_converter): extract node from core logic (#1192)
* refactor(vehicle_velocity_converter): extract node into vehicle_velocity_converter_node Split the ROS node out of the core conversion logic, mirroring the autoware_stop_filter layout:
- vehicle_velocity_converter.{hpp,cpp}: core convert() logic only, no longer depends on rclcpp::Node
- vehicle_velocity_converter_node.{hpp,cpp}: new VehicleVelocityConverterNode class and component registration
- split tests into test_vehicle_velocity_converter (pure logic) and test_vehicle_velocity_converter_node (pub/sub integration)
- update CMakeLists.txt (separate _ros library, isolated gtest) and package.xml (ament_cmake_ros test dependency)
* refactor(vehicle_velocity_converter): make convert a member of VehicleVelocityConverter Turn the free convert() function into a VehicleVelocityConverter class that holds the frame-invariant settings (speed_scale_factor, stddev_vx, stddev_wz) supplied at construction, mirroring the StopFilter/StopFilterNode layout. The node now owns a single converter_ member instead of three loose doubles, and the callback becomes converter_.convert(*msg). Conversion behavior is unchanged.
* test(vehicle_velocity_converter): restructure node test with a fixture into AAA shape Move the ROS context, executor thread and test-side pub/sub wiring into a VehicleVelocityConverterNodeTest fixture (SetUp/TearDown + start_converter_node/publish_and_wait helpers) so the test body reads as plain Arrange/Act/Assert. Coverage is unchanged.
* test(vehicle_velocity_converter): compare float-derived twist fields with EXPECT_FLOAT_EQ The VelocityReport velocity fields are float while the Twist fields are double, so the converted values carry float rounding. Comparing them with EXPECT_FLOAT_EQ removes the static_cast<double>(...) on the expected literals while keeping the assertions correct. Covariance entries stay EXPECT_DOUBLE_EQ as they are pure double.
* test(vehicle_velocity_converter): drop redundant float suffixes and align node test helper EXPECT_FLOAT_EQ narrows both operands to float, so the F suffix on the expected literals is unnecessary. Also make the node test's make_velocity_report take double and cast internally, matching make_report in the logic test, so call sites use plain double literals.
- style(vehicle_velocity_converter): clarify AAA pattern
* test(vehicle_velocity_converter): poll for DDS discovery instead of fixed sleep ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
refactor(autoware_vehicle_velocity_converter): extract pure convert() and use XYZRPY_COV_IDX (#1151) Extract the VelocityReport-to-TwistWithCovarianceStamped conversion out of the ROS subscription callback into a pure, namespace-level free function convert(msg, speed_scale_factor, stddev_vx, stddev_wz); the callback now just calls it and publishes. This adds a deterministic, ROS-free seam for unit testing the conversion math. Replace the hand-written row-major covariance indices ([i + j * 6]) with the named autoware_utils_geometry::xyzrpy_covariance_index::XYZRPY_COV_IDX enum, matching the sibling autoware_gyro_odometer usage and removing the most error-prone magic in the file. Rewrite the tests as deterministic synchronous convert() calls that assert the full 36-element covariance (diagonal values and all off-diagonal entries zero), the zeroed unused twist fields, verbatim header copy, and scale-factor/sign edge cases, keeping one thin node-instantiation smoke test for the ROS wiring. This removes the executor thread, 200ms setup sleep, and 10ms poll loop. Behavior-preserving: the published message is byte-for-byte identical to before (the covariance enum indices map to the same array positions). Refs: autowarefoundation/autoware_core#1096
-
Contributors: Takahisa Ishikawa, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_sensing |
Launch files
- launch/vehicle_velocity_converter.launch.xml
-
- input_vehicle_velocity_topic [default: velocity_status]
- output_twist_with_covariance [default: twist_with_covariance]
- config_file [default: $(find-pkg-share autoware_vehicle_velocity_converter)/config/vehicle_velocity_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_vehicle_velocity_converter at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masahiro Sakamoto
- Yamato Ando
- NGUYEN Viet Anh
- Taiki Yamada
Authors
autoware_vehicle_velocity_converter
Purpose
This package converts autoware_vehicle_msgs::msg::VehicleReport message to geometry_msgs::msg::TwistWithCovarianceStamped for gyro odometer node.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
velocity_status |
autoware_vehicle_msgs::msg::VehicleReport |
vehicle velocity |
Output
| Name | Type | Description |
|---|---|---|
twist_with_covariance |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist with covariance converted from VehicleReport |
Parameters
| Name | Type | Description |
|---|---|---|
speed_scale_factor |
double | speed scale factor (ideal value is 1.0) |
frame_id |
string | frame id for output message |
velocity_stddev_xx |
double | standard deviation for vx |
angular_velocity_stddev_zz |
double | standard deviation for yaw rate |
Changelog for package autoware_vehicle_velocity_converter
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(vehicle_velocity_converter): remove unused frame_id parameter and warning log (#1201) refactor(vehicle_velocity_converter): remove unused frame_id parameter and warning log Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(vehicle_velocity_converter): extract node from core logic (#1192)
* refactor(vehicle_velocity_converter): extract node into vehicle_velocity_converter_node Split the ROS node out of the core conversion logic, mirroring the autoware_stop_filter layout:
- vehicle_velocity_converter.{hpp,cpp}: core convert() logic only, no longer depends on rclcpp::Node
- vehicle_velocity_converter_node.{hpp,cpp}: new VehicleVelocityConverterNode class and component registration
- split tests into test_vehicle_velocity_converter (pure logic) and test_vehicle_velocity_converter_node (pub/sub integration)
- update CMakeLists.txt (separate _ros library, isolated gtest) and package.xml (ament_cmake_ros test dependency)
* refactor(vehicle_velocity_converter): make convert a member of VehicleVelocityConverter Turn the free convert() function into a VehicleVelocityConverter class that holds the frame-invariant settings (speed_scale_factor, stddev_vx, stddev_wz) supplied at construction, mirroring the StopFilter/StopFilterNode layout. The node now owns a single converter_ member instead of three loose doubles, and the callback becomes converter_.convert(*msg). Conversion behavior is unchanged.
* test(vehicle_velocity_converter): restructure node test with a fixture into AAA shape Move the ROS context, executor thread and test-side pub/sub wiring into a VehicleVelocityConverterNodeTest fixture (SetUp/TearDown + start_converter_node/publish_and_wait helpers) so the test body reads as plain Arrange/Act/Assert. Coverage is unchanged.
* test(vehicle_velocity_converter): compare float-derived twist fields with EXPECT_FLOAT_EQ The VelocityReport velocity fields are float while the Twist fields are double, so the converted values carry float rounding. Comparing them with EXPECT_FLOAT_EQ removes the static_cast<double>(...) on the expected literals while keeping the assertions correct. Covariance entries stay EXPECT_DOUBLE_EQ as they are pure double.
* test(vehicle_velocity_converter): drop redundant float suffixes and align node test helper EXPECT_FLOAT_EQ narrows both operands to float, so the F suffix on the expected literals is unnecessary. Also make the node test's make_velocity_report take double and cast internally, matching make_report in the logic test, so call sites use plain double literals.
- style(vehicle_velocity_converter): clarify AAA pattern
* test(vehicle_velocity_converter): poll for DDS discovery instead of fixed sleep ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
refactor(autoware_vehicle_velocity_converter): extract pure convert() and use XYZRPY_COV_IDX (#1151) Extract the VelocityReport-to-TwistWithCovarianceStamped conversion out of the ROS subscription callback into a pure, namespace-level free function convert(msg, speed_scale_factor, stddev_vx, stddev_wz); the callback now just calls it and publishes. This adds a deterministic, ROS-free seam for unit testing the conversion math. Replace the hand-written row-major covariance indices ([i + j * 6]) with the named autoware_utils_geometry::xyzrpy_covariance_index::XYZRPY_COV_IDX enum, matching the sibling autoware_gyro_odometer usage and removing the most error-prone magic in the file. Rewrite the tests as deterministic synchronous convert() calls that assert the full 36-element covariance (diagonal values and all off-diagonal entries zero), the zeroed unused twist fields, verbatim header copy, and scale-factor/sign edge cases, keeping one thin node-instantiation smoke test for the ROS wiring. This removes the executor thread, 200ms setup sleep, and 10ms poll loop. Behavior-preserving: the published message is byte-for-byte identical to before (the covariance enum indices map to the same array positions). Refs: autowarefoundation/autoware_core#1096
-
Contributors: Takahisa Ishikawa, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_sensing |
Launch files
- launch/vehicle_velocity_converter.launch.xml
-
- input_vehicle_velocity_topic [default: velocity_status]
- output_twist_with_covariance [default: twist_with_covariance]
- config_file [default: $(find-pkg-share autoware_vehicle_velocity_converter)/config/vehicle_velocity_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_vehicle_velocity_converter at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masahiro Sakamoto
- Yamato Ando
- NGUYEN Viet Anh
- Taiki Yamada
Authors
autoware_vehicle_velocity_converter
Purpose
This package converts autoware_vehicle_msgs::msg::VehicleReport message to geometry_msgs::msg::TwistWithCovarianceStamped for gyro odometer node.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
velocity_status |
autoware_vehicle_msgs::msg::VehicleReport |
vehicle velocity |
Output
| Name | Type | Description |
|---|---|---|
twist_with_covariance |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist with covariance converted from VehicleReport |
Parameters
| Name | Type | Description |
|---|---|---|
speed_scale_factor |
double | speed scale factor (ideal value is 1.0) |
frame_id |
string | frame id for output message |
velocity_stddev_xx |
double | standard deviation for vx |
angular_velocity_stddev_zz |
double | standard deviation for yaw rate |
Changelog for package autoware_vehicle_velocity_converter
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(vehicle_velocity_converter): remove unused frame_id parameter and warning log (#1201) refactor(vehicle_velocity_converter): remove unused frame_id parameter and warning log Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(vehicle_velocity_converter): extract node from core logic (#1192)
* refactor(vehicle_velocity_converter): extract node into vehicle_velocity_converter_node Split the ROS node out of the core conversion logic, mirroring the autoware_stop_filter layout:
- vehicle_velocity_converter.{hpp,cpp}: core convert() logic only, no longer depends on rclcpp::Node
- vehicle_velocity_converter_node.{hpp,cpp}: new VehicleVelocityConverterNode class and component registration
- split tests into test_vehicle_velocity_converter (pure logic) and test_vehicle_velocity_converter_node (pub/sub integration)
- update CMakeLists.txt (separate _ros library, isolated gtest) and package.xml (ament_cmake_ros test dependency)
* refactor(vehicle_velocity_converter): make convert a member of VehicleVelocityConverter Turn the free convert() function into a VehicleVelocityConverter class that holds the frame-invariant settings (speed_scale_factor, stddev_vx, stddev_wz) supplied at construction, mirroring the StopFilter/StopFilterNode layout. The node now owns a single converter_ member instead of three loose doubles, and the callback becomes converter_.convert(*msg). Conversion behavior is unchanged.
* test(vehicle_velocity_converter): restructure node test with a fixture into AAA shape Move the ROS context, executor thread and test-side pub/sub wiring into a VehicleVelocityConverterNodeTest fixture (SetUp/TearDown + start_converter_node/publish_and_wait helpers) so the test body reads as plain Arrange/Act/Assert. Coverage is unchanged.
* test(vehicle_velocity_converter): compare float-derived twist fields with EXPECT_FLOAT_EQ The VelocityReport velocity fields are float while the Twist fields are double, so the converted values carry float rounding. Comparing them with EXPECT_FLOAT_EQ removes the static_cast<double>(...) on the expected literals while keeping the assertions correct. Covariance entries stay EXPECT_DOUBLE_EQ as they are pure double.
* test(vehicle_velocity_converter): drop redundant float suffixes and align node test helper EXPECT_FLOAT_EQ narrows both operands to float, so the F suffix on the expected literals is unnecessary. Also make the node test's make_velocity_report take double and cast internally, matching make_report in the logic test, so call sites use plain double literals.
- style(vehicle_velocity_converter): clarify AAA pattern
* test(vehicle_velocity_converter): poll for DDS discovery instead of fixed sleep ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
refactor(autoware_vehicle_velocity_converter): extract pure convert() and use XYZRPY_COV_IDX (#1151) Extract the VelocityReport-to-TwistWithCovarianceStamped conversion out of the ROS subscription callback into a pure, namespace-level free function convert(msg, speed_scale_factor, stddev_vx, stddev_wz); the callback now just calls it and publishes. This adds a deterministic, ROS-free seam for unit testing the conversion math. Replace the hand-written row-major covariance indices ([i + j * 6]) with the named autoware_utils_geometry::xyzrpy_covariance_index::XYZRPY_COV_IDX enum, matching the sibling autoware_gyro_odometer usage and removing the most error-prone magic in the file. Rewrite the tests as deterministic synchronous convert() calls that assert the full 36-element covariance (diagonal values and all off-diagonal entries zero), the zeroed unused twist fields, verbatim header copy, and scale-factor/sign edge cases, keeping one thin node-instantiation smoke test for the ROS wiring. This removes the executor thread, 200ms setup sleep, and 10ms poll loop. Behavior-preserving: the published message is byte-for-byte identical to before (the covariance enum indices map to the same array positions). Refs: autowarefoundation/autoware_core#1096
-
Contributors: Takahisa Ishikawa, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_sensing |
Launch files
- launch/vehicle_velocity_converter.launch.xml
-
- input_vehicle_velocity_topic [default: velocity_status]
- output_twist_with_covariance [default: twist_with_covariance]
- config_file [default: $(find-pkg-share autoware_vehicle_velocity_converter)/config/vehicle_velocity_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_vehicle_velocity_converter at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masahiro Sakamoto
- Yamato Ando
- NGUYEN Viet Anh
- Taiki Yamada
Authors
autoware_vehicle_velocity_converter
Purpose
This package converts autoware_vehicle_msgs::msg::VehicleReport message to geometry_msgs::msg::TwistWithCovarianceStamped for gyro odometer node.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
velocity_status |
autoware_vehicle_msgs::msg::VehicleReport |
vehicle velocity |
Output
| Name | Type | Description |
|---|---|---|
twist_with_covariance |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist with covariance converted from VehicleReport |
Parameters
| Name | Type | Description |
|---|---|---|
speed_scale_factor |
double | speed scale factor (ideal value is 1.0) |
frame_id |
string | frame id for output message |
velocity_stddev_xx |
double | standard deviation for vx |
angular_velocity_stddev_zz |
double | standard deviation for yaw rate |
Changelog for package autoware_vehicle_velocity_converter
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(vehicle_velocity_converter): remove unused frame_id parameter and warning log (#1201) refactor(vehicle_velocity_converter): remove unused frame_id parameter and warning log Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(vehicle_velocity_converter): extract node from core logic (#1192)
* refactor(vehicle_velocity_converter): extract node into vehicle_velocity_converter_node Split the ROS node out of the core conversion logic, mirroring the autoware_stop_filter layout:
- vehicle_velocity_converter.{hpp,cpp}: core convert() logic only, no longer depends on rclcpp::Node
- vehicle_velocity_converter_node.{hpp,cpp}: new VehicleVelocityConverterNode class and component registration
- split tests into test_vehicle_velocity_converter (pure logic) and test_vehicle_velocity_converter_node (pub/sub integration)
- update CMakeLists.txt (separate _ros library, isolated gtest) and package.xml (ament_cmake_ros test dependency)
* refactor(vehicle_velocity_converter): make convert a member of VehicleVelocityConverter Turn the free convert() function into a VehicleVelocityConverter class that holds the frame-invariant settings (speed_scale_factor, stddev_vx, stddev_wz) supplied at construction, mirroring the StopFilter/StopFilterNode layout. The node now owns a single converter_ member instead of three loose doubles, and the callback becomes converter_.convert(*msg). Conversion behavior is unchanged.
* test(vehicle_velocity_converter): restructure node test with a fixture into AAA shape Move the ROS context, executor thread and test-side pub/sub wiring into a VehicleVelocityConverterNodeTest fixture (SetUp/TearDown + start_converter_node/publish_and_wait helpers) so the test body reads as plain Arrange/Act/Assert. Coverage is unchanged.
* test(vehicle_velocity_converter): compare float-derived twist fields with EXPECT_FLOAT_EQ The VelocityReport velocity fields are float while the Twist fields are double, so the converted values carry float rounding. Comparing them with EXPECT_FLOAT_EQ removes the static_cast<double>(...) on the expected literals while keeping the assertions correct. Covariance entries stay EXPECT_DOUBLE_EQ as they are pure double.
* test(vehicle_velocity_converter): drop redundant float suffixes and align node test helper EXPECT_FLOAT_EQ narrows both operands to float, so the F suffix on the expected literals is unnecessary. Also make the node test's make_velocity_report take double and cast internally, matching make_report in the logic test, so call sites use plain double literals.
- style(vehicle_velocity_converter): clarify AAA pattern
* test(vehicle_velocity_converter): poll for DDS discovery instead of fixed sleep ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
refactor(autoware_vehicle_velocity_converter): extract pure convert() and use XYZRPY_COV_IDX (#1151) Extract the VelocityReport-to-TwistWithCovarianceStamped conversion out of the ROS subscription callback into a pure, namespace-level free function convert(msg, speed_scale_factor, stddev_vx, stddev_wz); the callback now just calls it and publishes. This adds a deterministic, ROS-free seam for unit testing the conversion math. Replace the hand-written row-major covariance indices ([i + j * 6]) with the named autoware_utils_geometry::xyzrpy_covariance_index::XYZRPY_COV_IDX enum, matching the sibling autoware_gyro_odometer usage and removing the most error-prone magic in the file. Rewrite the tests as deterministic synchronous convert() calls that assert the full 36-element covariance (diagonal values and all off-diagonal entries zero), the zeroed unused twist fields, verbatim header copy, and scale-factor/sign edge cases, keeping one thin node-instantiation smoke test for the ROS wiring. This removes the executor thread, 200ms setup sleep, and 10ms poll loop. Behavior-preserving: the published message is byte-for-byte identical to before (the covariance enum indices map to the same array positions). Refs: autowarefoundation/autoware_core#1096
-
Contributors: Takahisa Ishikawa, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_sensing |
Launch files
- launch/vehicle_velocity_converter.launch.xml
-
- input_vehicle_velocity_topic [default: velocity_status]
- output_twist_with_covariance [default: twist_with_covariance]
- config_file [default: $(find-pkg-share autoware_vehicle_velocity_converter)/config/vehicle_velocity_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_vehicle_velocity_converter at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masahiro Sakamoto
- Yamato Ando
- NGUYEN Viet Anh
- Taiki Yamada
Authors
autoware_vehicle_velocity_converter
Purpose
This package converts autoware_vehicle_msgs::msg::VehicleReport message to geometry_msgs::msg::TwistWithCovarianceStamped for gyro odometer node.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
velocity_status |
autoware_vehicle_msgs::msg::VehicleReport |
vehicle velocity |
Output
| Name | Type | Description |
|---|---|---|
twist_with_covariance |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist with covariance converted from VehicleReport |
Parameters
| Name | Type | Description |
|---|---|---|
speed_scale_factor |
double | speed scale factor (ideal value is 1.0) |
frame_id |
string | frame id for output message |
velocity_stddev_xx |
double | standard deviation for vx |
angular_velocity_stddev_zz |
double | standard deviation for yaw rate |
Changelog for package autoware_vehicle_velocity_converter
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(vehicle_velocity_converter): remove unused frame_id parameter and warning log (#1201) refactor(vehicle_velocity_converter): remove unused frame_id parameter and warning log Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(vehicle_velocity_converter): extract node from core logic (#1192)
* refactor(vehicle_velocity_converter): extract node into vehicle_velocity_converter_node Split the ROS node out of the core conversion logic, mirroring the autoware_stop_filter layout:
- vehicle_velocity_converter.{hpp,cpp}: core convert() logic only, no longer depends on rclcpp::Node
- vehicle_velocity_converter_node.{hpp,cpp}: new VehicleVelocityConverterNode class and component registration
- split tests into test_vehicle_velocity_converter (pure logic) and test_vehicle_velocity_converter_node (pub/sub integration)
- update CMakeLists.txt (separate _ros library, isolated gtest) and package.xml (ament_cmake_ros test dependency)
* refactor(vehicle_velocity_converter): make convert a member of VehicleVelocityConverter Turn the free convert() function into a VehicleVelocityConverter class that holds the frame-invariant settings (speed_scale_factor, stddev_vx, stddev_wz) supplied at construction, mirroring the StopFilter/StopFilterNode layout. The node now owns a single converter_ member instead of three loose doubles, and the callback becomes converter_.convert(*msg). Conversion behavior is unchanged.
* test(vehicle_velocity_converter): restructure node test with a fixture into AAA shape Move the ROS context, executor thread and test-side pub/sub wiring into a VehicleVelocityConverterNodeTest fixture (SetUp/TearDown + start_converter_node/publish_and_wait helpers) so the test body reads as plain Arrange/Act/Assert. Coverage is unchanged.
* test(vehicle_velocity_converter): compare float-derived twist fields with EXPECT_FLOAT_EQ The VelocityReport velocity fields are float while the Twist fields are double, so the converted values carry float rounding. Comparing them with EXPECT_FLOAT_EQ removes the static_cast<double>(...) on the expected literals while keeping the assertions correct. Covariance entries stay EXPECT_DOUBLE_EQ as they are pure double.
* test(vehicle_velocity_converter): drop redundant float suffixes and align node test helper EXPECT_FLOAT_EQ narrows both operands to float, so the F suffix on the expected literals is unnecessary. Also make the node test's make_velocity_report take double and cast internally, matching make_report in the logic test, so call sites use plain double literals.
- style(vehicle_velocity_converter): clarify AAA pattern
* test(vehicle_velocity_converter): poll for DDS discovery instead of fixed sleep ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
refactor(autoware_vehicle_velocity_converter): extract pure convert() and use XYZRPY_COV_IDX (#1151) Extract the VelocityReport-to-TwistWithCovarianceStamped conversion out of the ROS subscription callback into a pure, namespace-level free function convert(msg, speed_scale_factor, stddev_vx, stddev_wz); the callback now just calls it and publishes. This adds a deterministic, ROS-free seam for unit testing the conversion math. Replace the hand-written row-major covariance indices ([i + j * 6]) with the named autoware_utils_geometry::xyzrpy_covariance_index::XYZRPY_COV_IDX enum, matching the sibling autoware_gyro_odometer usage and removing the most error-prone magic in the file. Rewrite the tests as deterministic synchronous convert() calls that assert the full 36-element covariance (diagonal values and all off-diagonal entries zero), the zeroed unused twist fields, verbatim header copy, and scale-factor/sign edge cases, keeping one thin node-instantiation smoke test for the ROS wiring. This removes the executor thread, 200ms setup sleep, and 10ms poll loop. Behavior-preserving: the published message is byte-for-byte identical to before (the covariance enum indices map to the same array positions). Refs: autowarefoundation/autoware_core#1096
-
Contributors: Takahisa Ishikawa, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_sensing |
Launch files
- launch/vehicle_velocity_converter.launch.xml
-
- input_vehicle_velocity_topic [default: velocity_status]
- output_twist_with_covariance [default: twist_with_covariance]
- config_file [default: $(find-pkg-share autoware_vehicle_velocity_converter)/config/vehicle_velocity_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_vehicle_velocity_converter at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masahiro Sakamoto
- Yamato Ando
- NGUYEN Viet Anh
- Taiki Yamada
Authors
autoware_vehicle_velocity_converter
Purpose
This package converts autoware_vehicle_msgs::msg::VehicleReport message to geometry_msgs::msg::TwistWithCovarianceStamped for gyro odometer node.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
velocity_status |
autoware_vehicle_msgs::msg::VehicleReport |
vehicle velocity |
Output
| Name | Type | Description |
|---|---|---|
twist_with_covariance |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist with covariance converted from VehicleReport |
Parameters
| Name | Type | Description |
|---|---|---|
speed_scale_factor |
double | speed scale factor (ideal value is 1.0) |
frame_id |
string | frame id for output message |
velocity_stddev_xx |
double | standard deviation for vx |
angular_velocity_stddev_zz |
double | standard deviation for yaw rate |
Changelog for package autoware_vehicle_velocity_converter
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(vehicle_velocity_converter): remove unused frame_id parameter and warning log (#1201) refactor(vehicle_velocity_converter): remove unused frame_id parameter and warning log Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(vehicle_velocity_converter): extract node from core logic (#1192)
* refactor(vehicle_velocity_converter): extract node into vehicle_velocity_converter_node Split the ROS node out of the core conversion logic, mirroring the autoware_stop_filter layout:
- vehicle_velocity_converter.{hpp,cpp}: core convert() logic only, no longer depends on rclcpp::Node
- vehicle_velocity_converter_node.{hpp,cpp}: new VehicleVelocityConverterNode class and component registration
- split tests into test_vehicle_velocity_converter (pure logic) and test_vehicle_velocity_converter_node (pub/sub integration)
- update CMakeLists.txt (separate _ros library, isolated gtest) and package.xml (ament_cmake_ros test dependency)
* refactor(vehicle_velocity_converter): make convert a member of VehicleVelocityConverter Turn the free convert() function into a VehicleVelocityConverter class that holds the frame-invariant settings (speed_scale_factor, stddev_vx, stddev_wz) supplied at construction, mirroring the StopFilter/StopFilterNode layout. The node now owns a single converter_ member instead of three loose doubles, and the callback becomes converter_.convert(*msg). Conversion behavior is unchanged.
* test(vehicle_velocity_converter): restructure node test with a fixture into AAA shape Move the ROS context, executor thread and test-side pub/sub wiring into a VehicleVelocityConverterNodeTest fixture (SetUp/TearDown + start_converter_node/publish_and_wait helpers) so the test body reads as plain Arrange/Act/Assert. Coverage is unchanged.
* test(vehicle_velocity_converter): compare float-derived twist fields with EXPECT_FLOAT_EQ The VelocityReport velocity fields are float while the Twist fields are double, so the converted values carry float rounding. Comparing them with EXPECT_FLOAT_EQ removes the static_cast<double>(...) on the expected literals while keeping the assertions correct. Covariance entries stay EXPECT_DOUBLE_EQ as they are pure double.
* test(vehicle_velocity_converter): drop redundant float suffixes and align node test helper EXPECT_FLOAT_EQ narrows both operands to float, so the F suffix on the expected literals is unnecessary. Also make the node test's make_velocity_report take double and cast internally, matching make_report in the logic test, so call sites use plain double literals.
- style(vehicle_velocity_converter): clarify AAA pattern
* test(vehicle_velocity_converter): poll for DDS discovery instead of fixed sleep ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
refactor(autoware_vehicle_velocity_converter): extract pure convert() and use XYZRPY_COV_IDX (#1151) Extract the VelocityReport-to-TwistWithCovarianceStamped conversion out of the ROS subscription callback into a pure, namespace-level free function convert(msg, speed_scale_factor, stddev_vx, stddev_wz); the callback now just calls it and publishes. This adds a deterministic, ROS-free seam for unit testing the conversion math. Replace the hand-written row-major covariance indices ([i + j * 6]) with the named autoware_utils_geometry::xyzrpy_covariance_index::XYZRPY_COV_IDX enum, matching the sibling autoware_gyro_odometer usage and removing the most error-prone magic in the file. Rewrite the tests as deterministic synchronous convert() calls that assert the full 36-element covariance (diagonal values and all off-diagonal entries zero), the zeroed unused twist fields, verbatim header copy, and scale-factor/sign edge cases, keeping one thin node-instantiation smoke test for the ROS wiring. This removes the executor thread, 200ms setup sleep, and 10ms poll loop. Behavior-preserving: the published message is byte-for-byte identical to before (the covariance enum indices map to the same array positions). Refs: autowarefoundation/autoware_core#1096
-
Contributors: Takahisa Ishikawa, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_sensing |
Launch files
- launch/vehicle_velocity_converter.launch.xml
-
- input_vehicle_velocity_topic [default: velocity_status]
- output_twist_with_covariance [default: twist_with_covariance]
- config_file [default: $(find-pkg-share autoware_vehicle_velocity_converter)/config/vehicle_velocity_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_vehicle_velocity_converter at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masahiro Sakamoto
- Yamato Ando
- NGUYEN Viet Anh
- Taiki Yamada
Authors
autoware_vehicle_velocity_converter
Purpose
This package converts autoware_vehicle_msgs::msg::VehicleReport message to geometry_msgs::msg::TwistWithCovarianceStamped for gyro odometer node.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
velocity_status |
autoware_vehicle_msgs::msg::VehicleReport |
vehicle velocity |
Output
| Name | Type | Description |
|---|---|---|
twist_with_covariance |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist with covariance converted from VehicleReport |
Parameters
| Name | Type | Description |
|---|---|---|
speed_scale_factor |
double | speed scale factor (ideal value is 1.0) |
frame_id |
string | frame id for output message |
velocity_stddev_xx |
double | standard deviation for vx |
angular_velocity_stddev_zz |
double | standard deviation for yaw rate |
Changelog for package autoware_vehicle_velocity_converter
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(vehicle_velocity_converter): remove unused frame_id parameter and warning log (#1201) refactor(vehicle_velocity_converter): remove unused frame_id parameter and warning log Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(vehicle_velocity_converter): extract node from core logic (#1192)
* refactor(vehicle_velocity_converter): extract node into vehicle_velocity_converter_node Split the ROS node out of the core conversion logic, mirroring the autoware_stop_filter layout:
- vehicle_velocity_converter.{hpp,cpp}: core convert() logic only, no longer depends on rclcpp::Node
- vehicle_velocity_converter_node.{hpp,cpp}: new VehicleVelocityConverterNode class and component registration
- split tests into test_vehicle_velocity_converter (pure logic) and test_vehicle_velocity_converter_node (pub/sub integration)
- update CMakeLists.txt (separate _ros library, isolated gtest) and package.xml (ament_cmake_ros test dependency)
* refactor(vehicle_velocity_converter): make convert a member of VehicleVelocityConverter Turn the free convert() function into a VehicleVelocityConverter class that holds the frame-invariant settings (speed_scale_factor, stddev_vx, stddev_wz) supplied at construction, mirroring the StopFilter/StopFilterNode layout. The node now owns a single converter_ member instead of three loose doubles, and the callback becomes converter_.convert(*msg). Conversion behavior is unchanged.
* test(vehicle_velocity_converter): restructure node test with a fixture into AAA shape Move the ROS context, executor thread and test-side pub/sub wiring into a VehicleVelocityConverterNodeTest fixture (SetUp/TearDown + start_converter_node/publish_and_wait helpers) so the test body reads as plain Arrange/Act/Assert. Coverage is unchanged.
* test(vehicle_velocity_converter): compare float-derived twist fields with EXPECT_FLOAT_EQ The VelocityReport velocity fields are float while the Twist fields are double, so the converted values carry float rounding. Comparing them with EXPECT_FLOAT_EQ removes the static_cast<double>(...) on the expected literals while keeping the assertions correct. Covariance entries stay EXPECT_DOUBLE_EQ as they are pure double.
* test(vehicle_velocity_converter): drop redundant float suffixes and align node test helper EXPECT_FLOAT_EQ narrows both operands to float, so the F suffix on the expected literals is unnecessary. Also make the node test's make_velocity_report take double and cast internally, matching make_report in the logic test, so call sites use plain double literals.
- style(vehicle_velocity_converter): clarify AAA pattern
* test(vehicle_velocity_converter): poll for DDS discovery instead of fixed sleep ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
refactor(autoware_vehicle_velocity_converter): extract pure convert() and use XYZRPY_COV_IDX (#1151) Extract the VelocityReport-to-TwistWithCovarianceStamped conversion out of the ROS subscription callback into a pure, namespace-level free function convert(msg, speed_scale_factor, stddev_vx, stddev_wz); the callback now just calls it and publishes. This adds a deterministic, ROS-free seam for unit testing the conversion math. Replace the hand-written row-major covariance indices ([i + j * 6]) with the named autoware_utils_geometry::xyzrpy_covariance_index::XYZRPY_COV_IDX enum, matching the sibling autoware_gyro_odometer usage and removing the most error-prone magic in the file. Rewrite the tests as deterministic synchronous convert() calls that assert the full 36-element covariance (diagonal values and all off-diagonal entries zero), the zeroed unused twist fields, verbatim header copy, and scale-factor/sign edge cases, keeping one thin node-instantiation smoke test for the ROS wiring. This removes the executor thread, 200ms setup sleep, and 10ms poll loop. Behavior-preserving: the published message is byte-for-byte identical to before (the covariance enum indices map to the same array positions). Refs: autowarefoundation/autoware_core#1096
-
Contributors: Takahisa Ishikawa, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_sensing |
Launch files
- launch/vehicle_velocity_converter.launch.xml
-
- input_vehicle_velocity_topic [default: velocity_status]
- output_twist_with_covariance [default: twist_with_covariance]
- config_file [default: $(find-pkg-share autoware_vehicle_velocity_converter)/config/vehicle_velocity_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_vehicle_velocity_converter at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masahiro Sakamoto
- Yamato Ando
- NGUYEN Viet Anh
- Taiki Yamada
Authors
autoware_vehicle_velocity_converter
Purpose
This package converts autoware_vehicle_msgs::msg::VehicleReport message to geometry_msgs::msg::TwistWithCovarianceStamped for gyro odometer node.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
velocity_status |
autoware_vehicle_msgs::msg::VehicleReport |
vehicle velocity |
Output
| Name | Type | Description |
|---|---|---|
twist_with_covariance |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist with covariance converted from VehicleReport |
Parameters
| Name | Type | Description |
|---|---|---|
speed_scale_factor |
double | speed scale factor (ideal value is 1.0) |
frame_id |
string | frame id for output message |
velocity_stddev_xx |
double | standard deviation for vx |
angular_velocity_stddev_zz |
double | standard deviation for yaw rate |
Changelog for package autoware_vehicle_velocity_converter
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(vehicle_velocity_converter): remove unused frame_id parameter and warning log (#1201) refactor(vehicle_velocity_converter): remove unused frame_id parameter and warning log Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(vehicle_velocity_converter): extract node from core logic (#1192)
* refactor(vehicle_velocity_converter): extract node into vehicle_velocity_converter_node Split the ROS node out of the core conversion logic, mirroring the autoware_stop_filter layout:
- vehicle_velocity_converter.{hpp,cpp}: core convert() logic only, no longer depends on rclcpp::Node
- vehicle_velocity_converter_node.{hpp,cpp}: new VehicleVelocityConverterNode class and component registration
- split tests into test_vehicle_velocity_converter (pure logic) and test_vehicle_velocity_converter_node (pub/sub integration)
- update CMakeLists.txt (separate _ros library, isolated gtest) and package.xml (ament_cmake_ros test dependency)
* refactor(vehicle_velocity_converter): make convert a member of VehicleVelocityConverter Turn the free convert() function into a VehicleVelocityConverter class that holds the frame-invariant settings (speed_scale_factor, stddev_vx, stddev_wz) supplied at construction, mirroring the StopFilter/StopFilterNode layout. The node now owns a single converter_ member instead of three loose doubles, and the callback becomes converter_.convert(*msg). Conversion behavior is unchanged.
* test(vehicle_velocity_converter): restructure node test with a fixture into AAA shape Move the ROS context, executor thread and test-side pub/sub wiring into a VehicleVelocityConverterNodeTest fixture (SetUp/TearDown + start_converter_node/publish_and_wait helpers) so the test body reads as plain Arrange/Act/Assert. Coverage is unchanged.
* test(vehicle_velocity_converter): compare float-derived twist fields with EXPECT_FLOAT_EQ The VelocityReport velocity fields are float while the Twist fields are double, so the converted values carry float rounding. Comparing them with EXPECT_FLOAT_EQ removes the static_cast<double>(...) on the expected literals while keeping the assertions correct. Covariance entries stay EXPECT_DOUBLE_EQ as they are pure double.
* test(vehicle_velocity_converter): drop redundant float suffixes and align node test helper EXPECT_FLOAT_EQ narrows both operands to float, so the F suffix on the expected literals is unnecessary. Also make the node test's make_velocity_report take double and cast internally, matching make_report in the logic test, so call sites use plain double literals.
- style(vehicle_velocity_converter): clarify AAA pattern
* test(vehicle_velocity_converter): poll for DDS discovery instead of fixed sleep ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
refactor(autoware_vehicle_velocity_converter): extract pure convert() and use XYZRPY_COV_IDX (#1151) Extract the VelocityReport-to-TwistWithCovarianceStamped conversion out of the ROS subscription callback into a pure, namespace-level free function convert(msg, speed_scale_factor, stddev_vx, stddev_wz); the callback now just calls it and publishes. This adds a deterministic, ROS-free seam for unit testing the conversion math. Replace the hand-written row-major covariance indices ([i + j * 6]) with the named autoware_utils_geometry::xyzrpy_covariance_index::XYZRPY_COV_IDX enum, matching the sibling autoware_gyro_odometer usage and removing the most error-prone magic in the file. Rewrite the tests as deterministic synchronous convert() calls that assert the full 36-element covariance (diagonal values and all off-diagonal entries zero), the zeroed unused twist fields, verbatim header copy, and scale-factor/sign edge cases, keeping one thin node-instantiation smoke test for the ROS wiring. This removes the executor thread, 200ms setup sleep, and 10ms poll loop. Behavior-preserving: the published message is byte-for-byte identical to before (the covariance enum indices map to the same array positions). Refs: autowarefoundation/autoware_core#1096
-
Contributors: Takahisa Ishikawa, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_sensing |
Launch files
- launch/vehicle_velocity_converter.launch.xml
-
- input_vehicle_velocity_topic [default: velocity_status]
- output_twist_with_covariance [default: twist_with_covariance]
- config_file [default: $(find-pkg-share autoware_vehicle_velocity_converter)/config/vehicle_velocity_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_vehicle_velocity_converter at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masahiro Sakamoto
- Yamato Ando
- NGUYEN Viet Anh
- Taiki Yamada
Authors
autoware_vehicle_velocity_converter
Purpose
This package converts autoware_vehicle_msgs::msg::VehicleReport message to geometry_msgs::msg::TwistWithCovarianceStamped for gyro odometer node.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
velocity_status |
autoware_vehicle_msgs::msg::VehicleReport |
vehicle velocity |
Output
| Name | Type | Description |
|---|---|---|
twist_with_covariance |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist with covariance converted from VehicleReport |
Parameters
| Name | Type | Description |
|---|---|---|
speed_scale_factor |
double | speed scale factor (ideal value is 1.0) |
frame_id |
string | frame id for output message |
velocity_stddev_xx |
double | standard deviation for vx |
angular_velocity_stddev_zz |
double | standard deviation for yaw rate |
Changelog for package autoware_vehicle_velocity_converter
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(vehicle_velocity_converter): remove unused frame_id parameter and warning log (#1201) refactor(vehicle_velocity_converter): remove unused frame_id parameter and warning log Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(vehicle_velocity_converter): extract node from core logic (#1192)
* refactor(vehicle_velocity_converter): extract node into vehicle_velocity_converter_node Split the ROS node out of the core conversion logic, mirroring the autoware_stop_filter layout:
- vehicle_velocity_converter.{hpp,cpp}: core convert() logic only, no longer depends on rclcpp::Node
- vehicle_velocity_converter_node.{hpp,cpp}: new VehicleVelocityConverterNode class and component registration
- split tests into test_vehicle_velocity_converter (pure logic) and test_vehicle_velocity_converter_node (pub/sub integration)
- update CMakeLists.txt (separate _ros library, isolated gtest) and package.xml (ament_cmake_ros test dependency)
* refactor(vehicle_velocity_converter): make convert a member of VehicleVelocityConverter Turn the free convert() function into a VehicleVelocityConverter class that holds the frame-invariant settings (speed_scale_factor, stddev_vx, stddev_wz) supplied at construction, mirroring the StopFilter/StopFilterNode layout. The node now owns a single converter_ member instead of three loose doubles, and the callback becomes converter_.convert(*msg). Conversion behavior is unchanged.
* test(vehicle_velocity_converter): restructure node test with a fixture into AAA shape Move the ROS context, executor thread and test-side pub/sub wiring into a VehicleVelocityConverterNodeTest fixture (SetUp/TearDown + start_converter_node/publish_and_wait helpers) so the test body reads as plain Arrange/Act/Assert. Coverage is unchanged.
* test(vehicle_velocity_converter): compare float-derived twist fields with EXPECT_FLOAT_EQ The VelocityReport velocity fields are float while the Twist fields are double, so the converted values carry float rounding. Comparing them with EXPECT_FLOAT_EQ removes the static_cast<double>(...) on the expected literals while keeping the assertions correct. Covariance entries stay EXPECT_DOUBLE_EQ as they are pure double.
* test(vehicle_velocity_converter): drop redundant float suffixes and align node test helper EXPECT_FLOAT_EQ narrows both operands to float, so the F suffix on the expected literals is unnecessary. Also make the node test's make_velocity_report take double and cast internally, matching make_report in the logic test, so call sites use plain double literals.
- style(vehicle_velocity_converter): clarify AAA pattern
* test(vehicle_velocity_converter): poll for DDS discovery instead of fixed sleep ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
refactor(autoware_vehicle_velocity_converter): extract pure convert() and use XYZRPY_COV_IDX (#1151) Extract the VelocityReport-to-TwistWithCovarianceStamped conversion out of the ROS subscription callback into a pure, namespace-level free function convert(msg, speed_scale_factor, stddev_vx, stddev_wz); the callback now just calls it and publishes. This adds a deterministic, ROS-free seam for unit testing the conversion math. Replace the hand-written row-major covariance indices ([i + j * 6]) with the named autoware_utils_geometry::xyzrpy_covariance_index::XYZRPY_COV_IDX enum, matching the sibling autoware_gyro_odometer usage and removing the most error-prone magic in the file. Rewrite the tests as deterministic synchronous convert() calls that assert the full 36-element covariance (diagonal values and all off-diagonal entries zero), the zeroed unused twist fields, verbatim header copy, and scale-factor/sign edge cases, keeping one thin node-instantiation smoke test for the ROS wiring. This removes the executor thread, 200ms setup sleep, and 10ms poll loop. Behavior-preserving: the published message is byte-for-byte identical to before (the covariance enum indices map to the same array positions). Refs: autowarefoundation/autoware_core#1096
-
Contributors: Takahisa Ishikawa, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_sensing |
Launch files
- launch/vehicle_velocity_converter.launch.xml
-
- input_vehicle_velocity_topic [default: velocity_status]
- output_twist_with_covariance [default: twist_with_covariance]
- config_file [default: $(find-pkg-share autoware_vehicle_velocity_converter)/config/vehicle_velocity_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_vehicle_velocity_converter at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masahiro Sakamoto
- Yamato Ando
- NGUYEN Viet Anh
- Taiki Yamada
Authors
autoware_vehicle_velocity_converter
Purpose
This package converts autoware_vehicle_msgs::msg::VehicleReport message to geometry_msgs::msg::TwistWithCovarianceStamped for gyro odometer node.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
velocity_status |
autoware_vehicle_msgs::msg::VehicleReport |
vehicle velocity |
Output
| Name | Type | Description |
|---|---|---|
twist_with_covariance |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist with covariance converted from VehicleReport |
Parameters
| Name | Type | Description |
|---|---|---|
speed_scale_factor |
double | speed scale factor (ideal value is 1.0) |
frame_id |
string | frame id for output message |
velocity_stddev_xx |
double | standard deviation for vx |
angular_velocity_stddev_zz |
double | standard deviation for yaw rate |
Changelog for package autoware_vehicle_velocity_converter
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(vehicle_velocity_converter): remove unused frame_id parameter and warning log (#1201) refactor(vehicle_velocity_converter): remove unused frame_id parameter and warning log Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(vehicle_velocity_converter): extract node from core logic (#1192)
* refactor(vehicle_velocity_converter): extract node into vehicle_velocity_converter_node Split the ROS node out of the core conversion logic, mirroring the autoware_stop_filter layout:
- vehicle_velocity_converter.{hpp,cpp}: core convert() logic only, no longer depends on rclcpp::Node
- vehicle_velocity_converter_node.{hpp,cpp}: new VehicleVelocityConverterNode class and component registration
- split tests into test_vehicle_velocity_converter (pure logic) and test_vehicle_velocity_converter_node (pub/sub integration)
- update CMakeLists.txt (separate _ros library, isolated gtest) and package.xml (ament_cmake_ros test dependency)
* refactor(vehicle_velocity_converter): make convert a member of VehicleVelocityConverter Turn the free convert() function into a VehicleVelocityConverter class that holds the frame-invariant settings (speed_scale_factor, stddev_vx, stddev_wz) supplied at construction, mirroring the StopFilter/StopFilterNode layout. The node now owns a single converter_ member instead of three loose doubles, and the callback becomes converter_.convert(*msg). Conversion behavior is unchanged.
* test(vehicle_velocity_converter): restructure node test with a fixture into AAA shape Move the ROS context, executor thread and test-side pub/sub wiring into a VehicleVelocityConverterNodeTest fixture (SetUp/TearDown + start_converter_node/publish_and_wait helpers) so the test body reads as plain Arrange/Act/Assert. Coverage is unchanged.
* test(vehicle_velocity_converter): compare float-derived twist fields with EXPECT_FLOAT_EQ The VelocityReport velocity fields are float while the Twist fields are double, so the converted values carry float rounding. Comparing them with EXPECT_FLOAT_EQ removes the static_cast<double>(...) on the expected literals while keeping the assertions correct. Covariance entries stay EXPECT_DOUBLE_EQ as they are pure double.
* test(vehicle_velocity_converter): drop redundant float suffixes and align node test helper EXPECT_FLOAT_EQ narrows both operands to float, so the F suffix on the expected literals is unnecessary. Also make the node test's make_velocity_report take double and cast internally, matching make_report in the logic test, so call sites use plain double literals.
- style(vehicle_velocity_converter): clarify AAA pattern
* test(vehicle_velocity_converter): poll for DDS discovery instead of fixed sleep ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
refactor(autoware_vehicle_velocity_converter): extract pure convert() and use XYZRPY_COV_IDX (#1151) Extract the VelocityReport-to-TwistWithCovarianceStamped conversion out of the ROS subscription callback into a pure, namespace-level free function convert(msg, speed_scale_factor, stddev_vx, stddev_wz); the callback now just calls it and publishes. This adds a deterministic, ROS-free seam for unit testing the conversion math. Replace the hand-written row-major covariance indices ([i + j * 6]) with the named autoware_utils_geometry::xyzrpy_covariance_index::XYZRPY_COV_IDX enum, matching the sibling autoware_gyro_odometer usage and removing the most error-prone magic in the file. Rewrite the tests as deterministic synchronous convert() calls that assert the full 36-element covariance (diagonal values and all off-diagonal entries zero), the zeroed unused twist fields, verbatim header copy, and scale-factor/sign edge cases, keeping one thin node-instantiation smoke test for the ROS wiring. This removes the executor thread, 200ms setup sleep, and 10ms poll loop. Behavior-preserving: the published message is byte-for-byte identical to before (the covariance enum indices map to the same array positions). Refs: autowarefoundation/autoware_core#1096
-
Contributors: Takahisa Ishikawa, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_sensing |
Launch files
- launch/vehicle_velocity_converter.launch.xml
-
- input_vehicle_velocity_topic [default: velocity_status]
- output_twist_with_covariance [default: twist_with_covariance]
- config_file [default: $(find-pkg-share autoware_vehicle_velocity_converter)/config/vehicle_velocity_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_vehicle_velocity_converter at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masahiro Sakamoto
- Yamato Ando
- NGUYEN Viet Anh
- Taiki Yamada
Authors
autoware_vehicle_velocity_converter
Purpose
This package converts autoware_vehicle_msgs::msg::VehicleReport message to geometry_msgs::msg::TwistWithCovarianceStamped for gyro odometer node.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
velocity_status |
autoware_vehicle_msgs::msg::VehicleReport |
vehicle velocity |
Output
| Name | Type | Description |
|---|---|---|
twist_with_covariance |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist with covariance converted from VehicleReport |
Parameters
| Name | Type | Description |
|---|---|---|
speed_scale_factor |
double | speed scale factor (ideal value is 1.0) |
frame_id |
string | frame id for output message |
velocity_stddev_xx |
double | standard deviation for vx |
angular_velocity_stddev_zz |
double | standard deviation for yaw rate |
Changelog for package autoware_vehicle_velocity_converter
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(vehicle_velocity_converter): remove unused frame_id parameter and warning log (#1201) refactor(vehicle_velocity_converter): remove unused frame_id parameter and warning log Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(vehicle_velocity_converter): extract node from core logic (#1192)
* refactor(vehicle_velocity_converter): extract node into vehicle_velocity_converter_node Split the ROS node out of the core conversion logic, mirroring the autoware_stop_filter layout:
- vehicle_velocity_converter.{hpp,cpp}: core convert() logic only, no longer depends on rclcpp::Node
- vehicle_velocity_converter_node.{hpp,cpp}: new VehicleVelocityConverterNode class and component registration
- split tests into test_vehicle_velocity_converter (pure logic) and test_vehicle_velocity_converter_node (pub/sub integration)
- update CMakeLists.txt (separate _ros library, isolated gtest) and package.xml (ament_cmake_ros test dependency)
* refactor(vehicle_velocity_converter): make convert a member of VehicleVelocityConverter Turn the free convert() function into a VehicleVelocityConverter class that holds the frame-invariant settings (speed_scale_factor, stddev_vx, stddev_wz) supplied at construction, mirroring the StopFilter/StopFilterNode layout. The node now owns a single converter_ member instead of three loose doubles, and the callback becomes converter_.convert(*msg). Conversion behavior is unchanged.
* test(vehicle_velocity_converter): restructure node test with a fixture into AAA shape Move the ROS context, executor thread and test-side pub/sub wiring into a VehicleVelocityConverterNodeTest fixture (SetUp/TearDown + start_converter_node/publish_and_wait helpers) so the test body reads as plain Arrange/Act/Assert. Coverage is unchanged.
* test(vehicle_velocity_converter): compare float-derived twist fields with EXPECT_FLOAT_EQ The VelocityReport velocity fields are float while the Twist fields are double, so the converted values carry float rounding. Comparing them with EXPECT_FLOAT_EQ removes the static_cast<double>(...) on the expected literals while keeping the assertions correct. Covariance entries stay EXPECT_DOUBLE_EQ as they are pure double.
* test(vehicle_velocity_converter): drop redundant float suffixes and align node test helper EXPECT_FLOAT_EQ narrows both operands to float, so the F suffix on the expected literals is unnecessary. Also make the node test's make_velocity_report take double and cast internally, matching make_report in the logic test, so call sites use plain double literals.
- style(vehicle_velocity_converter): clarify AAA pattern
* test(vehicle_velocity_converter): poll for DDS discovery instead of fixed sleep ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
refactor(autoware_vehicle_velocity_converter): extract pure convert() and use XYZRPY_COV_IDX (#1151) Extract the VelocityReport-to-TwistWithCovarianceStamped conversion out of the ROS subscription callback into a pure, namespace-level free function convert(msg, speed_scale_factor, stddev_vx, stddev_wz); the callback now just calls it and publishes. This adds a deterministic, ROS-free seam for unit testing the conversion math. Replace the hand-written row-major covariance indices ([i + j * 6]) with the named autoware_utils_geometry::xyzrpy_covariance_index::XYZRPY_COV_IDX enum, matching the sibling autoware_gyro_odometer usage and removing the most error-prone magic in the file. Rewrite the tests as deterministic synchronous convert() calls that assert the full 36-element covariance (diagonal values and all off-diagonal entries zero), the zeroed unused twist fields, verbatim header copy, and scale-factor/sign edge cases, keeping one thin node-instantiation smoke test for the ROS wiring. This removes the executor thread, 200ms setup sleep, and 10ms poll loop. Behavior-preserving: the published message is byte-for-byte identical to before (the covariance enum indices map to the same array positions). Refs: autowarefoundation/autoware_core#1096
-
Contributors: Takahisa Ishikawa, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_sensing |
Launch files
- launch/vehicle_velocity_converter.launch.xml
-
- input_vehicle_velocity_topic [default: velocity_status]
- output_twist_with_covariance [default: twist_with_covariance]
- config_file [default: $(find-pkg-share autoware_vehicle_velocity_converter)/config/vehicle_velocity_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_vehicle_velocity_converter at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masahiro Sakamoto
- Yamato Ando
- NGUYEN Viet Anh
- Taiki Yamada
Authors
autoware_vehicle_velocity_converter
Purpose
This package converts autoware_vehicle_msgs::msg::VehicleReport message to geometry_msgs::msg::TwistWithCovarianceStamped for gyro odometer node.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
velocity_status |
autoware_vehicle_msgs::msg::VehicleReport |
vehicle velocity |
Output
| Name | Type | Description |
|---|---|---|
twist_with_covariance |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist with covariance converted from VehicleReport |
Parameters
| Name | Type | Description |
|---|---|---|
speed_scale_factor |
double | speed scale factor (ideal value is 1.0) |
frame_id |
string | frame id for output message |
velocity_stddev_xx |
double | standard deviation for vx |
angular_velocity_stddev_zz |
double | standard deviation for yaw rate |
Changelog for package autoware_vehicle_velocity_converter
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(vehicle_velocity_converter): remove unused frame_id parameter and warning log (#1201) refactor(vehicle_velocity_converter): remove unused frame_id parameter and warning log Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(vehicle_velocity_converter): extract node from core logic (#1192)
* refactor(vehicle_velocity_converter): extract node into vehicle_velocity_converter_node Split the ROS node out of the core conversion logic, mirroring the autoware_stop_filter layout:
- vehicle_velocity_converter.{hpp,cpp}: core convert() logic only, no longer depends on rclcpp::Node
- vehicle_velocity_converter_node.{hpp,cpp}: new VehicleVelocityConverterNode class and component registration
- split tests into test_vehicle_velocity_converter (pure logic) and test_vehicle_velocity_converter_node (pub/sub integration)
- update CMakeLists.txt (separate _ros library, isolated gtest) and package.xml (ament_cmake_ros test dependency)
* refactor(vehicle_velocity_converter): make convert a member of VehicleVelocityConverter Turn the free convert() function into a VehicleVelocityConverter class that holds the frame-invariant settings (speed_scale_factor, stddev_vx, stddev_wz) supplied at construction, mirroring the StopFilter/StopFilterNode layout. The node now owns a single converter_ member instead of three loose doubles, and the callback becomes converter_.convert(*msg). Conversion behavior is unchanged.
* test(vehicle_velocity_converter): restructure node test with a fixture into AAA shape Move the ROS context, executor thread and test-side pub/sub wiring into a VehicleVelocityConverterNodeTest fixture (SetUp/TearDown + start_converter_node/publish_and_wait helpers) so the test body reads as plain Arrange/Act/Assert. Coverage is unchanged.
* test(vehicle_velocity_converter): compare float-derived twist fields with EXPECT_FLOAT_EQ The VelocityReport velocity fields are float while the Twist fields are double, so the converted values carry float rounding. Comparing them with EXPECT_FLOAT_EQ removes the static_cast<double>(...) on the expected literals while keeping the assertions correct. Covariance entries stay EXPECT_DOUBLE_EQ as they are pure double.
* test(vehicle_velocity_converter): drop redundant float suffixes and align node test helper EXPECT_FLOAT_EQ narrows both operands to float, so the F suffix on the expected literals is unnecessary. Also make the node test's make_velocity_report take double and cast internally, matching make_report in the logic test, so call sites use plain double literals.
- style(vehicle_velocity_converter): clarify AAA pattern
* test(vehicle_velocity_converter): poll for DDS discovery instead of fixed sleep ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
refactor(autoware_vehicle_velocity_converter): extract pure convert() and use XYZRPY_COV_IDX (#1151) Extract the VelocityReport-to-TwistWithCovarianceStamped conversion out of the ROS subscription callback into a pure, namespace-level free function convert(msg, speed_scale_factor, stddev_vx, stddev_wz); the callback now just calls it and publishes. This adds a deterministic, ROS-free seam for unit testing the conversion math. Replace the hand-written row-major covariance indices ([i + j * 6]) with the named autoware_utils_geometry::xyzrpy_covariance_index::XYZRPY_COV_IDX enum, matching the sibling autoware_gyro_odometer usage and removing the most error-prone magic in the file. Rewrite the tests as deterministic synchronous convert() calls that assert the full 36-element covariance (diagonal values and all off-diagonal entries zero), the zeroed unused twist fields, verbatim header copy, and scale-factor/sign edge cases, keeping one thin node-instantiation smoke test for the ROS wiring. This removes the executor thread, 200ms setup sleep, and 10ms poll loop. Behavior-preserving: the published message is byte-for-byte identical to before (the covariance enum indices map to the same array positions). Refs: autowarefoundation/autoware_core#1096
-
Contributors: Takahisa Ishikawa, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_sensing |
Launch files
- launch/vehicle_velocity_converter.launch.xml
-
- input_vehicle_velocity_topic [default: velocity_status]
- output_twist_with_covariance [default: twist_with_covariance]
- config_file [default: $(find-pkg-share autoware_vehicle_velocity_converter)/config/vehicle_velocity_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_vehicle_velocity_converter at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masahiro Sakamoto
- Yamato Ando
- NGUYEN Viet Anh
- Taiki Yamada
Authors
autoware_vehicle_velocity_converter
Purpose
This package converts autoware_vehicle_msgs::msg::VehicleReport message to geometry_msgs::msg::TwistWithCovarianceStamped for gyro odometer node.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
velocity_status |
autoware_vehicle_msgs::msg::VehicleReport |
vehicle velocity |
Output
| Name | Type | Description |
|---|---|---|
twist_with_covariance |
geometry_msgs::msg::TwistWithCovarianceStamped |
twist with covariance converted from VehicleReport |
Parameters
| Name | Type | Description |
|---|---|---|
speed_scale_factor |
double | speed scale factor (ideal value is 1.0) |
frame_id |
string | frame id for output message |
velocity_stddev_xx |
double | standard deviation for vx |
angular_velocity_stddev_zz |
double | standard deviation for yaw rate |
Changelog for package autoware_vehicle_velocity_converter
1.1.0 (2025-05-01)
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(vehicle_velocity_converter): remove unused frame_id parameter and warning log (#1201) refactor(vehicle_velocity_converter): remove unused frame_id parameter and warning log Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(vehicle_velocity_converter): extract node from core logic (#1192)
* refactor(vehicle_velocity_converter): extract node into vehicle_velocity_converter_node Split the ROS node out of the core conversion logic, mirroring the autoware_stop_filter layout:
- vehicle_velocity_converter.{hpp,cpp}: core convert() logic only, no longer depends on rclcpp::Node
- vehicle_velocity_converter_node.{hpp,cpp}: new VehicleVelocityConverterNode class and component registration
- split tests into test_vehicle_velocity_converter (pure logic) and test_vehicle_velocity_converter_node (pub/sub integration)
- update CMakeLists.txt (separate _ros library, isolated gtest) and package.xml (ament_cmake_ros test dependency)
* refactor(vehicle_velocity_converter): make convert a member of VehicleVelocityConverter Turn the free convert() function into a VehicleVelocityConverter class that holds the frame-invariant settings (speed_scale_factor, stddev_vx, stddev_wz) supplied at construction, mirroring the StopFilter/StopFilterNode layout. The node now owns a single converter_ member instead of three loose doubles, and the callback becomes converter_.convert(*msg). Conversion behavior is unchanged.
* test(vehicle_velocity_converter): restructure node test with a fixture into AAA shape Move the ROS context, executor thread and test-side pub/sub wiring into a VehicleVelocityConverterNodeTest fixture (SetUp/TearDown + start_converter_node/publish_and_wait helpers) so the test body reads as plain Arrange/Act/Assert. Coverage is unchanged.
* test(vehicle_velocity_converter): compare float-derived twist fields with EXPECT_FLOAT_EQ The VelocityReport velocity fields are float while the Twist fields are double, so the converted values carry float rounding. Comparing them with EXPECT_FLOAT_EQ removes the static_cast<double>(...) on the expected literals while keeping the assertions correct. Covariance entries stay EXPECT_DOUBLE_EQ as they are pure double.
* test(vehicle_velocity_converter): drop redundant float suffixes and align node test helper EXPECT_FLOAT_EQ narrows both operands to float, so the F suffix on the expected literals is unnecessary. Also make the node test's make_velocity_report take double and cast internally, matching make_report in the logic test, so call sites use plain double literals.
- style(vehicle_velocity_converter): clarify AAA pattern
* test(vehicle_velocity_converter): poll for DDS discovery instead of fixed sleep ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Tran Huu Nhat Huy <<29034232+TranHuuNhatHuy@users.noreply.github.com>>
-
refactor(autoware_vehicle_velocity_converter): extract pure convert() and use XYZRPY_COV_IDX (#1151) Extract the VelocityReport-to-TwistWithCovarianceStamped conversion out of the ROS subscription callback into a pure, namespace-level free function convert(msg, speed_scale_factor, stddev_vx, stddev_wz); the callback now just calls it and publishes. This adds a deterministic, ROS-free seam for unit testing the conversion math. Replace the hand-written row-major covariance indices ([i + j * 6]) with the named autoware_utils_geometry::xyzrpy_covariance_index::XYZRPY_COV_IDX enum, matching the sibling autoware_gyro_odometer usage and removing the most error-prone magic in the file. Rewrite the tests as deterministic synchronous convert() calls that assert the full 36-element covariance (diagonal values and all off-diagonal entries zero), the zeroed unused twist fields, verbatim header copy, and scale-factor/sign edge cases, keeping one thin node-instantiation smoke test for the ROS wiring. This removes the executor thread, 200ms setup sleep, and 10ms poll loop. Behavior-preserving: the published message is byte-for-byte identical to before (the covariance enum indices map to the same array positions). Refs: autowarefoundation/autoware_core#1096
-
Contributors: Takahisa Ishikawa, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_sensing |
Launch files
- launch/vehicle_velocity_converter.launch.xml
-
- input_vehicle_velocity_topic [default: velocity_status]
- output_twist_with_covariance [default: twist_with_covariance]
- config_file [default: $(find-pkg-share autoware_vehicle_velocity_converter)/config/vehicle_velocity_converter.param.yaml]