Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mavlink parameter sync and general congestion review #10618

Open
dagar opened this issue Oct 1, 2018 · 5 comments
Open

Mavlink parameter sync and general congestion review #10618

dagar opened this issue Oct 1, 2018 · 5 comments

Comments

@dagar
Copy link
Member

dagar commented Oct 1, 2018

Mavlink parameter sync ignores the mavlink instance data rate and current rate multiplier (throttling). It does check the tx buffer, but this isn't sufficient. As a result some setups (eg SiK radios without flow control) can be unusable at times failing to complete the initial parameter sync. #10394 (comment)

Ideas to explore

  • parameter sync respect data rate and rate multiplier
  • pause all other telemetry (except HEARTBEAT) during sync?
  • rate multiplier consider additive increase, multiplicative decrease
    • mavlink data rate start at minimum and increase
  • rate multiplier treat RADIO_STATUS rxerrors as critical and drop the rate substantially
  • mavlink track and send drop rate for rate throttling (MAVLink Status mavlink/qgroundcontrol#6847)
    • add new mavlink status message to send drop rate (@dogmaphobic)
    • would also help on bad UDP connections
  • QGC request data streams that are actually required.
  • only send HEARTBEAT until first contact?

Parameter sync is the best target to improve, but all of this should apply to mission sync or FTP as well.

@LorenzMeier
Copy link
Member

@dagar FYI: Parameters and mission items are on purpose taking all bandwidth they can (but are still throttled) to speed up these transfers when they happen.

@dagar
Copy link
Member Author

dagar commented Nov 30, 2018

The problem isn't that they're hogging all of mavlink, it's that they're completely ignoring both the initial data rate and scaled (throttled) data rate of the instance.

https://github.com/PX4/Firmware/blob/master/src/modules/mavlink/mavlink_parameters.cpp#L311-L328

You can see this in some radio setups without flow control with newer firmware (logging enabled from boot) where I've added mavlink stats to each telemetry_status message. There also seems to be a secondary problem with older SiK firmware RADIO_STATUS and Mavlink v1/v2, but I haven't nailed down the details. The end result is that there's no RADIO_STATUS message received by the mavlink module, and the user is completely unaware.

I'll post a log.

@julianoes
Copy link
Contributor

@dagar
Copy link
Member Author

dagar commented Dec 14, 2018

@julianoes yes, anything that transmits off of the receive thread is ignoring the data rate settings and scaling mechanism (partially). See #7226

  • parameters
  • ftp
  • mission
  • log

#7223

@brad112358
Copy link
Contributor

I've submitted a pull request which should fix the parameter download portion of this issue. #16910

@stale stale bot removed the stale label Feb 21, 2021
@PX4 PX4 deleted a comment from stale bot Feb 22, 2021
@PX4 PX4 deleted a comment from stale bot Feb 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants