Open ShadedSelf opened 10 months ago
this branch works really great for me and driving without gps is now pretty accurate. I still have one big problem. If the mower is near the house it sometimes get GPS jumps while still beeing in fixed mode... which results in jumps on the map while the old position or float mode is far more accurate.
Nice. You can make the GPS fix solution more robust against errors (jumps etc.) by increasing the minimum GPS signal strength. Typically, near houses the GPS signal is also reflected from the house, and that results in a weaker but incorrect (because longer) signal in the GPS receiver and finally in an invalid position (jump). By increasing the minimum signal strength, you can filter out those reflection signals. The result will be that you get a float solution in difficult areas (near house etc.) instead of a fix solution. https://github.com/Ardumower/Sunray/blob/191fdb6deffe138b5645a60301308d68d1322e3f/alfred/config.h#L330 The parameters (C/N0 Threshold etc.) are described here in detail: https://wiki.ardumower.de/index.php?title=Ardumower_Sunray#RTK_float-to-fix_recovery_and_false-fix_issues
alfred/config.h:#define CPG_CONFIG_FILTER_NCNOTHRS 0 // C/N0 Threshold #SVs: 10 (robust), 6 (less robust)
sunray/config_example.h:#define CPG_CONFIG_FILTER_NCNOTHRS 10 // C/N0 Threshold #SVs: 10 (robust), 6 (less robust)
10 seems to be the default except for alfred? Any reason? same for CPG_CONFIG_FILTER_CNOTHRS.
I have noticed something similar, I have a theory that this happens now because it actually goes into invalid for a split second, then gets a false fix, this would have stoped the mower before and then have time to get a good fix while spinning up the motor.
Ive made some changes, added a variable into the config file to control how much time to wait after invalid to trust fix, maybe 2-3 second would be enough.
State estimation now uses yaw, pitch and roll intead of just yaw. Also:
Implements #59
Offsets are added to the physical antenna position. The virtual height can be set to the ground level to compensate for tilt.
Implements #45