Progress Update with APM 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!

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…

 

 

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


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.

 

Views: 3788


Developer
Comment by Bill Bonney on May 6, 2015 at 7:06am

Great work. It would also be nice know you who your are rather than Just Team Tiltrotor, don't be shy.


Developer
Comment by Bill Bonney on May 6, 2015 at 7:30am
I think Ning messed it up, it's fixed.

Developer
Comment by Craig Elder on May 6, 2015 at 8:31am
Comment by Advoloastra on May 6, 2015 at 3:24pm

Great job! I will be following this very closely.

Tim

Comment by Rob on May 6, 2015 at 3:33pm

Very cool - I'm not sure if I missed it, but are you planning to share back to code for the automated transition sequence and so on?

Comment by Team Tiltrotor on May 6, 2015 at 6:04pm

@Rob, we believe our code belongs to the APM community, and will be available for everyone. We have an enormous amount of work into our development (going on 3 years!), but the code we are running is still probably less than 5% of our own creation. Eventually it will be merged into the APM master. Right now it's available in our own fork here, with the exception of the code that is evolving during our flight test program.

Comment by Warren Eather on May 7, 2015 at 12:48am
Excellent work. Thinking of getting a Firefly myself.
Comment by D . S on May 7, 2015 at 2:10am

 Interesting project. All the best.

Comment by Mike Taylor on May 7, 2015 at 7:59pm

Quick question, what is the torque like on the conversion from hover to plane? What servo grunt do you need and what is the transition time for an emergency (I quickly need to be in hover mode) take? Amazing, I want to get a firefly but they don't ship to Australia... bummer.

cheers,

Mike

Comment by Team Tiltrotor on May 7, 2015 at 9:39pm
@Mike, we've never measured the conversion torque, but in both tilt rotors we've flown (2kg ish) a standard servo has been fine. The firefly 6 has a beefy gear chain setup. As far as emergency conversion I know firefly stock design converts in 3 sec but it can get hairy. if you are talking about an emergency for loss of control our code is actually more stable in conversation mode than hover mode because we use aerodynamic damping in addition to copter thrust stabilization. The stock firefly 6 has little to no stability control during conversion because neither the copter or plane controller is active during the mode
exchange. If your emergency is your about to hit a mountain and you want to stop immediately than I'm sure the execution could be done in about 5 seconds smoothly.

Comment

You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service