ardupilot_wiki
ardupilot_wiki copied to clipboard
System id improvements
Follow-up pull request #4110 after internal review.
@lthall @bnsgeyer please review this. The results are very interesting!
@Hwurzburg I have no permissions to add reviewers, nor labels here :(
Can someone label this DevCall ?
Can someone label this DevCall ?
done
Hey Henry, can you also approve the workflow?
Other concerns:
- ACC limits are not calculated, nor set with this methodology
- The filter cut frequencies are set very high, how realistic are they?
- Will the big I values cause instabilities when FF_ENABLED = 1?
@tridge here is an aggressive flight with FF disabled: https://we.tl/t-e0guD0oDoC here is an aggressive flight with FF enabled https://we.tl/t-2QXlUXuKG2
FF_ENABLED does cause small overshoot on the pitch axis, but not on the roll.
added devcall topic since it apparently never got discussed in the EU call.... @andyp1per or whoever runs those, you should look for labels in all repos, not just code
@Hwurzburg we don't normally look at wiki issues - but can do. @tridge is usually the one with the list
@tridge this was marked for DEVEU call a while back...I marked it for DEVCALL...Craig alwasy scans the all the repos for call labels
I think we just need to make sure that this is something users can put to practical use. Certainly some good work has been done by @amilcarlucas and team but I think that perhaps this should be moved to a blog post or discuss topic and then perhaps link it from this system-id wiki page?
My concerns is just that this is going to lead to issues and support questions and if these were posted in a discuss forum then it would be more convenient for amilcar to respond to.
@tridge this was marked for DEVEU call a while back...I marked it for DEVCALL...Craig alwasy scans the all the repos for call labels @Hwurzburg These are the only repos with the DevCallEU tag https://github.com/ArduPilot/ardupilot/labels/DevCallEU https://github.com/ArduPilot/ardupilot_wiki/labels/DevCallEU https://github.com/ArduPilot/mavlink/labels/DevCallEU
@IamPete1 suggested this should be linked from the sysid flight mode https://ardupilot.org/copter/docs/systemid-mode.html
@tridge here is an aggressive flight with FF disabled: https://we.tl/t-e0guD0oDoC here is an aggressive flight with FF enabled https://we.tl/t-2QXlUXuKG2
FF_ENABLED does cause small overshoot on the pitch axis, but not on the roll.
@amilcarlucas I didn't get a chance to download and view your files that you provided in your previous post and the links expired. can you provide the new links to these files? Thanks!
@tridge this was marked for DEVEU call a while back...I marked it for DEVCALL...Craig alwasy scans the all the repos for call labels @Hwurzburg These are the only repos with the DevCallEU tag https://github.com/ArduPilot/ardupilot/labels/DevCallEU
https://github.com/ArduPilot/mavlink/labels/DevCallEU
@CraigElder this repo also has that label
We rebased this and removed the optimization page. So far all the blocking issues were on that page, so this can be merged now.
We will do a second PR or a disscuss Blog post with the optimization in the future.
@bnsgeyer @rmackay9 please approve and I will merge...thanks
I think we just need to make sure that this is something users can put to practical use. Certainly some good work has been done by @amilcarlucas and team but I think that perhaps this should be moved to a blog post or discuss topic and then perhaps link it from this system-id wiki page?
My concerns is just that this is going to lead to issues and support questions and if these were posted in a discuss forum then it would be more convenient for amilcar to respond to.
I moved the contents of the optimization page into a forum blog post. So any support questions will be documented there and directed at me. The rest of the PR is still here and the only open points that remain are the ones raised by @bnsgeyer in his latest post.
@bnsgeyer regarding the ATC_RATE_FF_EN parameter and the injection points, @lthall told me that they are correct. If that is not the case I need exact information on what to change on the diagrams.
Otherwise we addressed all your points.
That is the source file used to generate the respective .png
figure. If someone would want to update the .png
figures in the future, he would need the .dia
files
@Hwurzburg I fixed the undeline lengths. How can I fix the image titles? remove just write the title in plain text under the image directive...it becomes the title, IIRC
@Hwurzburg the tests pass now, Thanks.
@Hwurzburg the tests pass now, Thanks.
actually they do not...the CI test suite is not definitive /home/henry/Desktop/ardupilot_wiki/copter/source/docs/systemid-mode-operation.rst:140: WARNING: undefined label: 'fig-body-diagram' /home/henry/Desktop/ardupilot_wiki/copter/source/docs/systemid-mode-operation.rst:197: WARNING: undefined label: 'fig-ctrl-sys-ardupilot' /home/henry/Desktop/ardupilot_wiki/copter/source/docs/systemid-mode-operation.rst:197: WARNING: undefined label: 'fig-eq-thrust-torque' /home/henry/Desktop/ardupilot_wiki/copter/source/docs/systemid-mode-operation.rst:212: WARNING: undefined label: 'fig-eq-force- torque-prop' /home/henry/Desktop/ardupilot_wiki/copter/source/docs/systemid-mode-operation.rst:218: WARNING: undefined label: 'fig-eq-force-torque-prop' /home/henry/Desktop/ardupilot_wiki/copter/source/docs/systemid-mode-operation.rst:218: WARNING: undefined label: 'fig-eq-motor-model' /home/henry/Desktop/ardupilot_wiki/copter/source/docs/systemid-mode-operation.rst:253: WARNING: undefined label: 'atc_rat_rll_i' /home/henry/Desktop/ardupilot_wiki/copter/source/docs/systemid-mode-operation.rst:255: WARNING: undefined label: 'atc_rat_pit_i' /home/henry/Desktop/ardupilot_wiki/copter/source/docs/systemid-mode-operation.rst:257: WARNING: undefined label: 'atc_rat_yaw_i' /home/henry/Desktop/ardupilot_wiki/copter/source/docs/systemid-mode-operation.rst:292: WARNING: undefined label: 'rate.rout' /home/henry/Desktop/ardupilot_wiki/copter/source/docs/systemid-mode-operation.rst:292: WARNING: undefined label: 'rate.pout' /home/henry/Desktop/ardupilot_wiki/copter/source/docs/systemid-mode-operation.rst:292: WARNING: undefined label: 'rate.yout' /home/henry/Desktop/ardupilot_wiki/copter/source/docs/systemid-mode-operation.rst:292: WARNING: undefined label: 'sidd.gx' /home/henry/Desktop/ardupilot_wiki/copter/source/docs/systemid-mode-operation.rst:292: WARNING: undefined label: 'sidd.gy' /home/henry/Desktop/ardupilot_wiki/copter/source/docs/systemid-mode-operation.rst:292: WARNING: undefined label: 'sidd.gz' /home/henry/Desktop/ardupilot_wiki/copter/source/docs/systemid-mode-operation.rst:296: WARNING: undefined label: 'fig-bode-data-rll' /home/henry/Desktop/ardupilot_wiki/copter/source/docs/systemid-mode-operation.rst:296: WARNING: undefined label: 'fig-bode-data-pit' /home/henry/Desktop/ardupilot_wiki/copter/source/docs/systemid-mode-operation.rst:329: WARNING: undefined label: 'fig-eq-axis-models-tf' WARNING: LaTeX command 'latex' cannot be run (needed for math display), check the imgmath_latex setting
I had all those labels defined with :name: directives. But you told me to remove those.
@bnsgeyer regarding the ATC_RATE_FF_EN parameter and the injection points, @lthall told me that they are correct. If that is not the case I need exact information on what to change on the diagrams.
@amilcarlucas remove the reference to SID_AXIS types 1,2 and 3 from the current figure with ATC_RATE_FF_EN = false. Add the figure with ATC_RATE_FF_EN = true and place the reference to the SID_AXIS types 1, 2, and 3 as an injection in the same location as it was on the other diagram. You could add the other SID_AXIS types 7-13 in there respective places on this diagram as well since they would apply in both cases.
@lthall do you understand my concern with the current diagram in this PR?
This PR has now two diagrams. One with ATC_RATE_FF_EN = false and a second one with ATC_RATE_FF_EN = true.
Changes done
@amilcarlucas i just looked and realized that you added the ATC_RATE_FF_EN = true plot.
Ok so i think i understand my confusion. I am guessing the reason this may be considered accurate is due to the fact that the user could set either the pilot input or recovery SID_AXIS types regardless of what their ATC_RATE_FF_EN parameter is set because the mode adjusts the parameter to get the desired input. so it depends on the intent of the statements here. Are they to show the user that regardless of their setting that these injections are made at these points OR what the control laws actually look like for the given SID_AXIS type. I would vote for the latter because a controls engineer will look at this and be very confused with the way it is now.
So my vote is to remove the SID_AXIS types 1, 2, and 3 from the diagram with the ATC_RATE_FF_EN =false and remove the SID_AXIS types 4, 5, and 6 from the diagram with the ATC_RATE_FF_EN = true. That would show how the control laws look when each axis type is used.
done.
@amilcarlucas yes. I concur with the most recent change. Thanks
I had all those labels defined with :name: directives. But you told me to remove those.
I will fix and then merge since BillG approved when I get a chance