# Critical: Arming denied: Resolve system health failures first

**URL:** <https://discuss.px4.io/t/critical-arming-denied-resolve-system-health-failures-first/44277>\
**Category:** QGroundControl\
**Created:** [March 11, 2025, 3:36pm UTC](https://discuss.px4.io/t/critical-arming-denied-resolve-system-health-failures-first/44277 "2025-03-11T15:36:23Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Pablo\_Besga](https://discuss.px4.io/letter_avatar_proxy/v4/letter/p/22d042/32.png) [@Pablo\_Besga](https://discuss.px4.io/u/Pablo_Besga)\
**Post date:** [March 11, 2025, 3:36pm UTC](https://discuss.px4.io/t/critical-arming-denied-resolve-system-health-failures-first/44277/1 "2025-03-11T15:36:24Z")

</div>

Good morning, everyone,  
I am working on a project where I need to use Offboard mode. My setup consists of a Raspberry Pi 5 running Ubuntu 24.04.2, a Pixhawk 6X, and ROS2 as the communication protocol. I have connected the Raspberry Pi and the Pixhawk via Ethernet, and I have verified that they can successfully ping each other.  
After confirming network connectivity, I start the agent on the Raspberry Pi with the following command:  
**MicroXRCEAgent udp4 -p 8888**  
Then, I use the PX4 example workspace and run:  
**ros2 run px4\_ros\_com offboard\_control.py**  
This is a sample script to use Offboard mode. The initial command to switch to Offboard mode executes successfully, meaning the connection is not the issue. However, when I check QGroundControl, I see that the flight mode has indeed changed to Offboard, but **arming is denied**.  
I have tried updating the firmware and recalibrating the sensors, but I still get the same error. The status summary does not indicate any issues.  
If anyone can help, I would greatly appreciate it! Let me know if you need more documentation or details, I’d be happy to provide them.  
Thanks in advance!

 ![cap2](https://discuss.px4.io/uploads/default/original/3X/2/0/20a3696abc39710f30a80debb50c6ff88292131b.jpeg)  
 ![cap1](https://discuss.px4.io/uploads/default/original/3X/3/8/387374d74824b940eaabe3eea2a42d7658ac3867.jpeg)  
 ![IMG_8239](https://discuss.px4.io/uploads/default/original/3X/9/e/9e3b9a00a23a64ea4a74927fc521f9b8537910d5.jpeg)  
 ![IMG_8242](https://discuss.px4.io/uploads/default/original/3X/9/f/9f6b074c1e63c773280c6450b23aab7f1ce113b0.jpeg)  
 ![IMG_8241](https://discuss.px4.io/uploads/default/original/3X/5/0/5074b4446fd949fa00103c47a49471478ea19d04.jpeg)

---

<div class="post-metadata">

**Author:** ![BH\_Y](https://discuss.px4.io/user_avatar/discuss.px4.io/bh_y/32/18852_2.png) [@BH\_Y](https://discuss.px4.io/u/BH_Y)\
**Post date:** [March 19, 2025, 12:54pm UTC](https://discuss.px4.io/t/critical-arming-denied-resolve-system-health-failures-first/44277/2 "2025-03-19T12:54:55Z")

</div>

Hello, have you solved it? How do you solve it?  
If you have some solutions please contact me [ybhzuishuai@gmail.com](mailto:ybhzuishuai@gmail.com) , I would appreciate it for your help.

---

<div class="post-metadata">

**Author:** ![Pablo\_Besga](https://discuss.px4.io/letter_avatar_proxy/v4/letter/p/22d042/32.png) [@Pablo\_Besga](https://discuss.px4.io/u/Pablo_Besga)\
**Post date:** [March 20, 2025, 1:56pm UTC](https://discuss.px4.io/t/critical-arming-denied-resolve-system-health-failures-first/44277/3 "2025-03-20T13:56:44Z")

</div>

Hi BH\_Y !

We have tried using MAVROS with ROS2, and it allows us to do more things, such as viewing many more parameters and the status of the drone, changing the flight mode, and even arming it remotely using manual mode if we have the controller on. However, we have not been able to arm it from offboard mode and launch a program. We also realized that one of the reasons we couldn’t arm the drone in offboard mode was that it required the drone’s position at all times. We do not use GPS because we are indoors, so we had to send the position of the drone captured by the mocaps. We did this by remapping the topic from our mocaps, where we have the drone’s position, to the topic that MAVROS provides for the vision\_pose. Then, when we echo the remapped topic, we get the position from the mocaps, but from QGroundControl, it still shows a different position.

Here are the steps to follow to have the same as us. They are put in order:

With this you launch mavros:

```auto
ros2 launch mavros apm.launch fcu_url:=udp://:14550@

```

By doing this you will be able to have the mocaps data. The IP has to be of the computer where you have launched the mocaps program (like Motive in our case):

```auto
ros2 launch vrpn_mocap client.launch.yaml server:=192.168.105.104 port:=3883

```

By doing this you will be able to remap the topics:

```auto
ros2 run topic_tools relay /vrpn_mocap/Drone/pose /mavros/vision_pose/pose

```

By doing this you will see the status of the drone at all times:

```auto
ros2 topic echo /mavros/state

```

With this you can change the flight mode (in this case it is changed to manual):

```auto
ros2 service call /mavros/set_mode mavros_msgs/srv/SetMode "{custom_mode: MANUAL}"

```

This way you can arm the drone from the raspberry:

```auto
ros2 service call /mavros/cmd/arming mavros_msgs/srv/CommandBool "{value: true}"

```

If anyone has the same problem, has any solution or question please post it in the forum so that everyone can have access.

Thanks in advance! 😊

---

<div class="post-metadata">

**Author:** ![Pablo\_Besga](https://discuss.px4.io/letter_avatar_proxy/v4/letter/p/22d042/32.png) [@Pablo\_Besga](https://discuss.px4.io/u/Pablo_Besga)\
**Post date:** [March 26, 2025, 8:28am UTC](https://discuss.px4.io/t/critical-arming-denied-resolve-system-health-failures-first/44277/4 "2025-03-26T08:28:23Z")

</div>

Here is an answer I have been given in another category. I hope this answer will help you a lot. If you have any questions, do not hesitate to share it in the forum. Thanks for your time 😊.

> [@Problem: Arming denied in Offboard mode. We use Mavros, Mocaps and Ros2](https://discuss.px4.io/t/problem-arming-denied-in-offboard-mode-we-use-mavros-mocaps-and-ros2/44443/2):
>
> PX4 doesn’t really “support” MAVROS ROS2 setups. They should work but it will be harder for you to get support.
> 
> I only have general PX4 comments on arming and offboard mode. The requirements for arming in offboard mode, or switching to offboard mode when armed [are listed here](https://github.com/PX4/PX4-Autopilot/blob/9e99bd3b7a5d4dad3ca68f0137465e18d4834639/src/modules/commander/ModeUtil/mode_requirements.cpp#L123-L126) - angular velocity, attitude, and offboard signal.
> 
> What that means is that you have to supply velocity and attitude, and stream a proof of life message. That means meet the same requirements as are met in [Offboard Mode (Generic/All Frames) | PX4 Guide (main)](https://docs.px4.io/main/en/flight_modes/offboard.html#description).
> 
> If you were using MAVLInk directly you’d just stream the message that set your desired target, and that would do the proof of life and your target in one.
> 
> Hope that helps.

---

<div class="post-metadata">

**Author:** ![hamishwillee](https://discuss.px4.io/user_avatar/discuss.px4.io/hamishwillee/32/3469_2.png) [@hamishwillee](https://discuss.px4.io/u/hamishwillee)\
**Post date:** [March 27, 2025, 2:39am UTC](https://discuss.px4.io/t/critical-arming-denied-resolve-system-health-failures-first/44277/5 "2025-03-27T02:39:00Z")

</div>

Also worth checking the “arming check report” by clicking the flight status (top left) button on QGC as shown in [Fly View Toolbar | QGC Guide (master)](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/fly_view/fly_view_toolbar.html#flight-status)

The report tells you exactly what is blocking arming.
