Hello!
I’m having some problems in my offboard mode setup with PX4.
Premise: I want to control my drone through an OpenAirInterface 5G network, so in my setup I have 3 computers:
-
“Host”: Runs ROS2 node and acts as 5G “host” (in proper terms, gNB). In addition, since our 5G network does not support UDP multicast (which is used by DDS middleware), we had to bridge DDS with Zenoh.
-
“User”: Acts as 5G user (User Equipment). Also runs another Zenoh Bridge, which successfully connects to the bridge on the host
-
“Simulation computer”: runs Gazebo simulation and uXRCE-DDS agent. The user and simulation computer are connected via ethernet
With the current setup, if I run a ros2 talker node on the “Host” and a ros2 listener on the “Simulation” computer, the two communicate correctly.
However, when I try to run my ros2 node (which flies the drone in a circle, sending commands at 10 Hz) on the “Host”, the simulator does not show any response (nothing is displayed on the PX4 console), even though:
-
The messages are correctly delivered to the host i.e.: if I run ros2 topic echo /fmu/in/vehicle_command I see the delived commands
-
Data from the simulator, such as vehicle position, is correctly delivered to the ros2 node and used for the internal calculations of the velocity commands (in order to fly the drone in a circle)
-
The program works correctly when running both the simulator and ros2 node on the same computer, and also when running the ros2 node on the “User” computer. So it might to be something related to addition of the 5G link
More interestingly, whenever I echo the vehicle_command topic, the simulator starts to say that arming is denied and that there are health issues (see picture below).
I’m going crazy about this, it would be of immense help if anyone has any ideas.
Thank you!
Lorenzo