Introduction
Two SiK Telemetry Radios (https://holybro.com/products/sik-telemetry-radio-v3) can transmit ROS messages across extensive distances.
Data between the two SiK Telemetry Radios is transmitted in the 433Mhz or 915Mhz band. An IP connection between two endpoints via the SiK Telemetry Radios is established over a Point-to-Point Protocol link using https://linux.die.net/man/8/pppd. After the connection is established all ROS 2 features, e.g. auto-discovery, work out-of-the-box.
The video shows how the connection between two endpoints (laptops) is established and a “Hello world” messages is being transmitted from one endpoint to another. To replicate the setup, follow these steps.
Setup
-
Connect SiK Telemetry Radios to your endpoints. They appear as serial devices:
ls -l /dev/ttyUSB* # in the video, they are /dev/ttyUSB0
-
Initiate an IP link over a Point-to-Point protocol link:
a) Endpoint 1 (assigned IP 10.0.0.1)sudo pppd -detach nocrtscts lock noauth passive persist holdoff 3 maxfail 0 local 10.0.0.1:10.0.0.2 /dev/ttyUSB0 57600
b) Endpoint 2 (assigned IP 10.0.0.2)
sudo pppd -detach nocrtscts lock noauth passive persist holdoff 3 maxfail 0 local 10.0.0.2:10.0.0.1 /dev/ttyUSB0 57600
-
Publish and subscribe ROS 2 messages:
a) On one endpoint, publish messagesros2 topic pub /talker std_msgs/msg/String "{data: 'Hello world'}"
b) On the other endpoint, subscribe to messages
ros2 topic echo /talker
Notes
This solution uses solely pppd and requires no programming and no configuration (except passing the right parameters to pppd) to enable long-range ROS 2 data transmission. By activating pppd as systemd service, you can automatically establish a connection to your robot on boot-up.
SiK Telemetry Radios are commonly used to establish a connection and transmit control signals between a ground-station and aerial vehicles. “They typically allow ranges of better than 300m “out of the box” (the range can be extended to several kilometers with the use of a patch antenna on the ground)”, https://docs.px4.io/main/en/telemetry/holybro_sik_radio.html.
Such a setup could be particularly useful for ROS 2 powered field robots which are required to transmit data over long ranges in areas with no cellular coverage.