The instructions below cover downloading and configuring the SDK, building necessary ROS2 nodes, 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.
Download the SENSUS SDK #
To set up your sensor, start by downloading the SENSUS SDK for your desired platform. This download contains all the necessary library code for running the sensor. Choose a sensible directory for installation, such as:
/<username>/home/calyosensus_sdk
Download ROS2 Project #
Next, download the ROS2 project, which contains two required packages for the ROS2 node: calyosensus_msgs
and calyosensus_ros
. Place them in your ROS2 workspace under the path:
ros2_ws/src
Building the Node #
1. Open a New Terminal
Source your ROS2 installation by running the following command, replacing <version>
with your ROS version:
source /opt/ros/<version>/setup.bash
2. Navigate to the Calyo ROS2 Folder
Change directory to the ROS2 folder for Sensus:
cd sdk_testing/calyosensusros2/
3. Build the Messages
To compile the message package, run:
colcon build --packages-select calyosensus_msgs
4. Build the Driver Node
To compile the driver node, specify platform arguments:
- Platform: Choose from
["Linux"]
- Architecture: Choose from
["amd64", "arm64"]
Run the following command, replacing /path/to/sdk
with your SDK path:
Configure Library Paths #
Every time you open a new environment to run the SDK, configure the LD_LIBRARY_PATH
as follows:
1. Check Existing Library Paths
echo $LD_LIBRARY_PATH
2. Set Library Path
Update the path, adjusting PLATFORM
and ARCHITECTURE
as needed. For example:
export LD_LIBRARY_PATH="/path/to/calyosensus_sdk/lib/$PLATFORM/$ARCHITECTURE":$LD_LIBRARY_PATH
For a Linux Jetson system, you might use:
export LD_LIBRARY_PATH="/path/to/calyosensus_sdk/lib/Linux/arm64":$LD_LIBRARY_PATH
3. Verify the Updated Path
To verify the path was set correctly, run:
echo $LD_LIBRARY_PATH
Running the Driver Node #
To execute the driver node, from within the workspace with the package installed, use:
. install/local_setup.sh
ros2 run calyosensus_ros driver --ros-args -p engine_config:=/path/to/your/config.
Example Configurations #
Below are example configurations for reading data from a connected device and processing it with the ResolutionImager2Pipeline
processor pipeline.
Example 1: Device Reader with ROS2 Publisher #
This configuration reads data from a device with a specified serial number, performing the ResolutionImager2Pipeline
processing pipeline. The processed data is then published to a ROS2 topic named test_pub
.
{
"type" : "calyosensus",
"mode" : "self_timed",
"reader" : {
"type" : "DeviceReader",
"serial_number" : "CP66156A50003",
"num_cycles" : 10,
"max_distance" : 5.0
},
"processor" : {
"type" : "ResolutionImager2Pipeline",
"min_r" : -5.0,
"max_r" : 5.0,
"pixel_size" : 0.05
},
"writer" : {
"type" : "RosDatasetPublisher",
"topic_name" : "test_pub"
}
}
Conclusion #
With the SENSUS SDK and ROS2 integration set up, you’re now ready to start collecting, processing, and visualising sensor data within your ROS2 environment. This configuration supports flexible data acquisition, allowing for both real-time operation and offline analysis, with outputs ranging from raw data to complex 2-D and 3-D imaging. This setup should provide a solid foundation for further development, experimentation, and deployment using PULSE sensors on ROS2 Humble and Ubuntu 22.04 or newer.