Recommended architecture for autonomous drone with ROS 2

Hello,

My goal is to build an autonomous drone that can also be controlled with an RC transmitter in case of any problem.

I do not have a telemetry module. I am using a Raspberry Pi 4 Model B (Ubuntu 22.04), and I am having some difficulties understanding the communication architecture.

So far, I have used MAVLink to connect to QGroundControl and send arm/disarm commands to the drone. That part works correctly.

However, I would like to use uXRCE-DDS in order to use ROS 2 and create my own flight plans.

The issue is:

  1. If I understood correctly, uXRCE cannot connect directly to QGroundControl.

  2. Also, it seems that uXRCE commands are not interpreted by the Pixhawk the same way as MAVLink commands (maybe I am misunderstanding this).

  3. I read that a bridge may be required, but I was not able to make it work.

So I am confused about what the correct architecture should be.

What architecture would you recommend in this case?

Do you have any advice on how to properly combine:

  • RC control (for safety),

  • QGroundControl (for monitoring),

  • and ROS 2 via uXRCE (for autonomous flight)?

Any guidance would be greatly appreciated.

Thank you!

uxrce 只是px4和ros2之间的链接,你想链接qgc可以考虑CUAV link 但是有一定距离限制,或在raspberrypi上下载qgc直接链接,然后搭载huawei的网卡可以远程登录界面链接但不推荐。4b性能有限

Hi there

I think you are mixing up a few things. Let me make this clear:

  • RC control for safety directly with a RC receiver is a great idea.

Setup: Is it correct that you are planning to have the Pi on the drone, right? Not just as a wonky groundstation?

For Monitoring: No telemetry module means no monitoring (unless you have a link from the Raspberry Pi?). That also means you can completely ignore QGroundControl, except for setup over a cable.

For control via Raspberry Pi: You indeed ues the uXRCE-DDS bridge, which can convert ros2 topics into px4 understandable comands/topics. I recommend following one of the many tutorials.

You could also use MavLink, but that is a very different approach, that I would not recommend unless you have a good reason to do so.