ROS has taken to the air! In a video that's quickly making the rounds on the Internet, you can see quadrotors from Penn's GRASP Lab performing all sorts of "aggressive" acrobatic stunts, from flying through narrow windows to landing on vertical perches. The entire system uses a mix of high-level ROS software for modularization and communication, as well as low-level microcontroller code.
The goal of this project was to fly a quadrotor precisely along aggressive trajectories. The basic components of the system are the quadrotor, a control laptop, and the Vicon motion capture system. The onboard microcontroller runs an attitude control loop at 1 kHz. The control laptop runs the higher-level position control loop. The control computer communicates with the quadrotor via an XBee link.
Communication between different programs on the control computer is done through ROS. A motion-capture node sends pose messages to a central controller, which in turn outputs control messages to code that sends the commands to the quadrotor. Experimentation was performed in a 3D simulator using a quadrotor model that contains a very accurate description of the dynamics of the actual quadrotor. The simulator communicates through ROS in a similar way as the hardware does, allowing for minimal overhead to switch between experimentation in simulation and on the actual quadrotor. ROS made it easy to modularize the code and write programs for each aspect of the entire problem independently.
Thanks to Daniel Mellinger of Penn for helping to put together this post.