Flakiness When Registering External Modes

Good Afternoon PX4 Community,

Current Issue:

I’m currently on a project which utilizes PX4 External Modes for an autonomous flight mission, but there’s some flakiness to registering the mode. Sometimes the mode will register, other times it will go register and fail due to no messages received and I can’t seem to pinpoint a reason, I double check the status of the mode in the QGC MAVLink console with commander status. It seems to do better on original uploading when I force the terminal to sleep for 15 seconds when launching the node, but sometimes that doesn’t even work. I’m pretty familiar with ROS 2, but kind of new to PX4 and the whole MicroXRCEDDS-Agent

Current Stack:

  • QGroundControl Daily Build
  • PX4 Tag v1.16.0
  • MicroXRCEDDS-Agent from source (commit: 57d0862)
  • ROS 2 Humble : Running on a Jetson Orin Nano (Ubuntu 22.04)
  • Repository where current code live

Current Running Process:

  1. Fire up Laptop with QGC

  2. Connect RC Handset and Telemetry Receiver to Laptop

  3. Jetson puts up a WiFi hotspot, I shell into the Jetson, open a terminal, source the workspace

  4. I run a Tmux session with the following commands in separate windows (which all register fine, file is in linked code launch_scripts/super_real.sh ):

echo "[1/5] Starting uXRCE Agent..."
MicroXRCEAgent serial --dev /dev/ttyUSB0 -b 921600

# Window 2: Translation Node
echo "[2/5] Starting Translation Node..."
ros2 run translation_node translation_node_bin

# Window 3: Camera Node
echo "[3/5] Starting Camera Node..."
ros2 run depthai_ros_driver camera_node --ros-args -r /oak/rgb/image_raw:=/front/camera/image_raw -r /oak/rgb/camera_info:=/front/camera/camera_info

# Window 4: Aruco Tracker
echo "[4/5] Starting Aruco Tracker..."
ros2 launch aruco_tracker front_camera.launch.py

# Window 5: Precision Land
echo "[5/5] Starting Precision Land..."
sleep 15; ros2 launch precision_land front_approach.launch.py

Please let me know if there’s any more information I can provide to y’all, or if there any other resources I should check out first.

Thanks!