The cube_ca ROS2 components running on cube devices can be customized via plugins. This repository includes the C++ interfaces and base implementations.
ETSI specifies rules when and how often Cooperative Awareness Messages (CAMs) shall be transmitted (disseminated).
The VehicleDisseminationRules
class implements these rules for vehicle stations (section 6.1.3) whereas RsuDisseminationRules
implements them for Road Side Units (section 6.1.4).
The cube_ca::TxNode component uses one of these classes by default depending on its station_type parameter.
Primarily, the dissemination rules indicate if a CAM should be transmitted at the current time point.
Furthermore, they can also modify the provided CAM object, e.g. disabling optional containers which shall only be included at lower rates.
Please refer to the documentation in the header file of DisseminationRules
for the full API.
Users can explicitly request the usage of particular rules, including custom implementations of DisseminationRules
, by setting the dissemination_rules_plugin parameter.
For example, with the value "my_plugins::MyDisseminationRules" the cube_ca transmitter instantiates the user's MyDisseminationRules
object from the my_plugins package.
The example directory contains a full example how the cube-its image can be customized. You can use it as template when you intend to run the cube_ca transmission node with your own dissemination rules.