by Gerold Huber
In the course of my master thesis in the fields of Robotics and Automation at the Johannes Kepler University in Linz (Austria), I am working at the PROFACTOR (the creators of ReconstructMe) since last summer. We wanted to set up a quadcopter for full autonomous tasks without external markers/sensors/cameras. The main challenge in this set-up is position estimation and tracking position accurately. After some struggling with a 2D flow sensor to determine the position, we decided to use a depth sensor in combination with the ReconstructMe SDK for position tracking.
Therefore, I implemented a mobile version of ReconstructMe. As you can see in the Picture about the system architecture below, a high level board streams the sensor information via WiFi to a groundstation running ReconstructMe. There ReconstructMe is used to build a global model of the sensor data. As a benefit, ReconstructMe provides complete tracking information of the camera to the high level board. The Flight Management Unit (Microcontroller) than uses this Position estimation from ReconstructMe in a raw manner to stabilize the multicopter.
The entire process chain (sensor – data streaming – reconstruction – tracking streaming) takes about 120ms. It turns out, that this mobile version of ReconstructMe is sufficient for control and stabilization of a quadcopter as can be seen in the video below. Note that all cables visible are for power supply purposes.
Hardware used:
- Quadcopter from 3DRobotics (http://3drobotics.com/)
- Flightcontroler PX4 from the Pixhawk Project at ETH Zurich (http://pixhawk.org/)
- Pandaboard ES as a Highlevel board (http://pandaboard.org/)
- PrimeSense 1.09 as a depth Sensor (http://www.primesense.com/)
Software used:
- OpenSource PX4FMU autopilot from ETH Zurich (http://pixhawk.org/)
- OpenSource QGroundControl for data display (http://qgroundcontrol.org/)
- ReconstructMe SDK for position tracking (http://reconstructme.net/)