-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Mellinger controller: Attitude control unstable beyond about 30 degrees roll/pitch #832
Comments
What would be a good way forward for this issue? How do we determine if this is a bug or if we have reached a limitation of thrust-to-weight ratio? Any ideas? |
A software verification might be possible with the Python bindings (#602) and simulation of a model with a higher t2w ratio. A hardware verification would require upgraded motors. |
One problem I just found is the omega error: this should be both in body coordinates (equation right above (8) in the paper; Lee uses R^T R_d, see (8) in his paper). I am not sure if this can cause these kind of errors, but it can certainly explain odd behavior for yaw !=0 cases. |
Did anyone ever do a comparison between the INDI controller and Mellinger for aggressive attitudes? If another controller performs significantly better, that would be evidence that this is a software bug. |
I've compared the PID and INDI controller, as the INDI controller should be able to withstand sudden distrurbances and windgusts, but not against Mellinger... Is there a trajectory that forces the 30 deg roll/pitch that we can compare the both with? |
Executing https://raw.githubusercontent.com/USC-ACTLab/crazyswarm/master/ros_ws/src/crazyswarm/scripts/figure8.csv at 0.6 timescale results in 34 deg max roll and 23 deg max pitch. I remember that this results usually in crashes with the mellinger controller. |
This was very long over due.... but I finally got around to test this. I tested the trajectory on PID, Mellinger and INDI. Although the Crazyflie didn't crash, it did behave more aggressive and wobbly during the maneuver. With bad motors/propellers it probably crashed for sure. So I'm not sure what is causing it for Mellinger, but perhaps it would be good in general to implement default mellinger gains are a little bit downtuned. Anybody that has those values anywhere? Videos (might need to downloads to see it) PID 20220307_140604-converted.mp4Melinger 20220307_140728-converted.mp4INDI 20220307_140728-converted.mp4 |
the SE(3) controller from Mellinger/Li should be capable of trajectory tracking with around 60 degrees roll/pitch angle without problems. Our implementation only can get to around 30 degrees. This has been observed by @whoenig and @jpreiss in a trajectory tracking scenario and by @pPatrickK in USC-ACTLab/crazyswarm#71 in a position setpoint step scenario. This might be due to some implementation bug or because of the low thrust-to-weight ratio of Crazyflies.
Transferred from USC-ACTLab/crazyswarm#74.
The text was updated successfully, but these errors were encountered: