ROS packages for vision-based MAVs.
- ethzasl_sensor_fusion (branch: catkin)
- asctec_mav_framework (branch: experimental)
- Boost >= 1.4.0 (Ubuntu package: libboost-all-dev)
- Eigen3 (Ubuntu package: libeigen3-dev)
- gflags (Ubuntu package: libgflags-dev)
- glog (Source install)
- OpenCV >= 2.4.8
- SuiteSparse >= 4.2.1 (Source install)
- RTI Connext DDS >= 5.1.0 (Source install to /opt)
If you use the packages for an academic publication, please cite either or both of the following papers depending on which packages you use:
Lionel Heng, Gim Hee Lee, and Marc Pollefeys, Self-Calibration and Visual SLAM with a Multi-Camera System on a Micro Aerial Vehicle, In Proc. Robotics: Science and Systems (RSS), 2014. Lionel Heng, Dominik Honegger, Gim Hee Lee, Lorenz Meier, Petri Tanskanen, Friedrich Fraundorfer, and Marc Pollefeys, Autonomous Visual Mapping and Exploration With a Micro Aerial Vehicle, Journal of Field Robotics (JFR), 31(4):654-675, 2014.
Hardware Synchronization Between Sensors
For hardware synchronization between the IMU on any AscTec platform and a single/multi-camera system, perform the following steps:
- Connect a cable between the GPIO pins on the autopilot (ground pin: GND, trigger signal pin: P1.16) and the correct pins on the camera hardware. The GPIO pins on the autopilot are shown in http://wiki.asctec.de/display/AR/I2C%2C+SPI%2C+GPIO.
- Compile the autopilot firmware from https://github.com/cvg/asctec_mav_framework/tree/experimental/asctec_hl_firmware. Note that this firmware differs from the official ethz-asl version, as the firmware is modified to support camera triggering.
- Flash the autopilot firmware by following the instructions in http://wiki.asctec.de/display/AR/SDK+Setup+for+Linux.
- Now you can adjust the camera trigger rate by modifying the value for the trigger_rate_cam parameter that is used by the asctec_hl_interface package.
- Each time the autopilot sends a trigger signal to the camera(s), the autopilot records the IMU data at that point of time. The asctec_hl_interface package publishes both a CamTrigger message and sensor_msgs::Imu message. Information in these messages can be used to infer which IMU message corresponds to a given camera image.
The primary author, Lionel Heng, is funded by the DSO Postgraduate Scholarship. This work is partially supported by the SNSF V-MAV grant (DACH framework).
The repository includes third-party code from the following sources:
1. M. Rufli, D. Scaramuzza, and R. Siegwart, Automatic Detection of Checkerboards on Blurred and Distorted Images, In Proc. IEEE/RSJ International Conference on Intelligent Robots and Systems, 2008. 2. Sameer Agarwal, Keir Mierle, and Others, Ceres Solver. https://code.google.com/p/ceres-solver/ 3. D. Galvez-Lopez, and J. Tardos, Bags of Binary Words for Fast Place Recognition in Image Sequences, IEEE Transactions on Robotics, 28(5):1188-1197, October 2012. 4. L. Kneip, D. Scaramuzza, and R. Siegwart, A Novel Parametrization of the Perspective-Three-Point Problem for a Direct Computation of Absolute Camera Position and Orientation, In Proc. IEEE Conference on Computer Vision and Pattern Recognition, 2011. 5. pugixml http://pugixml.org/ 6. E. Olson, AprilTag: A robust and flexible visual fiducial system, In Proc. IEEE International Conference on Robotics and Automation, 2011.