WPNAV_ACCEL limiting

@tridge you are probably the only person who can answer this. I am looking at this PR

I have had a problem where if I set the WPNAV_ACCEL to a high value, say to 980 to pull 1G of acceleration in turns, and limit ANGLE_MAX to say 2500 centidegrees, the helicopter will still tend to overshoot the landing coming in “hot” at 30 m/s. And it will severely undershoot waypoints sometimes in tight turns with no delay at the waypoint and using “fast waypoints”.

How can I ascertain this feature is working properly in 3.5? The best workaround I have come up with is to use Channel 6 to set WPNAV_SPEED and don’t use any DO SET SPEED commands in a mission. When I take off I have it set conservative at 5m/s. After it has started the mission I turn it loose and set it to 35 m/s. When the heli is coming in for an approach to landing I manually dial the speed down gradually so it doesn’t overshoot the final waypoint.

I have not found a good combination of settings to do this fully autonomous, without using the manual WPNAV_SPEED control.

Hi Chris,
It’s stretching my memory a bit with that PR. I think that code came after a session with Leonard and likely the maths came from him.

In the past I’ve used DO_SET_SPEED commands before the landing approach waypoints. It does tend to make for a fairly sudden slowdown, which isn’t elegant at all, but it was sufficient for my needs.
One thing we could do is internally apply changes to DO_SET_SPEED over a period of time. So it would have a current target speed, and a desired target speed. The current target would move towards the desired target over several seconds. That would make it much smoother. Do you think that would help for you?
What I really want to do for helis is add support for the L1 navigation controller. The current WP controller is really not good for high speed helis, which fly far more like planes at high speed. Unfortunately I’m unlikely to get time to work on that soon.
Cheers, Tridge

That would help do it autonomously. With the WPNAV_ACCEL set to a large value the sudden deceleration with a DO_SET_SPEED is very severe. So using manual control with Channel 6 to dial back gently when the helicopter is coming in for landing, at present, seems to be the best option. And that’s not a show stopper. I can “cheat” and use two or more waypoints that are fairly close together, but each subsequent waypoint is at lower altitude. Using the lower WPNAV_ACCEL_Z causes the helicopter to slow navigating those waypoints so it can hit the altitude target. So that also works quite well to slow it, although it takes more careful flight planning.

Yes, indeed. The helicopter is chasing a ghost aircraft that is leading it by 10-20+ meters at high speed. When it gets to the turn the ghost is so far ahead of it that it chops off the turn to keep up with the ghost, while still staying withing the acceleration and frame angle limits.

The L1 nav controller would be a dramatic improvement. Simply adjusting the PERIOD and DAMPING would then allow tuning a heli to make turns as gentle as the pilot wants, or bank her over on her rotor tips and do “ag turns”. The current WP nav controller is ok for multi’s because they’ll fall out of the sky if you try that. But being able to do “ag turns” with a survey helicopter would be totally awesome. It would cut the turn time by 50%, reduce the overrun on passes, and be really fun :grinning:

It would be great to have the L1 controller for tradheli like plane. I’m working on the compound helicopter code and thinking how to implement the boost control for propeller thrust for the autonomous modes. In this case I might look at the TECS. The other thing to think about with the L1 controller is the stall prevention to guard against retreating blade stall. Just some thoughts.

This is what happens on high-speed turns. The outer track is with target speed set to 30 m/s, the inner set to 35 m/s. The heli slows for the turn with either setting. But the faster the speed is set, the further ahead the “ghost” is that it’s chasing. So the heli “chops off” the turn because it’s like being pulled on a rope by the “ghost”.

The heli easily has the power and manuvering capability to fly that track properly. The limitation is in the WP nav controller, not the aircraft.

After fiddling with this today and making a half dozen flights I finally got it so it will make pretty consistent, nose low-tail high “ag turns”. But the settings I arrived at are totally different than AC3.3.3 was. I set ANGLE_MAX to 30, wanting 30 degree banked turns while losing minimum amount of speed in the turn. For whatever reason I can’t explain, turning the WPNAV_ACCEL down finally got the heli to use the full 30 degrees of bank angle. I ended up at WPNAV_ACCEL = 520 for ANGLE_MAX = 3000 @ 30 mph (target speed 15 m/s) on a figure-8 course that is 1,320 feet per lap.

The heli never actually achieves the 15 m/s target - usually hitting 14 m/s on the “straights” and slowing to ~12 m/s in the turns. But it comes out of the apex of the turn nose low, accellerating. Makes the turn properly, tail high, to keep the tail rotor in clean air, and accelerates back to the 14 m/s within about a second or two.

This is the final flight I flew late this afternoon on the course carrying a solid-mounted GoPro camera. I briefly set the speed to 20 m/s to see what would happen on this tight of a course and it just serverely cut the turns short because the “ghost” was too far ahead of the heli on this small of a course. But I was reasonably pleased with the final “tune”.

So I still haven’t figured out what the relationship is between the WPNAV_ACCEL and ANGLE_MAX, but there definitely is one in 3.5. With 3.3.3 I’d just set the bank angle I want, then turn up the WPNAV_ACCEL until it achieves it. It doesn’t necessarily seem to work that way with 3.5. It more acts like if the two don’t match it limits the speed and bank angle and slows too much in the turns.

Chris, I look at the quality of the video.
You do have a haze over the lens. Is the lens looking through a plexiglass or something not clean? I look at those things because I worked with aerial photography my whole live. Sorry for my nitpicking.

Fred, no it had some greasy fingerprints on the lens. I pulled the lens cover off and then reached down to turn the camera on. And accidentally pushed the button, which wasn’t the button, but was the lens. So at that point I just said to heck with it. I only put it on there to see what it looked from the helicopter, as to how smooth the turns were.

I since cleaned the lens after I got it back in the shop.

I agree, it served the purpose of the flight!!

What are your acceleration parameter settings?