-
Notifications
You must be signed in to change notification settings - Fork 18k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ArduPlane: parameterize lookahead climb ratio #28891
base: master
Are you sure you want to change the base?
Conversation
Hi George - could you take a look? Any suggestions? |
b2bc7c5
to
4da32dc
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi Tim!
I've tried to read and internalize the lookahead code, but it's quite opaque; in the way I understand it, it's plainly wrong.
So I probably understand it wrong.
But that means that I shouldn't just expect your intervention to have no side effects.
Instead, do you have any test results (logs), where before the plane wouldn't manage a climb and now it does?
No you have it right. I had to rewrite terrain lookahead in my terrain avoidance Lua script #28625 because of that. In fact the only thing I really want out of it is the parameter value :-), so that my Lua based lookahead can use the same ratio. |
4da32dc
to
981c536
Compare
The code should have no side effects iff the default value is used, which should give the same results as the previous hard coded value. |
@timtuxworth I've spent some time parsing the code. To me, it looks like if the ratio is 0, only then will the full climb rate be asked by the lookahead. But I want to see comparative tests. |
Hello @timtuxworth ! I've done some testing with your code today. I built a mission that I think is a repeatable stress-test for the lookahead code: You can launch your SITL at those locations with sim_vehicle.py -v ArduPlane --frame quadplane --console --map -D -G -l 38.638235,22.595485,388,0 and then load the mission. I've run this mission with various settings and you can see cumulative results in the following figure.
That said, I'd like to ask you for the following things:
|
This is great. Thanks so much @Georacer . I should be able to look at this in the next couple of days. One big question. HOW did you get this graph of multiple flights on the same graph? |
This is interesting @Georacer - I'm getting Q_ASSIST kicking in at 0 altitude. According to the description of Q_ASSIST_ALT, 0 should mean disabled, but I'm definitely seeing it firing. |
You know how it goes @timtuxworth : Log or didn't happen! :) |
981c536
to
455739a
Compare
Made the changes requested by @Georacer and ran a suite of tests, to compare the results with Logs are here: (for as long as the links last). https://www.dropbox.com/scl/fo/pohi2wssydjefod689khp/APSSKzsSW3mkgHw29A0Ysjw?rlkey=seedu7gzeslzw9l6dfbdcnzpe&dl=0 I graphed this in PlotJuggler and got this. The dark blue line is the physical terrain. As you can see it flies over a very steep mountain. For each value of TERRAIN_LKA_CLMB I show TERR/CHeight (the height above terrain) and POS/Alt - the actual altitude. As you can see climb-050 (the default) is actually quite safe and pushing it up to 100 seems like it might only be necessary in very steep terrain such as this example where it maintains good clearance. |
Plane altitude terrain lookahead currently uses a fairly arbitrary but safe 50% factor when calculating the maximum pitch to assume when calculating the if the plane can safely fly over the approaching terrain.
Some users want to be more aggressive than the default. so this makes the 50% factor into a parameter. The default is no-change to current behavior, but by changing TERRAIN_LKA_CLMB users can now chose a more (or less) aggressive factor for the percentage of maximum climb factor to use when calculating terrain lookahead.