Long-range ROS 2 data transmission using SiK Telemetry Radios

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

  1. Connect SiK Telemetry Radios to your endpoints. They appear as serial devices:

    ls -l  /dev/ttyUSB* # in the video, they are /dev/ttyUSB0
    
  2. 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
    
  3. Publish and subscribe ROS 2 messages:
    a) On one endpoint, publish messages

    ros2 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.

3 Likes

Hi @maxpol, this is really cool, do you have any insights into what would be the maximum bandwidth with this setup?

1 Like

Thx @tocococa.

The 57600 bauds of the shown SiK Telemetry Radios translate to 7200 bytes/s. Practically, I was able to transmit the “Hello world” string up to around 40Hz.

Thanks! Looks like it would work just for telemetry.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.