ROS2
The instructions below cover downloading and configuring the SENSUS SDK for ROS2, and creating configurations for data acquisition and visualisation. Whether you’re performing 2-D and 3-D imaging or streaming data directly to ROS topics, this guide will help you establish a robust setup tailored to your application’s needs.
Currently the Calyo SENSUS intergation with ROS2 only supports ROS2 humble, x86 archintucute on Linux systems.
At Calyo we also enjoy using Docker to run ROS2, if you also would like to run ROS2 inside docker please read our Docker Intergation before continuing with this installation.
Usage​
The sensus ROS2 nodes can be used for integraing PULSE sensors with robotic platforms with ease. Operation of sensus with ROS follows much the same format as the SDK - in fact, all of the configs used in the SDK can be run using the ROS2 nodes also. The ROS2 integration, however, adds two important features: the ability to publish sensor data to ROS2 topics, and the ability to subscribe from topics. Information about the Reader and Writer types needed to do this can be found in the SDK Reference.
Here is an example config for a basic ROS workflow:
{
"type" : "calyosensus",
"pipelines" : [
{
"id" : "signal_capture",
"reader" : {
"type" : "DeviceReader",
"serial_number" : "CP66156A50003",
"num_cycles" : 20,
"max_distance" : 10.0
},
"writer" : {
"type" : "RosDatasetPublisher",
"topic_name" : "calyo_signals"
},
"processor" : {
"type" : "PassThroughPipeline"
}
}
]
}
This config is used to interface with the sensor, acquire frames of raw data and publish it to the ROS topic 'calyo_signals'.
To launch the node with any configuration, run:
ros2 launch meta.launch.py engine_config:=/path/to/config
There is an additional parameter use_cuda
, which is optional and defaults to true. To disable CUDA support, try:
ros2 launch meta.launch.py engine_config:=/path/to/config use_cuda:=false
For more information about how to get the most out of the ROS integration, have a look at the final section in Plug and Play. Here, you will see how we can orchestrate multiple pipelines to visualise data at a number of different stages of processing simultaneously, as well as computing different pipelines in parallel to acheive advanced perception and visualisation capabilities. We also walk through setting up Foxglove - our preffered ROS visualisation tool.