Package Summary
| Version | 0.13.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/bosch-engineering/off_highway_sensor_drivers.git |
| VCS Type | git |
| VCS Version | humble-devel |
| Last Updated | 2026-11-03 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Sarah Huber
Authors
- Robin Petereit
off_highway_general_purpose_radar
The off_highway_general_purpose_radar package provides a receiver node to receive and decode CAN
frames of the Bosch General Purpose Radar Off-Highway (GPR) into ROS messages - it implements an
off_highway_can::Receiver.
Further information on the Bosch General Purpose Radar Off-Highway (GPR), it’s inputs, outputs and how they can be interpreted can be found in the corresponding datasheet or the Technical Customer Documentation (TCD) of the sensor system.
Supported devices
| Device name | Part Number | Description | Datasheet |
|---|---|---|---|
| General Purpose Radar Off-Highway (GPR) | - F037.000.100 (series) - F037.B00.255-11 (sample) |
- Radar sensor with up to 48 target reflections - Target output on automotive CAN is supported |
Link |
Contact: off-highway.beg@bosch.com
Nodes
Receiver
The radar receiver decodes CAN frames into a target list, manages the current list and publishes it cyclically.
All received messages are checked for their cyclic redundancy check (CRC), rolling message counter
and age (message not older than parameter allowed_age). If any of these checks do not succeed the
received message is not further processed and skipped.
The relevant radar CAN frame IDs to process are specified by the target_base_id and info_id
parameters. They should correspond to the first target frame ID and the info frame ID of the radar
CAN node and need to be adapted for the specific bus setup. If multiple radar sensors need to be
decoded on the same bus just launch multiple receiver nodes with individual *_id parameters.
The target list is published as a list of radar targets or as a point cloud and contains up to 48 targets (sensor limit). Only valid targets in the list are published (measured flag set).
If the receiver node does not receive anything within a configured period (parameter timeout), it
will publish a diagnostic error on /diagnostics. Also, the sensor information CAN frame gets
published and is checked for the diagnostic status of the radar. On error, the node will publish a
diagnostic error on /diagnostics.
Subscribed Topics
-
received_messages
(
can_msgs/Frame)- Radar CAN frames to decode
Published Topics
-
targets
(
off_highway_general_purpose_radar_msgs/Targets)- Update Rate: configurable with
publish_frequency - Contains current target list of radar as custom message containing the same information as
each target’s CAN frame. Mapping to the respective CAN frame is done via the
idfield.
- Update Rate: configurable with
-
targets_pcl
(
sensor_msgs/PointCloud2)- Update Rate: configurable with
publish_frequency - Contains current target list of radar as point cloud.
- Update Rate: configurable with
-
info
(
off_highway_radar_msgs/Information)- Update Rate: On each sensor information CAN frame
- Contains current sensor information message containing the same information as the respective CAN frame.
-
/diagnostics
(
diagnostic_msgs/DiagnosticArray)- Update Rate: On each sensor information CAN frame or if receiver timed out periodically with timeout period
- Diagnostic status contains statuses from the latest received sensor information and timeout status.
Parameters
See receiver_params.yaml.
Launch files
-
receiver_launch: Starts the receiver with the given parameters.
- Arguments:
- params: Path to ROS YAML parameter file to load for receiver. If not provided, default parameters from this package are loaded.
- Arguments:
Changelog for package off_highway_general_purpose_radar
0.13.0 (2026-11-02)
-
Fix node termination without error log by adding try/catch
Uncaught exceptions from malformed/manipulated CAN frames in callback_can() previously caused the node to terminate silently. This adds a try/catch block to handle the error gracefully, write to the error log, and keep the node running.
Tests were updated to reflect this change.
-
Contributors: Darius Man
0.12.0 (2026-03-10)
- Update maintainers
- Remove PCL dependencies from off highway sensor drivers packages
- Contributors: Calin-Vasile Sopterean, Robin Petereit
0.11.0 (2026-01-26)
-
Revert "Depend on ros_environment where needed (Jazzy version)" (#31)
Revert "Depend on ros_environment where needed (Jazzy version) (#28)"
This reverts commit 843890591d6db93ea883a83c0cecac298c5dba7f.
-
Fix pcl_conversions linking error in ROS buildfarm (#30)
-
Depend on ros_environment where needed (Humble version) (#27)
-
Contributors: Marco A. Gutierrez, Michal Sojka
0.10.0 (2025-11-12)
-
Update dependency declarations for target_link_libraries
-
Fix issue 20, don't publish sensor data when there is a sensor timeout
-
Remove ament deprecation warning from remaining packages
-
ament_target_dependencies is deprecated for Kilted and Rolling
This syntax should work as of ROS 2 Foxy already
-
Add pcl_point_xxx.hpp deprecation warning
-
Contributors: Calin-Vasile Sopterean, Ferry Schoenmakers, Tim Clephas
0.9.0 (2025-06-16)
- Move PCL dependencies
- Update README
- Contributors: Calin-Vasile Sopterean, Gabriela Adriana Lapuste
0.8.0 (2025-03-24)
-
Replace truncation of physical value with round outside of FOSS
Minimizes the floating point error such that half offset of resolution in tests is not needed anymore.
-
Do not force warnings as errors for General Purpose Radar (#12)
Fixup of #11.
-
Contributors: Robin Petereit, Tim Clephas
0.7.0 (2024-12-04)
- Register GPR component
- Contributors: Robin Petereit
0.6.3 (2024-07-09)
-
Add missing dependency on PCL headers (#9)
When I try to build this package on jazzy with rosdep, the PCL headers are missing. This package uses
find_package(PCL)and includes it in the headers. Therefore I think it would be best to add it to thebuild_dependandbuild_export_dependtags of thepackage.xmlfiles. In the buildfarm this is technically not needed because the PCL headers are abuild_export_dependofpcl_conversions, but rosdep ignores this dependency so it misses the PCL headers. -
Contributors: Ramon Wijnands
0.6.2 (2024-06-13)
0.6.1 (2024-06-04)
0.6.0 (2024-05-14)
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_ros | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| can_msgs | |
| off_highway_can | |
| off_highway_general_purpose_radar_msgs |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| off_highway_sensor_drivers |
Launch files
Messages
Services
Plugins
Recent questions tagged off_highway_general_purpose_radar at Robotics Stack Exchange
Package Summary
| Version | 1.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/bosch-engineering/off_highway_sensor_drivers.git |
| VCS Type | git |
| VCS Version | jazzy-devel |
| Last Updated | 2026-11-03 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Sarah Huber
Authors
- Robin Petereit
off_highway_general_purpose_radar
The off_highway_general_purpose_radar package provides a receiver node to receive and decode CAN
frames of the Bosch General Purpose Radar Off-Highway (GPR) into ROS messages - it implements an
off_highway_can::Receiver.
Further information on the Bosch General Purpose Radar Off-Highway (GPR), it’s inputs, outputs and how they can be interpreted can be found in the corresponding datasheet or the Technical Customer Documentation (TCD) of the sensor system.
Supported devices
| Device name | Part Number | Description | Datasheet |
|---|---|---|---|
| General Purpose Radar Off-Highway (GPR) | - F037.000.100 (series) - F037.B00.255-11 (sample) |
- Radar sensor with up to 48 target reflections - Target output on automotive CAN is supported |
Link |
Contact: off-highway.beg@bosch.com
Nodes
Receiver
The radar receiver decodes CAN frames into a target list, manages the current list and publishes it cyclically.
All received messages are checked for their cyclic redundancy check (CRC), rolling message counter
and age (message not older than parameter allowed_age). If any of these checks do not succeed the
received message is not further processed and skipped.
The relevant radar CAN frame IDs to process are specified by the target_base_id and info_id
parameters. They should correspond to the first target frame ID and the info frame ID of the radar
CAN node and need to be adapted for the specific bus setup. If multiple radar sensors need to be
decoded on the same bus just launch multiple receiver nodes with individual *_id parameters.
The target list is published as a list of radar targets or as a point cloud and contains up to 48 targets (sensor limit). Only valid targets in the list are published (measured flag set).
If the receiver node does not receive anything within a configured period (parameter timeout), it
will publish a diagnostic error on /diagnostics. Also, the sensor information CAN frame gets
published and is checked for the diagnostic status of the radar. On error, the node will publish a
diagnostic error on /diagnostics.
Subscribed Topics
-
received_messages
(
can_msgs/Frame)- Radar CAN frames to decode
Published Topics
-
targets
(
off_highway_general_purpose_radar_msgs/Targets)- Update Rate: configurable with
publish_frequency - Contains current target list of radar as custom message containing the same information as
each target’s CAN frame. Mapping to the respective CAN frame is done via the
idfield.
- Update Rate: configurable with
-
targets_pcl
(
sensor_msgs/PointCloud2)- Update Rate: configurable with
publish_frequency - Contains current target list of radar as point cloud.
- Update Rate: configurable with
-
info
(
off_highway_radar_msgs/Information)- Update Rate: On each sensor information CAN frame
- Contains current sensor information message containing the same information as the respective CAN frame.
-
/diagnostics
(
diagnostic_msgs/DiagnosticArray)- Update Rate: On each sensor information CAN frame or if receiver timed out periodically with timeout period
- Diagnostic status contains statuses from the latest received sensor information and timeout status.
Parameters
See receiver_params.yaml.
Launch files
-
receiver_launch: Starts the receiver with the given parameters.
- Arguments:
- params: Path to ROS YAML parameter file to load for receiver. If not provided, default parameters from this package are loaded.
- Arguments:
Changelog for package off_highway_general_purpose_radar
1.4.0 (2026-11-02)
-
Fix node termination without error log by adding try/catch
Uncaught exceptions from malformed/manipulated CAN frames in callback_can() previously caused the node to terminate silently. This adds a try/catch block to handle the error gracefully, write to the error log, and keep the node running.
Tests were updated to reflect this change.
-
Contributors: Darius Man
1.3.0 (2026-03-10)
- Update maintainers
- Remove PCL dependencies from off highway sensor drivers packages
- Contributors: Calin-Vasile Sopterean, Robin Petereit
1.2.0 (2026-01-26)
-
Revert "Depend on ros_environment where needed (Jazzy version)" (#31)
Revert "Depend on ros_environment where needed (Jazzy version) (#28)"
This reverts commit 843890591d6db93ea883a83c0cecac298c5dba7f.
-
Fix pcl_conversions linking error in ROS buildfarm (#30)
-
Depend on ros_environment where needed (#24)
-
Contributors: Marco A. Gutierrez, Michal Sojka
1.1.0 (2025-11-12)
-
Update dependency declarations for target_link_libraries
-
Fix issue 20, don't publish sensor data when there is a sensor timeout
-
Remove ament deprecation warning from remaining packages
-
ament_target_dependencies is deprecated for Kilted and Rolling
This syntax should work as of ROS 2 Foxy already
-
Add pcl_point_xxx.hpp deprecation warning
-
Contributors: Calin-Vasile Sopterean, Ferry Schoenmakers, Tim Clephas
1.0.0 (2025-07-01)
- Move PCL dependencies
- Update README
- Contributors: Calin-Vasile Sopterean, Gabriela Adriana Lapuste
0.8.0 (2025-03-24)
-
Replace truncation of physical value with round outside of FOSS
Minimizes the floating point error such that half offset of resolution in tests is not needed anymore.
-
Do not force warnings as errors for General Purpose Radar (#12)
Fixup of #11.
-
Contributors: Robin Petereit, Tim Clephas
0.7.0 (2024-12-04)
- Register GPR component
- Contributors: Robin Petereit
0.6.3 (2024-07-09)
-
Add missing dependency on PCL headers (#9)
When I try to build this package on jazzy with rosdep, the PCL headers are missing. This package uses
find_package(PCL)and includes it in the headers. Therefore I think it would be best to add it to thebuild_dependandbuild_export_dependtags of thepackage.xmlfiles. In the buildfarm this is technically not needed because the PCL headers are abuild_export_dependofpcl_conversions, but rosdep ignores this dependency so it misses the PCL headers. -
Contributors: Ramon Wijnands
0.6.2 (2024-06-13)
0.6.1 (2024-06-04)
0.6.0 (2024-05-14)
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_ros | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| can_msgs | |
| off_highway_can | |
| off_highway_general_purpose_radar_msgs |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| off_highway_sensor_drivers |
Launch files
Messages
Services
Plugins
Recent questions tagged off_highway_general_purpose_radar at Robotics Stack Exchange
Package Summary
| Version | 0.13.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/bosch-engineering/off_highway_sensor_drivers.git |
| VCS Type | git |
| VCS Version | humble-devel |
| Last Updated | 2026-11-03 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Sarah Huber
Authors
- Robin Petereit
off_highway_general_purpose_radar
The off_highway_general_purpose_radar package provides a receiver node to receive and decode CAN
frames of the Bosch General Purpose Radar Off-Highway (GPR) into ROS messages - it implements an
off_highway_can::Receiver.
Further information on the Bosch General Purpose Radar Off-Highway (GPR), it’s inputs, outputs and how they can be interpreted can be found in the corresponding datasheet or the Technical Customer Documentation (TCD) of the sensor system.
Supported devices
| Device name | Part Number | Description | Datasheet |
|---|---|---|---|
| General Purpose Radar Off-Highway (GPR) | - F037.000.100 (series) - F037.B00.255-11 (sample) |
- Radar sensor with up to 48 target reflections - Target output on automotive CAN is supported |
Link |
Contact: off-highway.beg@bosch.com
Nodes
Receiver
The radar receiver decodes CAN frames into a target list, manages the current list and publishes it cyclically.
All received messages are checked for their cyclic redundancy check (CRC), rolling message counter
and age (message not older than parameter allowed_age). If any of these checks do not succeed the
received message is not further processed and skipped.
The relevant radar CAN frame IDs to process are specified by the target_base_id and info_id
parameters. They should correspond to the first target frame ID and the info frame ID of the radar
CAN node and need to be adapted for the specific bus setup. If multiple radar sensors need to be
decoded on the same bus just launch multiple receiver nodes with individual *_id parameters.
The target list is published as a list of radar targets or as a point cloud and contains up to 48 targets (sensor limit). Only valid targets in the list are published (measured flag set).
If the receiver node does not receive anything within a configured period (parameter timeout), it
will publish a diagnostic error on /diagnostics. Also, the sensor information CAN frame gets
published and is checked for the diagnostic status of the radar. On error, the node will publish a
diagnostic error on /diagnostics.
Subscribed Topics
-
received_messages
(
can_msgs/Frame)- Radar CAN frames to decode
Published Topics
-
targets
(
off_highway_general_purpose_radar_msgs/Targets)- Update Rate: configurable with
publish_frequency - Contains current target list of radar as custom message containing the same information as
each target’s CAN frame. Mapping to the respective CAN frame is done via the
idfield.
- Update Rate: configurable with
-
targets_pcl
(
sensor_msgs/PointCloud2)- Update Rate: configurable with
publish_frequency - Contains current target list of radar as point cloud.
- Update Rate: configurable with
-
info
(
off_highway_radar_msgs/Information)- Update Rate: On each sensor information CAN frame
- Contains current sensor information message containing the same information as the respective CAN frame.
-
/diagnostics
(
diagnostic_msgs/DiagnosticArray)- Update Rate: On each sensor information CAN frame or if receiver timed out periodically with timeout period
- Diagnostic status contains statuses from the latest received sensor information and timeout status.
Parameters
See receiver_params.yaml.
Launch files
-
receiver_launch: Starts the receiver with the given parameters.
- Arguments:
- params: Path to ROS YAML parameter file to load for receiver. If not provided, default parameters from this package are loaded.
- Arguments:
Changelog for package off_highway_general_purpose_radar
0.13.0 (2026-11-02)
-
Fix node termination without error log by adding try/catch
Uncaught exceptions from malformed/manipulated CAN frames in callback_can() previously caused the node to terminate silently. This adds a try/catch block to handle the error gracefully, write to the error log, and keep the node running.
Tests were updated to reflect this change.
-
Contributors: Darius Man
0.12.0 (2026-03-10)
- Update maintainers
- Remove PCL dependencies from off highway sensor drivers packages
- Contributors: Calin-Vasile Sopterean, Robin Petereit
0.11.0 (2026-01-26)
-
Revert "Depend on ros_environment where needed (Jazzy version)" (#31)
Revert "Depend on ros_environment where needed (Jazzy version) (#28)"
This reverts commit 843890591d6db93ea883a83c0cecac298c5dba7f.
-
Fix pcl_conversions linking error in ROS buildfarm (#30)
-
Depend on ros_environment where needed (Humble version) (#27)
-
Contributors: Marco A. Gutierrez, Michal Sojka
0.10.0 (2025-11-12)
-
Update dependency declarations for target_link_libraries
-
Fix issue 20, don't publish sensor data when there is a sensor timeout
-
Remove ament deprecation warning from remaining packages
-
ament_target_dependencies is deprecated for Kilted and Rolling
This syntax should work as of ROS 2 Foxy already
-
Add pcl_point_xxx.hpp deprecation warning
-
Contributors: Calin-Vasile Sopterean, Ferry Schoenmakers, Tim Clephas
0.9.0 (2025-06-16)
- Move PCL dependencies
- Update README
- Contributors: Calin-Vasile Sopterean, Gabriela Adriana Lapuste
0.8.0 (2025-03-24)
-
Replace truncation of physical value with round outside of FOSS
Minimizes the floating point error such that half offset of resolution in tests is not needed anymore.
-
Do not force warnings as errors for General Purpose Radar (#12)
Fixup of #11.
-
Contributors: Robin Petereit, Tim Clephas
0.7.0 (2024-12-04)
- Register GPR component
- Contributors: Robin Petereit
0.6.3 (2024-07-09)
-
Add missing dependency on PCL headers (#9)
When I try to build this package on jazzy with rosdep, the PCL headers are missing. This package uses
find_package(PCL)and includes it in the headers. Therefore I think it would be best to add it to thebuild_dependandbuild_export_dependtags of thepackage.xmlfiles. In the buildfarm this is technically not needed because the PCL headers are abuild_export_dependofpcl_conversions, but rosdep ignores this dependency so it misses the PCL headers. -
Contributors: Ramon Wijnands
0.6.2 (2024-06-13)
0.6.1 (2024-06-04)
0.6.0 (2024-05-14)
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_ros | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| can_msgs | |
| off_highway_can | |
| off_highway_general_purpose_radar_msgs |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| off_highway_sensor_drivers |
Launch files
Messages
Services
Plugins
Recent questions tagged off_highway_general_purpose_radar at Robotics Stack Exchange
Package Summary
| Version | 1.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/bosch-engineering/off_highway_sensor_drivers.git |
| VCS Type | git |
| VCS Version | rolling-devel |
| Last Updated | 2026-11-03 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Sarah Huber
Authors
- Robin Petereit
off_highway_general_purpose_radar
The off_highway_general_purpose_radar package provides a receiver node to receive and decode CAN
frames of the Bosch General Purpose Radar Off-Highway (GPR) into ROS messages - it implements an
off_highway_can::Receiver.
Further information on the Bosch General Purpose Radar Off-Highway (GPR), it’s inputs, outputs and how they can be interpreted can be found in the corresponding datasheet or the Technical Customer Documentation (TCD) of the sensor system.
Supported devices
| Device name | Part Number | Description | Datasheet |
|---|---|---|---|
| General Purpose Radar Off-Highway (GPR) | - F037.000.100 (series) - F037.B00.255-11 (sample) |
- Radar sensor with up to 48 target reflections - Target output on automotive CAN is supported |
Link |
Contact: off-highway.beg@bosch.com
Nodes
Receiver
The radar receiver decodes CAN frames into a target list, manages the current list and publishes it cyclically.
All received messages are checked for their cyclic redundancy check (CRC), rolling message counter
and age (message not older than parameter allowed_age). If any of these checks do not succeed the
received message is not further processed and skipped.
The relevant radar CAN frame IDs to process are specified by the target_base_id and info_id
parameters. They should correspond to the first target frame ID and the info frame ID of the radar
CAN node and need to be adapted for the specific bus setup. If multiple radar sensors need to be
decoded on the same bus just launch multiple receiver nodes with individual *_id parameters.
The target list is published as a list of radar targets or as a point cloud and contains up to 48 targets (sensor limit). Only valid targets in the list are published (measured flag set).
If the receiver node does not receive anything within a configured period (parameter timeout), it
will publish a diagnostic error on /diagnostics. Also, the sensor information CAN frame gets
published and is checked for the diagnostic status of the radar. On error, the node will publish a
diagnostic error on /diagnostics.
Subscribed Topics
-
received_messages
(
can_msgs/Frame)- Radar CAN frames to decode
Published Topics
-
targets
(
off_highway_general_purpose_radar_msgs/Targets)- Update Rate: configurable with
publish_frequency - Contains current target list of radar as custom message containing the same information as
each target’s CAN frame. Mapping to the respective CAN frame is done via the
idfield.
- Update Rate: configurable with
-
targets_pcl
(
sensor_msgs/PointCloud2)- Update Rate: configurable with
publish_frequency - Contains current target list of radar as point cloud.
- Update Rate: configurable with
-
info
(
off_highway_radar_msgs/Information)- Update Rate: On each sensor information CAN frame
- Contains current sensor information message containing the same information as the respective CAN frame.
-
/diagnostics
(
diagnostic_msgs/DiagnosticArray)- Update Rate: On each sensor information CAN frame or if receiver timed out periodically with timeout period
- Diagnostic status contains statuses from the latest received sensor information and timeout status.
Parameters
See receiver_params.yaml.
Launch files
-
receiver_launch: Starts the receiver with the given parameters.
- Arguments:
- params: Path to ROS YAML parameter file to load for receiver. If not provided, default parameters from this package are loaded.
- Arguments:
Changelog for package off_highway_general_purpose_radar
1.4.0 (2026-11-02)
-
Fix node termination without error log by adding try/catch
Uncaught exceptions from malformed/manipulated CAN frames in callback_can() previously caused the node to terminate silently. This adds a try/catch block to handle the error gracefully, write to the error log, and keep the node running.
Tests were updated to reflect this change.
-
Contributors: Darius Man
1.3.0 (2026-03-10)
- Update maintainers
- Remove PCL dependencies from off highway sensor drivers packages
- Contributors: Calin-Vasile Sopterean, Robin Petereit
1.2.0 (2026-01-26)
-
Revert "Depend on ros_environment where needed (Jazzy version)" (#31)
Revert "Depend on ros_environment where needed (Jazzy version) (#28)"
This reverts commit 843890591d6db93ea883a83c0cecac298c5dba7f.
-
Fix pcl_conversions linking error in ROS buildfarm (#30)
-
Depend on ros_environment where needed (#24)
-
Contributors: Marco A. Gutierrez, Michal Sojka
1.1.0 (2025-11-12)
-
Update dependency declarations for target_link_libraries
-
Fix issue 20, don't publish sensor data when there is a sensor timeout
-
Remove ament deprecation warning from remaining packages
-
ament_target_dependencies is deprecated for Kilted and Rolling
This syntax should work as of ROS 2 Foxy already
-
Add pcl_point_xxx.hpp deprecation warning
-
Contributors: Calin-Vasile Sopterean, Ferry Schoenmakers, Tim Clephas
1.0.0 (2025-07-01)
- Move PCL dependencies
- Update README
- Contributors: Calin-Vasile Sopterean, Gabriela Adriana Lapuste
0.8.0 (2025-03-24)
-
Replace truncation of physical value with round outside of FOSS
Minimizes the floating point error such that half offset of resolution in tests is not needed anymore.
-
Do not force warnings as errors for General Purpose Radar (#12)
Fixup of #11.
-
Contributors: Robin Petereit, Tim Clephas
0.7.0 (2024-12-04)
- Register GPR component
- Contributors: Robin Petereit
0.6.3 (2024-07-09)
-
Add missing dependency on PCL headers (#9)
When I try to build this package on jazzy with rosdep, the PCL headers are missing. This package uses
find_package(PCL)and includes it in the headers. Therefore I think it would be best to add it to thebuild_dependandbuild_export_dependtags of thepackage.xmlfiles. In the buildfarm this is technically not needed because the PCL headers are abuild_export_dependofpcl_conversions, but rosdep ignores this dependency so it misses the PCL headers. -
Contributors: Ramon Wijnands
0.6.2 (2024-06-13)
0.6.1 (2024-06-04)
0.6.0 (2024-05-14)
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_ros | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| can_msgs | |
| off_highway_can | |
| off_highway_general_purpose_radar_msgs |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| off_highway_sensor_drivers |
Launch files
Messages
Services
Plugins
Recent questions tagged off_highway_general_purpose_radar at Robotics Stack Exchange
Package Summary
| Version | 1.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/bosch-engineering/off_highway_sensor_drivers.git |
| VCS Type | git |
| VCS Version | rolling-devel |
| Last Updated | 2026-11-03 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Sarah Huber
Authors
- Robin Petereit
off_highway_general_purpose_radar
The off_highway_general_purpose_radar package provides a receiver node to receive and decode CAN
frames of the Bosch General Purpose Radar Off-Highway (GPR) into ROS messages - it implements an
off_highway_can::Receiver.
Further information on the Bosch General Purpose Radar Off-Highway (GPR), it’s inputs, outputs and how they can be interpreted can be found in the corresponding datasheet or the Technical Customer Documentation (TCD) of the sensor system.
Supported devices
| Device name | Part Number | Description | Datasheet |
|---|---|---|---|
| General Purpose Radar Off-Highway (GPR) | - F037.000.100 (series) - F037.B00.255-11 (sample) |
- Radar sensor with up to 48 target reflections - Target output on automotive CAN is supported |
Link |
Contact: off-highway.beg@bosch.com
Nodes
Receiver
The radar receiver decodes CAN frames into a target list, manages the current list and publishes it cyclically.
All received messages are checked for their cyclic redundancy check (CRC), rolling message counter
and age (message not older than parameter allowed_age). If any of these checks do not succeed the
received message is not further processed and skipped.
The relevant radar CAN frame IDs to process are specified by the target_base_id and info_id
parameters. They should correspond to the first target frame ID and the info frame ID of the radar
CAN node and need to be adapted for the specific bus setup. If multiple radar sensors need to be
decoded on the same bus just launch multiple receiver nodes with individual *_id parameters.
The target list is published as a list of radar targets or as a point cloud and contains up to 48 targets (sensor limit). Only valid targets in the list are published (measured flag set).
If the receiver node does not receive anything within a configured period (parameter timeout), it
will publish a diagnostic error on /diagnostics. Also, the sensor information CAN frame gets
published and is checked for the diagnostic status of the radar. On error, the node will publish a
diagnostic error on /diagnostics.
Subscribed Topics
-
received_messages
(
can_msgs/Frame)- Radar CAN frames to decode
Published Topics
-
targets
(
off_highway_general_purpose_radar_msgs/Targets)- Update Rate: configurable with
publish_frequency - Contains current target list of radar as custom message containing the same information as
each target’s CAN frame. Mapping to the respective CAN frame is done via the
idfield.
- Update Rate: configurable with
-
targets_pcl
(
sensor_msgs/PointCloud2)- Update Rate: configurable with
publish_frequency - Contains current target list of radar as point cloud.
- Update Rate: configurable with
-
info
(
off_highway_radar_msgs/Information)- Update Rate: On each sensor information CAN frame
- Contains current sensor information message containing the same information as the respective CAN frame.
-
/diagnostics
(
diagnostic_msgs/DiagnosticArray)- Update Rate: On each sensor information CAN frame or if receiver timed out periodically with timeout period
- Diagnostic status contains statuses from the latest received sensor information and timeout status.
Parameters
See receiver_params.yaml.
Launch files
-
receiver_launch: Starts the receiver with the given parameters.
- Arguments:
- params: Path to ROS YAML parameter file to load for receiver. If not provided, default parameters from this package are loaded.
- Arguments:
Changelog for package off_highway_general_purpose_radar
1.4.0 (2026-11-02)
-
Fix node termination without error log by adding try/catch
Uncaught exceptions from malformed/manipulated CAN frames in callback_can() previously caused the node to terminate silently. This adds a try/catch block to handle the error gracefully, write to the error log, and keep the node running.
Tests were updated to reflect this change.
-
Contributors: Darius Man
1.3.0 (2026-03-10)
- Update maintainers
- Remove PCL dependencies from off highway sensor drivers packages
- Contributors: Calin-Vasile Sopterean, Robin Petereit
1.2.0 (2026-01-26)
-
Revert "Depend on ros_environment where needed (Jazzy version)" (#31)
Revert "Depend on ros_environment where needed (Jazzy version) (#28)"
This reverts commit 843890591d6db93ea883a83c0cecac298c5dba7f.
-
Fix pcl_conversions linking error in ROS buildfarm (#30)
-
Depend on ros_environment where needed (#24)
-
Contributors: Marco A. Gutierrez, Michal Sojka
1.1.0 (2025-11-12)
-
Update dependency declarations for target_link_libraries
-
Fix issue 20, don't publish sensor data when there is a sensor timeout
-
Remove ament deprecation warning from remaining packages
-
ament_target_dependencies is deprecated for Kilted and Rolling
This syntax should work as of ROS 2 Foxy already
-
Add pcl_point_xxx.hpp deprecation warning
-
Contributors: Calin-Vasile Sopterean, Ferry Schoenmakers, Tim Clephas
1.0.0 (2025-07-01)
- Move PCL dependencies
- Update README
- Contributors: Calin-Vasile Sopterean, Gabriela Adriana Lapuste
0.8.0 (2025-03-24)
-
Replace truncation of physical value with round outside of FOSS
Minimizes the floating point error such that half offset of resolution in tests is not needed anymore.
-
Do not force warnings as errors for General Purpose Radar (#12)
Fixup of #11.
-
Contributors: Robin Petereit, Tim Clephas
0.7.0 (2024-12-04)
- Register GPR component
- Contributors: Robin Petereit
0.6.3 (2024-07-09)
-
Add missing dependency on PCL headers (#9)
When I try to build this package on jazzy with rosdep, the PCL headers are missing. This package uses
find_package(PCL)and includes it in the headers. Therefore I think it would be best to add it to thebuild_dependandbuild_export_dependtags of thepackage.xmlfiles. In the buildfarm this is technically not needed because the PCL headers are abuild_export_dependofpcl_conversions, but rosdep ignores this dependency so it misses the PCL headers. -
Contributors: Ramon Wijnands
0.6.2 (2024-06-13)
0.6.1 (2024-06-04)
0.6.0 (2024-05-14)
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_ros | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| can_msgs | |
| off_highway_can | |
| off_highway_general_purpose_radar_msgs |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| off_highway_sensor_drivers |
Launch files
Messages
Services
Plugins
Recent questions tagged off_highway_general_purpose_radar at Robotics Stack Exchange
Package Summary
| Version | 0.13.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/bosch-engineering/off_highway_sensor_drivers.git |
| VCS Type | git |
| VCS Version | humble-devel |
| Last Updated | 2026-11-03 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Sarah Huber
Authors
- Robin Petereit
off_highway_general_purpose_radar
The off_highway_general_purpose_radar package provides a receiver node to receive and decode CAN
frames of the Bosch General Purpose Radar Off-Highway (GPR) into ROS messages - it implements an
off_highway_can::Receiver.
Further information on the Bosch General Purpose Radar Off-Highway (GPR), it’s inputs, outputs and how they can be interpreted can be found in the corresponding datasheet or the Technical Customer Documentation (TCD) of the sensor system.
Supported devices
| Device name | Part Number | Description | Datasheet |
|---|---|---|---|
| General Purpose Radar Off-Highway (GPR) | - F037.000.100 (series) - F037.B00.255-11 (sample) |
- Radar sensor with up to 48 target reflections - Target output on automotive CAN is supported |
Link |
Contact: off-highway.beg@bosch.com
Nodes
Receiver
The radar receiver decodes CAN frames into a target list, manages the current list and publishes it cyclically.
All received messages are checked for their cyclic redundancy check (CRC), rolling message counter
and age (message not older than parameter allowed_age). If any of these checks do not succeed the
received message is not further processed and skipped.
The relevant radar CAN frame IDs to process are specified by the target_base_id and info_id
parameters. They should correspond to the first target frame ID and the info frame ID of the radar
CAN node and need to be adapted for the specific bus setup. If multiple radar sensors need to be
decoded on the same bus just launch multiple receiver nodes with individual *_id parameters.
The target list is published as a list of radar targets or as a point cloud and contains up to 48 targets (sensor limit). Only valid targets in the list are published (measured flag set).
If the receiver node does not receive anything within a configured period (parameter timeout), it
will publish a diagnostic error on /diagnostics. Also, the sensor information CAN frame gets
published and is checked for the diagnostic status of the radar. On error, the node will publish a
diagnostic error on /diagnostics.
Subscribed Topics
-
received_messages
(
can_msgs/Frame)- Radar CAN frames to decode
Published Topics
-
targets
(
off_highway_general_purpose_radar_msgs/Targets)- Update Rate: configurable with
publish_frequency - Contains current target list of radar as custom message containing the same information as
each target’s CAN frame. Mapping to the respective CAN frame is done via the
idfield.
- Update Rate: configurable with
-
targets_pcl
(
sensor_msgs/PointCloud2)- Update Rate: configurable with
publish_frequency - Contains current target list of radar as point cloud.
- Update Rate: configurable with
-
info
(
off_highway_radar_msgs/Information)- Update Rate: On each sensor information CAN frame
- Contains current sensor information message containing the same information as the respective CAN frame.
-
/diagnostics
(
diagnostic_msgs/DiagnosticArray)- Update Rate: On each sensor information CAN frame or if receiver timed out periodically with timeout period
- Diagnostic status contains statuses from the latest received sensor information and timeout status.
Parameters
See receiver_params.yaml.
Launch files
-
receiver_launch: Starts the receiver with the given parameters.
- Arguments:
- params: Path to ROS YAML parameter file to load for receiver. If not provided, default parameters from this package are loaded.
- Arguments:
Changelog for package off_highway_general_purpose_radar
0.13.0 (2026-11-02)
-
Fix node termination without error log by adding try/catch
Uncaught exceptions from malformed/manipulated CAN frames in callback_can() previously caused the node to terminate silently. This adds a try/catch block to handle the error gracefully, write to the error log, and keep the node running.
Tests were updated to reflect this change.
-
Contributors: Darius Man
0.12.0 (2026-03-10)
- Update maintainers
- Remove PCL dependencies from off highway sensor drivers packages
- Contributors: Calin-Vasile Sopterean, Robin Petereit
0.11.0 (2026-01-26)
-
Revert "Depend on ros_environment where needed (Jazzy version)" (#31)
Revert "Depend on ros_environment where needed (Jazzy version) (#28)"
This reverts commit 843890591d6db93ea883a83c0cecac298c5dba7f.
-
Fix pcl_conversions linking error in ROS buildfarm (#30)
-
Depend on ros_environment where needed (Humble version) (#27)
-
Contributors: Marco A. Gutierrez, Michal Sojka
0.10.0 (2025-11-12)
-
Update dependency declarations for target_link_libraries
-
Fix issue 20, don't publish sensor data when there is a sensor timeout
-
Remove ament deprecation warning from remaining packages
-
ament_target_dependencies is deprecated for Kilted and Rolling
This syntax should work as of ROS 2 Foxy already
-
Add pcl_point_xxx.hpp deprecation warning
-
Contributors: Calin-Vasile Sopterean, Ferry Schoenmakers, Tim Clephas
0.9.0 (2025-06-16)
- Move PCL dependencies
- Update README
- Contributors: Calin-Vasile Sopterean, Gabriela Adriana Lapuste
0.8.0 (2025-03-24)
-
Replace truncation of physical value with round outside of FOSS
Minimizes the floating point error such that half offset of resolution in tests is not needed anymore.
-
Do not force warnings as errors for General Purpose Radar (#12)
Fixup of #11.
-
Contributors: Robin Petereit, Tim Clephas
0.7.0 (2024-12-04)
- Register GPR component
- Contributors: Robin Petereit
0.6.3 (2024-07-09)
-
Add missing dependency on PCL headers (#9)
When I try to build this package on jazzy with rosdep, the PCL headers are missing. This package uses
find_package(PCL)and includes it in the headers. Therefore I think it would be best to add it to thebuild_dependandbuild_export_dependtags of thepackage.xmlfiles. In the buildfarm this is technically not needed because the PCL headers are abuild_export_dependofpcl_conversions, but rosdep ignores this dependency so it misses the PCL headers. -
Contributors: Ramon Wijnands
0.6.2 (2024-06-13)
0.6.1 (2024-06-04)
0.6.0 (2024-05-14)
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_ros | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| can_msgs | |
| off_highway_can | |
| off_highway_general_purpose_radar_msgs |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| off_highway_sensor_drivers |
Launch files
Messages
Services
Plugins
Recent questions tagged off_highway_general_purpose_radar at Robotics Stack Exchange
Package Summary
| Version | 0.13.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/bosch-engineering/off_highway_sensor_drivers.git |
| VCS Type | git |
| VCS Version | humble-devel |
| Last Updated | 2026-11-03 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Sarah Huber
Authors
- Robin Petereit
off_highway_general_purpose_radar
The off_highway_general_purpose_radar package provides a receiver node to receive and decode CAN
frames of the Bosch General Purpose Radar Off-Highway (GPR) into ROS messages - it implements an
off_highway_can::Receiver.
Further information on the Bosch General Purpose Radar Off-Highway (GPR), it’s inputs, outputs and how they can be interpreted can be found in the corresponding datasheet or the Technical Customer Documentation (TCD) of the sensor system.
Supported devices
| Device name | Part Number | Description | Datasheet |
|---|---|---|---|
| General Purpose Radar Off-Highway (GPR) | - F037.000.100 (series) - F037.B00.255-11 (sample) |
- Radar sensor with up to 48 target reflections - Target output on automotive CAN is supported |
Link |
Contact: off-highway.beg@bosch.com
Nodes
Receiver
The radar receiver decodes CAN frames into a target list, manages the current list and publishes it cyclically.
All received messages are checked for their cyclic redundancy check (CRC), rolling message counter
and age (message not older than parameter allowed_age). If any of these checks do not succeed the
received message is not further processed and skipped.
The relevant radar CAN frame IDs to process are specified by the target_base_id and info_id
parameters. They should correspond to the first target frame ID and the info frame ID of the radar
CAN node and need to be adapted for the specific bus setup. If multiple radar sensors need to be
decoded on the same bus just launch multiple receiver nodes with individual *_id parameters.
The target list is published as a list of radar targets or as a point cloud and contains up to 48 targets (sensor limit). Only valid targets in the list are published (measured flag set).
If the receiver node does not receive anything within a configured period (parameter timeout), it
will publish a diagnostic error on /diagnostics. Also, the sensor information CAN frame gets
published and is checked for the diagnostic status of the radar. On error, the node will publish a
diagnostic error on /diagnostics.
Subscribed Topics
-
received_messages
(
can_msgs/Frame)- Radar CAN frames to decode
Published Topics
-
targets
(
off_highway_general_purpose_radar_msgs/Targets)- Update Rate: configurable with
publish_frequency - Contains current target list of radar as custom message containing the same information as
each target’s CAN frame. Mapping to the respective CAN frame is done via the
idfield.
- Update Rate: configurable with
-
targets_pcl
(
sensor_msgs/PointCloud2)- Update Rate: configurable with
publish_frequency - Contains current target list of radar as point cloud.
- Update Rate: configurable with
-
info
(
off_highway_radar_msgs/Information)- Update Rate: On each sensor information CAN frame
- Contains current sensor information message containing the same information as the respective CAN frame.
-
/diagnostics
(
diagnostic_msgs/DiagnosticArray)- Update Rate: On each sensor information CAN frame or if receiver timed out periodically with timeout period
- Diagnostic status contains statuses from the latest received sensor information and timeout status.
Parameters
See receiver_params.yaml.
Launch files
-
receiver_launch: Starts the receiver with the given parameters.
- Arguments:
- params: Path to ROS YAML parameter file to load for receiver. If not provided, default parameters from this package are loaded.
- Arguments:
Changelog for package off_highway_general_purpose_radar
0.13.0 (2026-11-02)
-
Fix node termination without error log by adding try/catch
Uncaught exceptions from malformed/manipulated CAN frames in callback_can() previously caused the node to terminate silently. This adds a try/catch block to handle the error gracefully, write to the error log, and keep the node running.
Tests were updated to reflect this change.
-
Contributors: Darius Man
0.12.0 (2026-03-10)
- Update maintainers
- Remove PCL dependencies from off highway sensor drivers packages
- Contributors: Calin-Vasile Sopterean, Robin Petereit
0.11.0 (2026-01-26)
-
Revert "Depend on ros_environment where needed (Jazzy version)" (#31)
Revert "Depend on ros_environment where needed (Jazzy version) (#28)"
This reverts commit 843890591d6db93ea883a83c0cecac298c5dba7f.
-
Fix pcl_conversions linking error in ROS buildfarm (#30)
-
Depend on ros_environment where needed (Humble version) (#27)
-
Contributors: Marco A. Gutierrez, Michal Sojka
0.10.0 (2025-11-12)
-
Update dependency declarations for target_link_libraries
-
Fix issue 20, don't publish sensor data when there is a sensor timeout
-
Remove ament deprecation warning from remaining packages
-
ament_target_dependencies is deprecated for Kilted and Rolling
This syntax should work as of ROS 2 Foxy already
-
Add pcl_point_xxx.hpp deprecation warning
-
Contributors: Calin-Vasile Sopterean, Ferry Schoenmakers, Tim Clephas
0.9.0 (2025-06-16)
- Move PCL dependencies
- Update README
- Contributors: Calin-Vasile Sopterean, Gabriela Adriana Lapuste
0.8.0 (2025-03-24)
-
Replace truncation of physical value with round outside of FOSS
Minimizes the floating point error such that half offset of resolution in tests is not needed anymore.
-
Do not force warnings as errors for General Purpose Radar (#12)
Fixup of #11.
-
Contributors: Robin Petereit, Tim Clephas
0.7.0 (2024-12-04)
- Register GPR component
- Contributors: Robin Petereit
0.6.3 (2024-07-09)
-
Add missing dependency on PCL headers (#9)
When I try to build this package on jazzy with rosdep, the PCL headers are missing. This package uses
find_package(PCL)and includes it in the headers. Therefore I think it would be best to add it to thebuild_dependandbuild_export_dependtags of thepackage.xmlfiles. In the buildfarm this is technically not needed because the PCL headers are abuild_export_dependofpcl_conversions, but rosdep ignores this dependency so it misses the PCL headers. -
Contributors: Ramon Wijnands
0.6.2 (2024-06-13)
0.6.1 (2024-06-04)
0.6.0 (2024-05-14)
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_ros | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| can_msgs | |
| off_highway_can | |
| off_highway_general_purpose_radar_msgs |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| off_highway_sensor_drivers |
Launch files
Messages
Services
Plugins
Recent questions tagged off_highway_general_purpose_radar at Robotics Stack Exchange
Package Summary
| Version | 0.13.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/bosch-engineering/off_highway_sensor_drivers.git |
| VCS Type | git |
| VCS Version | humble-devel |
| Last Updated | 2026-11-03 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Sarah Huber
Authors
- Robin Petereit
off_highway_general_purpose_radar
The off_highway_general_purpose_radar package provides a receiver node to receive and decode CAN
frames of the Bosch General Purpose Radar Off-Highway (GPR) into ROS messages - it implements an
off_highway_can::Receiver.
Further information on the Bosch General Purpose Radar Off-Highway (GPR), it’s inputs, outputs and how they can be interpreted can be found in the corresponding datasheet or the Technical Customer Documentation (TCD) of the sensor system.
Supported devices
| Device name | Part Number | Description | Datasheet |
|---|---|---|---|
| General Purpose Radar Off-Highway (GPR) | - F037.000.100 (series) - F037.B00.255-11 (sample) |
- Radar sensor with up to 48 target reflections - Target output on automotive CAN is supported |
Link |
Contact: off-highway.beg@bosch.com
Nodes
Receiver
The radar receiver decodes CAN frames into a target list, manages the current list and publishes it cyclically.
All received messages are checked for their cyclic redundancy check (CRC), rolling message counter
and age (message not older than parameter allowed_age). If any of these checks do not succeed the
received message is not further processed and skipped.
The relevant radar CAN frame IDs to process are specified by the target_base_id and info_id
parameters. They should correspond to the first target frame ID and the info frame ID of the radar
CAN node and need to be adapted for the specific bus setup. If multiple radar sensors need to be
decoded on the same bus just launch multiple receiver nodes with individual *_id parameters.
The target list is published as a list of radar targets or as a point cloud and contains up to 48 targets (sensor limit). Only valid targets in the list are published (measured flag set).
If the receiver node does not receive anything within a configured period (parameter timeout), it
will publish a diagnostic error on /diagnostics. Also, the sensor information CAN frame gets
published and is checked for the diagnostic status of the radar. On error, the node will publish a
diagnostic error on /diagnostics.
Subscribed Topics
-
received_messages
(
can_msgs/Frame)- Radar CAN frames to decode
Published Topics
-
targets
(
off_highway_general_purpose_radar_msgs/Targets)- Update Rate: configurable with
publish_frequency - Contains current target list of radar as custom message containing the same information as
each target’s CAN frame. Mapping to the respective CAN frame is done via the
idfield.
- Update Rate: configurable with
-
targets_pcl
(
sensor_msgs/PointCloud2)- Update Rate: configurable with
publish_frequency - Contains current target list of radar as point cloud.
- Update Rate: configurable with
-
info
(
off_highway_radar_msgs/Information)- Update Rate: On each sensor information CAN frame
- Contains current sensor information message containing the same information as the respective CAN frame.
-
/diagnostics
(
diagnostic_msgs/DiagnosticArray)- Update Rate: On each sensor information CAN frame or if receiver timed out periodically with timeout period
- Diagnostic status contains statuses from the latest received sensor information and timeout status.
Parameters
See receiver_params.yaml.
Launch files
-
receiver_launch: Starts the receiver with the given parameters.
- Arguments:
- params: Path to ROS YAML parameter file to load for receiver. If not provided, default parameters from this package are loaded.
- Arguments:
Changelog for package off_highway_general_purpose_radar
0.13.0 (2026-11-02)
-
Fix node termination without error log by adding try/catch
Uncaught exceptions from malformed/manipulated CAN frames in callback_can() previously caused the node to terminate silently. This adds a try/catch block to handle the error gracefully, write to the error log, and keep the node running.
Tests were updated to reflect this change.
-
Contributors: Darius Man
0.12.0 (2026-03-10)
- Update maintainers
- Remove PCL dependencies from off highway sensor drivers packages
- Contributors: Calin-Vasile Sopterean, Robin Petereit
0.11.0 (2026-01-26)
-
Revert "Depend on ros_environment where needed (Jazzy version)" (#31)
Revert "Depend on ros_environment where needed (Jazzy version) (#28)"
This reverts commit 843890591d6db93ea883a83c0cecac298c5dba7f.
-
Fix pcl_conversions linking error in ROS buildfarm (#30)
-
Depend on ros_environment where needed (Humble version) (#27)
-
Contributors: Marco A. Gutierrez, Michal Sojka
0.10.0 (2025-11-12)
-
Update dependency declarations for target_link_libraries
-
Fix issue 20, don't publish sensor data when there is a sensor timeout
-
Remove ament deprecation warning from remaining packages
-
ament_target_dependencies is deprecated for Kilted and Rolling
This syntax should work as of ROS 2 Foxy already
-
Add pcl_point_xxx.hpp deprecation warning
-
Contributors: Calin-Vasile Sopterean, Ferry Schoenmakers, Tim Clephas
0.9.0 (2025-06-16)
- Move PCL dependencies
- Update README
- Contributors: Calin-Vasile Sopterean, Gabriela Adriana Lapuste
0.8.0 (2025-03-24)
-
Replace truncation of physical value with round outside of FOSS
Minimizes the floating point error such that half offset of resolution in tests is not needed anymore.
-
Do not force warnings as errors for General Purpose Radar (#12)
Fixup of #11.
-
Contributors: Robin Petereit, Tim Clephas
0.7.0 (2024-12-04)
- Register GPR component
- Contributors: Robin Petereit
0.6.3 (2024-07-09)
-
Add missing dependency on PCL headers (#9)
When I try to build this package on jazzy with rosdep, the PCL headers are missing. This package uses
find_package(PCL)and includes it in the headers. Therefore I think it would be best to add it to thebuild_dependandbuild_export_dependtags of thepackage.xmlfiles. In the buildfarm this is technically not needed because the PCL headers are abuild_export_dependofpcl_conversions, but rosdep ignores this dependency so it misses the PCL headers. -
Contributors: Ramon Wijnands
0.6.2 (2024-06-13)
0.6.1 (2024-06-04)
0.6.0 (2024-05-14)
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_ros | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| can_msgs | |
| off_highway_can | |
| off_highway_general_purpose_radar_msgs |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| off_highway_sensor_drivers |
Launch files
Messages
Services
Plugins
Recent questions tagged off_highway_general_purpose_radar at Robotics Stack Exchange
Package Summary
| Version | 0.13.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/bosch-engineering/off_highway_sensor_drivers.git |
| VCS Type | git |
| VCS Version | humble-devel |
| Last Updated | 2026-11-03 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Sarah Huber
Authors
- Robin Petereit
off_highway_general_purpose_radar
The off_highway_general_purpose_radar package provides a receiver node to receive and decode CAN
frames of the Bosch General Purpose Radar Off-Highway (GPR) into ROS messages - it implements an
off_highway_can::Receiver.
Further information on the Bosch General Purpose Radar Off-Highway (GPR), it’s inputs, outputs and how they can be interpreted can be found in the corresponding datasheet or the Technical Customer Documentation (TCD) of the sensor system.
Supported devices
| Device name | Part Number | Description | Datasheet |
|---|---|---|---|
| General Purpose Radar Off-Highway (GPR) | - F037.000.100 (series) - F037.B00.255-11 (sample) |
- Radar sensor with up to 48 target reflections - Target output on automotive CAN is supported |
Link |
Contact: off-highway.beg@bosch.com
Nodes
Receiver
The radar receiver decodes CAN frames into a target list, manages the current list and publishes it cyclically.
All received messages are checked for their cyclic redundancy check (CRC), rolling message counter
and age (message not older than parameter allowed_age). If any of these checks do not succeed the
received message is not further processed and skipped.
The relevant radar CAN frame IDs to process are specified by the target_base_id and info_id
parameters. They should correspond to the first target frame ID and the info frame ID of the radar
CAN node and need to be adapted for the specific bus setup. If multiple radar sensors need to be
decoded on the same bus just launch multiple receiver nodes with individual *_id parameters.
The target list is published as a list of radar targets or as a point cloud and contains up to 48 targets (sensor limit). Only valid targets in the list are published (measured flag set).
If the receiver node does not receive anything within a configured period (parameter timeout), it
will publish a diagnostic error on /diagnostics. Also, the sensor information CAN frame gets
published and is checked for the diagnostic status of the radar. On error, the node will publish a
diagnostic error on /diagnostics.
Subscribed Topics
-
received_messages
(
can_msgs/Frame)- Radar CAN frames to decode
Published Topics
-
targets
(
off_highway_general_purpose_radar_msgs/Targets)- Update Rate: configurable with
publish_frequency - Contains current target list of radar as custom message containing the same information as
each target’s CAN frame. Mapping to the respective CAN frame is done via the
idfield.
- Update Rate: configurable with
-
targets_pcl
(
sensor_msgs/PointCloud2)- Update Rate: configurable with
publish_frequency - Contains current target list of radar as point cloud.
- Update Rate: configurable with
-
info
(
off_highway_radar_msgs/Information)- Update Rate: On each sensor information CAN frame
- Contains current sensor information message containing the same information as the respective CAN frame.
-
/diagnostics
(
diagnostic_msgs/DiagnosticArray)- Update Rate: On each sensor information CAN frame or if receiver timed out periodically with timeout period
- Diagnostic status contains statuses from the latest received sensor information and timeout status.
Parameters
See receiver_params.yaml.
Launch files
-
receiver_launch: Starts the receiver with the given parameters.
- Arguments:
- params: Path to ROS YAML parameter file to load for receiver. If not provided, default parameters from this package are loaded.
- Arguments:
Changelog for package off_highway_general_purpose_radar
0.13.0 (2026-11-02)
-
Fix node termination without error log by adding try/catch
Uncaught exceptions from malformed/manipulated CAN frames in callback_can() previously caused the node to terminate silently. This adds a try/catch block to handle the error gracefully, write to the error log, and keep the node running.
Tests were updated to reflect this change.
-
Contributors: Darius Man
0.12.0 (2026-03-10)
- Update maintainers
- Remove PCL dependencies from off highway sensor drivers packages
- Contributors: Calin-Vasile Sopterean, Robin Petereit
0.11.0 (2026-01-26)
-
Revert "Depend on ros_environment where needed (Jazzy version)" (#31)
Revert "Depend on ros_environment where needed (Jazzy version) (#28)"
This reverts commit 843890591d6db93ea883a83c0cecac298c5dba7f.
-
Fix pcl_conversions linking error in ROS buildfarm (#30)
-
Depend on ros_environment where needed (Humble version) (#27)
-
Contributors: Marco A. Gutierrez, Michal Sojka
0.10.0 (2025-11-12)
-
Update dependency declarations for target_link_libraries
-
Fix issue 20, don't publish sensor data when there is a sensor timeout
-
Remove ament deprecation warning from remaining packages
-
ament_target_dependencies is deprecated for Kilted and Rolling
This syntax should work as of ROS 2 Foxy already
-
Add pcl_point_xxx.hpp deprecation warning
-
Contributors: Calin-Vasile Sopterean, Ferry Schoenmakers, Tim Clephas
0.9.0 (2025-06-16)
- Move PCL dependencies
- Update README
- Contributors: Calin-Vasile Sopterean, Gabriela Adriana Lapuste
0.8.0 (2025-03-24)
-
Replace truncation of physical value with round outside of FOSS
Minimizes the floating point error such that half offset of resolution in tests is not needed anymore.
-
Do not force warnings as errors for General Purpose Radar (#12)
Fixup of #11.
-
Contributors: Robin Petereit, Tim Clephas
0.7.0 (2024-12-04)
- Register GPR component
- Contributors: Robin Petereit
0.6.3 (2024-07-09)
-
Add missing dependency on PCL headers (#9)
When I try to build this package on jazzy with rosdep, the PCL headers are missing. This package uses
find_package(PCL)and includes it in the headers. Therefore I think it would be best to add it to thebuild_dependandbuild_export_dependtags of thepackage.xmlfiles. In the buildfarm this is technically not needed because the PCL headers are abuild_export_dependofpcl_conversions, but rosdep ignores this dependency so it misses the PCL headers. -
Contributors: Ramon Wijnands
0.6.2 (2024-06-13)
0.6.1 (2024-06-04)
0.6.0 (2024-05-14)
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_ros | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| can_msgs | |
| off_highway_can | |
| off_highway_general_purpose_radar_msgs |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| off_highway_sensor_drivers |
Launch files
Messages
Services
Plugins
Recent questions tagged off_highway_general_purpose_radar at Robotics Stack Exchange
Package Summary
| Version | 0.13.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/bosch-engineering/off_highway_sensor_drivers.git |
| VCS Type | git |
| VCS Version | humble-devel |
| Last Updated | 2026-11-03 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Sarah Huber
Authors
- Robin Petereit
off_highway_general_purpose_radar
The off_highway_general_purpose_radar package provides a receiver node to receive and decode CAN
frames of the Bosch General Purpose Radar Off-Highway (GPR) into ROS messages - it implements an
off_highway_can::Receiver.
Further information on the Bosch General Purpose Radar Off-Highway (GPR), it’s inputs, outputs and how they can be interpreted can be found in the corresponding datasheet or the Technical Customer Documentation (TCD) of the sensor system.
Supported devices
| Device name | Part Number | Description | Datasheet |
|---|---|---|---|
| General Purpose Radar Off-Highway (GPR) | - F037.000.100 (series) - F037.B00.255-11 (sample) |
- Radar sensor with up to 48 target reflections - Target output on automotive CAN is supported |
Link |
Contact: off-highway.beg@bosch.com
Nodes
Receiver
The radar receiver decodes CAN frames into a target list, manages the current list and publishes it cyclically.
All received messages are checked for their cyclic redundancy check (CRC), rolling message counter
and age (message not older than parameter allowed_age). If any of these checks do not succeed the
received message is not further processed and skipped.
The relevant radar CAN frame IDs to process are specified by the target_base_id and info_id
parameters. They should correspond to the first target frame ID and the info frame ID of the radar
CAN node and need to be adapted for the specific bus setup. If multiple radar sensors need to be
decoded on the same bus just launch multiple receiver nodes with individual *_id parameters.
The target list is published as a list of radar targets or as a point cloud and contains up to 48 targets (sensor limit). Only valid targets in the list are published (measured flag set).
If the receiver node does not receive anything within a configured period (parameter timeout), it
will publish a diagnostic error on /diagnostics. Also, the sensor information CAN frame gets
published and is checked for the diagnostic status of the radar. On error, the node will publish a
diagnostic error on /diagnostics.
Subscribed Topics
-
received_messages
(
can_msgs/Frame)- Radar CAN frames to decode
Published Topics
-
targets
(
off_highway_general_purpose_radar_msgs/Targets)- Update Rate: configurable with
publish_frequency - Contains current target list of radar as custom message containing the same information as
each target’s CAN frame. Mapping to the respective CAN frame is done via the
idfield.
- Update Rate: configurable with
-
targets_pcl
(
sensor_msgs/PointCloud2)- Update Rate: configurable with
publish_frequency - Contains current target list of radar as point cloud.
- Update Rate: configurable with
-
info
(
off_highway_radar_msgs/Information)- Update Rate: On each sensor information CAN frame
- Contains current sensor information message containing the same information as the respective CAN frame.
-
/diagnostics
(
diagnostic_msgs/DiagnosticArray)- Update Rate: On each sensor information CAN frame or if receiver timed out periodically with timeout period
- Diagnostic status contains statuses from the latest received sensor information and timeout status.
Parameters
See receiver_params.yaml.
Launch files
-
receiver_launch: Starts the receiver with the given parameters.
- Arguments:
- params: Path to ROS YAML parameter file to load for receiver. If not provided, default parameters from this package are loaded.
- Arguments:
Changelog for package off_highway_general_purpose_radar
0.13.0 (2026-11-02)
-
Fix node termination without error log by adding try/catch
Uncaught exceptions from malformed/manipulated CAN frames in callback_can() previously caused the node to terminate silently. This adds a try/catch block to handle the error gracefully, write to the error log, and keep the node running.
Tests were updated to reflect this change.
-
Contributors: Darius Man
0.12.0 (2026-03-10)
- Update maintainers
- Remove PCL dependencies from off highway sensor drivers packages
- Contributors: Calin-Vasile Sopterean, Robin Petereit
0.11.0 (2026-01-26)
-
Revert "Depend on ros_environment where needed (Jazzy version)" (#31)
Revert "Depend on ros_environment where needed (Jazzy version) (#28)"
This reverts commit 843890591d6db93ea883a83c0cecac298c5dba7f.
-
Fix pcl_conversions linking error in ROS buildfarm (#30)
-
Depend on ros_environment where needed (Humble version) (#27)
-
Contributors: Marco A. Gutierrez, Michal Sojka
0.10.0 (2025-11-12)
-
Update dependency declarations for target_link_libraries
-
Fix issue 20, don't publish sensor data when there is a sensor timeout
-
Remove ament deprecation warning from remaining packages
-
ament_target_dependencies is deprecated for Kilted and Rolling
This syntax should work as of ROS 2 Foxy already
-
Add pcl_point_xxx.hpp deprecation warning
-
Contributors: Calin-Vasile Sopterean, Ferry Schoenmakers, Tim Clephas
0.9.0 (2025-06-16)
- Move PCL dependencies
- Update README
- Contributors: Calin-Vasile Sopterean, Gabriela Adriana Lapuste
0.8.0 (2025-03-24)
-
Replace truncation of physical value with round outside of FOSS
Minimizes the floating point error such that half offset of resolution in tests is not needed anymore.
-
Do not force warnings as errors for General Purpose Radar (#12)
Fixup of #11.
-
Contributors: Robin Petereit, Tim Clephas
0.7.0 (2024-12-04)
- Register GPR component
- Contributors: Robin Petereit
0.6.3 (2024-07-09)
-
Add missing dependency on PCL headers (#9)
When I try to build this package on jazzy with rosdep, the PCL headers are missing. This package uses
find_package(PCL)and includes it in the headers. Therefore I think it would be best to add it to thebuild_dependandbuild_export_dependtags of thepackage.xmlfiles. In the buildfarm this is technically not needed because the PCL headers are abuild_export_dependofpcl_conversions, but rosdep ignores this dependency so it misses the PCL headers. -
Contributors: Ramon Wijnands
0.6.2 (2024-06-13)
0.6.1 (2024-06-04)
0.6.0 (2024-05-14)
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_ros | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| can_msgs | |
| off_highway_can | |
| off_highway_general_purpose_radar_msgs |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| off_highway_sensor_drivers |