-
Notifications
You must be signed in to change notification settings - Fork 804
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
Fix tiltrotor motor tilt oscillations #471
Conversation
Fix tiltrotor joint oscillations
11a9142
to
c3e4d08
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.
It's much better with these changes, especially using tilt support in hover and transitions. Awesome @Jaeyoung-Lim !
@@ -156,6 +156,7 @@ void GazeboMavlinkInterface::Load(physics::ModelPtr _model, sdf::ElementPtr _sdf | |||
input_reference_.resize(n_out_max); | |||
joints_.resize(n_out_max); | |||
pids_.resize(n_out_max); | |||
joint_max_errors_.resize(n_out_max); |
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.
Would be better to have a single vector
for those 3, but given it's already done that way, no need to change here.
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.
Right, makes sense.
This removes the magic number of max joint errors to be able to explicitly define the maximum error handled for the pid controller in the joints
9cbd687
to
e820b9a
Compare
* Fix tiltrotor oscillations Fix tiltrotor joint oscillations * Add maximum joint error as paramters This removes the magic number of max joint errors to be able to explicitly define the maximum error handled for the pid controller in the joints
This PR fixes the tilt rotor motor tilts oscillating during flight and even during the vehicle is stationary. This was causing the joint position to be more or less random and was blocking a lot of functionalities to work that require joint position to be precise (e.g. controlling yaw based on tiltrotor tilt). Also, the flight shows instabilities due to the motors pointing in arbitrary directions during flight.
The oscillations were caused by the following reasons.
To solve the problem the following is proposed
Before PR
After PR