Arming rejected in offboard mode

Hi all,

I’m running px4 6x with release/1.14
Trying to offboard control via ros2 package
I was able to connect and see topics using uxrce dds agent

Now I’m trying to control the px4 with velocity contoller.

I tried to arm from keyboard but no luck.
I also tried to arm via qgc but denied as below picture shows.

arm2

I set “Allow arming without GPS” params
What is the reason px4 rejects arming?
Any suggestions?

@Kyuhyong_You Are you trying to do position or velocity control without a local position estimate?

Hi @Jaeyoung-Lim
Yes I’m only trying to test the board without GPS
One thing I noticed is that there is no RX packets received to uxrce_dds_client.

I checked uxrce_dds_client status in nsh I see no RX as below

nsh> uxrce_dds_client status
INFO  [uxrce_dds_client] Running, connected
INFO  [uxrce_dds_client] Using transport: serial
INFO  [uxrce_dds_client] Payload tx: 50139 B/s
INFO  [uxrce_dds_client] Payload rx: 0 B/s

When commanded to ARM via ros2 message as below

$ ros2 topic echo /fmu/in/vehicle_command
timestamp: 1699259008732148
param1: 1.0
param2: 0.0
param3: 0.0
param4: 0.0
param5: 0.0
param6: 0.0
param7: 0.0
command: 400
target_system: 1
target_component: 1
source_system: 1
source_component: 1
confirmation: 0
from_external: true

Seems like arming message is sent to micro_ros_agent but not to the dds_client on px4 finally.

Tried to check the topics of below message
/fmu/out/vehicle_status
/fmu/out/failsafe_flags

I found safety flags indicate there is no control signals available to px4.

offboard_control_signal_lost: true
home_position_invalid: true
manual_control_signal_lost: true

Why this happens while connected via uxrc agent?
Any idea?

You have here 2 code that are able to control a drone through position and velocity:

Some explications here:

and a demonstrative video here:

Hello @mdobrea
Thanks for sharing the repository.
Can you tell what version of ROS you used?
Have you tried to control px4 drone with uxrce_agent?
Did you also connect to uxrce client via serial port? What baud rate did you use?

Kyuhyong

Hi @Kyuhyong_You

ros2 run px4_ros_com offboard_control works
now rx payload is received to the dds_client.

nsh> uxrce_dds_client status
INFO  [uxrce_dds_client] Running, connected
INFO  [uxrce_dds_client] Using transport: serial
INFO  [uxrce_dds_client] Payload tx: 51215 B/s
INFO  [uxrce_dds_client] Payload rx: 799 B/s

Maybe my offboard control from below is outdated?

Hi @Benja ,
I followed offboard control example you suggested but still could not arm the real hardware PX4.
There is no popups in the qgc.
What else I can do?