Quadrotor Relative Navigation

Many researchers have demonstrated significant and impressive results of UAVs flying in GPS-denied environments, typically using expensive (financially and/or computationally) sensors such as cameras and laser scanners. If many aerial robots are needed to perform a task collaboratively, it may be advantageous to outfit a few of the robots with expensive sensors and algorithms for global situational awareness (flight relative to a room, for instance), while keeping the rest of the vehicles simple, allowing them to navigate relative to the leader robots.

In an attempt to realize this goal, I developed a lightweight solution for estimating position and velocity relative to a known marker. The marker consists of three infrared (IR) LEDs in a fixed pattern. Using an IR camera with a 100 Hz update rate (a camera from a Wii remote), the range and bearing to the marker are calculated. I then fuse this information with inertial sensor information to produce state estimates at 1 kHz using a sigma point Kalman filter. The computation takes place on a 14 gram custom autopilot, yielding a lightweight system for generating high-rate relative state information. I compared the estimation scheme to data recorded with a motion capture system.

This is the autopilot I designed and built for the project, and the sensors that were used. The autopilot itself contains a dual-core TI microcontroller, inertial sensors, and a barometer. Externally, a sonar estimates height to the ground and the Wii camera (not see in this image), sees the IR LEDs on the known marker.

This is a rough block diagram of the data flow for the project, including the rates at which various sensors are read and algorithms are executed. I designed, manufactured, and programmed the autopilot from the ground up.

Finally, this is a diagram of the autopilot architecture, including the communication protocols for the sensors and the computation distribution between the two cores.

Lessons Learned

This was a really fun project and I learned a lot of valuable things. Here are a few:

  • Hardware is hard. For instance, I spent many, many days trying to get the sigma-point filter code to fit in the available memory on the autopilot.
  • Prototype with the right data. The original filter code was developed using a data-set collected by moving the autopilot around by hand. The vibrations induced by the motors during flight, though, were very significant and could have been accounted for had I collected the data set from a flying vehicle instead.
  • Don't use cutting-edge microcontrollers. I originally thought that the new TI dual-core microcontroller was a really good idea, but it didn't have a big enough user base yet. Instead, I should have used two popular single-core microcontrollers and just sent data between them over SPI or another protocol.
  • Hardware is really fun. I had a blast going from initial concept all the way through circuit design, hardware construction, programming, and flight testing.

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}
}