Autopilots

One of the best experiences of my graduate school career has been designing and building the autopilots that are currently used by the lab. Back when this process started (2010), multi-rotors where not nearly as popular as they are now. These days, there are lots of good options for buying a cheap, relatively high-quality autopilot that you can program yourself. At the time, however, I was looking for a light-weight, programmable-autopilot for my variable-pitch quadrotor, and after exploring a few commercial options, I resorted to building my own.

As a lab, many attempts at building autopilots looked like this--a terrible mishmash of wires and shoddy soldering. Thanks to cheap circuit board prototyping and good tutorials, I built a single board autopilot, specifically designed for the variable-pitch quadrotor. In the lab, the variable-pitch quad was referred to as the "Uberquad", and so I named the autopilot the "UberPilot".

This is version 1.1 of the UberPilot. The circuit design is heavily based on the UDB4 from Sparkfun. The autopilot uses the dsPIC33FJ256 microcontroller with an InvenSense ITG-3200 rate gyro for sensing angular rates. Since the only on-board sensor is a rate gyro, this autopilot is specifically designed to be flown in our RAVEN motion capture room

.

The UberPilot has undergone several improvements, such as adding on-board power distribution, new sensors (accelerometer, magnetometer, and pressure sensor) and more debug support. The current version flown by our quadrotors in the lab is version 1.5.1.

In addition to continually improving the hardware and software design of the basic UberPilot, I have designed two other autopilots in the last couple of years. This one features a dual-core TI F28M35H32B microcontroller for increased computation power (see the Relative Navigation project for more information).

I also designed an autopilot designed specifically to be low cost and high performance, based on the TI TM4C12x microcontroller series, featuring an ARM Cortex-M4 core. Hopefully soon I'll be able to post more on this autopilot.

Code and Design Files

The UberPilot design files are here and the code is here. I'm not sure that this would be useful to anyone else, but shoot me an email if you have any questions.

Get in Touch

@inproceedings{Michini11_ICRA,
  author = {Michini, Bernard and Redding, Josh and Ure, N. Kemal and Cutler, Mark and How, Jonathan P.},
  title = {Design and Flight Testing of an Autonomous Variable-Pitch Quadrotor},
  booktitle = {IEEE International Conference on Robotics and Automation (ICRA)},
  year = {2011},
  pages = {2978--2979},
  month = {May},
  url = {http://markjcutler.com/papers/Michini11_ICRA.pdf}
}
@article{Barrett09_EJLA,
  title = {Minimum rank of edge subdivisions of graphs},
  author = {Barrett, Wayne and Bowcutt, Ryan and Cutler, Mark and Gibelyou, Seth and Owens, Kayla},
  journal = {Electronic Journal of Linear Algebra},
  volume = {18},
  pages = {530--563},
  year = {2009},
  url = {http://markjcutler.com/papers/Barret09_EJLA.pdf}
}
@inproceedings{Chen15_ICRA,
  address = {Seattle, WA},
  author = {Chen, Yufan and Cutler, Mark and How, Jonathan P.},
  booktitle = {IEEE International Conference on Robotics and Automation (ICRA)},
  month = {May},
  title = {Decoupled Multiagent Path Planning via Incremental Sequential Convex Programming},
  year = {2015},
  url = {http://markjcutler.com/papers/Chen15_ICRA.pdf}
}
@inproceedings{Chowdhary12_GNC,
  author = {Chowdhary, Girish and Wu, Tongbin and Cutler, Mark and Ure, N. Kemal and How, Jonathan},
  title = {Experimental Results of Concurrent Learning Adaptive Controller},
  booktitle = {AIAA Guidance, Navigation, and Control Conference (GNC)},
  year = {2012},
  address = {Minneapolis, MN},
  month = {August},
  pages = {1--14},
  note = {Invited},
  url = {http://markjcutler.com/papers/Chowdhary12_GNC.pdf}
}
@inproceedings{Chowdhary13_ICRA,
  author = {Chowdhary, Girish and Wu, Tongbin and Cutler, Mark and How, Jonathan P.},
  title = {Rapid Transfer of Controllers Between {UAVs} using Learning Based Adaptive Control},
  booktitle = {IEEE International Conference on Robotics and Automation (ICRA)},
  year = {2013},
  pages={5409--5416},
  month={May},
  address={Karlsruhe, Germany},
  url = {http://markjcutler.com/papers/Chowdhary13_ICRA.pdf}
}
@inproceedings{Cutler10_GNC,
  title = {Energy Harvesting and Mission Effectiveness for Small Unmanned Aircraft},
  author = {Cutler, Mark and McLain, Timothy W and Beard, Randal W and Capozzi, Brian},
  booktitle = {AIAA Guidance, Navigation, and Control Conference (GNC)},
  pages = {1--13},
  address = {Toronto, Canada},
  month = {August},
  year = {2010},
  url = {http://markjcutler.com/papers/Cutler10_GNC.pdf}
}
@inproceedings{Cutler11_GNC,
  author = {Cutler, Mark and Ure, N. Kemal and Michini, Bernard and How, Jonathan P.},
  title = {Comparison of Fixed and Variable Pitch Actuators for Agile Quadrotors},
  booktitle = {AIAA Guidance, Navigation, and Control Conference (GNC)},
  year = {2011},
  address = {Portland, OR},
  month = {August},
  pages = {1--17},
  url = {http://markjcutler.com/papers/Cutler11_GNC.pdf}
}
@inproceedings{Cutler12_GNC,
  author = {Cutler, Mark and How, Jonathan P.},
  title = {Actuator Constrained Trajectory Generation and Control for Variable-Pitch Quadrotors},
  booktitle = {AIAA Guidance, Navigation, and Control Conference (GNC)},
  year = {2012},
  address = {Minneapolis, Minnesota},
  month = {August},
  pages = {1--15},
  url = {http://markjcutler.com/papers/Cutler12_GNC.pdf}
}
@mastersthesis{Cutler12_Masters,
  author = {Cutler, Mark},
  title = {Design and Control of an Autonomous Variable-Pitch Quadrotor Helicopter},
  school = {Massachusetts Institute of Technology, Department of Aeronautics and Astronautics},
  year = {2012},
  month = {August},
  url = {http://markjcutler.com/papers/Cutler12_Masters.pdf}
}
@inproceedings{Cutler13_ICUAS,
  author = {Cutler, Mark and Michini, Bernard and How, Jonathan P.},
  title = {Lightweight Infrared Sensing for Relative Navigation of Quadrotors},
  booktitle = {International Conference on Unmanned Aircraft Systems (ICUAS)},
  year = {2013},
  pages = {1156--1164},
  address = {Atlanta GA},
  month = {May},
  url = {http://markjcutler.com/papers/Cutler13_ICUAS.pdf}
}
@inproceedings{Cutler13_NIPS,
  author = {Cutler, Mark and Walsh, Thomas J. and How, Jonathan P.},
  title = {Reinforcement Learning with Multi-Fidelity Simulators (Poster)},
  booktitle = {NIPS Transfer and Multi-Task Learning Workshop},
  month = {December},
  year = {2013}
}
@inproceedings{Cutler14_ICRA,
  author = {Cutler, Mark and Walsh, Thomas J. and How, Jonathan P.},
  title = {Reinforcement Learning with Multi-Fidelity Simulators},
  booktitle = {IEEE International Conference on Robotics and Automation (ICRA)},
  year = {2014},
  address = {Hong Kong},
  pages = {3888--3895},
  month = {June},
  url = {http://markjcutler.com/papers/Cutler14_ICRA.pdf}
}
@article{Cutler15_TRO,
  author = {Mark Cutler and Thomas J. Walsh and Jonathan P. How},
  journal = {IEEE Transactions on Robotics},
  title = {Real-World Reinforcement Learning via Multifidelity Simulators},
  year = {2015},
  month = {June}, 
  volume = {31}, 
  number = {3}, 
  pages = {655-671},
  url = {http://markjcutler.com/papers/Cutler15_TRO.pdf}   
}
@article{Cutler15_DSMC,
  author = {Mark Cutler and Jonathan P. How},
  journal = {ASME Journal of Dynamic Systems, Measurement and Control},
  title = {Analysis and Control of a Variable-Pitch Quadrotor for Agile Flight},
  year = {2015},
  month = {October}, 
  volume = {137}, 
  number = {10}, 
  pages = {101002--101002-14},
  url = {http://markjcutler.com/papers/Cutler15_TRO.pdf}
}	
@inproceedings{Cutler15_ICRA,
  address = {Seattle, WA},
  author = {Cutler, Mark and How, Jonathan P.},
  booktitle = {IEEE International Conference on Robotics and Automation (ICRA)},
  month = {May},
  title = {Efficient Reinforcement Learning for Robots using Informative Simulated Priors},
  year = {2015},
  url = {http://markjcutler.com/papers/Cutler15_ICRA.pdf}
}
@inproceedings{Michini13_ICRA,
  author = {Michini, Bernard and Cutler, Mark and How, Jonathan P.},
  title = {Scalable Reward Learning from Demonstration},
  booktitle = {IEEE International Conference on Robotics and Automation (ICRA)},
  year = {2013},
  month = {May},
  address = {Karlsruhe, Germany},
  pages = {303--308},
  url = {http://markjcutler.com/papers/Michini13_ICRA.pdf}
}
@inproceedings{Thomson09_ASM,
  title = {Experiment-Based Optimization of Flapping Wing Kinematics},
  author = {Thomson, Scott L. and Mattson, Christopher A. and Colton, Mark B. and Harston, Stephen P. and Carlson, Daniel C. and Cutler, Mark},
  year = {2009},
  month = {January},
  booktitle = {AIAA Proceedings of the 47th Aerospace Sciences Meeting},
  pages = {1--8},
  url = {http://markjcutler.com/papers/Thomson09_ASM.pdf}
}
@inproceedings{Ure13_ICUAS,
  author = {Ure, N. Kemal and Chowdhary, Girish and Chen, Yu Fan and Cutler, Mark and How, Jonathan P. and Vian, John},
  title = {Decentralized Learning based Planning Multiagent Missions in Presence of Actuator Failures},
  booktitle = {International Conference on Unmanned Aircraft Systems (ICUAS)},
  year = {2013},
  address = {Atlanta GA},
  month = {May},
  pages={1125--1134},
  url = {http://markjcutler.com/papers/Ure13_ICUAS.pdf}
}