What are my options in long range wireless communication in ROS?

asked 2018-04-18 02:02:12 -0500

Infection gravatar image

Hello everyone,

I am trying to set up a project which involves flying a DJI M100 with a Raspberry Pi 3 attached running ROS quite a distance away from the base station from which it is controlled. I would like to publish commands to the Pi and subscribe to various topics with sensor data posted by the Pi from a PC or laptop on the ground.

Can you recommend any communication protocols and/or devices that may allow me to communicate between the Pi and the PC on the ground at distances varying from a few meters to about 2 km? Any and all suggestions are welcome, as technical and detailed as possible.

Kind regards.

edit retag flag offensive close merge delete


Can you clarify how ROS factors in here? As-is, your question seems at best only partly relevant, as I assume the choice of hw/transport is to a large extend independent of the traffic flowing over/through it.

gvdhoorn gravatar image gvdhoorn  ( 2018-04-18 02:44:50 -0500 )edit

I want to control the M100 through the DJI OSDK using the Raspberry Pi, controlled remotely from a PC or laptop on the ground. I want to be able to control more than one UAV as well if this works robustly in the future. I figured ROS might be capable of doing this?

Infection gravatar image Infection  ( 2018-04-18 02:49:15 -0500 )edit

ROS 1 is agnostic of the exact physical comms channel used, as long as it supports (eventually) an IP transport. ROS 2 is the same, but might be more flexible, as it uses DDS under the hood.

But as long as you have some form of IP network, ROS 1 should be able to use it (as any other ..

gvdhoorn gravatar image gvdhoorn  ( 2018-04-18 03:15:45 -0500 )edit

.. networking application would). That is why I asked how you feel ROS (specifically) already comes into play / influences your choice of comms hw.

gvdhoorn gravatar image gvdhoorn  ( 2018-04-18 03:16:17 -0500 )edit

In any case: I would probably recommend to look at ROS 2, especially because of the support for DDS. DDS is much better suited for lossy/noisy links with intermittent complete failures. There are some ROS 1 transport implementations for DDS, those might also be an option.

gvdhoorn gravatar image gvdhoorn  ( 2018-04-18 03:17:26 -0500 )edit

This is of course the software side of things. I don't have any recommendations wrt exact hw to use for the use-case you describe.

Let's see whether other forum members do have some advice/experience.

gvdhoorn gravatar image gvdhoorn  ( 2018-04-18 03:19:21 -0500 )edit