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
QGC Vistual Stick take control Ardupilot after takeoff 10s #8774
Comments
tlog playback: https://youtu.be/bHAEzjJyW0k |
Hmm, haven't look at virtual joystick in ages. I believe the right stick it supposed to auto-center though. So when you let you it should go back to neutral. I'll take a look at what is going on there. I think the auto-center is broken. |
No, the right stick doesn't auto-center. Only the left stick yaw auto-centers. Trying to remember why. I think it relates to fixed wing versus multi-rotor usage. I think it makes sense to have a setting to auto-center the right stick in both axes. That setting should default to on. Does that make sense? |
Thanks for reply. The most important part that I'm wondering is why it take control the drone from RC after takeoff few seconds. This could make lots of troubles, |
ArduPilot added support for the mavlink MANUAL_CONTROL message a while back which means that joystick both real and virtual are now supported. The docs are out of date. As to why there is a delay, I don't know. Could be some ArduPilot quirk/bug. I can do some SITL testing to verify. |
The auto-center support was broken in the 4.0 code. It's supposed to do this all the time. |
After I analyzed the aircraft log files, it was determined that QGC took control of my RC after ten seconds. |
@wolfling-052 sorry for that happen, but it could be an Ardupilot bug. QGC just send the mavlink message nothing hacks. |
As to why there is a 10 second delay I don't know yet. The bug is that the right virtual stick doesn't auto-center. So it starts out in the full down position which is pitch back. Very sorry for the bug. It's been fixed and will show up in stable/daily soon.
How did you determine that it only took control only after 10 seconds? With virtual joystick on, it should have happened right away. Did you takeoff using the guided ui controls or did you takeoff using the virtual joystick? |
@DonLakeFlyer He used traditional radio controller to takeoff. |
Hmm. I think PX4 disallows MANUAL_CONTROL is there is an RC connected as well. I'd have to check. |
@DonLakeFlyer Thanks, just did a quick search. Through this PR, looks the MANUAL_CONTROL in ardupilot still have bugs: ArduPilot/ardupilot#14390 |
https://github.com/ArduPilot/ardupilot/pull/14390/files#diff-560274335543b120cc223a5f60cd21e0L71 |
Was the virtual joystick turned on already before connecting to the vehicle. Or was it turned on while the vehicle was in the air? |
Hello, I enabled the virtual joystick after opening QGC. |
The virtual joystick is always on |
2020-05-24 20-17-50.zip |
So I can see from the tlog that QGC started sending MANUAL_CONTROL messages to the vehicle immediately. If that is the case then how come the RC was allowed to take control? I thought MANUAL_CONTROL would take precedence? |
Double-checked again and MANUAL_CONTROL is being sent to Vehicle as soon as the connection starts. |
Hmm, ok. So other than the right stick centering problem. I'm not seeing anything else wrong from the QGC side. The one thing though is that although unrelated to this specific problem it seems unsafe to be able to turn on virtual joystick while the vehicle is already armed. It could be in the air and cause badness. |
@DonLakeFlyer yeah, this is a nasty one. And yes, perhaps requiring the user to specify they want to use the virtual joystick before arming would be good. @bys1123 - is your machine in a state that you can thoroughly test the telemetry on it? It's possible this link was asymmetric - packets arriving from the vehicle but not not arriving at the vehicle. It looks like you may have been using some sort of non-SiK radio telemetry here - esp8266 or similar? Could you describe that system, please? There are some things we could consider doing on the ArduPilot side. The second is as @bys1123 to turn on GCS failsafe; if I'm correct that packets weren't getting through then that should have triggered before bad stuff happened The third is that we could consider becoming much more strict under what conditions we might accept manual (and perhaps RC override) messages. So, for example
None of these are easy stories to tell users. |
The pilot @wolfling-052 is using CUAV Wifi Telemetry. |
@peterbarker To me, the concept of allowing both RC and joystick style input at the same time with some sort of internal mechanism as to when one is in control over the other is fraught with danger. I can see where that could be useful in some edge cases, but in most cases it just seems wrong. Which leads me to think it's safer to make this be off by default, with some sort of parameter setting or something to allow it. |
Agreed re mixing MAVLINK and RC Control - some thought into how to harden it is warranted, although the "edge case" is quite common - it is not unusual for aircraft where the control station is physically separate from the launch/recovery site to have a separate pilot with RC control for takeoff and landing. This use case needs to be preserved. |
QGC Vistual Stick take control Ardupilot after takeoff 10s makes drone full speed flight backwards and hit the pilot.
This maybe mostly the pilot's mistake but I think if ArduPilot wouldn't disarm or QGC wouldn't take control especially after 10 seconds that will give more safety and prevent this unsafety happen.
Firmware: Ardupilot
OS: MacOS
Log: 2020-05-24 16-08-59.zip
Vistual Stick looks like this on MacOS, no auto-center, but the pilot forgot it:
The text was updated successfully, but these errors were encountered: