All Projects → 20chix → Autonomus_Indoor_Drone

20chix / Autonomus_Indoor_Drone

Licence: other
Final year project, autonomus indoor drone developed in ROS using DWM1001 dev-board

Programming Languages

python
139335 projects - #7 most used programming language
javascript
184084 projects - #8 most used programming language
CMake
9771 projects
C++
36643 projects - #6 most used programming language
Vue
7211 projects
shell
77523 projects
HTML
75241 projects

Projects that are alternatives of or similar to Autonomus Indoor Drone

summit xl sim
Packages for the simulation of the Summit XL, Summit XL HL and Summit-X (including X-WAM) robots
Stars: ✭ 32 (+23.08%)
Mutual labels:  ros, gazebo, ros-melodic
Autonomous-Ai-drone-scripts
State of the art autonomous navigation scripts using Ai, Computer Vision, Lidar and GPS to control an arducopter based quad copter.
Stars: ✭ 45 (+73.08%)
Mutual labels:  autonomous-quadcoptor, ardupilot
aws-robomaker-robotics-curriculum
Introductory robotics curriculum
Stars: ✭ 78 (+200%)
Mutual labels:  ros, gazebo
linorobot2
Autonomous mobile robots (2WD, 4WD, Mecanum Drive)
Stars: ✭ 97 (+273.08%)
Mutual labels:  ros, gazebo
ardupilot gazebo
Repository for ArduPilot & Gazebo Software In Loop Simulation Interfaces, Models
Stars: ✭ 52 (+100%)
Mutual labels:  gazebo, ardupilot
PROBOT Anno
ROS Packages for PROBOT Anno.
Stars: ✭ 75 (+188.46%)
Mutual labels:  ros, gazebo
ws moveit
This ROS melodic workspace is created on Ubuntu 18.04. Here I worked on moveit & MTC projects like Pick, Place, Pouring task for multi-manipulator system using MoveIt Task Constructor(MTC).
Stars: ✭ 25 (-3.85%)
Mutual labels:  ros, ros-melodic
my ROS mobile robot
Differential drive mobile robot using ROS.
Stars: ✭ 123 (+373.08%)
Mutual labels:  ros, gazebo
rospberrypi
Everything you need to set up ROS Melodic on the Raspberry Pi Zero / W
Stars: ✭ 33 (+26.92%)
Mutual labels:  ros, ros-melodic
raspimouse sim
ROS package suite for Raspberry Pi Mouse Simulator
Stars: ✭ 23 (-11.54%)
Mutual labels:  ros, gazebo
installRealSenseROS
Install the realsense-ros library on NVIDIA Jetson Nano Developer Kit.
Stars: ✭ 27 (+3.85%)
Mutual labels:  ros, ros-melodic
wpr simulation
No description or website provided.
Stars: ✭ 24 (-7.69%)
Mutual labels:  ros, gazebo
conde simulator
Autonomous Driving Simulator for the Portuguese Robotics Open
Stars: ✭ 31 (+19.23%)
Mutual labels:  ros, gazebo
autonomous landing uav
ROS packages of the Autonomous landing system of a UAV in Gazebo
Stars: ✭ 44 (+69.23%)
Mutual labels:  gazebo, mavros
ur ws
Universal robot with robotiq hand workspace
Stars: ✭ 21 (-19.23%)
Mutual labels:  ros, gazebo
katana driver
This stack contains hardware drivers, Gazebo plugins and other basic functionalities for the Neuronics Katana family of robot arms.
Stars: ✭ 16 (-38.46%)
Mutual labels:  ros, gazebo
ar-tu-do
ROS & Gazebo project for 1/10th scale self-driving race cars
Stars: ✭ 65 (+150%)
Mutual labels:  ros, gazebo
arm
Robot arm simulation using Gazebo, ROS Control and MoveIt.
Stars: ✭ 79 (+203.85%)
Mutual labels:  ros, gazebo
drl grasping
Deep Reinforcement Learning for Robotic Grasping from Octrees
Stars: ✭ 160 (+515.38%)
Mutual labels:  ros, gazebo
ROS-Object-Detection-2Dto3D-RealsenseD435
Use the Intel D435 real-sensing camera to realize object detection based on the Yolov3-5 framework under the Opencv DNN(old version)/TersorRT(now) by ROS-melodic.Real-time display of the Pointcloud in the camera coordinate system.
Stars: ✭ 45 (+73.08%)
Mutual labels:  ros, ros-melodic

Autonomus indoor drone

Build Status HitCount HitCount Contributions welcome HitCount

Github all releases

Intro

The aim of this project is to provide a solution for autonomous indoor drone (AID). AID involves localization, control, path planning and autonomous landing/take-off. A robust localization method was used, using GPS-like device called DWM1001 provided by Decawave . This device is especially useful for indoor applications as it a has a high accuracy and can only be used in confined spaces.

Simulation results in Gazebo

For the Gazebo simulation I have used mavros and iris drone. The drone is following waypoints that have been defined in this xml file. For simulation purpose I only have 4 waypoints that are placed in a square shape. A GUI provided by dynamic reconfigure RQT (bottom left) is provided for debugging purpose. I might keep it in the future, don't know yet.

alt text

Install ROS Kinetic

Install ROS from this link into your PC http://wiki.ros.org/kinetic/Installation/Ubuntu and all the dependencies

NOTE: if you install kinetic you need have ubuntu 16.04, if you want to install the latest ROS which is Meldic then you need to have uybuntu 18.04.

Create a ROS workspace

Follow this short tutorial to create a ROS workspace http://wiki.ros.org/catkin/Tutorials/create_a_workspace

Download current GitHub project

Navigate to your workspace ~/catkin_ws/ and run:


#!/bin/bash
git clone https://github.com/20chix/Autonomus_Indoor_Drone.git

Delete the src folder when you created the workspace and rename Autonomus_Indoor_Drone to src

Build the workspace

Navigate to your workspace ~/catkin_ws/ and run:


#!/bin/bash
catkin_make

Download ardupilot_gazebo

In my repo you can see ardupilot_gazebo, this is cloned from here. Clone the repo and follow the installation instructions. If you installed everything correctly, run this command.


#!/bin/bash
gazebo --verbose ~/catkin_ws/src/ardupilot_gazebo/worlds/iris_ardupilot.world

You will see gazebo with an IRIS drone in a runway.

Download MAVROS

Follow this link to install MAVROS.

Download Ardupilot

Clone Ardupilot from this link. Once installed run the following command in a separate terminal tab


#!/bin/bash
<PATH_TO_YOUR_ARDUPILOT>/ardupilot/Tools/autotest/sim_vehicle.py --map --console  -v ArduCopter -f gazebo-iris

Run MAVROS

Now run ardupilotMavros launch file so we can link IRIS drone in gazebo to ROS. Run the following command to do so in a new terminal tab.


#!/bin/bash
roslaunch ardupilotMavros apm.launch

*Remeber to source into your workspace

Run fyp for autonomus flight

Now run fyp, this package have few features, most of them are for debugging purpose. The main one is follow waypoint from xml file and follow waypoint from DWM1001 waypoint(not simulated).

To control the drone from this package run from a new terminal tab


#!/bin/bash
rosrun fyp aid_main.py

A message should come up saying "Waiting for a command"

*Remeber to source into your workspace

Run ROS dynamic reconfigure

In order to manage the drone I linked most of the functionality to RQT reconfigure


#!/bin/bash
rosrun rqt_reconfigure rqt_reconfigure

You should see this:

alt text

  • Press takeoff to takeoff the IRIS drone
  • Press followFlightPathWaypoints in order to start an autonomus flight
  • If you want to add more waypoints you'll need to edit this XML file.

Other buttons works, but there is still some bugs in the code. Feel free to contribute however you want to.

Hardware

Coming soon...

DWM1001 network Rviz visualization

We have created an interface between DWM1001 and ROS, which allowed us to visualize all the waypoints from Rviz.

alt text

DWM1001 dev-boards used as waypoints

In this project we used 4 of those as anchor(waypoint) and one as the master(tag), which will be attached into the drone

alt text

Packages

localizer_dwm1001 This package is responsible on getting the network coordinates (tag and anchors) from dwm1001 dev board via USB, and pubblish in coordinates in topics.

fyp This package is responsible on controlling the drone, reading waypoints from xml file, process joystick input, land and takeoff the drone.

ardrone_simulator This package is responsible on simulating the ardrone on gazebo7.

joy This package is responsible on interfacing joystick.

generate_map This package is responsible on creating markers in Rviz.

Other packages were made for testing(I will remove them once I get a working prototype on the real drone)

Dynamic reconfigure of DWM1001

In this package we want to be able to change some variable from ground station, while the drone is flying.

alt text

ROS Topic monitor

alt text

Roadmap

  • Create RTLS network from Android App
  • Access DWM1001 API via UART
  • Get Anchor coordinates in Python
  • Get Tag position in Python
  • Display Anchors in RViz
  • Display Tag in RViz
  • Calculate shortest path from Tag to a Anchor using A* Algorithm
  • Display shortest path in RViz
  • Display actual path in RViz
  • Dynamic configuration for DWM1001 dev board
  • Dynamic configuration for drone
  • Joystick controls for emergency takeoff and land
  • Setup continuos integration for simulation
  • Neural Network/AI that will manage flight controller after couple of laps
  • Statistics for each lap
  • Statistics for Neural Network/AI
  • BOM for hardware components
  • Get all hardware components
  • Document or video wiring
  • First test flight
  • Rework from test flight
  • Setup continuos integration for hardware
  • Cloud statics for continuos improvment
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].