To whom it may concern,
I’m running PX4 SITL inside a Docker container (ROS Humble + Gazebo Harmonic).
I can launch 3 PX4 instances (three /tmp/px4-sock-* sockets are present and owned by the px4 processes),
and the simulated aircraft enter offboard mode,
but I cannot arm them in Gazebo.
When I start px4-gz_bridge,
it prints ERROR [px4] PX4 server not running and exits with code 255.
The PX4 processes are listening on unix domain sockets (e.g. /tmp/px4-sock-1),
but the bridge still refuses to connect.
What I tried so far
- verified sockets and PX4 processes which shows /tmp/px4-sock-X exists and is owned by px4
- ran socat to test the socket, ran strace ( including -e connect ) to captured bridge output but got
ERROR [px4] PX4 server not runningimmediately
I’m unsure whether this is a socket/permission problem, a protocol/version mismatch (Gazebo vs bridge), or an application-level handshake issue.
If any other information you need, please feel free to let me know and.
Thank you for your precious time on this matter.
My current docker environment
- Docker base: ros:humble
- Gazebo: Harmonic
- PX4 components: PX4-Autopilot, px4_msgs, px4_ros_com v1.16.0
- Micro XRCE-DDS-Agent 2.4.3