prgumd / MorphEyes

MorphEyes: Variable Baseline Stereo For Quadrotor Navigation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MorphEyes

MorphEyes: Variable Baseline Stereo For Quadrotor Navigation

MorphEyes by Perception & Robotics Group at the Department of Computer Science, University of Maryland- College Park.

MorphEyes: Variable Baseline Stereo For Quadrotor Navigation Fig. 1: (a) Flying through a forest, (b) flying through a dynamic gap, (c) detecting an independently moving object, and (d) our quadrotor with different baselines from 100 mm to 300 mm.

Abstract

Morphable design and depth-based visual control are two upcoming trends leading to advancements in the field of quadrotor autonomy. Stereo-cameras have struck the perfect balance of weight and accuracy of depth estimation but suffer from the problem of depth range being limited and dictated by the baseline chosen at design time. In this paper, we present a framework for quadrotor navigation based on a stereo camera system whose baseline can be adapted on-the-fly. We present a method to calibrate the system at a small number of discrete baselines and interpolate the parameters for the entire baseline range. We present an extensive theoretical analysis of calibration and synchronization errors. We show casethree different applications of such a system for quadrotor navigation: (a) flying through a forest, (b) flying through an unknown shaped/location static/dynamic gap, and (c) accurate 3D pose detection of an independently moving object. We show that our variable baseline system is more accurate and robust in all three scenarios. To our knowledge, this is the first work that applies the concept of morphable design to achieve a variable baseline stereo vision system on a quadrotor.

Supplementary Hardware Tutorial

  1. Setting up the quadrotor to hover using on-board computation and sensing

The first step involves building a quadrotor called PRGCorgi210$$\alpha$$ which is a 210mm sized quadrotor based on Ardupilot. Please refer to the step by step instructions here.

  1. Setting up the StereoPiv1

The second step is to setup StereoPiv1 with OpenCV, ROS and MAVROS to control the quadrotor. Start by installing the Raspbian buster image with openCV from here. More instructions can be found here. Then compile and install ROS from source following instructions here. Finally install MAVROS along with its dependency packages from here.

  1. Actuonix Servo Control

The third step is to setup the Actuonix Servo with StereoPi. In order to control the motor, attach the signal wire to PWM output pin of an Arduino or Teensy. Control the servo by sending the PWM signal (using the standard <Servo.h> arduino library) from the microcontroller which takes serial input from StereoPi. Use Pyserial to send command from the StereoPi to the microcontroller. You should now be able to control the servo motors via StereoPi in python.

License:

Copyright (c) 2021 Perception and Robotics Group (PRG)

About

MorphEyes: Variable Baseline Stereo For Quadrotor Navigation

License:MIT License