L1 navigation for tradheli

Steve, you can accelerate from a hover to desired speed and from desired speed to a hover but I think the desired speed needs to be at least 8-10 m/s to reduce the effects of the tail rotor. The thrust of the tailrotor causes the aircraft to pick up a crab to maintain straight line flight. If you are going to fly 5m/s just use copter nav. The L1 nav was really meant to be used for high speed flying.

Thanks Bill, that is roughly what I was seeing. Accelerating to 10m/s regardless of what WPNAV_SPEED was set at. I wanted to use the L1 nav for smoothness with a sling load and hoping it would maintain +/-1m cross track error. From what you are say, I’ll give copter nav another go with splines.

You could try increasing the NAVL1_XTRACK_I param to see if that helps it maintain a tight tolerance on cross track. That’s the only thing I think might help in trying to keep +/- 1 m cross track error.

Okay, will do, thanks Bill.

Hi guys
I just tested ArduHeli with L1 navigation and I find something unusual.
My test platform is:
Helicopters: 800 size and 560 size
FC: Pixhawk 2 CubeBlack
Power: Electric
Firmware: ArduHeli-3.6-Stable-px4v3.px4
Governor: External governor from ESC

I used to use ArduCopter Traditional Heli 3.6.8 and 3.6.9 to fly these two machines and I got good flight.
When I tested Chris’s ArduHeli-3.6-Stable-px4v3.px4 I got some problems.

  1. I got “Bad Gyro Health” warning repeatedly and randomly when the helicopter on the ground but never in flight. I use mission planner, this warning only appeared on the flight instrument but never in the message window. I tried to calibrate accelerometer and compass, but the warning still there.
  2. I got unusual auto mission flight behavious. It was flying good when I use copter navigation control. When I enable L1 navigation, I was very excited to find out my helicopter just flying like plane, but their heads never yaw to the right direction. The following video will show you my telemetry tlog replay of three auto missions under L1 control. I think my helicopters are fine turned and I just use the default parameters of L1 control for testing.

Under this situation, I did not do any further turn of L1 parameters. I just change the settings of WP_YAW_BEHAVIOR both 1(Face next waypoint) and 3(Face along GPS course) and the results were same.

I did same tests both on 800 and 560 size helicopters. SAME RESULTS.
Here is my LOG file and Parameter file of 800 size helicopter. Please help me to do some analysis.
Thank you guys.
800heli_L1.param (14.8 KB)
DataFlash Log

@marstears I looked through your param file. I noticed one thing that was unusual. You have ATC_HOVR_ROL_TRM set to zero. This is the trim roll attitude in centidegrees that your helicopter hovers at to keep it from drifting due to the thrust of your tail rotor. So I would assume that when you fly your helicopter in stabilize mode that your are having to hold a non- zero stick position in order to not drift in a hover.

So on to your concern with your heli flight in L1 Nav. The difference between its ground track and aircraft heading is due to the tail rotor and the fact that your ATC_HOVR_ROL_TRM is not set up for a hover. That will help minimize the difference between the ground track and aircraft heading. A

One other think to mention regarding the L1 Nav is that the aircraft is taking very wide turns because your NAVL1_PERIOD is too large. It will make tigher turns if your reduce this number but it will also cause the aircraft to bank at larger angles to make the turn tighter. So be aware of this so you are not asking for too much turn performance. It is up to you to decide whether your aircraft has the ability to turn at high bank angles for the speed that your selected. if you see it not being able to hold altitude in the turns then you may be asking too much from your aircraft.

Hi Bill
Thanks for replying. I will try it tomorrow and give you a report.

Yesterday, I first used CUAV’s latest V5 nano flight controller with NEO v2 GPS to test the automatic task of L1 navigation mode on my 420-class helicopter. Based on the default parameters, I carried out repeated flight. Maybe Because the distance between the waypoints is close, the flight path calculated by the L1 navigation mode is not ideal, and is similar to the spline waypoint.

In addition, after switching to the automatic task, after the flight reaches the mission height, the initial flight action has a mechanical feeling of frustration, I don’t know what the reason is!

Here is the ground view of the flight test video:

logs Here:

I also ran the new L1 Nav today.
First run, I forgot to turn it on (doh!).
2 issues I saw: Crabbing?. On some of the legs it would crab.
I then also saw it not hitting the next leg cleany, but re-reading the thread, it looks like I need to play with the Stomp Factor.
The only value I played with (from default) was the Period, which I reduced to 18, but that kinda made the missing worse.
I kept speed low 8-10m/s with fairly wide legs.
Log:

So it is expected that the heli will crab using L1 nav. There are two reasons for this. The first is tail rotor thrust. Even though you have ATC_HOVR_ROL_TRIM set for hover, the power requirements are going to be different in forward flight and as such it may require the aircraft to crab in order to keep on course. The second reason is wind. L1 uses the crab to maintain a straight course in winds. In both of these cases, copter nav would use bank angle to keep a straight course and thus the heading aligns with the course. This is where the nav controllers differ.

@bnsgeyer Hi Bill
I tested L1 Nav use my 560 size helicopter again today. First I hover my helicopter in stabilize mode and set ATC_HOVR_ROL_TRM to 200 to make it hover without any drifting. Then I use survey grid to make a auto mission. It was flying better than last time. When the heli made a left turn it still have an angle offset between heading and fly direction, and it seems like need a long way to correct the yaw, then overshot the target direction. But it looks normal after a right turn.
BTW, I also set the L1 period to 16 to make the turn sharper.
Here is the replay of my telemetry log and data flash log. Please help me. Thanks a lot.


This part of data flash log shown in the picture corresponds to the auto mission in the video.

Data flash log

@Implicit I looked at your params in the log. it appears that you have your WPNAV_RADIUS set to 200 cm. If that indeed was your WPNAV_RADIUS then it is too small. Look through the recommendations above and in the Plane Wiki for L1 Nav. The recommended Radius is 2 times your speed. So in your case of running at 1000 cm/s, you would set your radius to 2000 cm. This will allow the aircraft to start its turn before hitting the waypoint. Otherwise it will do more of a tear drop onto the next course.

I have a difficult time looking at logs for the L1 because I don’t know how to show its track and heading on a map like I’m use to seeing when I play back a telemetry log. If there is a way to do the same thing with dataflash files, I’d appreciate someone letting me know. Otherwise telemetry files will help me a lot more with L1 nav tracking issues. Also the param file.

The period parameter will make the aircraft have tighter turns. There is a balance to the waypoint radius and the L1nav period parameters. Because if you have to large of a period with the recommended radius, it still may overshoot the next course.

@marstears in your case, your lines are pretty close together. You can see that it is not able to turn the 180 deg within the width of the two legs. So that is why it is overshooting the next leg. you could lower your period to see if that helps. If it does then that’s great. the other thing to try would be to lower your wpnav radius. I think you will probably need to do a little of both.

In making these changes, keep an eye on the max sustained bank angle and make sure your heli can sustain altitude in the turn with that bank angle. Remember this does not compensate for the lack of turn performance of your aircraft.

@zhangsir I have the same comments for you as I did for @Implicit. Please read my response to him. You need to increase your WPNAV_RADIUS. I also think that your NAVL1_PERIOD is too large. I think this should be around 16 or so.

@bnsgeyer Hi Bill
Thank you for replying.
I used the same parameters to fly a 90 degree mission and the result is the same.
What I am more concerned about is the heading direction, I want the heli yaw direction same as the mission direction. Some overshooting to the next leg is acceptable.
In all my auto mission tested today, no matter 180 degree turn or 90 degree turn, only right turn aligned the nose to the course. And left turn never did.

If you want your heli heading to be along the ground course (no crab) then L1 will not do it for you. It was not designed to align heading with course. As far as the misalignment with left hand turns versus right, I’m not sure what to tell you. You can try using the NAVL1_TURN_SF and increase it by 0.1 increments. This will add more pedal into the turn. So it may make your right turns sharper and then help to reduce the left turn misalignment when exiting the turn.

@ChrisOlson Thanks Bill
I think you have done a great improve of arduheli with L1 control. It’s a great honor to test this new feature. And I have over 2 years experience of survey and mapping, using planes and multicopters, I recommend using L1 navigation while aligning the heli heading in the direction of the course. This can greatly improve the efficiency and accuracy of data acquisition.
Helicopters are superior to fixed-wing aircraft in takeoff and landing, and far superior to multicopter in efficiency. So I love helicopters. Wish you could improve these wonderful features someday. And I will continue to do some project with arduheli.
Thank you a lot.

@marstears So you would be ok with bank angle on the long legs rather than the crab. What is the big concern with having a crab. is your camera stabilized in pitch and roll? so the crab angle causes the pictures not to be aligned with the leg course.

I guess we could add the capability. There are some other features in the L1 library that I could look at like a heading hold. So I may look at that in the future. Thanks for the feedback!

@bnsgeyer Thanks, I follow your suggestion, then test flight and then report the results!