2015 Autonomous Tiltrotor Software Development


Last November we posted the details and results of the first year of our prototype tilt rotor project. A lot has happened since that post, so we thought we’d provide an update. We also recently presented our progress to the Dronecode Foundation, and if you haven’t seen it you can find it here.

After the positive reception to “Tiltrotor 1”, we were given some guidance from the APM development team. We had reached both the limits of our APM 2.5 and our prototype airframe, and wanted/needed to devote more time to software and less time to airframe and aircraft hardware issues. We upgraded to Pixhawk, and were given a “FireFly 6” from Craig Elder and 3D Robotics to continue software development.

This winter was spent indoors working on improving our existing code and porting it over to Pixhawk. We originally started our code with a 3.1 version of copter, and needed to integrate this into both 3.2.1 and master to stay up to date with the project and have the best possible software for use on Pixhawk. We won’t bore you with the details, but there was an enormous amount of learning and man-hours to go from an APM 2.5 and the basic Arduino compiler to the current APM development environment!

Tiltrotor_Y6 Code

Our current “Tiltrotor_Y6” code is a blend of both APM:Copter 3.2.1 and APM:Plane 3.2.3. It is designed very specifically to the “FireFly 6” airframe at the moment. This is for good reason! (disclaimer: we are not associated or working with birds Eye View Aerobatics, just using their aircraft for software development)  Like our first design, we spent an inordinate amount of time dissecting and studying the control of pitch, yaw, and roll at various thrust angles between vertical (helicopter) and horizontal (airplane). There are MANY ways to approach thrust vectoring tiltrotors, and each one comes with a very unique set of characteristics and compromises. Given the FireFly’s unique configuration of 6 motors, 2 elevons, and the thrust vector, we had to stay focused on this airframe.

The major components of our Tiltrotor_Y6 code include the following:

General Software Additions:

  1. The Thrust Vector “Attitude Controller”  (Blended Aerodynamic and Thrust Vector Controllers)
  2. The Thrust Vector “Speed & Angle” Controller ( Speed and Thrust Angle limiting functions)
  3. A Unique “Turn Coordination” Controller for Hover / Conversion / Airplane Mode
  4. Implemented the use of the Airspeed Sensor in Copter

FireFly 6 Specific Additions:

  1. Aft Motor-Set Controllers to handle both VTOL and Airplane flight modes
  2. Airplane Mode Differential Thrust Yaw and Differential RPM Controllers
  3. Elevon function/authority management
  4. Thrust Vector conversion functions

We utilized a total of 7 PID controllers for attitude management (5 for rotor-based controls, and 2 for the elevons), so tuning was no small task! We executed a very methodical build-up test approach and had Hover, Conversion, and Airplane Mode attitude control tuned in about a week of flying. Here are the results…

Team Tiltrotor FireFLY6 Testing

Currently, we are only flying in “Stabilize Mode” with manual thrust vector control. Our conversion is nearly 100% effortless and only requires minor throttle adjustments at high thrust vector angles to control altitudes, and at lower angles the pilot can simply fly it like an airplane!  The transition towards airplane mode is easily accomplished while maintaining a target pitch of zero degrees (level deck).  There is no reason anymore to accelerate with a nose-down command prior to beginning the transition to airplane mode, which greatly simplifies the task for the pilot.  We are extremely satisfied, but we still have a lot of work to do to further refine the conversion scheduling and make the transition more robust to user inputs.

Our Tiltrotor software is still very developmental at the moment, and the entire picture of what an Autonomous Tiltrotor code will look like is foggy. We have a good idea, but here’s what’s next in the immediate future:

  1. Continued “stabilize” development and data collection for use in Autonomy design
  2. FireFly 6 airframe upgrades/modifications to improve performance and conversions even more
  3. “Auto Conversion”
  4. Blending Copter and Plane Navigation
  5. Full AUTO VTOL ( Takeoff- Hover -Convert- Cruise- Convert- Hover- Land) sequence

Future Updates and Thanks

Expect more updates as we progress this summer. A special thanks to Andrew Tridgell and Craig Elder for their guidance and support, and the entire APM Development Team who have provided the framework and capabilities for us to build upon.

Leave a Reply