This package contains an MPC integrated with with PX4 Autopilot and ROS 2.
The MPC uses the acados framework
The MPC formulation uses acados. In order to install acados, follow the following instructions To build the code, clone the following repositories into a ros2 workspace Dependencies
- px4_msgs
- px4-offboard (Optional): Used for RViz visualization
colcon build --packages-up-to px4_mpc
ros2 run px4_mpc quadrotor_demo
In order to run the SITL(Software-In-The-Loop) simulation, the PX4 simulation environment and ROS2 needs to be setup. For instructions, follow the documentation
Run PX4 SITL
make px4_sitl gazebo
Run the micro-ros-agent
micro-ros-agent udp4 --port 8888
In order to launch the mpc quadrotor in a ros2 launchfile,
ros2 launch px4_mpc mpc_quadrotor_launch.py
The mpc_spacecraft_launch.py file includes optional arguments:
- mode: Control mode (wrench by default). Options: wrench, rate, direct_allocation.
- namespace: Spacecraft namespace ('' by default).
- setpoint_from_rviz: Use RViz for setpoints (True by default).
Example:
ros2 launch px4_mpc mpc_spacecraft_launch.py mode:=wrench namespace:=<namespace> setpoint_from_rviz:=False