Skip to main content

Integration for a nonlinear quadcopter with flapping dynamics model into Mission Planner and Flightgear for 3D visualization


The objective for this milestone was to integrate the same model functionality developed and analyzed within the Matlab/Simulink environment into a mature environment that will be able to test most functionalities of the Flight controller software that will be flashed for real-flight testing.

The decision was to either migrate the Ardupilot (in this case ArduCopter) software into the Matlab environment or integrate the highly nonlinear quadcopter model with flapping dynamics into the Ardupilot environment. The former option would mean no easy integration with Mission Planner and the real-time sofware-in-the-loop (SITL) testing tool (which also includes the infrastructure to communicate with the Flightgear 3D visualization environemt, while the later with make use of singular environment although the software development effort would quite tedious and error-prone.

It was chosen to go with the first option as this was thought to be lead to more mature verification method prior to real-flight testing while having a relatively smaller integration effort. This effort was also also aided with the fact the simulation model in MATLAB was already designed in source code format (C++) and then wrapped around in MEX (Matlab Executable) which was compatible with the Ardupilot C++ environment.

The integration of the quadcopter model was done in a phased approach testing the robustness and functionality of the simulation after each integration step. This resulted in a considerable amount of debugging time saved allowing the whole integration to be completed within a week.

The Flightgear program was configured to use this new airframe model and this successfully tested using the Mission Planner software the Ground Control Station. The results from this milestone has enabled the analysis of aerodynamics effects to be quantified both on subsystem level using MATLAB, system level (using Mission Planner) and visualization (using  Flightgear). This now serves a in depth analysis tool to the performance of subsequent designs that will be developed in the near future.

Comments

Popular posts from this blog

Setting up the Tarot T4-3D gimbal on the Pixhawk 2.4.8 with Specktrum dx6 Gen2 toggle switch

So i took the challenge of setting up the Tarot gimbal not just for inherent stable video footage but also the flexibility of controlling it from the radio control. However, I encountered quite a few challenges which made me aware that I'm not the one only in this battle . It's quite clear that the setup of the Tarot gimbal using its own software is completely different from how it's been described in the Ardupilot/Arducopter webpage and in mission Planner. In Mission Planner and it's associated site makes one believe that it should be done through software, only to realize that in actual fact the setup is more complex than that.  After two evenings of trying various combinations, I realized the getting the pixhawk Aux channels to communicate with the T4 gimbal requires the following steps: - The Pixhawk Pin9 (Aux1) needed to be activated to pass through user-chosen channel from the transmitter. For the Dx6 Gen2 it was the channel 6, which can assigned the ...

Matlab to C/C++ code development - Some learning points

Over the last few years, the engineers at the company have invested both their time and sleepless nights in formulating a process for the development of Machine learning algorithms that will satisfy real-time constraints with minimal RAM usage. This is quite a tall task as per default, that would force one to do their development directly in C language. Although that seems like the right choice, the downside is the direct correlation of the debugging time with algorithm complexity.  Such a time could have been rather used in optimizing the algorithm within the MATLAB environment which has excellent tools for the analysis, plotting and debugging. So it was decided to rather learn the Code generation process with the hope that future algorithm could be designed in a similar fashion without the hassle of the compiler-specific run-time issues. The development of this machine learning algorithm would eventually be implemented in a 32bit, 160Mhz speed, 260KB RAM microcontroll...

Setup ArduPilot flight modes with DX6 Gen 2

Hi, I've looked around the web to get an understanding the setup of the Ardupilot flight modes with a Spektrum DX6 2nd generation and there was none. So I decided to write this blog. The few things to consider when doing this: Please follow the instruction given on the ardupilot webpage . Have the Pixhawk hardware connected to Mission Planner (I have 1.3.50 - Copter V3.5.3)  Use the display bar in the Radio Calibration page as a guide while changing the rate pulse widths on your transmitter. I've used switch D to change the pulse width ranges on channel 5.