To set up my approach I programmed one loiter turn at WP27, but when the plane arrived it did 4 turns before continuing on to a nearly perfect autolanding.
Also, look at WP27 and notice that the number 25 showed up in a blank column after reading back the flight plan from the APM. What does this mean? Is it related to the unexpected loiter behavior?
Could it be that the plane was still way above the 175ft required by the WAYPOINT_TURNS and thus kept descending in a circle until 175ft?
Having looked at your log, your plane was at 175ft when it reached wp27 but didn't switch to wp28 until the end of circle 4, so maybe there was some other condition of that command that was not reached until the 4th circle? I have no idea what it might be though. The first two circles weren't really proper circles, it just looked like it was trying to hit the waypoint 'properly' then 3 & 4 were nice and concentric.
I'm afraid I don't have much to add explaining why your plane did 4 turns. I have used the loiter_turns before and it has always worked (ArduPlane 2.74b). I tried to extract the waypoints from your tlog, but MP said that they weren't there. Could you extract/save the waypoints and upload?
The 25 on the loiter_turns line is the loiter radius in meters as defined with WP_LOITER_RAD. The loiter radius is shown above as 82ft. When in doubt, I like to read WPs, save to file, and then compare to the actual Mavlink command here: https://pixhawk.ethz.ch/mavlink/ (MAV_CMD_NAV_LOITER_TURNS).
I lost telemetry in the flight due to a wind gust the took our tent down and ripped out my telemetry antenna in the process. When I plugged the usb back in, I got telemetry reestablished but I never read the waypoints again, so the landing tlog didn't have the waypoints. Attached are the waypoint files that extracted from the original tlog. I'm not sure why there are 3 of them. Interesting that the one marked 0 doesn't have the 25 in it.
Thank you for educating me about the 25 meaning loiter radius. Does this mean that I can edit this column and change the loiter radius for each loiter point?
The waypoint files are just pulled from the mavlink messages saved in the tlog. I think the reason there is more than one is because MP sent the waypoints multiple times to APM. Maybe multiple reboots or multiple waypoint writes on one tlog? I'm not sure why they are not all the same, that could be your problem, but I couldn't say what the cause is.
An idea: create a flight plan with 1, then 2, then 3 loiter turns. See how it flies. Maybe there is something about 1 turn (I've only every done 2+, now that I think about it.) If you have the hardware-in-the-loop setup, that would be a good place to test this. I haven't done this, so I'm afraid the most I can help is to point you to the manual.
Yes, I think you can change the loiter radius for each loiter waypoint. MP seems to save the WP file correctly if I do this, however I haven't actually done this in flight. After writing, I would verify that WP_LOITER_RAD remains at it's correct value. Try it and let us know how it goes. :) Unless your forecast has as much as rain in it as mine does here...