DataHub is used to integrate data for distributed control of unmanned aerial vehicles
For the past several years, students and faculty at the Vehicle Dynamics Lab (VDL) of the University of California, Berkeley, have been developing a system of coordinated distributed control, communications, and vision-based control among a group of several unmanned aircraft. A single user can control the fleet of aircraft, and command it to carry out complex missions such as patrolling a border, following a highway, or visiting a specified location. Each airplane carries a video camera and an on-board computer, and communicates with the groundstation and the other aircraft in the formation. The control algorithms are so sophisticated that the fleet can carry out certain missions completely autonomously—without any operator intervention.
The control system for each aircraft runs on a PC 104 computer with a QNX6 operating system. Control is divided into three kinds of processes: communication, image processing, and task control. All of these processes interact through the DataHub running in QNX. The DataHub® is a memory-resident, real-time database that allows multiple processes to share data on a publish-subscribe basis. For this application, each process writes its data to the DataHub, and subscribes to the data of each other process on a read-only basis. In this way, each process gains access to the data it needs from the other processes, while avoiding problems associated with multi-processing data management.
For example, the communication software comprises three separate processes: The Piccolo process controls the aircraft, the Payload process communicates with users on the ground, and the Orinoco process handles communications with the other aircraft. Needless to say, each of these three programs needs information from the other two, as well as from the video and task control packages. All of this data is transferred seamlessly through the DataHub.
“The DataHub has contributed a great deal to our software integration,” said Brandon Basso, one of the VDL team members. “Its ability to restrict write privileges to each shared variable of the owner processes avoids many of the difficulties associated with multi-process management.”
For task control, there are two primary software packages: Waypoint controls visits to specified locations, while Orbit handles the orbiting “patrol” of a group of locations. These processes are monitored by a third, supervisory process called Switchboard. In addition to coordinating these processes, decisions must be made by the different aircraft as to which plane will take on which task. The complex calculations needed for this decentralized task allocation are mediated through the DataHub.
Waypoint and Orbit use input from the vision control and vision process. Prior to takeoff, certain algorithms are applied to previously recorded videos, to create a visual profile of the area, which is maintained by the vision control. In the air, this data must be compared to what the plane is currently flying over. A camera on the wing of the plane feeds data to the vision process, which analyzes the content and generates meaningful information about objects on the ground, such as waypoints on a river or road. This live content, along with the stored visual profile in the vision control, is fed through the DataHub to Waypoint and Orbit.
According to the paper, A Modular Software Infrastructure for Distributed Control of Collaborating UAVs, published by the University of California Berkeley which describes it in detail, this project marks “a major milestone in UAV cooperation: decentralized task allocation for a dynamically changing mission, via onboard computation and direct aircraft-to-aircraft communication.” Skkynet is pleased that the DataHub has played an important role in the success of this endeavour.