Through my research at the Marshall Space Flight Center and continued development as part of my undergraduate honors thesis, I have chosen to publish my PX4 Development Kit for Simulink. This toolkit includes a configurable dynamic model for a wide range of multicopter configurations, as well as a more complex position control system using a Kalman filter for navigation estimates with velocity updates provided by a downward facing on-board camera. The PX4 provides greatly improved processing power in a conveniently sized and inexpensive ARM based 10-DoF flight controller. Please contact me if you have something that you would like to see added or corrected. Click on the picture below to view and download the guide. Beneath the guide you will find download links for the latest version of the toolkit.
Requires MATLAB 2014a with Embedded Coder
This project is a work in progress. Files and documentation are subject to frequent changes.
Now available as a product support package from MathWorks
PX4 Simulink Development Kit Download
8/03/2014 - v0.60b - Simulink now automatically handles rate transitions - updated model 7/22/2014 - v0.51b - updated to latest firmware and toolchain - reduced size of firmware archive - improved pwm arming sequence 7/18/2014 - v0.50b - fixed startup script for use with PX4FMU (No IO shield) - verified full compatibility with PX4FMU and Pixhawk 7/15/2014 - v0.40a - added GPS support - updated startup script 7/03/2014 - v0.30a - updated to latest firmware - inline parameters to fix boot failure - improved sensor noise characteristics - updated simulation GUI with scale slider - replaced experimental navigation system with simple PID ACS 4/24/2014 - v0.22a - updated to latest firmware 4/18/2014 - v0.21a - updated to latest firmware - new customizable startup script for PX4FMU, PX4IO & Pixhawk - further memory optimization - added Pixhawk RGB LED support - cleaned up wrapper code 4/02/2014 - v0.20a - updated to latest firmware - updated makefiles for PX4FMU v1 and Pixhawk v2 - new startup script with mavlink output to QGC - memory optimization - added timestamp to debug outputs - fixed missing 25Hz loop 2/01/2014 - v0.11a - added brushless motor transfer function - added script to generate brushless motor transfer function - added LiPo battery model - simulation code optimization - modified solver - improved altitude control system 1/20/2014 - v0.10a - initial release
Is it possible to run the development kit on a Linux machine or is it only compatible with windows? Also I have matlab 2013, will that result in compatibility issues? Thank you.
Hi, When I am replacing model.stl file with the binary .stl file of my quadcopter, matlab error pops up saying file is too big to be opened. File size is 77 Mb and i am not able to reduce it further. Any suggestions on how to proceed.
Thanks for any replies beforehand.
Your model may be too complex. Try reducing the resolution of the export in your CAD program or another utility such as Netfabb. Anything larger than 1MB will result in poor frame rates. I often export an .stl model with minimal features by removing all but the most essential geometry of the part.
when going through the eclipse portion of the tutorial, I get an error saying “Programs ‘g++’ not in path” and “Programs ‘gcc’ not in path”…. any help here?
Hi. I try to do your tutorial step by step, and I am stuck in the step 7 of the ‘Installation and Setup’ section. When I select ‘Build Model’, the error, which is related to the ‘code replacement library’, comes up. Could you give me any tip to solve this problem?
I believe this problem is common to older versions of MATLAB. Be sure to use the latest version of MATLAB with the Simulink embedded coder toolbox activated.
Thank you for the helpful tutorial! Its really great to work with PX4 in combination with Simulink.
I have one question! is it possible to get the debug data into simulink with a serial receive block? What settings do i have to use? Thank you!!
At this time, serial communication is not incorporated into the process. However, MAVlink is operational and may be used with supported software.