MAVSDK icon indicating copy to clipboard operation
MAVSDK copied to clipboard

"MAVSDK" and "Arducopter SITL" incompatibility (and fly_qgc_mission.cpp and QGC incompatibility)

Open kripper opened this issue 1 year ago • 6 comments

Hi,

I'm the current maintainer of Rosetta Drone 3, a MAVLink implementation for DJI drones. We are testing MAVSDK to send a QGC mission to Arducopter SITL using fly_qgc_mission.cpp. We identified at least two issues:

  • ISSUE 1: telemetry.health_all_ok() is always false
  • ISSUE 2: Arducopter doesn't start the mission but disarms.

Everything works fine sending the mission from QGC to Arducopter SITL instead of using fly_qgc_mission.cpp.

Output of fly_qgc_mission.cpp:

	Waiting to discover system...
	Discovered autopilot
	Waiting for system to be ready	<--- BUG 1: blocks on while (!telemetry.health_all_ok())
	(Waiting disabled by me, for testing)
	System ready
	Importing mission from mission plan: /data/data/com.termux/files/home/imatronix/server/test/p9-quillota.plan
	Found 10 mission items in the given QGC plan.
	Uploading mission...Mission uploaded.
	Arming...
	Armed.
	

Output of arducopter.exe:

	...
	AP: EKF3 IMU0 is using GPS
	AP: EKF3 IMU1 is using GPS
	AP: Terrain: clamping offset 435 to 15
	AP: Arming motors
	ARMED
	Mode AUTO
	AP: Mission: 1 Takeoff
	waypoint 1
	
	(little pause, probably a timeout)
	
	AP: Disarming motors	<--- BUG 2: Unexpected disarm. Why? There is no problem when sending the same mission from QGC
	AP: Mission: 1 Takeoff
	DISARMED

Are this incompatibilities intentional? How do we make this world better?

IMO fly_qgc_mission.cpp is suposed to send QGC missions, so I would expect it to speak the same language as QGC (or rename it to fly_qgc_mission_in_unintelligible_accent.cpp).

kripper avatar Feb 18 '23 03:02 kripper