Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takamasa Horibe
- Tanaka Taiki
- Makoto Kurihara
- Sho Iwasawa
- Kosuke Takeuchi
- Takayuki Murooka
- Kyoichi Sugahara
Authors
- Makoto Kurihara
- Takamasa Horibe
- Tanaka Taiki
autoware_raw_vehicle_cmd_converter
Overview
The raw_vehicle_command_converter is a crucial node in vehicle automation systems, responsible for translating desired steering and acceleration inputs into specific vehicle control commands. This process is achieved through a combination of a lookup table and an optional feedback control system.
Lookup Table
The core of the converter’s functionality lies in its use of a CSV-formatted lookup table. This table encapsulates the relationship between the throttle/brake pedal (depending on your vehicle control interface) and the corresponding vehicle acceleration across various speeds. The converter utilizes this data to accurately translate target accelerations into appropriate throttle/brake values.

Creation of Reference Data
Reference data for the lookup table is generated through the following steps:
- Data Collection: On a flat road, a constant value command (e.g., throttle/brake pedal) is applied to accelerate or decelerate the vehicle.
- Recording Data: During this phase, both the IMU acceleration and vehicle velocity data are recorded.
- CSV File Generation: A CSV file is created, detailing the relationship between command values, vehicle speed, and resulting acceleration.
Once the acceleration map is crafted, it should be loaded when the RawVehicleCmdConverter node is launched, with the file path defined in the launch file.
Auto-Calibration Tool
For ease of calibration and adjustments to the lookup table, an auto-calibration tool is available. More information and instructions for this tool can be found here.
Variable Gear Ratio (VGR)
This is a gear ratio for converting tire angle to steering angle. Generally, to improve operability, the gear ratio becomes dynamically larger as the speed increases or the steering angle becomes smaller. For a certain vehicle, data was acquired and the gear ratio was approximated by the following formula.
\[a + b \times v^2 - c \times \lvert \delta \rvert\]For that vehicle, the coefficients were as follows.
vgr_coef_a: 15.713
vgr_coef_b: 0.053
vgr_coef_c: 0.042
When convert_steer_cmd_method: "vgr" is selected, the node receives the control command from the controller as the desired tire angle and calculates the desired steering angle to output.
Also, when convert_actuation_to_steering_status: true, this node receives the actuation_status topic and calculates the steer tire angle from the steer_wheel_angle and publishes it.
Vehicle Adaptor
Under development
A feature that compensates for control commands according to the dynamic characteristics of the vehicle.
This feature works when use_vehicle_adaptor: true is set and requires control_horizon to be enabled, so you need to set enable_control_cmd_horizon_pub: true in the trajectory_follower node.
Latency Measurement
This node includes a latency measurement feature that tracks the time difference between receiving a control command and publishing the corresponding actuation command. The measured latency is published as a debug topic, which can be useful for performance monitoring and system optimization.
The latency is calculated as the time difference between the timestamp of the incoming control command and the current time when the actuation command is published. When the input control_cmd contains a timestamp that represents the time when the control module started processing (propagated through the control pipeline), the control_component_latency represents the overall processing time of the entire control module system.
Input topics
| Name | Type | Description |
|---|---|---|
~/input/control_cmd |
autoware_control_msgs::msg::Control | target velocity/acceleration/steering_angle/steering_angle_velocity is necessary to calculate actuation command. |
~/input/steering" |
autoware_vehicle_msgs::msg::SteeringReport | subscribe only when convert_actuation_to_steering_status: false. current status of steering used for steering feed back control |
~/input/odometry |
navigation_msgs::Odometry | twist topic in odometry is used. |
~/input/actuation_status |
tier4_vehicle_msgs::msg::ActuationStatus | actuation status is assumed to receive the same type of status as sent to the vehicle side. For example, if throttle/brake pedal/steer_wheel_angle is sent, the same type of status is received. In the case of steer_wheel_angle, it is used to calculate steer_tire_angle and VGR in this node. |
Input topics when vehicle_adaptor is enabled
| Name | Type | Description |
|---|---|---|
~/input/accel |
geometry_msgs::msg::AccelWithCovarianceStamped; | acceleration status |
~/input/operation_mode_state |
autoware_adapi_v1_msgs::msg::OperationModeState | operation mode status |
~/input/control_horizon |
autoware_control_msgs::msg::ControlHorizon | control horizon command |
Output topics
| Name | Type | Description |
|---|---|---|
~/output/actuation_cmd |
tier4_vehicle_msgs::msg::ActuationCommandStamped | actuation command for vehicle to apply mechanical input |
~/output/steering_status |
autoware_vehicle_msgs::msg::SteeringReport | publish only when convert_actuation_to_steering_status: true. steer tire angle is calculated from steer wheel angle and published. |
~/output/control_component_latency |
autoware_internal_debug_msgs::msg::Float64Stamped | control system latency measurement from control command reception to actuation command publication |
Parameters
{{ json_to_markdown(“vehicle/autoware_raw_vehicle_cmd_converter/schema/raw_vehicle_cmd_converter.schema.json”) }}
Limitation
The current feed back implementation is only applied to steering control.
Changelog for package autoware_raw_vehicle_cmd_converter
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(steer_offset_estimator): implement new steer offset estimator using kalman filter (#11911)
- refactor(steer_offset_estimator): restructure node and estimator implementation
- Updated the CMakeLists.txt to reflect new library and executable structure.
- Removed outdated README and added a new detailed README.md for better documentation.
- Introduced a new node class for steer offset estimation and refactored the estimator logic.
- Added utility functions for pose and steering calculations.
- Implemented tests for the estimator and utility functions to ensure reliability.
- Updated parameters in the schema and configuration files for improved clarity and functionality.
- Removed deprecated files and images to streamline the package. This commit enhances the overall architecture and usability of the steer offset estimator package.
- refactor(steer_offset_estimator): update CMake configuration and remove deprecated files
- Bump CMake minimum version to 3.14 and adjust project structure in CMakeLists.txt.
- Refactor library and executable definitions for clarity and maintainability.
- Remove the main.cpp file as the node is now defined in a separate header and source file.
- Update parameter comments in the configuration file for better clarity.
- Remove the glog dependency from package.xml to streamline dependencies. This commit enhances the organization and readability of the steer offset estimator package.
- docs(steer_offset_estimator): enhance README formatting for mathematical equations
- Improved the formatting of mathematical equations in the README.md to enhance readability by adding line breaks.
- Removed the monitoring section to streamline the documentation. This update aims to provide clearer guidance on the steering offset estimation algorithm and its implementation details.
- docs(steer_offset_estimator): add debug info output section to README
- docs(steer_offset_estimator): improve formatting of algorithm steps in README
- feat(steer_offset_estimator): enhance estimator parameters and update calculations
- Added new parameters: measurement_noise, denominator_floor, and covariance_floor to improve estimation stability.
- Refactored the update logic to incorporate Kalman gain and residual calculations, enhancing the accuracy of the steering offset estimation.
- Updated debug output to reflect new calculation metrics, including kalman_gain and residual. This commit improves the robustness and performance of the steer offset estimator by refining its parameterization and calculation methods.
- feat(steer_offset_estimator): add new parameters for enhanced estimation
- Introduced measurement_noise, denominator_floor, and covariance_floor parameters to the SteerOffsetEstimatorParameters structure.
- Updated the parameter loading function to accommodate the new parameters, improving the configurability of the estimator. This change aims to enhance the performance and stability of the steering offset estimation process by allowing for more precise parameter tuning.
- fix(steer_offset_estimator): update debug output to use standard deviation
- Modified the debug output format in the SteerOffsetEstimatorNode to replace covariance with standard deviation for clarity.
- This change enhances the readability of the debug information by providing a more intuitive metric for uncertainty.
- refactor(steer_offset_estimator): rename and restructure noise parameters for clarity
- Renamed measurement_noise to measurement_noise_covariance and added process_noise_covariance to the SteerOffsetEstimatorParameters structure for better clarity.
- Updated the parameter loading function to reflect these changes, enhancing the configurability of the estimator.
- Refactored the update logic to utilize the new covariance parameters, improving the accuracy of the steering offset estimation. This commit aims to streamline the parameterization and enhance the performance of the steer offset estimator.
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/raw_vehicle_converter.launch.xml
-
- input_control_cmd [default: /control/command/control_cmd]
- input_odometry [default: /localization/kinematic_state]
- input_accel [default: /localization/acceleration]
- input_steering [default: /vehicle/status/steering_status]
- input_actuation_status [default: /vehicle/status/actuation_status]
- input_operation_mode_state [default: /system/operation_mode/state]
- input_control_horizon [default: /control/trajectory_follower/controller_node_exe/debug/control_cmd_horizon]
- output_actuation_cmd [default: /control/command/actuation_cmd]
- output_steering_status [default: /vehicle/status/steering_status]
- output_control_component_latency [default: /control/control_component_latency]
- config_file [default: $(find-pkg-share autoware_raw_vehicle_cmd_converter)/config/raw_vehicle_cmd_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_raw_vehicle_cmd_converter at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takamasa Horibe
- Tanaka Taiki
- Makoto Kurihara
- Sho Iwasawa
- Kosuke Takeuchi
- Takayuki Murooka
- Kyoichi Sugahara
Authors
- Makoto Kurihara
- Takamasa Horibe
- Tanaka Taiki
autoware_raw_vehicle_cmd_converter
Overview
The raw_vehicle_command_converter is a crucial node in vehicle automation systems, responsible for translating desired steering and acceleration inputs into specific vehicle control commands. This process is achieved through a combination of a lookup table and an optional feedback control system.
Lookup Table
The core of the converter’s functionality lies in its use of a CSV-formatted lookup table. This table encapsulates the relationship between the throttle/brake pedal (depending on your vehicle control interface) and the corresponding vehicle acceleration across various speeds. The converter utilizes this data to accurately translate target accelerations into appropriate throttle/brake values.

Creation of Reference Data
Reference data for the lookup table is generated through the following steps:
- Data Collection: On a flat road, a constant value command (e.g., throttle/brake pedal) is applied to accelerate or decelerate the vehicle.
- Recording Data: During this phase, both the IMU acceleration and vehicle velocity data are recorded.
- CSV File Generation: A CSV file is created, detailing the relationship between command values, vehicle speed, and resulting acceleration.
Once the acceleration map is crafted, it should be loaded when the RawVehicleCmdConverter node is launched, with the file path defined in the launch file.
Auto-Calibration Tool
For ease of calibration and adjustments to the lookup table, an auto-calibration tool is available. More information and instructions for this tool can be found here.
Variable Gear Ratio (VGR)
This is a gear ratio for converting tire angle to steering angle. Generally, to improve operability, the gear ratio becomes dynamically larger as the speed increases or the steering angle becomes smaller. For a certain vehicle, data was acquired and the gear ratio was approximated by the following formula.
\[a + b \times v^2 - c \times \lvert \delta \rvert\]For that vehicle, the coefficients were as follows.
vgr_coef_a: 15.713
vgr_coef_b: 0.053
vgr_coef_c: 0.042
When convert_steer_cmd_method: "vgr" is selected, the node receives the control command from the controller as the desired tire angle and calculates the desired steering angle to output.
Also, when convert_actuation_to_steering_status: true, this node receives the actuation_status topic and calculates the steer tire angle from the steer_wheel_angle and publishes it.
Vehicle Adaptor
Under development
A feature that compensates for control commands according to the dynamic characteristics of the vehicle.
This feature works when use_vehicle_adaptor: true is set and requires control_horizon to be enabled, so you need to set enable_control_cmd_horizon_pub: true in the trajectory_follower node.
Latency Measurement
This node includes a latency measurement feature that tracks the time difference between receiving a control command and publishing the corresponding actuation command. The measured latency is published as a debug topic, which can be useful for performance monitoring and system optimization.
The latency is calculated as the time difference between the timestamp of the incoming control command and the current time when the actuation command is published. When the input control_cmd contains a timestamp that represents the time when the control module started processing (propagated through the control pipeline), the control_component_latency represents the overall processing time of the entire control module system.
Input topics
| Name | Type | Description |
|---|---|---|
~/input/control_cmd |
autoware_control_msgs::msg::Control | target velocity/acceleration/steering_angle/steering_angle_velocity is necessary to calculate actuation command. |
~/input/steering" |
autoware_vehicle_msgs::msg::SteeringReport | subscribe only when convert_actuation_to_steering_status: false. current status of steering used for steering feed back control |
~/input/odometry |
navigation_msgs::Odometry | twist topic in odometry is used. |
~/input/actuation_status |
tier4_vehicle_msgs::msg::ActuationStatus | actuation status is assumed to receive the same type of status as sent to the vehicle side. For example, if throttle/brake pedal/steer_wheel_angle is sent, the same type of status is received. In the case of steer_wheel_angle, it is used to calculate steer_tire_angle and VGR in this node. |
Input topics when vehicle_adaptor is enabled
| Name | Type | Description |
|---|---|---|
~/input/accel |
geometry_msgs::msg::AccelWithCovarianceStamped; | acceleration status |
~/input/operation_mode_state |
autoware_adapi_v1_msgs::msg::OperationModeState | operation mode status |
~/input/control_horizon |
autoware_control_msgs::msg::ControlHorizon | control horizon command |
Output topics
| Name | Type | Description |
|---|---|---|
~/output/actuation_cmd |
tier4_vehicle_msgs::msg::ActuationCommandStamped | actuation command for vehicle to apply mechanical input |
~/output/steering_status |
autoware_vehicle_msgs::msg::SteeringReport | publish only when convert_actuation_to_steering_status: true. steer tire angle is calculated from steer wheel angle and published. |
~/output/control_component_latency |
autoware_internal_debug_msgs::msg::Float64Stamped | control system latency measurement from control command reception to actuation command publication |
Parameters
{{ json_to_markdown(“vehicle/autoware_raw_vehicle_cmd_converter/schema/raw_vehicle_cmd_converter.schema.json”) }}
Limitation
The current feed back implementation is only applied to steering control.
Changelog for package autoware_raw_vehicle_cmd_converter
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(steer_offset_estimator): implement new steer offset estimator using kalman filter (#11911)
- refactor(steer_offset_estimator): restructure node and estimator implementation
- Updated the CMakeLists.txt to reflect new library and executable structure.
- Removed outdated README and added a new detailed README.md for better documentation.
- Introduced a new node class for steer offset estimation and refactored the estimator logic.
- Added utility functions for pose and steering calculations.
- Implemented tests for the estimator and utility functions to ensure reliability.
- Updated parameters in the schema and configuration files for improved clarity and functionality.
- Removed deprecated files and images to streamline the package. This commit enhances the overall architecture and usability of the steer offset estimator package.
- refactor(steer_offset_estimator): update CMake configuration and remove deprecated files
- Bump CMake minimum version to 3.14 and adjust project structure in CMakeLists.txt.
- Refactor library and executable definitions for clarity and maintainability.
- Remove the main.cpp file as the node is now defined in a separate header and source file.
- Update parameter comments in the configuration file for better clarity.
- Remove the glog dependency from package.xml to streamline dependencies. This commit enhances the organization and readability of the steer offset estimator package.
- docs(steer_offset_estimator): enhance README formatting for mathematical equations
- Improved the formatting of mathematical equations in the README.md to enhance readability by adding line breaks.
- Removed the monitoring section to streamline the documentation. This update aims to provide clearer guidance on the steering offset estimation algorithm and its implementation details.
- docs(steer_offset_estimator): add debug info output section to README
- docs(steer_offset_estimator): improve formatting of algorithm steps in README
- feat(steer_offset_estimator): enhance estimator parameters and update calculations
- Added new parameters: measurement_noise, denominator_floor, and covariance_floor to improve estimation stability.
- Refactored the update logic to incorporate Kalman gain and residual calculations, enhancing the accuracy of the steering offset estimation.
- Updated debug output to reflect new calculation metrics, including kalman_gain and residual. This commit improves the robustness and performance of the steer offset estimator by refining its parameterization and calculation methods.
- feat(steer_offset_estimator): add new parameters for enhanced estimation
- Introduced measurement_noise, denominator_floor, and covariance_floor parameters to the SteerOffsetEstimatorParameters structure.
- Updated the parameter loading function to accommodate the new parameters, improving the configurability of the estimator. This change aims to enhance the performance and stability of the steering offset estimation process by allowing for more precise parameter tuning.
- fix(steer_offset_estimator): update debug output to use standard deviation
- Modified the debug output format in the SteerOffsetEstimatorNode to replace covariance with standard deviation for clarity.
- This change enhances the readability of the debug information by providing a more intuitive metric for uncertainty.
- refactor(steer_offset_estimator): rename and restructure noise parameters for clarity
- Renamed measurement_noise to measurement_noise_covariance and added process_noise_covariance to the SteerOffsetEstimatorParameters structure for better clarity.
- Updated the parameter loading function to reflect these changes, enhancing the configurability of the estimator.
- Refactored the update logic to utilize the new covariance parameters, improving the accuracy of the steering offset estimation. This commit aims to streamline the parameterization and enhance the performance of the steer offset estimator.
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/raw_vehicle_converter.launch.xml
-
- input_control_cmd [default: /control/command/control_cmd]
- input_odometry [default: /localization/kinematic_state]
- input_accel [default: /localization/acceleration]
- input_steering [default: /vehicle/status/steering_status]
- input_actuation_status [default: /vehicle/status/actuation_status]
- input_operation_mode_state [default: /system/operation_mode/state]
- input_control_horizon [default: /control/trajectory_follower/controller_node_exe/debug/control_cmd_horizon]
- output_actuation_cmd [default: /control/command/actuation_cmd]
- output_steering_status [default: /vehicle/status/steering_status]
- output_control_component_latency [default: /control/control_component_latency]
- config_file [default: $(find-pkg-share autoware_raw_vehicle_cmd_converter)/config/raw_vehicle_cmd_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_raw_vehicle_cmd_converter at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takamasa Horibe
- Tanaka Taiki
- Makoto Kurihara
- Sho Iwasawa
- Kosuke Takeuchi
- Takayuki Murooka
- Kyoichi Sugahara
Authors
- Makoto Kurihara
- Takamasa Horibe
- Tanaka Taiki
autoware_raw_vehicle_cmd_converter
Overview
The raw_vehicle_command_converter is a crucial node in vehicle automation systems, responsible for translating desired steering and acceleration inputs into specific vehicle control commands. This process is achieved through a combination of a lookup table and an optional feedback control system.
Lookup Table
The core of the converter’s functionality lies in its use of a CSV-formatted lookup table. This table encapsulates the relationship between the throttle/brake pedal (depending on your vehicle control interface) and the corresponding vehicle acceleration across various speeds. The converter utilizes this data to accurately translate target accelerations into appropriate throttle/brake values.

Creation of Reference Data
Reference data for the lookup table is generated through the following steps:
- Data Collection: On a flat road, a constant value command (e.g., throttle/brake pedal) is applied to accelerate or decelerate the vehicle.
- Recording Data: During this phase, both the IMU acceleration and vehicle velocity data are recorded.
- CSV File Generation: A CSV file is created, detailing the relationship between command values, vehicle speed, and resulting acceleration.
Once the acceleration map is crafted, it should be loaded when the RawVehicleCmdConverter node is launched, with the file path defined in the launch file.
Auto-Calibration Tool
For ease of calibration and adjustments to the lookup table, an auto-calibration tool is available. More information and instructions for this tool can be found here.
Variable Gear Ratio (VGR)
This is a gear ratio for converting tire angle to steering angle. Generally, to improve operability, the gear ratio becomes dynamically larger as the speed increases or the steering angle becomes smaller. For a certain vehicle, data was acquired and the gear ratio was approximated by the following formula.
\[a + b \times v^2 - c \times \lvert \delta \rvert\]For that vehicle, the coefficients were as follows.
vgr_coef_a: 15.713
vgr_coef_b: 0.053
vgr_coef_c: 0.042
When convert_steer_cmd_method: "vgr" is selected, the node receives the control command from the controller as the desired tire angle and calculates the desired steering angle to output.
Also, when convert_actuation_to_steering_status: true, this node receives the actuation_status topic and calculates the steer tire angle from the steer_wheel_angle and publishes it.
Vehicle Adaptor
Under development
A feature that compensates for control commands according to the dynamic characteristics of the vehicle.
This feature works when use_vehicle_adaptor: true is set and requires control_horizon to be enabled, so you need to set enable_control_cmd_horizon_pub: true in the trajectory_follower node.
Latency Measurement
This node includes a latency measurement feature that tracks the time difference between receiving a control command and publishing the corresponding actuation command. The measured latency is published as a debug topic, which can be useful for performance monitoring and system optimization.
The latency is calculated as the time difference between the timestamp of the incoming control command and the current time when the actuation command is published. When the input control_cmd contains a timestamp that represents the time when the control module started processing (propagated through the control pipeline), the control_component_latency represents the overall processing time of the entire control module system.
Input topics
| Name | Type | Description |
|---|---|---|
~/input/control_cmd |
autoware_control_msgs::msg::Control | target velocity/acceleration/steering_angle/steering_angle_velocity is necessary to calculate actuation command. |
~/input/steering" |
autoware_vehicle_msgs::msg::SteeringReport | subscribe only when convert_actuation_to_steering_status: false. current status of steering used for steering feed back control |
~/input/odometry |
navigation_msgs::Odometry | twist topic in odometry is used. |
~/input/actuation_status |
tier4_vehicle_msgs::msg::ActuationStatus | actuation status is assumed to receive the same type of status as sent to the vehicle side. For example, if throttle/brake pedal/steer_wheel_angle is sent, the same type of status is received. In the case of steer_wheel_angle, it is used to calculate steer_tire_angle and VGR in this node. |
Input topics when vehicle_adaptor is enabled
| Name | Type | Description |
|---|---|---|
~/input/accel |
geometry_msgs::msg::AccelWithCovarianceStamped; | acceleration status |
~/input/operation_mode_state |
autoware_adapi_v1_msgs::msg::OperationModeState | operation mode status |
~/input/control_horizon |
autoware_control_msgs::msg::ControlHorizon | control horizon command |
Output topics
| Name | Type | Description |
|---|---|---|
~/output/actuation_cmd |
tier4_vehicle_msgs::msg::ActuationCommandStamped | actuation command for vehicle to apply mechanical input |
~/output/steering_status |
autoware_vehicle_msgs::msg::SteeringReport | publish only when convert_actuation_to_steering_status: true. steer tire angle is calculated from steer wheel angle and published. |
~/output/control_component_latency |
autoware_internal_debug_msgs::msg::Float64Stamped | control system latency measurement from control command reception to actuation command publication |
Parameters
{{ json_to_markdown(“vehicle/autoware_raw_vehicle_cmd_converter/schema/raw_vehicle_cmd_converter.schema.json”) }}
Limitation
The current feed back implementation is only applied to steering control.
Changelog for package autoware_raw_vehicle_cmd_converter
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(steer_offset_estimator): implement new steer offset estimator using kalman filter (#11911)
- refactor(steer_offset_estimator): restructure node and estimator implementation
- Updated the CMakeLists.txt to reflect new library and executable structure.
- Removed outdated README and added a new detailed README.md for better documentation.
- Introduced a new node class for steer offset estimation and refactored the estimator logic.
- Added utility functions for pose and steering calculations.
- Implemented tests for the estimator and utility functions to ensure reliability.
- Updated parameters in the schema and configuration files for improved clarity and functionality.
- Removed deprecated files and images to streamline the package. This commit enhances the overall architecture and usability of the steer offset estimator package.
- refactor(steer_offset_estimator): update CMake configuration and remove deprecated files
- Bump CMake minimum version to 3.14 and adjust project structure in CMakeLists.txt.
- Refactor library and executable definitions for clarity and maintainability.
- Remove the main.cpp file as the node is now defined in a separate header and source file.
- Update parameter comments in the configuration file for better clarity.
- Remove the glog dependency from package.xml to streamline dependencies. This commit enhances the organization and readability of the steer offset estimator package.
- docs(steer_offset_estimator): enhance README formatting for mathematical equations
- Improved the formatting of mathematical equations in the README.md to enhance readability by adding line breaks.
- Removed the monitoring section to streamline the documentation. This update aims to provide clearer guidance on the steering offset estimation algorithm and its implementation details.
- docs(steer_offset_estimator): add debug info output section to README
- docs(steer_offset_estimator): improve formatting of algorithm steps in README
- feat(steer_offset_estimator): enhance estimator parameters and update calculations
- Added new parameters: measurement_noise, denominator_floor, and covariance_floor to improve estimation stability.
- Refactored the update logic to incorporate Kalman gain and residual calculations, enhancing the accuracy of the steering offset estimation.
- Updated debug output to reflect new calculation metrics, including kalman_gain and residual. This commit improves the robustness and performance of the steer offset estimator by refining its parameterization and calculation methods.
- feat(steer_offset_estimator): add new parameters for enhanced estimation
- Introduced measurement_noise, denominator_floor, and covariance_floor parameters to the SteerOffsetEstimatorParameters structure.
- Updated the parameter loading function to accommodate the new parameters, improving the configurability of the estimator. This change aims to enhance the performance and stability of the steering offset estimation process by allowing for more precise parameter tuning.
- fix(steer_offset_estimator): update debug output to use standard deviation
- Modified the debug output format in the SteerOffsetEstimatorNode to replace covariance with standard deviation for clarity.
- This change enhances the readability of the debug information by providing a more intuitive metric for uncertainty.
- refactor(steer_offset_estimator): rename and restructure noise parameters for clarity
- Renamed measurement_noise to measurement_noise_covariance and added process_noise_covariance to the SteerOffsetEstimatorParameters structure for better clarity.
- Updated the parameter loading function to reflect these changes, enhancing the configurability of the estimator.
- Refactored the update logic to utilize the new covariance parameters, improving the accuracy of the steering offset estimation. This commit aims to streamline the parameterization and enhance the performance of the steer offset estimator.
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/raw_vehicle_converter.launch.xml
-
- input_control_cmd [default: /control/command/control_cmd]
- input_odometry [default: /localization/kinematic_state]
- input_accel [default: /localization/acceleration]
- input_steering [default: /vehicle/status/steering_status]
- input_actuation_status [default: /vehicle/status/actuation_status]
- input_operation_mode_state [default: /system/operation_mode/state]
- input_control_horizon [default: /control/trajectory_follower/controller_node_exe/debug/control_cmd_horizon]
- output_actuation_cmd [default: /control/command/actuation_cmd]
- output_steering_status [default: /vehicle/status/steering_status]
- output_control_component_latency [default: /control/control_component_latency]
- config_file [default: $(find-pkg-share autoware_raw_vehicle_cmd_converter)/config/raw_vehicle_cmd_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_raw_vehicle_cmd_converter at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takamasa Horibe
- Tanaka Taiki
- Makoto Kurihara
- Sho Iwasawa
- Kosuke Takeuchi
- Takayuki Murooka
- Kyoichi Sugahara
Authors
- Makoto Kurihara
- Takamasa Horibe
- Tanaka Taiki
autoware_raw_vehicle_cmd_converter
Overview
The raw_vehicle_command_converter is a crucial node in vehicle automation systems, responsible for translating desired steering and acceleration inputs into specific vehicle control commands. This process is achieved through a combination of a lookup table and an optional feedback control system.
Lookup Table
The core of the converter’s functionality lies in its use of a CSV-formatted lookup table. This table encapsulates the relationship between the throttle/brake pedal (depending on your vehicle control interface) and the corresponding vehicle acceleration across various speeds. The converter utilizes this data to accurately translate target accelerations into appropriate throttle/brake values.

Creation of Reference Data
Reference data for the lookup table is generated through the following steps:
- Data Collection: On a flat road, a constant value command (e.g., throttle/brake pedal) is applied to accelerate or decelerate the vehicle.
- Recording Data: During this phase, both the IMU acceleration and vehicle velocity data are recorded.
- CSV File Generation: A CSV file is created, detailing the relationship between command values, vehicle speed, and resulting acceleration.
Once the acceleration map is crafted, it should be loaded when the RawVehicleCmdConverter node is launched, with the file path defined in the launch file.
Auto-Calibration Tool
For ease of calibration and adjustments to the lookup table, an auto-calibration tool is available. More information and instructions for this tool can be found here.
Variable Gear Ratio (VGR)
This is a gear ratio for converting tire angle to steering angle. Generally, to improve operability, the gear ratio becomes dynamically larger as the speed increases or the steering angle becomes smaller. For a certain vehicle, data was acquired and the gear ratio was approximated by the following formula.
\[a + b \times v^2 - c \times \lvert \delta \rvert\]For that vehicle, the coefficients were as follows.
vgr_coef_a: 15.713
vgr_coef_b: 0.053
vgr_coef_c: 0.042
When convert_steer_cmd_method: "vgr" is selected, the node receives the control command from the controller as the desired tire angle and calculates the desired steering angle to output.
Also, when convert_actuation_to_steering_status: true, this node receives the actuation_status topic and calculates the steer tire angle from the steer_wheel_angle and publishes it.
Vehicle Adaptor
Under development
A feature that compensates for control commands according to the dynamic characteristics of the vehicle.
This feature works when use_vehicle_adaptor: true is set and requires control_horizon to be enabled, so you need to set enable_control_cmd_horizon_pub: true in the trajectory_follower node.
Latency Measurement
This node includes a latency measurement feature that tracks the time difference between receiving a control command and publishing the corresponding actuation command. The measured latency is published as a debug topic, which can be useful for performance monitoring and system optimization.
The latency is calculated as the time difference between the timestamp of the incoming control command and the current time when the actuation command is published. When the input control_cmd contains a timestamp that represents the time when the control module started processing (propagated through the control pipeline), the control_component_latency represents the overall processing time of the entire control module system.
Input topics
| Name | Type | Description |
|---|---|---|
~/input/control_cmd |
autoware_control_msgs::msg::Control | target velocity/acceleration/steering_angle/steering_angle_velocity is necessary to calculate actuation command. |
~/input/steering" |
autoware_vehicle_msgs::msg::SteeringReport | subscribe only when convert_actuation_to_steering_status: false. current status of steering used for steering feed back control |
~/input/odometry |
navigation_msgs::Odometry | twist topic in odometry is used. |
~/input/actuation_status |
tier4_vehicle_msgs::msg::ActuationStatus | actuation status is assumed to receive the same type of status as sent to the vehicle side. For example, if throttle/brake pedal/steer_wheel_angle is sent, the same type of status is received. In the case of steer_wheel_angle, it is used to calculate steer_tire_angle and VGR in this node. |
Input topics when vehicle_adaptor is enabled
| Name | Type | Description |
|---|---|---|
~/input/accel |
geometry_msgs::msg::AccelWithCovarianceStamped; | acceleration status |
~/input/operation_mode_state |
autoware_adapi_v1_msgs::msg::OperationModeState | operation mode status |
~/input/control_horizon |
autoware_control_msgs::msg::ControlHorizon | control horizon command |
Output topics
| Name | Type | Description |
|---|---|---|
~/output/actuation_cmd |
tier4_vehicle_msgs::msg::ActuationCommandStamped | actuation command for vehicle to apply mechanical input |
~/output/steering_status |
autoware_vehicle_msgs::msg::SteeringReport | publish only when convert_actuation_to_steering_status: true. steer tire angle is calculated from steer wheel angle and published. |
~/output/control_component_latency |
autoware_internal_debug_msgs::msg::Float64Stamped | control system latency measurement from control command reception to actuation command publication |
Parameters
{{ json_to_markdown(“vehicle/autoware_raw_vehicle_cmd_converter/schema/raw_vehicle_cmd_converter.schema.json”) }}
Limitation
The current feed back implementation is only applied to steering control.
Changelog for package autoware_raw_vehicle_cmd_converter
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(steer_offset_estimator): implement new steer offset estimator using kalman filter (#11911)
- refactor(steer_offset_estimator): restructure node and estimator implementation
- Updated the CMakeLists.txt to reflect new library and executable structure.
- Removed outdated README and added a new detailed README.md for better documentation.
- Introduced a new node class for steer offset estimation and refactored the estimator logic.
- Added utility functions for pose and steering calculations.
- Implemented tests for the estimator and utility functions to ensure reliability.
- Updated parameters in the schema and configuration files for improved clarity and functionality.
- Removed deprecated files and images to streamline the package. This commit enhances the overall architecture and usability of the steer offset estimator package.
- refactor(steer_offset_estimator): update CMake configuration and remove deprecated files
- Bump CMake minimum version to 3.14 and adjust project structure in CMakeLists.txt.
- Refactor library and executable definitions for clarity and maintainability.
- Remove the main.cpp file as the node is now defined in a separate header and source file.
- Update parameter comments in the configuration file for better clarity.
- Remove the glog dependency from package.xml to streamline dependencies. This commit enhances the organization and readability of the steer offset estimator package.
- docs(steer_offset_estimator): enhance README formatting for mathematical equations
- Improved the formatting of mathematical equations in the README.md to enhance readability by adding line breaks.
- Removed the monitoring section to streamline the documentation. This update aims to provide clearer guidance on the steering offset estimation algorithm and its implementation details.
- docs(steer_offset_estimator): add debug info output section to README
- docs(steer_offset_estimator): improve formatting of algorithm steps in README
- feat(steer_offset_estimator): enhance estimator parameters and update calculations
- Added new parameters: measurement_noise, denominator_floor, and covariance_floor to improve estimation stability.
- Refactored the update logic to incorporate Kalman gain and residual calculations, enhancing the accuracy of the steering offset estimation.
- Updated debug output to reflect new calculation metrics, including kalman_gain and residual. This commit improves the robustness and performance of the steer offset estimator by refining its parameterization and calculation methods.
- feat(steer_offset_estimator): add new parameters for enhanced estimation
- Introduced measurement_noise, denominator_floor, and covariance_floor parameters to the SteerOffsetEstimatorParameters structure.
- Updated the parameter loading function to accommodate the new parameters, improving the configurability of the estimator. This change aims to enhance the performance and stability of the steering offset estimation process by allowing for more precise parameter tuning.
- fix(steer_offset_estimator): update debug output to use standard deviation
- Modified the debug output format in the SteerOffsetEstimatorNode to replace covariance with standard deviation for clarity.
- This change enhances the readability of the debug information by providing a more intuitive metric for uncertainty.
- refactor(steer_offset_estimator): rename and restructure noise parameters for clarity
- Renamed measurement_noise to measurement_noise_covariance and added process_noise_covariance to the SteerOffsetEstimatorParameters structure for better clarity.
- Updated the parameter loading function to reflect these changes, enhancing the configurability of the estimator.
- Refactored the update logic to utilize the new covariance parameters, improving the accuracy of the steering offset estimation. This commit aims to streamline the parameterization and enhance the performance of the steer offset estimator.
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/raw_vehicle_converter.launch.xml
-
- input_control_cmd [default: /control/command/control_cmd]
- input_odometry [default: /localization/kinematic_state]
- input_accel [default: /localization/acceleration]
- input_steering [default: /vehicle/status/steering_status]
- input_actuation_status [default: /vehicle/status/actuation_status]
- input_operation_mode_state [default: /system/operation_mode/state]
- input_control_horizon [default: /control/trajectory_follower/controller_node_exe/debug/control_cmd_horizon]
- output_actuation_cmd [default: /control/command/actuation_cmd]
- output_steering_status [default: /vehicle/status/steering_status]
- output_control_component_latency [default: /control/control_component_latency]
- config_file [default: $(find-pkg-share autoware_raw_vehicle_cmd_converter)/config/raw_vehicle_cmd_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_raw_vehicle_cmd_converter at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takamasa Horibe
- Tanaka Taiki
- Makoto Kurihara
- Sho Iwasawa
- Kosuke Takeuchi
- Takayuki Murooka
- Kyoichi Sugahara
Authors
- Makoto Kurihara
- Takamasa Horibe
- Tanaka Taiki
autoware_raw_vehicle_cmd_converter
Overview
The raw_vehicle_command_converter is a crucial node in vehicle automation systems, responsible for translating desired steering and acceleration inputs into specific vehicle control commands. This process is achieved through a combination of a lookup table and an optional feedback control system.
Lookup Table
The core of the converter’s functionality lies in its use of a CSV-formatted lookup table. This table encapsulates the relationship between the throttle/brake pedal (depending on your vehicle control interface) and the corresponding vehicle acceleration across various speeds. The converter utilizes this data to accurately translate target accelerations into appropriate throttle/brake values.

Creation of Reference Data
Reference data for the lookup table is generated through the following steps:
- Data Collection: On a flat road, a constant value command (e.g., throttle/brake pedal) is applied to accelerate or decelerate the vehicle.
- Recording Data: During this phase, both the IMU acceleration and vehicle velocity data are recorded.
- CSV File Generation: A CSV file is created, detailing the relationship between command values, vehicle speed, and resulting acceleration.
Once the acceleration map is crafted, it should be loaded when the RawVehicleCmdConverter node is launched, with the file path defined in the launch file.
Auto-Calibration Tool
For ease of calibration and adjustments to the lookup table, an auto-calibration tool is available. More information and instructions for this tool can be found here.
Variable Gear Ratio (VGR)
This is a gear ratio for converting tire angle to steering angle. Generally, to improve operability, the gear ratio becomes dynamically larger as the speed increases or the steering angle becomes smaller. For a certain vehicle, data was acquired and the gear ratio was approximated by the following formula.
\[a + b \times v^2 - c \times \lvert \delta \rvert\]For that vehicle, the coefficients were as follows.
vgr_coef_a: 15.713
vgr_coef_b: 0.053
vgr_coef_c: 0.042
When convert_steer_cmd_method: "vgr" is selected, the node receives the control command from the controller as the desired tire angle and calculates the desired steering angle to output.
Also, when convert_actuation_to_steering_status: true, this node receives the actuation_status topic and calculates the steer tire angle from the steer_wheel_angle and publishes it.
Vehicle Adaptor
Under development
A feature that compensates for control commands according to the dynamic characteristics of the vehicle.
This feature works when use_vehicle_adaptor: true is set and requires control_horizon to be enabled, so you need to set enable_control_cmd_horizon_pub: true in the trajectory_follower node.
Latency Measurement
This node includes a latency measurement feature that tracks the time difference between receiving a control command and publishing the corresponding actuation command. The measured latency is published as a debug topic, which can be useful for performance monitoring and system optimization.
The latency is calculated as the time difference between the timestamp of the incoming control command and the current time when the actuation command is published. When the input control_cmd contains a timestamp that represents the time when the control module started processing (propagated through the control pipeline), the control_component_latency represents the overall processing time of the entire control module system.
Input topics
| Name | Type | Description |
|---|---|---|
~/input/control_cmd |
autoware_control_msgs::msg::Control | target velocity/acceleration/steering_angle/steering_angle_velocity is necessary to calculate actuation command. |
~/input/steering" |
autoware_vehicle_msgs::msg::SteeringReport | subscribe only when convert_actuation_to_steering_status: false. current status of steering used for steering feed back control |
~/input/odometry |
navigation_msgs::Odometry | twist topic in odometry is used. |
~/input/actuation_status |
tier4_vehicle_msgs::msg::ActuationStatus | actuation status is assumed to receive the same type of status as sent to the vehicle side. For example, if throttle/brake pedal/steer_wheel_angle is sent, the same type of status is received. In the case of steer_wheel_angle, it is used to calculate steer_tire_angle and VGR in this node. |
Input topics when vehicle_adaptor is enabled
| Name | Type | Description |
|---|---|---|
~/input/accel |
geometry_msgs::msg::AccelWithCovarianceStamped; | acceleration status |
~/input/operation_mode_state |
autoware_adapi_v1_msgs::msg::OperationModeState | operation mode status |
~/input/control_horizon |
autoware_control_msgs::msg::ControlHorizon | control horizon command |
Output topics
| Name | Type | Description |
|---|---|---|
~/output/actuation_cmd |
tier4_vehicle_msgs::msg::ActuationCommandStamped | actuation command for vehicle to apply mechanical input |
~/output/steering_status |
autoware_vehicle_msgs::msg::SteeringReport | publish only when convert_actuation_to_steering_status: true. steer tire angle is calculated from steer wheel angle and published. |
~/output/control_component_latency |
autoware_internal_debug_msgs::msg::Float64Stamped | control system latency measurement from control command reception to actuation command publication |
Parameters
{{ json_to_markdown(“vehicle/autoware_raw_vehicle_cmd_converter/schema/raw_vehicle_cmd_converter.schema.json”) }}
Limitation
The current feed back implementation is only applied to steering control.
Changelog for package autoware_raw_vehicle_cmd_converter
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(steer_offset_estimator): implement new steer offset estimator using kalman filter (#11911)
- refactor(steer_offset_estimator): restructure node and estimator implementation
- Updated the CMakeLists.txt to reflect new library and executable structure.
- Removed outdated README and added a new detailed README.md for better documentation.
- Introduced a new node class for steer offset estimation and refactored the estimator logic.
- Added utility functions for pose and steering calculations.
- Implemented tests for the estimator and utility functions to ensure reliability.
- Updated parameters in the schema and configuration files for improved clarity and functionality.
- Removed deprecated files and images to streamline the package. This commit enhances the overall architecture and usability of the steer offset estimator package.
- refactor(steer_offset_estimator): update CMake configuration and remove deprecated files
- Bump CMake minimum version to 3.14 and adjust project structure in CMakeLists.txt.
- Refactor library and executable definitions for clarity and maintainability.
- Remove the main.cpp file as the node is now defined in a separate header and source file.
- Update parameter comments in the configuration file for better clarity.
- Remove the glog dependency from package.xml to streamline dependencies. This commit enhances the organization and readability of the steer offset estimator package.
- docs(steer_offset_estimator): enhance README formatting for mathematical equations
- Improved the formatting of mathematical equations in the README.md to enhance readability by adding line breaks.
- Removed the monitoring section to streamline the documentation. This update aims to provide clearer guidance on the steering offset estimation algorithm and its implementation details.
- docs(steer_offset_estimator): add debug info output section to README
- docs(steer_offset_estimator): improve formatting of algorithm steps in README
- feat(steer_offset_estimator): enhance estimator parameters and update calculations
- Added new parameters: measurement_noise, denominator_floor, and covariance_floor to improve estimation stability.
- Refactored the update logic to incorporate Kalman gain and residual calculations, enhancing the accuracy of the steering offset estimation.
- Updated debug output to reflect new calculation metrics, including kalman_gain and residual. This commit improves the robustness and performance of the steer offset estimator by refining its parameterization and calculation methods.
- feat(steer_offset_estimator): add new parameters for enhanced estimation
- Introduced measurement_noise, denominator_floor, and covariance_floor parameters to the SteerOffsetEstimatorParameters structure.
- Updated the parameter loading function to accommodate the new parameters, improving the configurability of the estimator. This change aims to enhance the performance and stability of the steering offset estimation process by allowing for more precise parameter tuning.
- fix(steer_offset_estimator): update debug output to use standard deviation
- Modified the debug output format in the SteerOffsetEstimatorNode to replace covariance with standard deviation for clarity.
- This change enhances the readability of the debug information by providing a more intuitive metric for uncertainty.
- refactor(steer_offset_estimator): rename and restructure noise parameters for clarity
- Renamed measurement_noise to measurement_noise_covariance and added process_noise_covariance to the SteerOffsetEstimatorParameters structure for better clarity.
- Updated the parameter loading function to reflect these changes, enhancing the configurability of the estimator.
- Refactored the update logic to utilize the new covariance parameters, improving the accuracy of the steering offset estimation. This commit aims to streamline the parameterization and enhance the performance of the steer offset estimator.
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/raw_vehicle_converter.launch.xml
-
- input_control_cmd [default: /control/command/control_cmd]
- input_odometry [default: /localization/kinematic_state]
- input_accel [default: /localization/acceleration]
- input_steering [default: /vehicle/status/steering_status]
- input_actuation_status [default: /vehicle/status/actuation_status]
- input_operation_mode_state [default: /system/operation_mode/state]
- input_control_horizon [default: /control/trajectory_follower/controller_node_exe/debug/control_cmd_horizon]
- output_actuation_cmd [default: /control/command/actuation_cmd]
- output_steering_status [default: /vehicle/status/steering_status]
- output_control_component_latency [default: /control/control_component_latency]
- config_file [default: $(find-pkg-share autoware_raw_vehicle_cmd_converter)/config/raw_vehicle_cmd_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_raw_vehicle_cmd_converter at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takamasa Horibe
- Tanaka Taiki
- Makoto Kurihara
- Sho Iwasawa
- Kosuke Takeuchi
- Takayuki Murooka
- Kyoichi Sugahara
Authors
- Makoto Kurihara
- Takamasa Horibe
- Tanaka Taiki
autoware_raw_vehicle_cmd_converter
Overview
The raw_vehicle_command_converter is a crucial node in vehicle automation systems, responsible for translating desired steering and acceleration inputs into specific vehicle control commands. This process is achieved through a combination of a lookup table and an optional feedback control system.
Lookup Table
The core of the converter’s functionality lies in its use of a CSV-formatted lookup table. This table encapsulates the relationship between the throttle/brake pedal (depending on your vehicle control interface) and the corresponding vehicle acceleration across various speeds. The converter utilizes this data to accurately translate target accelerations into appropriate throttle/brake values.

Creation of Reference Data
Reference data for the lookup table is generated through the following steps:
- Data Collection: On a flat road, a constant value command (e.g., throttle/brake pedal) is applied to accelerate or decelerate the vehicle.
- Recording Data: During this phase, both the IMU acceleration and vehicle velocity data are recorded.
- CSV File Generation: A CSV file is created, detailing the relationship between command values, vehicle speed, and resulting acceleration.
Once the acceleration map is crafted, it should be loaded when the RawVehicleCmdConverter node is launched, with the file path defined in the launch file.
Auto-Calibration Tool
For ease of calibration and adjustments to the lookup table, an auto-calibration tool is available. More information and instructions for this tool can be found here.
Variable Gear Ratio (VGR)
This is a gear ratio for converting tire angle to steering angle. Generally, to improve operability, the gear ratio becomes dynamically larger as the speed increases or the steering angle becomes smaller. For a certain vehicle, data was acquired and the gear ratio was approximated by the following formula.
\[a + b \times v^2 - c \times \lvert \delta \rvert\]For that vehicle, the coefficients were as follows.
vgr_coef_a: 15.713
vgr_coef_b: 0.053
vgr_coef_c: 0.042
When convert_steer_cmd_method: "vgr" is selected, the node receives the control command from the controller as the desired tire angle and calculates the desired steering angle to output.
Also, when convert_actuation_to_steering_status: true, this node receives the actuation_status topic and calculates the steer tire angle from the steer_wheel_angle and publishes it.
Vehicle Adaptor
Under development
A feature that compensates for control commands according to the dynamic characteristics of the vehicle.
This feature works when use_vehicle_adaptor: true is set and requires control_horizon to be enabled, so you need to set enable_control_cmd_horizon_pub: true in the trajectory_follower node.
Latency Measurement
This node includes a latency measurement feature that tracks the time difference between receiving a control command and publishing the corresponding actuation command. The measured latency is published as a debug topic, which can be useful for performance monitoring and system optimization.
The latency is calculated as the time difference between the timestamp of the incoming control command and the current time when the actuation command is published. When the input control_cmd contains a timestamp that represents the time when the control module started processing (propagated through the control pipeline), the control_component_latency represents the overall processing time of the entire control module system.
Input topics
| Name | Type | Description |
|---|---|---|
~/input/control_cmd |
autoware_control_msgs::msg::Control | target velocity/acceleration/steering_angle/steering_angle_velocity is necessary to calculate actuation command. |
~/input/steering" |
autoware_vehicle_msgs::msg::SteeringReport | subscribe only when convert_actuation_to_steering_status: false. current status of steering used for steering feed back control |
~/input/odometry |
navigation_msgs::Odometry | twist topic in odometry is used. |
~/input/actuation_status |
tier4_vehicle_msgs::msg::ActuationStatus | actuation status is assumed to receive the same type of status as sent to the vehicle side. For example, if throttle/brake pedal/steer_wheel_angle is sent, the same type of status is received. In the case of steer_wheel_angle, it is used to calculate steer_tire_angle and VGR in this node. |
Input topics when vehicle_adaptor is enabled
| Name | Type | Description |
|---|---|---|
~/input/accel |
geometry_msgs::msg::AccelWithCovarianceStamped; | acceleration status |
~/input/operation_mode_state |
autoware_adapi_v1_msgs::msg::OperationModeState | operation mode status |
~/input/control_horizon |
autoware_control_msgs::msg::ControlHorizon | control horizon command |
Output topics
| Name | Type | Description |
|---|---|---|
~/output/actuation_cmd |
tier4_vehicle_msgs::msg::ActuationCommandStamped | actuation command for vehicle to apply mechanical input |
~/output/steering_status |
autoware_vehicle_msgs::msg::SteeringReport | publish only when convert_actuation_to_steering_status: true. steer tire angle is calculated from steer wheel angle and published. |
~/output/control_component_latency |
autoware_internal_debug_msgs::msg::Float64Stamped | control system latency measurement from control command reception to actuation command publication |
Parameters
{{ json_to_markdown(“vehicle/autoware_raw_vehicle_cmd_converter/schema/raw_vehicle_cmd_converter.schema.json”) }}
Limitation
The current feed back implementation is only applied to steering control.
Changelog for package autoware_raw_vehicle_cmd_converter
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(steer_offset_estimator): implement new steer offset estimator using kalman filter (#11911)
- refactor(steer_offset_estimator): restructure node and estimator implementation
- Updated the CMakeLists.txt to reflect new library and executable structure.
- Removed outdated README and added a new detailed README.md for better documentation.
- Introduced a new node class for steer offset estimation and refactored the estimator logic.
- Added utility functions for pose and steering calculations.
- Implemented tests for the estimator and utility functions to ensure reliability.
- Updated parameters in the schema and configuration files for improved clarity and functionality.
- Removed deprecated files and images to streamline the package. This commit enhances the overall architecture and usability of the steer offset estimator package.
- refactor(steer_offset_estimator): update CMake configuration and remove deprecated files
- Bump CMake minimum version to 3.14 and adjust project structure in CMakeLists.txt.
- Refactor library and executable definitions for clarity and maintainability.
- Remove the main.cpp file as the node is now defined in a separate header and source file.
- Update parameter comments in the configuration file for better clarity.
- Remove the glog dependency from package.xml to streamline dependencies. This commit enhances the organization and readability of the steer offset estimator package.
- docs(steer_offset_estimator): enhance README formatting for mathematical equations
- Improved the formatting of mathematical equations in the README.md to enhance readability by adding line breaks.
- Removed the monitoring section to streamline the documentation. This update aims to provide clearer guidance on the steering offset estimation algorithm and its implementation details.
- docs(steer_offset_estimator): add debug info output section to README
- docs(steer_offset_estimator): improve formatting of algorithm steps in README
- feat(steer_offset_estimator): enhance estimator parameters and update calculations
- Added new parameters: measurement_noise, denominator_floor, and covariance_floor to improve estimation stability.
- Refactored the update logic to incorporate Kalman gain and residual calculations, enhancing the accuracy of the steering offset estimation.
- Updated debug output to reflect new calculation metrics, including kalman_gain and residual. This commit improves the robustness and performance of the steer offset estimator by refining its parameterization and calculation methods.
- feat(steer_offset_estimator): add new parameters for enhanced estimation
- Introduced measurement_noise, denominator_floor, and covariance_floor parameters to the SteerOffsetEstimatorParameters structure.
- Updated the parameter loading function to accommodate the new parameters, improving the configurability of the estimator. This change aims to enhance the performance and stability of the steering offset estimation process by allowing for more precise parameter tuning.
- fix(steer_offset_estimator): update debug output to use standard deviation
- Modified the debug output format in the SteerOffsetEstimatorNode to replace covariance with standard deviation for clarity.
- This change enhances the readability of the debug information by providing a more intuitive metric for uncertainty.
- refactor(steer_offset_estimator): rename and restructure noise parameters for clarity
- Renamed measurement_noise to measurement_noise_covariance and added process_noise_covariance to the SteerOffsetEstimatorParameters structure for better clarity.
- Updated the parameter loading function to reflect these changes, enhancing the configurability of the estimator.
- Refactored the update logic to utilize the new covariance parameters, improving the accuracy of the steering offset estimation. This commit aims to streamline the parameterization and enhance the performance of the steer offset estimator.
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/raw_vehicle_converter.launch.xml
-
- input_control_cmd [default: /control/command/control_cmd]
- input_odometry [default: /localization/kinematic_state]
- input_accel [default: /localization/acceleration]
- input_steering [default: /vehicle/status/steering_status]
- input_actuation_status [default: /vehicle/status/actuation_status]
- input_operation_mode_state [default: /system/operation_mode/state]
- input_control_horizon [default: /control/trajectory_follower/controller_node_exe/debug/control_cmd_horizon]
- output_actuation_cmd [default: /control/command/actuation_cmd]
- output_steering_status [default: /vehicle/status/steering_status]
- output_control_component_latency [default: /control/control_component_latency]
- config_file [default: $(find-pkg-share autoware_raw_vehicle_cmd_converter)/config/raw_vehicle_cmd_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_raw_vehicle_cmd_converter at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takamasa Horibe
- Tanaka Taiki
- Makoto Kurihara
- Sho Iwasawa
- Kosuke Takeuchi
- Takayuki Murooka
- Kyoichi Sugahara
Authors
- Makoto Kurihara
- Takamasa Horibe
- Tanaka Taiki
autoware_raw_vehicle_cmd_converter
Overview
The raw_vehicle_command_converter is a crucial node in vehicle automation systems, responsible for translating desired steering and acceleration inputs into specific vehicle control commands. This process is achieved through a combination of a lookup table and an optional feedback control system.
Lookup Table
The core of the converter’s functionality lies in its use of a CSV-formatted lookup table. This table encapsulates the relationship between the throttle/brake pedal (depending on your vehicle control interface) and the corresponding vehicle acceleration across various speeds. The converter utilizes this data to accurately translate target accelerations into appropriate throttle/brake values.

Creation of Reference Data
Reference data for the lookup table is generated through the following steps:
- Data Collection: On a flat road, a constant value command (e.g., throttle/brake pedal) is applied to accelerate or decelerate the vehicle.
- Recording Data: During this phase, both the IMU acceleration and vehicle velocity data are recorded.
- CSV File Generation: A CSV file is created, detailing the relationship between command values, vehicle speed, and resulting acceleration.
Once the acceleration map is crafted, it should be loaded when the RawVehicleCmdConverter node is launched, with the file path defined in the launch file.
Auto-Calibration Tool
For ease of calibration and adjustments to the lookup table, an auto-calibration tool is available. More information and instructions for this tool can be found here.
Variable Gear Ratio (VGR)
This is a gear ratio for converting tire angle to steering angle. Generally, to improve operability, the gear ratio becomes dynamically larger as the speed increases or the steering angle becomes smaller. For a certain vehicle, data was acquired and the gear ratio was approximated by the following formula.
\[a + b \times v^2 - c \times \lvert \delta \rvert\]For that vehicle, the coefficients were as follows.
vgr_coef_a: 15.713
vgr_coef_b: 0.053
vgr_coef_c: 0.042
When convert_steer_cmd_method: "vgr" is selected, the node receives the control command from the controller as the desired tire angle and calculates the desired steering angle to output.
Also, when convert_actuation_to_steering_status: true, this node receives the actuation_status topic and calculates the steer tire angle from the steer_wheel_angle and publishes it.
Vehicle Adaptor
Under development
A feature that compensates for control commands according to the dynamic characteristics of the vehicle.
This feature works when use_vehicle_adaptor: true is set and requires control_horizon to be enabled, so you need to set enable_control_cmd_horizon_pub: true in the trajectory_follower node.
Latency Measurement
This node includes a latency measurement feature that tracks the time difference between receiving a control command and publishing the corresponding actuation command. The measured latency is published as a debug topic, which can be useful for performance monitoring and system optimization.
The latency is calculated as the time difference between the timestamp of the incoming control command and the current time when the actuation command is published. When the input control_cmd contains a timestamp that represents the time when the control module started processing (propagated through the control pipeline), the control_component_latency represents the overall processing time of the entire control module system.
Input topics
| Name | Type | Description |
|---|---|---|
~/input/control_cmd |
autoware_control_msgs::msg::Control | target velocity/acceleration/steering_angle/steering_angle_velocity is necessary to calculate actuation command. |
~/input/steering" |
autoware_vehicle_msgs::msg::SteeringReport | subscribe only when convert_actuation_to_steering_status: false. current status of steering used for steering feed back control |
~/input/odometry |
navigation_msgs::Odometry | twist topic in odometry is used. |
~/input/actuation_status |
tier4_vehicle_msgs::msg::ActuationStatus | actuation status is assumed to receive the same type of status as sent to the vehicle side. For example, if throttle/brake pedal/steer_wheel_angle is sent, the same type of status is received. In the case of steer_wheel_angle, it is used to calculate steer_tire_angle and VGR in this node. |
Input topics when vehicle_adaptor is enabled
| Name | Type | Description |
|---|---|---|
~/input/accel |
geometry_msgs::msg::AccelWithCovarianceStamped; | acceleration status |
~/input/operation_mode_state |
autoware_adapi_v1_msgs::msg::OperationModeState | operation mode status |
~/input/control_horizon |
autoware_control_msgs::msg::ControlHorizon | control horizon command |
Output topics
| Name | Type | Description |
|---|---|---|
~/output/actuation_cmd |
tier4_vehicle_msgs::msg::ActuationCommandStamped | actuation command for vehicle to apply mechanical input |
~/output/steering_status |
autoware_vehicle_msgs::msg::SteeringReport | publish only when convert_actuation_to_steering_status: true. steer tire angle is calculated from steer wheel angle and published. |
~/output/control_component_latency |
autoware_internal_debug_msgs::msg::Float64Stamped | control system latency measurement from control command reception to actuation command publication |
Parameters
{{ json_to_markdown(“vehicle/autoware_raw_vehicle_cmd_converter/schema/raw_vehicle_cmd_converter.schema.json”) }}
Limitation
The current feed back implementation is only applied to steering control.
Changelog for package autoware_raw_vehicle_cmd_converter
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(steer_offset_estimator): implement new steer offset estimator using kalman filter (#11911)
- refactor(steer_offset_estimator): restructure node and estimator implementation
- Updated the CMakeLists.txt to reflect new library and executable structure.
- Removed outdated README and added a new detailed README.md for better documentation.
- Introduced a new node class for steer offset estimation and refactored the estimator logic.
- Added utility functions for pose and steering calculations.
- Implemented tests for the estimator and utility functions to ensure reliability.
- Updated parameters in the schema and configuration files for improved clarity and functionality.
- Removed deprecated files and images to streamline the package. This commit enhances the overall architecture and usability of the steer offset estimator package.
- refactor(steer_offset_estimator): update CMake configuration and remove deprecated files
- Bump CMake minimum version to 3.14 and adjust project structure in CMakeLists.txt.
- Refactor library and executable definitions for clarity and maintainability.
- Remove the main.cpp file as the node is now defined in a separate header and source file.
- Update parameter comments in the configuration file for better clarity.
- Remove the glog dependency from package.xml to streamline dependencies. This commit enhances the organization and readability of the steer offset estimator package.
- docs(steer_offset_estimator): enhance README formatting for mathematical equations
- Improved the formatting of mathematical equations in the README.md to enhance readability by adding line breaks.
- Removed the monitoring section to streamline the documentation. This update aims to provide clearer guidance on the steering offset estimation algorithm and its implementation details.
- docs(steer_offset_estimator): add debug info output section to README
- docs(steer_offset_estimator): improve formatting of algorithm steps in README
- feat(steer_offset_estimator): enhance estimator parameters and update calculations
- Added new parameters: measurement_noise, denominator_floor, and covariance_floor to improve estimation stability.
- Refactored the update logic to incorporate Kalman gain and residual calculations, enhancing the accuracy of the steering offset estimation.
- Updated debug output to reflect new calculation metrics, including kalman_gain and residual. This commit improves the robustness and performance of the steer offset estimator by refining its parameterization and calculation methods.
- feat(steer_offset_estimator): add new parameters for enhanced estimation
- Introduced measurement_noise, denominator_floor, and covariance_floor parameters to the SteerOffsetEstimatorParameters structure.
- Updated the parameter loading function to accommodate the new parameters, improving the configurability of the estimator. This change aims to enhance the performance and stability of the steering offset estimation process by allowing for more precise parameter tuning.
- fix(steer_offset_estimator): update debug output to use standard deviation
- Modified the debug output format in the SteerOffsetEstimatorNode to replace covariance with standard deviation for clarity.
- This change enhances the readability of the debug information by providing a more intuitive metric for uncertainty.
- refactor(steer_offset_estimator): rename and restructure noise parameters for clarity
- Renamed measurement_noise to measurement_noise_covariance and added process_noise_covariance to the SteerOffsetEstimatorParameters structure for better clarity.
- Updated the parameter loading function to reflect these changes, enhancing the configurability of the estimator.
- Refactored the update logic to utilize the new covariance parameters, improving the accuracy of the steering offset estimation. This commit aims to streamline the parameterization and enhance the performance of the steer offset estimator.
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/raw_vehicle_converter.launch.xml
-
- input_control_cmd [default: /control/command/control_cmd]
- input_odometry [default: /localization/kinematic_state]
- input_accel [default: /localization/acceleration]
- input_steering [default: /vehicle/status/steering_status]
- input_actuation_status [default: /vehicle/status/actuation_status]
- input_operation_mode_state [default: /system/operation_mode/state]
- input_control_horizon [default: /control/trajectory_follower/controller_node_exe/debug/control_cmd_horizon]
- output_actuation_cmd [default: /control/command/actuation_cmd]
- output_steering_status [default: /vehicle/status/steering_status]
- output_control_component_latency [default: /control/control_component_latency]
- config_file [default: $(find-pkg-share autoware_raw_vehicle_cmd_converter)/config/raw_vehicle_cmd_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_raw_vehicle_cmd_converter at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takamasa Horibe
- Tanaka Taiki
- Makoto Kurihara
- Sho Iwasawa
- Kosuke Takeuchi
- Takayuki Murooka
- Kyoichi Sugahara
Authors
- Makoto Kurihara
- Takamasa Horibe
- Tanaka Taiki
autoware_raw_vehicle_cmd_converter
Overview
The raw_vehicle_command_converter is a crucial node in vehicle automation systems, responsible for translating desired steering and acceleration inputs into specific vehicle control commands. This process is achieved through a combination of a lookup table and an optional feedback control system.
Lookup Table
The core of the converter’s functionality lies in its use of a CSV-formatted lookup table. This table encapsulates the relationship between the throttle/brake pedal (depending on your vehicle control interface) and the corresponding vehicle acceleration across various speeds. The converter utilizes this data to accurately translate target accelerations into appropriate throttle/brake values.

Creation of Reference Data
Reference data for the lookup table is generated through the following steps:
- Data Collection: On a flat road, a constant value command (e.g., throttle/brake pedal) is applied to accelerate or decelerate the vehicle.
- Recording Data: During this phase, both the IMU acceleration and vehicle velocity data are recorded.
- CSV File Generation: A CSV file is created, detailing the relationship between command values, vehicle speed, and resulting acceleration.
Once the acceleration map is crafted, it should be loaded when the RawVehicleCmdConverter node is launched, with the file path defined in the launch file.
Auto-Calibration Tool
For ease of calibration and adjustments to the lookup table, an auto-calibration tool is available. More information and instructions for this tool can be found here.
Variable Gear Ratio (VGR)
This is a gear ratio for converting tire angle to steering angle. Generally, to improve operability, the gear ratio becomes dynamically larger as the speed increases or the steering angle becomes smaller. For a certain vehicle, data was acquired and the gear ratio was approximated by the following formula.
\[a + b \times v^2 - c \times \lvert \delta \rvert\]For that vehicle, the coefficients were as follows.
vgr_coef_a: 15.713
vgr_coef_b: 0.053
vgr_coef_c: 0.042
When convert_steer_cmd_method: "vgr" is selected, the node receives the control command from the controller as the desired tire angle and calculates the desired steering angle to output.
Also, when convert_actuation_to_steering_status: true, this node receives the actuation_status topic and calculates the steer tire angle from the steer_wheel_angle and publishes it.
Vehicle Adaptor
Under development
A feature that compensates for control commands according to the dynamic characteristics of the vehicle.
This feature works when use_vehicle_adaptor: true is set and requires control_horizon to be enabled, so you need to set enable_control_cmd_horizon_pub: true in the trajectory_follower node.
Latency Measurement
This node includes a latency measurement feature that tracks the time difference between receiving a control command and publishing the corresponding actuation command. The measured latency is published as a debug topic, which can be useful for performance monitoring and system optimization.
The latency is calculated as the time difference between the timestamp of the incoming control command and the current time when the actuation command is published. When the input control_cmd contains a timestamp that represents the time when the control module started processing (propagated through the control pipeline), the control_component_latency represents the overall processing time of the entire control module system.
Input topics
| Name | Type | Description |
|---|---|---|
~/input/control_cmd |
autoware_control_msgs::msg::Control | target velocity/acceleration/steering_angle/steering_angle_velocity is necessary to calculate actuation command. |
~/input/steering" |
autoware_vehicle_msgs::msg::SteeringReport | subscribe only when convert_actuation_to_steering_status: false. current status of steering used for steering feed back control |
~/input/odometry |
navigation_msgs::Odometry | twist topic in odometry is used. |
~/input/actuation_status |
tier4_vehicle_msgs::msg::ActuationStatus | actuation status is assumed to receive the same type of status as sent to the vehicle side. For example, if throttle/brake pedal/steer_wheel_angle is sent, the same type of status is received. In the case of steer_wheel_angle, it is used to calculate steer_tire_angle and VGR in this node. |
Input topics when vehicle_adaptor is enabled
| Name | Type | Description |
|---|---|---|
~/input/accel |
geometry_msgs::msg::AccelWithCovarianceStamped; | acceleration status |
~/input/operation_mode_state |
autoware_adapi_v1_msgs::msg::OperationModeState | operation mode status |
~/input/control_horizon |
autoware_control_msgs::msg::ControlHorizon | control horizon command |
Output topics
| Name | Type | Description |
|---|---|---|
~/output/actuation_cmd |
tier4_vehicle_msgs::msg::ActuationCommandStamped | actuation command for vehicle to apply mechanical input |
~/output/steering_status |
autoware_vehicle_msgs::msg::SteeringReport | publish only when convert_actuation_to_steering_status: true. steer tire angle is calculated from steer wheel angle and published. |
~/output/control_component_latency |
autoware_internal_debug_msgs::msg::Float64Stamped | control system latency measurement from control command reception to actuation command publication |
Parameters
{{ json_to_markdown(“vehicle/autoware_raw_vehicle_cmd_converter/schema/raw_vehicle_cmd_converter.schema.json”) }}
Limitation
The current feed back implementation is only applied to steering control.
Changelog for package autoware_raw_vehicle_cmd_converter
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(steer_offset_estimator): implement new steer offset estimator using kalman filter (#11911)
- refactor(steer_offset_estimator): restructure node and estimator implementation
- Updated the CMakeLists.txt to reflect new library and executable structure.
- Removed outdated README and added a new detailed README.md for better documentation.
- Introduced a new node class for steer offset estimation and refactored the estimator logic.
- Added utility functions for pose and steering calculations.
- Implemented tests for the estimator and utility functions to ensure reliability.
- Updated parameters in the schema and configuration files for improved clarity and functionality.
- Removed deprecated files and images to streamline the package. This commit enhances the overall architecture and usability of the steer offset estimator package.
- refactor(steer_offset_estimator): update CMake configuration and remove deprecated files
- Bump CMake minimum version to 3.14 and adjust project structure in CMakeLists.txt.
- Refactor library and executable definitions for clarity and maintainability.
- Remove the main.cpp file as the node is now defined in a separate header and source file.
- Update parameter comments in the configuration file for better clarity.
- Remove the glog dependency from package.xml to streamline dependencies. This commit enhances the organization and readability of the steer offset estimator package.
- docs(steer_offset_estimator): enhance README formatting for mathematical equations
- Improved the formatting of mathematical equations in the README.md to enhance readability by adding line breaks.
- Removed the monitoring section to streamline the documentation. This update aims to provide clearer guidance on the steering offset estimation algorithm and its implementation details.
- docs(steer_offset_estimator): add debug info output section to README
- docs(steer_offset_estimator): improve formatting of algorithm steps in README
- feat(steer_offset_estimator): enhance estimator parameters and update calculations
- Added new parameters: measurement_noise, denominator_floor, and covariance_floor to improve estimation stability.
- Refactored the update logic to incorporate Kalman gain and residual calculations, enhancing the accuracy of the steering offset estimation.
- Updated debug output to reflect new calculation metrics, including kalman_gain and residual. This commit improves the robustness and performance of the steer offset estimator by refining its parameterization and calculation methods.
- feat(steer_offset_estimator): add new parameters for enhanced estimation
- Introduced measurement_noise, denominator_floor, and covariance_floor parameters to the SteerOffsetEstimatorParameters structure.
- Updated the parameter loading function to accommodate the new parameters, improving the configurability of the estimator. This change aims to enhance the performance and stability of the steering offset estimation process by allowing for more precise parameter tuning.
- fix(steer_offset_estimator): update debug output to use standard deviation
- Modified the debug output format in the SteerOffsetEstimatorNode to replace covariance with standard deviation for clarity.
- This change enhances the readability of the debug information by providing a more intuitive metric for uncertainty.
- refactor(steer_offset_estimator): rename and restructure noise parameters for clarity
- Renamed measurement_noise to measurement_noise_covariance and added process_noise_covariance to the SteerOffsetEstimatorParameters structure for better clarity.
- Updated the parameter loading function to reflect these changes, enhancing the configurability of the estimator.
- Refactored the update logic to utilize the new covariance parameters, improving the accuracy of the steering offset estimation. This commit aims to streamline the parameterization and enhance the performance of the steer offset estimator.
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/raw_vehicle_converter.launch.xml
-
- input_control_cmd [default: /control/command/control_cmd]
- input_odometry [default: /localization/kinematic_state]
- input_accel [default: /localization/acceleration]
- input_steering [default: /vehicle/status/steering_status]
- input_actuation_status [default: /vehicle/status/actuation_status]
- input_operation_mode_state [default: /system/operation_mode/state]
- input_control_horizon [default: /control/trajectory_follower/controller_node_exe/debug/control_cmd_horizon]
- output_actuation_cmd [default: /control/command/actuation_cmd]
- output_steering_status [default: /vehicle/status/steering_status]
- output_control_component_latency [default: /control/control_component_latency]
- config_file [default: $(find-pkg-share autoware_raw_vehicle_cmd_converter)/config/raw_vehicle_cmd_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_raw_vehicle_cmd_converter at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takamasa Horibe
- Tanaka Taiki
- Makoto Kurihara
- Sho Iwasawa
- Kosuke Takeuchi
- Takayuki Murooka
- Kyoichi Sugahara
Authors
- Makoto Kurihara
- Takamasa Horibe
- Tanaka Taiki
autoware_raw_vehicle_cmd_converter
Overview
The raw_vehicle_command_converter is a crucial node in vehicle automation systems, responsible for translating desired steering and acceleration inputs into specific vehicle control commands. This process is achieved through a combination of a lookup table and an optional feedback control system.
Lookup Table
The core of the converter’s functionality lies in its use of a CSV-formatted lookup table. This table encapsulates the relationship between the throttle/brake pedal (depending on your vehicle control interface) and the corresponding vehicle acceleration across various speeds. The converter utilizes this data to accurately translate target accelerations into appropriate throttle/brake values.

Creation of Reference Data
Reference data for the lookup table is generated through the following steps:
- Data Collection: On a flat road, a constant value command (e.g., throttle/brake pedal) is applied to accelerate or decelerate the vehicle.
- Recording Data: During this phase, both the IMU acceleration and vehicle velocity data are recorded.
- CSV File Generation: A CSV file is created, detailing the relationship between command values, vehicle speed, and resulting acceleration.
Once the acceleration map is crafted, it should be loaded when the RawVehicleCmdConverter node is launched, with the file path defined in the launch file.
Auto-Calibration Tool
For ease of calibration and adjustments to the lookup table, an auto-calibration tool is available. More information and instructions for this tool can be found here.
Variable Gear Ratio (VGR)
This is a gear ratio for converting tire angle to steering angle. Generally, to improve operability, the gear ratio becomes dynamically larger as the speed increases or the steering angle becomes smaller. For a certain vehicle, data was acquired and the gear ratio was approximated by the following formula.
\[a + b \times v^2 - c \times \lvert \delta \rvert\]For that vehicle, the coefficients were as follows.
vgr_coef_a: 15.713
vgr_coef_b: 0.053
vgr_coef_c: 0.042
When convert_steer_cmd_method: "vgr" is selected, the node receives the control command from the controller as the desired tire angle and calculates the desired steering angle to output.
Also, when convert_actuation_to_steering_status: true, this node receives the actuation_status topic and calculates the steer tire angle from the steer_wheel_angle and publishes it.
Vehicle Adaptor
Under development
A feature that compensates for control commands according to the dynamic characteristics of the vehicle.
This feature works when use_vehicle_adaptor: true is set and requires control_horizon to be enabled, so you need to set enable_control_cmd_horizon_pub: true in the trajectory_follower node.
Latency Measurement
This node includes a latency measurement feature that tracks the time difference between receiving a control command and publishing the corresponding actuation command. The measured latency is published as a debug topic, which can be useful for performance monitoring and system optimization.
The latency is calculated as the time difference between the timestamp of the incoming control command and the current time when the actuation command is published. When the input control_cmd contains a timestamp that represents the time when the control module started processing (propagated through the control pipeline), the control_component_latency represents the overall processing time of the entire control module system.
Input topics
| Name | Type | Description |
|---|---|---|
~/input/control_cmd |
autoware_control_msgs::msg::Control | target velocity/acceleration/steering_angle/steering_angle_velocity is necessary to calculate actuation command. |
~/input/steering" |
autoware_vehicle_msgs::msg::SteeringReport | subscribe only when convert_actuation_to_steering_status: false. current status of steering used for steering feed back control |
~/input/odometry |
navigation_msgs::Odometry | twist topic in odometry is used. |
~/input/actuation_status |
tier4_vehicle_msgs::msg::ActuationStatus | actuation status is assumed to receive the same type of status as sent to the vehicle side. For example, if throttle/brake pedal/steer_wheel_angle is sent, the same type of status is received. In the case of steer_wheel_angle, it is used to calculate steer_tire_angle and VGR in this node. |
Input topics when vehicle_adaptor is enabled
| Name | Type | Description |
|---|---|---|
~/input/accel |
geometry_msgs::msg::AccelWithCovarianceStamped; | acceleration status |
~/input/operation_mode_state |
autoware_adapi_v1_msgs::msg::OperationModeState | operation mode status |
~/input/control_horizon |
autoware_control_msgs::msg::ControlHorizon | control horizon command |
Output topics
| Name | Type | Description |
|---|---|---|
~/output/actuation_cmd |
tier4_vehicle_msgs::msg::ActuationCommandStamped | actuation command for vehicle to apply mechanical input |
~/output/steering_status |
autoware_vehicle_msgs::msg::SteeringReport | publish only when convert_actuation_to_steering_status: true. steer tire angle is calculated from steer wheel angle and published. |
~/output/control_component_latency |
autoware_internal_debug_msgs::msg::Float64Stamped | control system latency measurement from control command reception to actuation command publication |
Parameters
{{ json_to_markdown(“vehicle/autoware_raw_vehicle_cmd_converter/schema/raw_vehicle_cmd_converter.schema.json”) }}
Limitation
The current feed back implementation is only applied to steering control.
Changelog for package autoware_raw_vehicle_cmd_converter
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(steer_offset_estimator): implement new steer offset estimator using kalman filter (#11911)
- refactor(steer_offset_estimator): restructure node and estimator implementation
- Updated the CMakeLists.txt to reflect new library and executable structure.
- Removed outdated README and added a new detailed README.md for better documentation.
- Introduced a new node class for steer offset estimation and refactored the estimator logic.
- Added utility functions for pose and steering calculations.
- Implemented tests for the estimator and utility functions to ensure reliability.
- Updated parameters in the schema and configuration files for improved clarity and functionality.
- Removed deprecated files and images to streamline the package. This commit enhances the overall architecture and usability of the steer offset estimator package.
- refactor(steer_offset_estimator): update CMake configuration and remove deprecated files
- Bump CMake minimum version to 3.14 and adjust project structure in CMakeLists.txt.
- Refactor library and executable definitions for clarity and maintainability.
- Remove the main.cpp file as the node is now defined in a separate header and source file.
- Update parameter comments in the configuration file for better clarity.
- Remove the glog dependency from package.xml to streamline dependencies. This commit enhances the organization and readability of the steer offset estimator package.
- docs(steer_offset_estimator): enhance README formatting for mathematical equations
- Improved the formatting of mathematical equations in the README.md to enhance readability by adding line breaks.
- Removed the monitoring section to streamline the documentation. This update aims to provide clearer guidance on the steering offset estimation algorithm and its implementation details.
- docs(steer_offset_estimator): add debug info output section to README
- docs(steer_offset_estimator): improve formatting of algorithm steps in README
- feat(steer_offset_estimator): enhance estimator parameters and update calculations
- Added new parameters: measurement_noise, denominator_floor, and covariance_floor to improve estimation stability.
- Refactored the update logic to incorporate Kalman gain and residual calculations, enhancing the accuracy of the steering offset estimation.
- Updated debug output to reflect new calculation metrics, including kalman_gain and residual. This commit improves the robustness and performance of the steer offset estimator by refining its parameterization and calculation methods.
- feat(steer_offset_estimator): add new parameters for enhanced estimation
- Introduced measurement_noise, denominator_floor, and covariance_floor parameters to the SteerOffsetEstimatorParameters structure.
- Updated the parameter loading function to accommodate the new parameters, improving the configurability of the estimator. This change aims to enhance the performance and stability of the steering offset estimation process by allowing for more precise parameter tuning.
- fix(steer_offset_estimator): update debug output to use standard deviation
- Modified the debug output format in the SteerOffsetEstimatorNode to replace covariance with standard deviation for clarity.
- This change enhances the readability of the debug information by providing a more intuitive metric for uncertainty.
- refactor(steer_offset_estimator): rename and restructure noise parameters for clarity
- Renamed measurement_noise to measurement_noise_covariance and added process_noise_covariance to the SteerOffsetEstimatorParameters structure for better clarity.
- Updated the parameter loading function to reflect these changes, enhancing the configurability of the estimator.
- Refactored the update logic to utilize the new covariance parameters, improving the accuracy of the steering offset estimation. This commit aims to streamline the parameterization and enhance the performance of the steer offset estimator.
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/raw_vehicle_converter.launch.xml
-
- input_control_cmd [default: /control/command/control_cmd]
- input_odometry [default: /localization/kinematic_state]
- input_accel [default: /localization/acceleration]
- input_steering [default: /vehicle/status/steering_status]
- input_actuation_status [default: /vehicle/status/actuation_status]
- input_operation_mode_state [default: /system/operation_mode/state]
- input_control_horizon [default: /control/trajectory_follower/controller_node_exe/debug/control_cmd_horizon]
- output_actuation_cmd [default: /control/command/actuation_cmd]
- output_steering_status [default: /vehicle/status/steering_status]
- output_control_component_latency [default: /control/control_component_latency]
- config_file [default: $(find-pkg-share autoware_raw_vehicle_cmd_converter)/config/raw_vehicle_cmd_converter.param.yaml]