Skip to content
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

[Control] Add Nonlinear Model Predictive Controller for all robots #571

Closed
wants to merge 71 commits into from

Conversation

Li-Jinjie
Copy link
Contributor

@Li-Jinjie Li-Jinjie commented Nov 7, 2023

What is this

Try to implement Nonlinear Model Predictive Controller for all robots

TODO

If there is still some work to do. Please list up as follows:

  • Position control for an under actuated quadrotor
  • Add parameters from rosparam and KDL; Include Python code generation in cmake scripts
  • Fix GitHub Action error; Add ros test
  • Sys. Id. a real quadrotor, implement NMPC onboard
  • Design NMPC controller for fully actuated quadrotor

Video

Milestone 1: position control for a under actuated aerial robot. The yaw control problem in this video has been fixed.

nmpc_mini_qd-2023-11-04_19.05.07.mp4

Li-Jinjie and others added 30 commits October 26, 2023 16:33
…tructor, so I have to move parameters to initialize()
… compiling, but the system crashes during running.
…date mini_quadrotor parameters; generate acados C code again!
…ller. Try bringup_nmpc.launch if want to use NMPC
…factor from MPCController to NMPCController; use LQI attitude controller; takeoff and land successfully!
…shift all values forward and add the target point at the end
[Aerial Robot Control][MPC] deploy ACADOS automatically in catkin workspace
…mpc file. Now nmpc_controller can be used independent with lqi controller file. Tested in sim.
…te == true, the body_rate cmd will be set as target_ang_vel and hence becomes the feedforward term. Note that I change the sign of d term in control_feedback_state_msg_ to be compatible with p and i.
…hovering in simulation! Only body_rate controller in Spinal should be used. The use of attitude controller in Spinal cannot guarantee the convergence of yaw angle.
…nd ft1, ft2, ft3, ft4 in base_thrust to Spinal. Better performance than pure body_rate controller.
…eate files for base solver and controller, not implemented.
… why body_rate controller is incorrect, cannot take off, very weird.
@Li-Jinjie Li-Jinjie closed this Jan 15, 2024
@Li-Jinjie Li-Jinjie deleted the develop/MPC branch January 15, 2024 11:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants