GithubHelp home page GithubHelp logo

ar2landing_neural's Introduction

ar2landing_neural

This is the repository that contains the complete work on Searching and Precision Landing of an AR Drone 2.0 on a stationary landing platform using Neural Network. Watch the following video to get a better overview what it does.

video ar2landing_neural

For more info (https://www.eionix.co.in/2015/11/14/searching-and-precision-landing-of-ar.html)

Install

Following installation steps assume you hav a ROS Indigo installed in an Ubuntu 14.04 Linux Distro.

First create a workspace

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace

ardrone_autonomy

Clone this repository and make it.

cd ~/catkin_ws/src
git clone https://github.com/AutonomyLab/ardrone_autonomy.git -b indigo-devel
cd ~/catkin_ws
rosdep install --from-paths src -i
catkin_make

If you face any problems with ardrone_autonomy ref this site [http://ardrone-autonomy.readthedocs.org/en/latest/installation.html]. If you are just getting started, go through the link to get an overview. This package is only needed if you are implementing this on a real drone (Not in a simulator like Gazebo).

tum_simulator

The original package supports fuerte. There is a forked package by dougvk [https://github.com/dougvk/tum_simulator] for Indigo. (It still has some issues). Clone and make that package.

cd ~/catkin_ws/src
git clone https://github.com/dougvk/tum_simulator.git
cd ~/catkin_ws/
catkin_make

Try launching an empty world file to confirm everything works fine till now.

cd ~/catkin_ws/
source devel/setup.bash
roslaunch cvg_sim_gazebo ardrone_testworld.launch

If Gazebo is started with an AR drone in it, then everything works fine. (AR Drone will be there in between the two houses. Rotate the world before trying to debug.) Don't bother if you find any errors or warnings.

ar_track_alvar

We are using the ar_track_alvar package for detecting the tags. Install the package.

sudo apt-get install ros-indigo-ar-track-alvar

ardrone_control

Clone this from my repository. Clone the brach ardrone_control.

cd ~/catkin_ws/src
git clone -b ardrone_control --single-branch https://github.com/krishnan793/ardrone_control.git
cd ~/catkin_ws/
catkin_make

ar2landing_neural

Clone this repository and make it.

cd ~/catkin_ws/src/
git clone https://github.com/krishnan793/ar2landing_neural.git
cd ~/catkin_ws/
catkin_make

If you followed everything correctly following launch file should work correctly

roslaunch ar2landing_gazebo landing_platform.launch

You should now see a gazebo simulation world with a spawned urdf model of AR Drone 2.0. Open another terminal and source it. Then run

cd ~/catkin_ws/
source devel/setup.bash
rosrun ar2landing_neural autonomous_landingNeural.py
autonomous_search.py

Open another terminal, source it and run

cd ~/catkin_ws/
source devel/setup.bash
rosrun ar2landing_neural autonomous_search.py

You should now see AR Drone 2.0 takeoff and follows a lawn mower pattern. Open another terminal and run

rosrun rqt_image_view rqt_image_view

Select /ardrone/bottom/image_raw.

You can now see AR Drone is adjusting to orient itself and trying to land on the platform while maintainin itself in the middle. Also it decreases the altitude on along with it. Once it reaches a safe distance it will land. The package contains pre trained weights and the network is using those weights now. The package contains a node called train_data_collector.py which can be used to capture training data and train.py which can be used to train the network.

If you are going to implemenent this on a real drone you need to copy the camera baliberation file to ~/.ros/camera_info/. Somehow the default camera caliberation file is not taking. Do the following step to use the provided camera caliberation file.

cp ~/catkin_ws/ardrone_autonomy/data/camera_info/ardrone_bottom.yaml ~/.ros/camera_info/

Run

roslaunch ar2landing_gazebo landing_platform_drone.launch

instead of landing_platform.launch. Rest are same as the simulation.

ar2landing_neural's People

Contributors

krishnan793 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.