This is a work in progress. I've tried to address some fine tuning and performance issues.
Denny R. had made a comment about the inertia of bigger props causing issues. I've added a low pass filter to smooth the positive acceleration of the props to see if we can get at this issue. It may require tuning up Rate_P for a few folks, but I saw little issue in multiple flights.
Crosstrack had a small math error that decreased the resolution of it. I've fixed that and upped the default gains to get better tracking.
Made WP hit radius 1 by default. even 3m is too much for quads. (If you pass a WP you will move on to the next)
The Loiter method is tuned a little better by default, and now uses GPS offsets when flying less than 1.5m/s. Code experimentation will continue on this front. Thanks to Emile and afernan for their help!
A fix in the Z Accel startup was added to get an averaged result.
Added the ability to enter Loiter with Optflow enabled. - still a work in progress, not for everyday use just yet.
This alpha is on GIT now and is for user's who want to test code. As always, you need to use the "relaxpatch" version of Arduino you can find in the downloads section.
Update: We've found and patched some small type bugs in the latest and updated some GPS drivers in the Library. Be sure to pull the latest code and check http://apm.tridgell.net/ for the status of each build run against the SIL sim server.
I pushed a version on to GIT that addresses a number of issues.
- the low speed GPS XY calculations were incorrect and have been fixed
- Nav_Rate I term has been removed in loiter control - it's too easy to get two iterms working out of phase
- A second derivative has been added to Roll and Pitch. I found it removed wobbles nicely - Can be adjusted in the planner as STAB_D with a default of .25 (just enough)
- Smoothing has been applied to the motor commands in a way that really quiets down the alt hold pulsing without much effect on latency
- Yaw now has a dynamic constraint and I've upped the yaw gain.
- The motors output now have an LP filter on them so that the accelerate just a tad slower than the deceleration. This is a test to see if it helps big Octo's and Hexa's
- The Rate_I term is now zero'd for first five seconds after takeoff to keep balance.
- Loiter gains are lightened up a bit
- Nav_Rate_P is lower to remove back and forth sped related hunting in loiter
- Compass is enabled by default
- New I2C Library now included which should solve I2C related lockouts
- optflow is still a work in progress.
This update is based on flights today in a very windy environment.
It occurred to me that we're handling the WP nav I terms incorrectly and I reworked the WP navigation to share the same I terms from the Loiter. Even though they use different error input, etc, they turn out to both deal with wind in the same way. I have not Flown WPs with this new code, but heavily tested it in the sim and It's really rocking in hard wind. Transitions from Loiter flight and Nav flight are very smooth. Please let me know if you have luck.
This is a quick patch based on a bad crash Marco had. My theory was an I term that built up during wind that needed to be reset, but wasn't. It's a corner case but It bit Marco pretty bad. Please re-pull if you have R4 running to go to R5. And please, please be careful. This is alpha code not for general testing, but for development. Don't fly it on anything you would feel bad about crashing.
Update R7:Added an auto-land timer for RTL. If you don't change modes for 20s after the copter arrives at home, it will begin to auto-land. If you have failsafe and no GPS, you will immediately begin auto-landing.
Minor tweaks and cleanup
Made climb rate controller for landing universal for all altitude changes
Updated Loiter controller - Works great in the sim, thanks Afernan.
But then why do some have good results with the way it is now? That's what I'm trying to figure out. Either it's something in the code affecting the setup that we need to understand what it is. Or some setups aren't being done right.
Ok. Would I currently have this failsafe in my PPM, or do you need to upgrade the PPM firmware?
Either way, I agree with this functionality. It makes more sense to RTL on reciever failure than it is to switch to manual control, since you can't manually control a copter.
I decided to do some test flying today with r6.
Here is the video. http://youtu.be/q1pUEIUuq5o
Attached is a zip of the log files done with it.
This is a custom frame that needed stab gains lowered.
Attached is a snapshot of the MP configuration.
In loiter it dropped altitude but recovered well.
There are subtle wiggles at times.
Lifting and downward recovery is great.
I first thought it was due to vibration.
However in the past vibration to the IMU threw off the copter so much a full x or y on the stick had no control over time.
For tuning the altitude in loiter try to play with "throttle & altitude hold P".
Upgrading the The PPM Encoder it's a good idea, I did it using the appropriate firmware for ArduCopter, so you can safely use even the channel 8 of the rx (with this we manage the LED pattern).
JL forgot to write that you must "arming motoros like in the reality", or throttle it doesn't work.
The throttle is .8 It is above default.
On my test hexa that I have been using for a while, YAW is suddenly not working with the new build or any past builds. Roll and pitch work fine, testing the IMU itself outputs the correct values and the compass is working fine aswell. All the motors are directly soldered to the board (signal wires). All the props and motor rotations are correct. Any ideas guys?
Curious... in a bad way.
I was shutting down the sim and such, and broke the first rule of RC... turning my Tx off before anything else.
Running 2.1.1 r7 HIL on Xplane, the copter was on the ground, throttle down, motors armed. Turning the Tx off triggered Auto mode, and the copter took off and hovered at my takeoff altitude from the mission I had loaded. It didn't go anywhere, didn't move to WP2, just seemingly loitered at the takeoff altitude. I confirmed by changing the takeoff altitude, and sure enough, turning the Tx off sends it straight up to whatever alt is in the 1st takeoff command. I let it sit for almost 2 full minutes to see if the auto-land from RTL would kick in, but it just hovered nicely in place.
It seems like if a failsafe is triggered on the ground, the copter will take off.
In past builds I figure a integral windup could occured after lanlding.
The copter was started in auto restart where as the throttle grew and it cartwheeled to the right very fast.
Today I shut off power in help to make sure my startups are neutral.
Lets me know if you succeed...
AUTO mode navigation under flight plan and auto LANDING doesn't work with the new R7 in HIL test... These modes worked well (as shown in the video and in the tuto) with the previous R6 some recent changes has killed them... I am hunting the bugs...
My full working v2.1.1 R6 version successfully tested in HIL mode on Xplane v9.70 and also in the real world can be downloaded HERE