This package contains an implementation of drone 2D navigation using an Occupancy Grid Map. It is based on the AMCL algorithm
 view github  view github

This repository contains all of the ROS packages.

Drone 2D Navigation

Overview

This package contains an implementation of drone 2D navigation using an Occupancy Grid Map. It is based on the AMCL algorithm, configured for working with the specific UAV and the move base package. The drone receives a goal using the 2D Navigation Goal in RViz, reaches a specific height and then navigates towards the goal, while avoiding obstacles.

Usage

Run the main node with

roslaunch drone_2d_nav drone_2d_nav.launch

Config files

The /param directory contains all the parameters required for the Local and the Global planner to properly navigate using the OGM.

Launch files

  • drone_2d_nav.launch: Standard simulation

    Arguments:

    • height The fixed height that the drone uses for navigation (in metres). Default: 2.
    • world The Gazebo world used for the simulation. Default: warehouse.world.
    • map The world 2D map used for the simulation. Default: warehouse.yaml.

Nodes

control_node

Subscribes to the desired height and the move_base commands to provide the final velocity command to the drone.

Subscribed Topics

  • /height [std_msgs/Float64]

    The desired height for the drone.

  • /cmd_vel/move_base [geometry_msgs/Twist]

    Velocity commands received from the move_base package.

Published Topics

  • /cmd_vel [geometry_msgs/Twist]

    Total velocity command sent to the drone.

velocity_to_odom

Convert velocity commands to odometry message for movement in 2D.

Subscribed Topics

  • /cmd_vel [geometry_msgs/Twist]

    Velocity commands the drone received.

Published Topics

  • /odom [nav_msgs/Odometry]

    Odometry message that describes the drone movement.

Bugs & Feature Requests

Please report bugs and request features using the Issue Tracker.