Recently in UAVs Category
Watch the flight in unstructured environments below.
Users of Micro Air Vehicles (MAVs) will be happy to hear that the MAVLink developers have released software for ROS compatibility. MAVLink is a lightweight message transport used by more than five MAV autopilots and also offers support for two Ground Control Stations. This broad autopilot support allows ROS users to develop for multiple autopilot systems interchangeably. MAVLink also enables MAVs to be controlled from a distance: if you are out of wifi range, MAVLink can be used with radio modems to retain control up to 8 miles.
MAVLink was developed in the PIXHAWK project at ETH Zurich, where it is used as main communication protocol for autonomous quadrotors with onboard computer vision. MAVLink can also be used indoors on high-rate control links in systems like the ETH Flying Machine Arena.
MAVLink is compatible with two Ground Control Stations: QGroundControl and HK Ground Control Station. Ground Control Stations allow users to visualize the MAV's position in 3D and control its flight. Waypoints can be directly set in the 3D map to plan flights. You can customize the layout of QGroundControl to fit your needs, as shown in this video:
MAVLink is by now used by several mainstream autopilots:
- ArduPilotMega (main protocol)
- pxIMU Autopilot (main protocol)
- SLUGS Autopilot (main protocol)
- FLEXIPILOT (optional protocol)
- UAVDevBoard/Gentlenav/MatrixPilot (initial support)
For more information:
From Patrick Bouffard in the Hybrid Systems Labs in the UC Berkeley EECS department
I wanted to share a video of something I've been working on:
The Autonomous Systems Lab (ASL) at ETH Zurich is interested in all kinds of robots, provided that they are autonomous and operate in the real world. From mobile robots to micro aerial vehicles to boats to space rovers, they have a huge family of robots, many of which are already using ROS.
As ASL is historically a mechanical lab, their focus has been on hardware rather than software. ROS provides them a large community of software to draw from so that they can maintain this focus. Similarly, they run their own open-source software hosting service, ASLforge, which promotes the sharing of ASL software with the rest of the robotics community. Integrating with ROS allows them to more easily share code between labs and contribute to the growing ROS community.
The list of robots that they already have integrated with ROS is impressive, especially in its diversity:
- Rezero: Rezero is a ballbot, i.e. a robot that balances and drives on a single sphere.
- Magnebike: Magnebike is a compact, magnetic-wheeled inspection robot. Magnebike is designed to work on both flat and curved surfaces so that it can work inside of metal pipes with complex arrangement. A rotating Hokuyo scanner enables them to do research on localization in these complex 3D environments.
- Robox: Robox is a mobile robot designed for tour guide applications.
- Crab: Crab is a space rover designed for navigation in rough outdoor terrain.
- sFly: The goal of the sFly project is to develop small micro helicopters capable of safely and autonomously navigating city-like environments. They currently have a family of AscTec quadrotors.
- Limnobotics: The Limnobotics project has developed an autonomous boat that is designed to perform scientific measurements on Lake Zurich.
- Hyraii: Hyraii is a hydrofoil-based sailboat.
That's not all! StÃ©phane Magnenat of ASL has contributed a bridge between ROS and the ASEBA framework. This has enabled integration of ROS with many more robots, including the marXbot, handbot, smartrob, and e-puck. ASL also has a Pioneer mobile robot using ROS, and their spinout, Skybotix, develops a coax helicopter that is integrated with ROS. Not all of ASL's robots are using ROS yet, but there is a chance that we will soon see ROS on their walking robot, autonomous car, and AUV.
ASL has created an ASLForge project to provide ROS drivers for Crab, and they will be working over the next several months to select more general and high-quality libraries to release to the ROS community.
ASL's family of robots is impressive, as is their commitment to ROS. They are single-handedly expanding the ROS community in a variety of new directions and we can't wait to see what's next.
Nate Roney from the Mobile Robotics Lab at SIUE has announced drivers for the Parrot AR.Drone, as well as the siue-ros-pkg repository
I'd like to share a project I've been working on with the ROS community.
Some may be familiar with the Parrot AR.Drone: an inexpensive quadrotor helicopter that came out in September. My lab got one, but I was pretty disappointed that it didn't have ROS support out of the box. It does have potential, though, with 2 cameras and a full IMU, so it seemed like a worthwhile endeavor to create a ROS interface for it.
So, I would like to announce the first public release of the ROS interface for the AR.Drone. Currently, it allows control of the AR.Drone using a
geometry_msgs/Twist message, and I'm working on getting the video feed, IMU data and other relevant state information published as well. Unfortunately, the documentation on how the Drone transmits it's state information is a bit sparse, so getting at the video (anyone with experience converting H.263 to a
sensor_msgs/Image, get in touch!) and IMU data are taking more time than I'd hoped, but it's coming along. Keep an eye on the ardrone stack, it will be updated as new features are added.
For now, anyone hoping to control their AR.Drone using ROS, this is the package for you! Either send a Twist from your own code, or use the included
ardrone_teleop package for manual control.
You can find the
ardrone_teleop packages on the experimental-ardrone branch of siue-ros-pkg, which itself never had a proper public release. This repository represents the Mobile Robotics Lab at SIUE, and contains a few utility nodes I have developed for some of our past projects, with more packages staged for addition to the repository once we have time to document them properly for a formal release.
I'm hopeful that someone will find some of this useful. Feel free to contact me with any questions!
PIXHAWK is an open-source framework and middleware for micro air vehicles (MAVs) that focuses on computer vision. The framework is being developed by students at ETH Zurich, and they recently won second place the EMAV 2009 Indoor Autonomy Competition. The PIXHAWK software runs on several MAVs, including the PIXHAWK Cheetah Quadrotor and the Pioneer Coax Helicopter. The Cheetah Quadrotor was demoed at ECCV 2010 demonstrating stable autonomous flight using onboard computer vision and some interaction using ball tracking. A parts lists and assembly instructions for the Cheetah are available on the PIXHAWK web site.
The PIXHAWK middleware, MAVLink, runs on top of MIT's LCM middleware system and the PIXHAWK team has also integrated their system with ROS to provide access to tools like rviz. With rviz, PIXHAWK users can visualize a variety of 3D data from the MAVs, including pose estimates from the computer vision algorithms, as well as waypoints and IMU measurements. Other ROS processes can easily be interfaced with a PIXHAWK system.
The PIXHAWK team has also made their own open-source contributions to visualization tools for MAVs. Their QGroundControl mission planning tool provides a variety of visualizations, including real-time plotting of telemetry data. It was was initially developed for PIXHAWK-based systems, but now open to the whole MAV community.
The rest of the PIXHAWK software, including computer vision framework and flight controller software, is also available as open source. You can checkout their winter 2010 roadmap, which includes release of their ARTK hovering code base with ROS support.
The PIXHAWK team is also taking orders for a batch production run of their pxIMU Autopilot and Inertial Measurement Unit Board ($399). It provides a compact, integrated solution for those building their own quadrotors. The firmware is open source and compatible with the PIXHAWK software like QGroundControl.
We've previously featured Penn's AscTec quadrotors doing aggressive maneuvers; now you can see them out and about doing "Autonomous Multi-Floor Indoor Navigation with a Computationally Constrained MAV":
All of the computation is done onboard the 1.6Ghz Intel Atom processor and uses ROS for interprocess communication.
Update: the GRASP lab also has the quadrotors running through thrown hoops:
The CoaX helicopter is a micro UAV targeted at the research and educational markets. The small 320g helicopter includes an IMU, a downward-looking and three optional sideward-looking sonars, pressure sensor, color camera, and Bluetooth, XBee, or WiFi communication. In addition to two DSPs (dsPIC33), the CoaX has an optional Gumstix Overo computer that can run ROS. You can see more of the specs on their hardware wiki page.
Skybotix fully supports open source with the CoaX. The CoaX API, including low-level firmware and controller, is available open source under a GNU LGPL license. Their Gumstix Overo setup comes with a basic ROS installation. They include a ROS publisher for the CoaX state, a demo application for transmitting video data, and a GUI for visualizing both. Although the CoaX comes with minimal additional ROS libraries, there is a growing community of micro-UAV developers using ROS, including the micro-UAV-focused ccny-ros-pkg repository.
The CoaX was developed in collaboration with ETH Zurich. The Skybotix Youtube channel has videos of ETH Zurich student projects. Skybotix released recently a speed module for CoaX based on optical sensor, which enables indoor speed control as well as indoor hovering (video).
The CityFlyer project at the CCNY Robotics and Intelligent Systems Lab is using Ascending Technologies Pelican and Hummingbird Quadrotor helicopters to do research in 3D mapping and navigation. The Ascending Technologies platform provides a 1.6Ghz Intel Atom processor, 500 gram payload, GPS, and barometric altimeter. The CityFlyer add several sensors, including a Hokuyo URG-04LX and IMU. The Hokuyo URG has been modified to double as a laser height estimator. The CityFlyer project is able to combine data from these sensors to do indoor SLAM using GMapping.
The CityFlyer project has also created an RGB-D sensor by combining data from a SwissRanger 4000 and Logitech Webcam. They use this to build 3D maps for indoor environments using a 3D Multi-Volume Occupancy Grid (MVOG). Their MVOG technique is described in their RGB-D 2010 paper and more videos are here and here. Although the full sensor package exceeds the payload of the quadrotor, they anticipate that advances in RGB-D will make these techniques feasible for micro UAVs.
CCNY has released a variety of drivers, libraries and tools to support the ROS community. These include drivers and tools for the AscTec platform, libraries for dealing with aerially mounted laser rangefinders, a New College Dataset parser, and libraries for using AR tags with ROS.
CCNY has also developed a "Ground Station" application that acts as a virtual cockpit for visualizing telemetry data from an AscTec quadrotor. It is also able to overlay GPS data on an outdoor map to visualize the UAV's tracks. I Heart Robotics has a great writeup on Ground Station, and you can also checkout the documentation on ROS.org.
The ccny-ros-pkg is an excellent resource for the ROS community with complete documentation on a variety of packages, including videos that demonstrate these packages in use.
Bag files for the video above can be downloaded here (
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.