This repository adapts the ORB-SLAM library for pose estimation on the AR-Drone. Scale estimation for the monocular slam process is generated by comparing the ORB-SLAM pose estimate with the altitude estimate published in the /ardrone/navdata topic. There is also efficient collision checking functionality for the point cloud generated by ORB-SLAM.
The goal of this project is to provide an easy-to-use testbed for motion planning and control research using the AR-Drone
This is the driver for sending velocity commands from a computer to the AR-Drone and receiving sensor data via wifi connection. It is cloned from the git repo:
This is repo contains a simple keybord controller for manual flight. It is cloned from:
This is the SLAM library that is used for mapping and localization. It is cloned from the git repo:
You will have to follow the setup and compilation instructions in the readme for this package carefully. This includes downlaod and installation of these dependencies:
-
OpenCV. BSD license.
-
Eigen3. For versions greater than 3.1.1 is MPL2, earlier versions are LGPLv3.
and probably some more dependent on your system.
This package is the adaptor for the ORB_SLAM2 library into the ROS catkin framework. The settings.yaml file in this package contains camera calibration parameters for the AR-Drone camera.
This package contains a collision detection function that organizes the ORB-SLAM point cloud into a kd-tree for efficient distance querries between the ardrone and obstacles detected by ORB-SLAM
Robot Operating System (ROS): ROS
Open Computer Vision (OpenCV): OpenCV
Eigen3: Eigen
Pangolin: Pangolin
- You should create a local catkin workspace for the packages. Wherever you will have the top level directory run:
mkdir ardrone_ws
cd ardrone_ws
mkdir src
cd src
- Clone the project into /ardrone_ws/src/
cd ardrone_ws/src/
git clone [email protected]:idsc-frazzoli/ardrone_testbed.git
- Compile ORB_SLAM2 (after installing its dependancies: Eigen3, OpenCV, Pangolin):
cd ardrone_ws/src/ORB_SLAM2
chmod +x build.sh
./build/sh
- Initialize the catkin_workspace and compile the project:
cd /ardrone_ws/src/
catkin_init_workspace
cd /ardrone_ws/
catkin_make
source devel/setup.bash
- Connect to the AR-DRone:
Plug in the AR-Drone and connect to it via Wifi from the computer you plan to run the project from.
- Launch everything:
roslaunch main.launch
- To fly the drone with the keyboard drive:
-Put the cursor over the QT gui that pops up for keyboard drive node
Emergency shutdown: Space Bar
Takeoff: Y
Land: H
Up: Q
Down: A
Turn Left: W
Turn Right: R
Move Left: S
Move Right: F
Forward: E
Backward: D
Scale estimation is based on vertical motion so in the first few seconds of flight, flying the AR-Drone vertically will lead to a good scale estimate.
###Authors: Daniel Gehrig (ETH Zurich) Maximilian Göttgens (ETH Zurich) Brian Paden (MIT) 2017年5月13日发布
This work describes an open source software package in the Robot Operating System (ROS) framework for conducting robotics research with the Parrot AR.Drone 2.0. The software builds upon existing tools by adapting the ORB-SLAM library with a ROS driver for the drone so that a scaled monocular-SLAM based map and accurate pose estimate is available for navigation and control processes. A focus of the discussion is on robust scale estimation for the monocular SLAM generated map using sensor data from the drone’s on- board sensors. The purpose of this package is to provide an easy to use platform for experimental testing of autonomous navigation and control techniques for micro aerial vehicles.