|
Package Summary
Tags | No category tags. |
Version | 0.7.0 |
License | Apache-2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/bosch-engineering/off_highway_sensor_drivers.git |
VCS Type | git |
VCS Version | humble-devel |
Last Updated | 2024-12-04 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Robin Petereit
Authors
- Robin Petereit
- Marcus Huenerbein
off_highway_radar
The off_highway_radar package provides a receiver node to receive and decode CAN frames of the Bosch
Radar Off-Highway into ROS messages - it implements an off_highway_can::Receiver
. Furthermore, the
package provides a sender node to encode and send needed radar input data as CAN frames - an
implementation of an off_highway_can::Sender
.
Further information on the Bosch Radar Off-Highway, it’s inputs, outputs and how they can be interpreted can be found in the corresponding Technical Customer Documentation (TCD) of the sensor system.
Supported devices
Device name | Part Number | Description |
---|---|---|
Radar Off-Highway | - F037.000.127 (series - from software version F037SW0157V06.0001 ) - F037.B00.575-04 (sample - from software version F037SW0116V05.0004) |
- Radar sensor with up to 40 objects (filtered & unfiltered) - Object output on automotive CAN is supported |
Further information: Radar systems for off-highway applications
Contact: off-highway.beg@bosch.com
Nodes
Receiver
The radar receiver decodes CAN frames into an object 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 object_base_id
and info_id
parameters. They should correspond to the first object 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 object list is published as a list of radar objects or as a point cloud and contains up to 40 objects (sensor limit). Only valid objects in the list are published (valid flag set).
The radar zone data is not processed in this version.
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
-
from_can_bus
(
can_msgs/Frame
)- Radar CAN frames to decode
Published Topics
-
objects
(
off_highway_radar_msgs/Objects
)- Update Rate: configurable with
publish_frequency
- Contains current object list of radar as custom message containing the same information as each
object’s CAN frame. Mapping to the respective CAN frame is done via the
id
field.
- Update Rate: configurable with
-
objects_pcl
(
sensor_msgs/PointCloud2
)- Update Rate: configurable with
publish_frequency
- Contains current object 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.
Sender
The radar sender listens for ROS twist messages as input, encodes them as CAN frames and publishes those as ROS messages.
Both radar input CAN signals only have a limited range:
- Ego velocity signal: [-81.92 m/s, 81.9175 m/s]
- Yaw rate signal: [-163.84 deg/s, 163.83 deg/s]
Input ROS messages with values outside of these ranges are discarded by the sender and not encoded /
published. Furthermore, if the ROS twist message is too old (parameter allowed_age
), it is
discarded, too.
The relevant radar CAN frame IDs to publish the forward velocity and yaw rate are specified by the
ego_velocity_id
and yaw_rate_id
parameters. These parameters need to correspond to the ego
velocity and yaw rate CAN frame ID for the specific bus setup. If multiple radar systems are
connected to the same bus, a single radar sender is sufficient as long as these radar systems expect
the ego velocity and yaw rate CAN messages on the same IDs (in contrast to multiple receivers).
If the sender node does not receive anything valid within a configured period (parameter timeout
),
it will publish a diagnostic error on /diagnostics
.
Subscribed Topics
-
velocity
(
geometry_msgs/TwistStamped
)- Forward velocity and yaw rate is sent to the radar for compensating velocity readings
Published Topics
-
to_can_bus
(
can_msgs/Frame
)- Encoded radar CAN frames
-
/diagnostics
(
diagnostic_msgs/DiagnosticArray
)- Update Rate: 1 Hz or if sender timed out periodically with timeout period
- Diagnostic status only contains timeout status
Parameters
See sender_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:
-
sender_launch: Starts the sender with the given parameters.
- Arguments:
- params: Path to ROS YAML parameter file to load for sender. If not provided, default parameters from this package are loaded.
- Arguments:
Changelog for package off_highway_radar
0.7.0 (2024-12-04)
- Do not force warnings as errors to fix rolling (#11)
- Contributors: Tim Clephas
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)]{.title-ref} and includes it in the headers. Therefore I think it would be best to add it to the [build_depend]{.title-ref} and [build_export_depend]{.title-ref} tags of the [package.xml]{.title-ref} files. In the buildfarm this is technically not needed because the PCL headers are a [build_export_depend]{.title-ref} of [pcl_conversions]{.title-ref}, 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)
- Switch from deprecated signature to const shared_ptr reference while still supporting efficient intra-process communication See https://github.com/ros2/rclcpp/pull/1598.
- Convert radar driver from node to component
- Add launch argument for parameters and unify launch file names
- Contributors: Robin Petereit, Sarah Huber
0.5.1 (2024-03-27)
- Include what you use
- Disable irrelevant warnings for Clang Anonymous structs are used in PCL for type punning: https://github.com/PointCloudLibrary/pcl/issues/2303 Subobject braces are not needed: https://bugs.llvm.org/show_bug.cgi?id=21629 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25137
- Contributors: Robin Petereit
Wiki Tutorials
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_radar_msgs | |
pcl_conversions | |
pcl_ros |