[Python] mission_upload timeouts

Hi there.

I am currently running into lots of errors when using the python wrapper.
I am kinda sure its something on my site but I need some help debugging and getting more infos from the system.

The setup is kinda complex: Airsim <-> Dockerized px4 <-> dockerized mavlink control (using mavsdk-python).

I think parts of the issue might be duo to high system load. When using px4-gazebo instead of px4 and airsim it works better (and the system isn’t cooking so much) but I still hope to get it running.

When calling “await mavlink.mission.upload_mission(mission_plan)” I am often running into an MissionError Timeout. Is there anything I can do to see why this happens? Or can I increase the timeout ?

Same happens for start_mission() sometimes.

Also the MissionError Error. Is there anyway to know what kind of error occured?

Thanks alot.

Forgot to mention:
Host system: Windows 10
Python: 3.8
Mavsdk: 0.13.4
Px4 git tag: v1.11.1

Hi @Jonas!

I’m trying to link my own MavSDK Plugin with AirSim and I have the same problems as you. I also tried with Gazebo and it works fine.

Did you fix this problem?

Thanks in advance!

Hi there.
Not really, debugging this is hard and the timeout issue doesn’t happen often.

My best guess is that its something with system-performance. When your system is too slow (what happens fast with AirSim and px4 running) some packets fail transmitting.
It still surprises me as the transmission (in my case) is only local.

If you find anything please post it here :slight_smile:

I just rechecked the code.
Timeout doesnt not necessarily mean that the message took too long but also that steps had to be repeated. E.g. if PX4 requests the mission item-10 5 times a Timeout will be thrown.

Compare:

Basically we would have to manually analyse the communication so that we know when exactly it happens.

I also found that if any request takes longer than 500ms a mavlink_msg_mission_clear_all_pack is send. But it doesn’t seem to reset into a proper state after this.

Hi @Jonas,

I’ve solved my problem. In my case it was a problem with the inizialitation sequence.

The sequence is as follows:

  1. Run AirSim, wait until it fully loads
  2. Run PX4 SITL with “make px4_sitl_default none_iris” and wait until message “EKF commencing GPS fusion” appears
  3. Run your mavsdk code

With this method it works for me, try it and tell me if it works for you.