DJI Mavic, Air and Mini Drones
Friendly, Helpful & Knowledgeable Community
Join Us Now

Fly aways due to compass errors

I've said before, GPS delta can also provide heading. My Tab E has no compass, but if I'm moving, it can give me direction on map apps. I grant you it can't help standing still, but if uncommanded movement occurs, there's your true heading into, assuming GPS data is still good. That should reset errors and stop uncontrolled movement.

We have had this discussion before. Track is no use - it needs heading to take any action at all - whether to resist, stop or make progress. The FC has to know which direction, relative to the aircraft, to push.
 
  • Like
Reactions: macoman
Just as with the Nav system in your car, the computer does not know which way your car is pointed until you start moving. Once you move, it is a simple calculation from the change in GPS coordinates to determine heading and the arrow on the display will show the vehicle's heading relative to the map. This heading is updated continuously as you travel.
The Skydio 2 knows it's home point and it's current location by GPS. It will return to home, adjusting it's heading on the fly, avoiding obstacles along the way. It does not even rotate the drone to face home as it is returning.
 
Compass errors seem to be attributed to many of the fly aways and crashes reported here. I understand that the compass calibration is a must and the instructions in the manual state you have to stay away from metal objects to prevent compass errors. However It is not always obvious you are near some metal, like rebar in concrete when you take off.

That said, it seems like bad programming to have compass errors result in uncontrolled flight and fly aways. If the compass is telling the motors to fly away when there is no stick input, this is the worst possible error handling. I understand that the compass is used to hold it’s position in the wind when hovering, but to fly away without any stick input shows that the software is not cross checking GPS to know when the drone is really drifting in the wind or if the compass is giving faulty info. There has to be a better way to handle these errors.

I would think a better way it handle compass errors would obviously be to throw an error after cross checking the gps, and just hover or hold position, rather than accelerating in the wrong direction without stick inputs. The compass error should direct the pilot to use RTH or fly home manually immediately.

There has to be a better way to handle these errors than uncontrolled acceleration and crashes. Any better ideas?
I know this sounds old school but l always pack a very sensitive mechanical compass for two reasons a visual check of the calibration and it should pick up anything metalic nearby
 
Yes there are ways to avoid the issue, but the topic is about ways to recover when things go wrong. Like the 737-Max pilots, you need a way to get manual control when the software fails.
 
DJI don't read this
I'm not wanting to sound impolite but it's helpful if you actually understand the issue before trying to come up with solutions.

While I admit that I don’t have a full understanding of the drone software architecture and design, I will say that I have 40+ years of software development and software quality testing.

Software is generally made up of code that is 10-20% of things working as expected, and 80-90% of handling cases for the unexpected. Software quality depends on catching the unexpected cases, and finding cases the programmer didn’t anticipate.

This compass error would be easy to reproduce in DJI’s test lab environment, and they should develop a better error handling case to detect the bad compass input by cross checking other available data sources, possibly the IMU or GPS. The software should never allow the drone to fly without validating the input data from all sources. If the compass heading changes unexpectedly or disagrees with the other available flight data inputs, or are not within expected ranges it should be handled as an exception condition producing an error and stop flying without input from the pilot.

A simple analogy to data input verification might be a credit card transaction, if the transaction exceeds the credit limit and goes through, who is to blame, the credit card user or the software programmer at the bank?

I see so many cases here that are blamed on the pilot, when the software isn’t capable of detecting known compass error conditions. DJI clearly knows of these limitations since they warn about them in the manual.
 
I've said before, GPS delta can also provide heading. My Tab E has no compass, but if I'm moving, it can give me direction on map apps. I grant you it can't help standing still, but if uncommanded movement occurs, there's your true heading into, assuming GPS data is still good. That should reset errors and stop uncontrolled movement.
A wrong assumption stays that way- regardless of how many times it is repeated.
 
  • Like
Reactions: Prismatic
Just as with the Nav system in your car, the computer does not know which way your car is pointed until you start moving. Once you move, it is a simple calculation from the change in GPS coordinates to determine heading and the arrow on the display will show the vehicle's heading relative to the map. This heading is updated continuously as you travel.
The Skydio 2 knows it's home point and it's current location by GPS. It will return to home, adjusting it's heading on the fly, avoiding obstacles along the way. It does not even rotate the drone to face home as it is returning.

No - that's completely incorrect. The capability to calculate and display the direction of a track is insufficient to make progress in a given direction, except by trial and error, which not how any sUAS currently works. The Skydio is claimed to use optical recognition to determine direction in place of a magnetic compass.
 
The "get out of this" is ATTI mode. But on the Mavic series DJI have decided not to offer it because since the main target customer for this series of machines has no idea and offering it would probably (or DJI determined it did through logs/crash analysis) cause more harm than good with people switching to it and getting lost when the thing doesn't fly itself anymore.

It is possible to get ATTI mode back on some of them using tweaks.

The Skydio is claimed to use optical recognition to determine direction in place of a magnetic compass.
DJI aircraft since the Mavic Air also use optical flow as heading indication in addition to the compass.
 
No - that's completely incorrect. The capability to calculate and display the direction of a track is insufficient to make progress in a given direction, except by trial and error, which not how any sUAS currently works. The Skydio is claimed to use optical recognition to determine direction in place of a magnetic compass.
It definitely navigates by GPS. It can follow visually but uses GPS if the subject goes out of sight, as long as you use the Beacon which has GPS. It can also return to the beacon even though it has moved to a new location.
 
It definitely navigates by GPS. It can follow visually but uses GPS if the subject goes out of sight, as long as you use the Beacon which has GPS. It can also return to the beacon even though it has moved to a new location.

They all navigate by GPS. That's a different issue. But you are not addressing the mechanism by which that navigation takes place, and since you are ignoring my attempts to explain that this discussion is probably pointless.
 
We have had this discussion before. Track is no use - it needs heading to take any action at all - whether to resist, stop or make progress. The FC has to know which direction, relative to the aircraft, to push.
I think I'm starting to understand. FC can't tell if moving forward nose direction is really moving forward nose direction due to outside influence. IE unofficial ATTI mode. So it may know it's moving north based on GPS, but it can't tell if that north heading is nose first.

On the other hand, even if it didn't know if it was moving forward or sideways, it can tell the discrepancy between GPS north and compass north. From that it should be able to regain stable flight, even if it starts flying sideways thinking its flying forward. Wind rarely makes an AC spin, only drift.
 
  • Like
Reactions: sar104
I think I'm starting to understand. FC can't tell if moving forward nose direction is really moving forward nose direction due to outside influence. IE unofficial ATTI mode. So it may know it's moving north based on GPS, but it can't tell if that north heading is nose first.

On the other hand, even if it didn't know if it was moving forward or sideways, it can tell the discrepancy between GPS north and compass north. From that it should be able to regain stable flight, even if it starts flying sideways thinking its flying forward. Wind rarely makes an AC spin, only drift.

There is no "GPS north". All the FC can see is that its track is not the same as its heading. It doesn't know if that's because the heading is correct but the wind is pushing it in a different direction, or whether the heading is wrong and wind isn't the problem. If the issue continues and the IMU and compass disagree then it drops into ATTI mode, which is the only viable mitigation.
 
They all navigate by GPS. That's a different issue. But you are not addressing the mechanism by which that navigation takes place, and since you are ignoring my attempts to explain that this discussion is probably pointless.
Pleas explain how the Skydio could possibly know it's heading using optical sensors. Surely the heading is calculated from GPS data while moving.
 
Pleas explain how the Skydio could possibly know it's heading using optical sensors. Surely the heading is calculated from GPS data while moving.

According to the Skydio documentation it uses optical recognition to determine direction. How, precisely, it does that, and specifically how it relates its optically-derived direction, is not explained, but note that the MA and M2 also use optical recognition to detect yaw. It could only refine the heading by using GPS data if it also optically detects the offset between the direction that it is pointing and the direction of its track - remember that without an actual compass the aircraft doesn't know which direction it is facing even if it does know its direction of travel.
 
  • Like
Reactions: slup
According to the Skydio documentation it uses optical recognition to determine direction. How, precisely, it does that, and specifically how it relates its optically-derived direction, is not explained, but note that the MA and M2 also use optical recognition to detect yaw. It could only refine the heading by using GPS data if it also optically detects the offset between the direction that it is pointing and the direction of its track - remember that without an actual compass the aircraft doesn't know which direction it is facing even if it does know its direction of travel.
Might be a stupid question but does it really matters for RTH which direction it is facing? Quadrocopters can not return home with a similar manner like" home lock" works as long as there is a gps signal from AC and RC?
 
According to the Skydio documentation it uses optical recognition to determine direction. How, precisely, it does that, and specifically how it relates its optically-derived direction, is not explained, but note that the MA and M2 also use optical recognition to detect yaw. It could only refine the heading by using GPS data if it also optically detects the offset between the direction that it is pointing and the direction of its track - remember that without an actual compass the aircraft doesn't know which direction it is facing even if it does know its direction of travel.
How does optical recognition determine direction? Perhaps you can determine if you are flying in a straight line but not be able to tell if you are headed in a specific direction.
You can easily determine heading by GPS and movement. For example, if you fly forward, (speeding up the rear motors and slowing down the front motors) the drone moves and the GPS coordinates are updated. You now have a vector that tells you which way the aircraft is pointed. This is updated continuously as you fly. Since you know your current position and the home point you wish to go to, It is trivial to either A) rotate the aircraft towards the home point as you fly correcting as you get new GPS coordinates or B) keep the current heading and engage the correct motors to tilt the aircraft towards the home point, again correcting as you go.
DJI drones are certainly doing these same kind calculations continuously to measure speed, distance and to check for compass errors.
 
Might be a stupid question but does it really matters for RTH which direction it is facing? Quadrocopters can not return home with a similar manner like" home lock" works as long as there is a gps signal from AC and RC?

The direction that it is facing matters because if the FC doesn't know that then it doesn't know in which direction to apply thrust. So it can plot a course and return home facing in any direction, but it has to know what that direction is.
 
How does optical recognition determine direction? Perhaps you can determine if you are flying in a straight line but not be able to tell if you are headed in a specific direction.

I don't know how the Skydio is supposed to do that - I'm just pointing out that they claim that it does.
You can easily determine heading by GPS and movement. For example, if you fly forward, (speeding up the rear motors and slowing down the front motors) the drone moves and the GPS coordinates are updated. You now have a vector that tells you which way the aircraft is pointed. This is updated continuously as you fly. Since you know your current position and the home point you wish to go to, It is trivial to either A) rotate the aircraft towards the home point as you fly correcting as you get new GPS coordinates or B) keep the current heading and engage the correct motors to tilt the aircraft towards the home point, again correcting as you go.
DJI drones are certainly doing these same kind calculations continuously to measure speed, distance and to check for compass errors.

You are still thinking about this far too simplistically and, as a result, completely missing the basic point. You cannot determine heading by GPS and movement - you can only determine track. The method that you describe is an iterative random walk method - push forwards relative to the drone and see in which direction it moves, then adjust yaw ( or thrust direction) and repeat until the aircraft is moving in the right direction. But it still doesn't know which direction it is pointing because it only knows the track. There could be a cross-wind and the drone could be pointing significantly off the direction of travel.

No commercially available drones that I'm aware of are programmed to attempt that method - it's a completely different approach to flight control that is far too slow to use for normal flight. DJI drones compare track to heading, but that's to allow them to correct for wind - they only declare yaw or compass errors when the IMU disagrees with the compass and/or craft control fails due to a positive feedback loop.
 
I don't know how the Skydio is supposed to do that - I'm just pointing out that they claim that it does.


You are still thinking about this far too simplistically and, as a result, completely missing the basic point. You cannot determine heading by GPS and movement - you can only determine track. The method that you describe is an iterative random walk method - push forwards relative to the drone and see in which direction it moves, then adjust yaw ( or thrust direction) and repeat until the aircraft is moving in the right direction. But it still doesn't know which direction it is pointing because it only knows the track. There could be a cross-wind and the drone could be pointing significantly off the direction of travel.

No commercially available drones that I'm aware of are programmed to attempt that method - it's a completely different approach to flight control that is far too slow to use for normal flight. DJI drones compare track to heading, but that's to allow them to correct for wind - they only declare yaw or compass errors when the IMU disagrees with the compass and/or craft control fails due to a positive feedback loop.
I guess I am still not getting through. Let me try to explain it another way. Lets say you are driving in your car and looking at the map on the nav system. You have not programmed a route to your destination but you can see it on the map as well as a dot which indicates your position. Assume there are no roads and you don't have a compass. You just start driving in a straight line any direction. You immediately see your location dot move on the nav system and you know which way to turn to go towards your destination. As you continue to drive and watch the map on the nav system, you can quickly get pointed directly at your destination. Even if you have to drive around some obstacles or get blown a bit sideways by the wind, you can easily correct your course as long as you know your direction of travel relative to your destination. You don;t care which way is north and you don;t need to visually see your destination.
You must admit that anyone would be able to do this. A computer certainly could do it much faster and more accurately.
 

DJI Drone Deals

New Threads

Forum statistics

Threads
131,254
Messages
1,561,339
Members
160,207
Latest member
bullet_magnet