Package Summary

Tags No category tags.
Version 0.5.1
License Apache-2.0, MIT
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-03-27
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The off_highway_can package

Additional Links

No additional links.

Maintainers

  • Robin Petereit

Authors

  • Robin Petereit
  • Marcus Huenerbein

off_highway_can

The off_highway_can package provides a C++ library to

  • receive can_msgs/Frame ROS messages and decode their bytes into custom C++ message structures,
  • encode the bytes of can_msgs/Frame ROS messages from custom C++ message structures and send them.

The list of message structures containing the definition of a CAN message and signals need to be filled by derived classes for CAN node specific functionality. The more generic handling of a cyclic redundancy check and a rolling message counter per message is provided by the library. Have a look directly into the CAN message structure definition for further information.

Classes

Receiver

The off_highway_can::Receiver is an abstract base class and needs to be derived for specific sensor types and behavior. It provides the functionality to process can_msgs/Frame ROS messages and decode configured ones based on provided message definitions. The decoded signal values are forwarded to the derived class for user-defined processing of them.

The processing chain is based completely on message callbacks and thus event-based. The needed processing time per message can be logged as ROS debug message at runtime with the compile time optionCOMPILE_DEBUG_LOG.

Furthermore, the off_highway_can::Receiver provides a watchdog which checks whether any configured message was received in the period of time defined by the parameter timeout and sends a diagnostic error on the /diagnostics topic when a timeout occurs.

Subscribed Topics

Published Topics

Parameters

See receiver_params.yaml.

Sender

The off_highway_can::Sender is an abstract base class and needs to be derived for specific behavior. It provides the functionality to send can_msgs/Frame ROS messages by encoding configured CAN messages as bytes based on provided message definitions. The encoded signal values are published to the to_can_bus topic.

The encoding and publishing chain is just a method call and thus event-based. The needed processing time to encode and publish all configured messages can be logged as ROS debug message at runtime with the compile time optionCOMPILE_DEBUG_LOG.

Furthermore, the off_highway_can::Sender provides a watchdog which checks whether a ROS message was published in a defined by the parameter timeout and sends a diagnostic error on the /diagnostics topic when a timeout occurs.

Published Topics

Parameters

See sender_params.yaml.

Free and Open Source Software (FOSS)

This library uses the libcan-encode-decode library for encoding and decoding raw bytes into / from floating values. See the FOSS documentation for further information.

CHANGELOG

Changelog for package off_highway_can

0.5.1 (2024-03-27)

  • Align Clang FP contraction to GCC for passing tests
  • Add virtual destructor for base class
  • Contributors: Robin Petereit

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged off_highway_can at Robotics Stack Exchange

No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.
No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.