Giter Club home page Giter Club logo

thesis's Introduction

This repository contains all of the ROS packages developed for my thesis at Aristotle University of Thessaloniki.

Abstract

Over the last years a rapid evolution of the robotics industry, and particularly that of the Unmanned Aerial Vehicles, has been observed. Despite the fact that they were primarily used for military applications, nowadays their use is constantly increasing in a variety of applications, such as the inspection of inaccessible for humans environments, events cinematography, autonomous and real-time inventorying, etc.

The use of unmanned aerial vehicles in indoor environments requires a great perception of the surrounding environment, immediate response to its changes and consequently a robust position estimation. In order to achieve these, the use of multiple available sensors is required by the drone. The navigation in an optimal way inside the environment requires the existence of an already known flight plan that will lead to the desired goal.

The present Diploma Thesis focuses on implementation of algorithms for solving the problem of fast, reliable and low-cost inventorying in the Logistics industry. The usage of drones simplifies this procedure and aims to determine every product's position with a few centimeters accuracy. This problem consists of two subproblems: a) the position estimation in the indoor environment and b) the autonomous full coverage of the area.

In order to successfully tackle the problems described above, a known 3D map in OctoMap format is used. During the research, a Particle Filter based algorithm that uses an array of distance sensors around the drone was implemented, in order to track the pose of the robot against the known map. Navigation is based on a PID position controller that ensures an obstacle free path. As for the full coverage, an extraction of the targets and then their optimal succession is performed.

Finally, a series of experiments were carried out to examine the robustness of the positioning system in three types of motion, as well as different speeds in each of these cases. At the same time, various ways of traversing the environment were examined by using different configurations of the sensor that performs the area coverage. The experiments were entirely performed in a simulated environment.

Contents

  • drone : ROS Metapackage
  • drone_gazebo : Essential nodes and launchers for using the drone in Gazebo
  • drone_description : Drone's sensors and model description
  • drone_2d_nav : Autonomous navigation in a 2D map (Occupancy Grip Map)
  • drone_3d_nav : Autonomous navigation in a 3D map (OctoMap)
  • drone_coverage : Coverage path planning and navigation for 3D map
  • particle_filter : Localization algorithm
  • path_planning : Fork of a path_planning ROS module, modified for the thesis' needs
  • experiments : Contains scripts, worlds and maps for evaluating localization and coverage
  • report : LateX source of thesis report (only in Greek)

Dependencies

Installation

To build from source, clone the latest version from this repository into your catkin workspace and build the package.

cd ~/catkin_ws/src
git clone [email protected]:kosmastsk/thesis.git
cd ~/catkin_ws
(sudo) rosdep install drone
catkin build drone

Usage

Depending on the problem, you may choose one of the available launchers that exists in the packages mentioned above. IMPORTANT : After launching a file, call the following services to initialize the drone in Gazebo and the Particle Filter algorithm:

  rosservice call /enable_motors "enable: true"  
  rosservice call /initialize_pose  

Bugs & Feature Requests

Please report bugs and request features using the Issue Tracker.

thesis's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

thesis's Issues

catkin error about fcl

Hello, I saw your comment below Path planning from ayushgaud/path_planning/issues/9.
Did you meet this error when you did catkin build path planning with fcl -0.5. The error is like below.
Looking forward to your help!
'''
CMakeFiles/path_planning_node.dir/src/path_planning.cpp.o: In function fcl::Transform3f::transform(fcl::Vec3fX<fcl::details::Vec3Data<double> > const&) const': path_planning.cpp:(.text._ZNK3fcl11Transform3f9transformERKNS_6Vec3fXINS_7details8Vec3DataIdEEEE[_ZNK3fcl11Transform3f9transformERKNS_6Vec3fXINS_7details8Vec3DataIdEEEE]+0x46): undefined reference to fcl::Quaternion3f::transform(fcl::Vec3fX<fcl::details::Vec3Data > const&) const'
CMakeFiles/path_planning_node.dir/src/path_planning.cpp.o: In function fcl::CollisionGeometry::CollisionGeometry()': path_planning.cpp:(.text._ZN3fcl17CollisionGeometryC2Ev[_ZN3fcl17CollisionGeometryC5Ev]+0x34): undefined reference to fcl::AABB::AABB()'
CMakeFiles/path_planning_node.dir/src/path_planning.cpp.o: In function fcl::CollisionObject::CollisionObject(std::shared_ptr<fcl::CollisionGeometry> const&)': path_planning.cpp:(.text._ZN3fcl15CollisionObjectC2ERKSt10shared_ptrINS_17CollisionGeometryEE[_ZN3fcl15CollisionObjectC5ERKSt10shared_ptrINS_17CollisionGeometryEE]+0x59): undefined reference to fcl::AABB::AABB()'
CMakeFiles/path_planning_node.dir/src/path_planning.cpp.o: In function fcl::Box::Box(double, double, double)': path_planning.cpp:(.text._ZN3fcl3BoxC2Eddd[_ZN3fcl3BoxC5Eddd]+0x29): undefined reference to vtable for fcl::Box'
CMakeFiles/path_planning_node.dir/src/path_planning.cpp.o: In function planner::isStateValid(ompl::base::State const*)': path_planning.cpp:(.text._ZN7planner12isStateValidEPKN4ompl4base5StateE[_ZN7planner12isStateValidEPKN4ompl4base5StateE]+0x1e5): undefined reference to fcl::collide(fcl::CollisionObject const*, fcl::CollisionObject const*, fcl::CollisionRequest const&, fcl::CollisionResult&)'
collect2: error: ld returned 1 exit status
make[2]: *** [/home/fapsros/catkin_ws/devel/.private/path_planning/lib/path_planning/path_planning_node] Error 1
make[1]: *** [CMakeFiles/path_planning_node.dir/all] Error 2
make: *** [all] Error 2

'''

rosdep install drone error

When I install package drone,I encountered this error :
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
drone: Cannot locate rosdep definition for [path_planning]

Can you give me some advice to solve it? Thanks!!!

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.