Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Only for testers
Ok guys, so you have all volunteered to be guinea pigs. First thing, disclaimers. Obviously this is testing autonomous code so it might take a mind of it's own and fly to China. I've taken as many precautions as I can to verify in any case you turn off the transmitter, it will fall from the sky. I recommend when testing any new configuration you all verify the same thing before a real flight test. Never fly this near any living organisms.
- For INS mode we need to tune the variances. Here is my configuration file, which was performing well. Specifically you want to get the values for INSSettings. The gyro z-value and mag x,y values will be the two most important for that.
- You must verify that your failsafe is working. To do this, watch the FlightStatus.ControlSource field as you turn your transmitter on and off. If that is not going between Transmitter and Failsafe reliably then you should not continue, because if your transmitter turns off you might have a flyaway.
Enabling position hold:
- Make sure these modules are running: VtolPathFollower, GPS (ModuleSettings->AdminState)
- Make sure you are in outdoor mode. In StateEstimation set AttitudeFilter to Complementary and NavigatationFilter to INS
- Reboot board. You should see attitude in the error condition if you don't have any GPS lock (defined as >= 7 satellites, PDOP <= 3.5)
- In the attitude page, perform a 6 point calibration and save the results. Then level your quad.
- Check that when the board is facing north, it really is facing north (once you have GPS lock)
- Set one of your flight mode position switches to position hold
Initial sanity checks:
- Fly around medium aggressively in attitude mode and make sure your attitude behaves reasonably. If you are having issues in regular flight then the next step will not go well.
- Email a log from your tablet to yourself and me / the group. The tablet application always logs while connected. Verify that it says "loaded appropriate UAVO set" each time. You'll know it's right probably cause it will be saying things. To email a log, just go to the logging page and select the most recent log.
- Try replaying your log in the GCS. Make sure it shows you flying in the right place and seems to match your flight reasonably.
Important checks, preflights, gotchas:
- Recommended to use next
- Always keep throttle above minimum level while autonomous or it will automatically disarm. You can change this behaviour by settings ManualControlSettings/ArmTimeoutAutonomous to DISABLED which will disable disarming on low throttle while in autonomous mode. Your choice.
- Must have solid satellite lock. Dropping below 6 satellites or PDOP 3.5 will make it go to random places (android will announce a GPS warning and attitude error when this occurs).
- To get a good altitude hold, make sure your accelerometers are well calibrated. It should be quite close to 9.81 when sitting flat.
- It is RTH not RTL so always remember to set HomeLocation where you want to return to. I recommend not saving the HomeLocation for autonomous testing. Then it will grab the value when it gets the first good lock. Depending on balance of baro and GPS altitude home may not be at altitude zero so when it flies home it might hit the ground! This needs work. Use android to see what your home altitude is before taking off - it should be close to 0. Android will also allow resetting just the altitude if desired.
- Check your velocity actual down before flying. The z-accel bias seems to cause errors in this which means you won't get a good enough vertical velocity estimate.
- Verify tablet info is updating before using any of those modes #456
Testing position hold:
- First you want to test with manual control of the throttle. This keeps you in charge and makes sit easy to dump out to ground if there is an issue. Also altitude control isn't working as well as I'd like yet :(. To enable this in VtolPathFollowerSettings make sure ThrottleControl is set to FALSE.
- Get hovering, position nice and stable and at least a few meters above ground. Flip to position hold mode.
- If that works well set ThrottleControl to TRUE and repeat