GithubHelp home page GithubHelp logo

jackyxtt / fuel Goto Github PK

View Code? Open in Web Editor NEW

This project forked from seanzsya/ssle

0.0 0.0 0.0 114.86 MB

UAV exploration system

License: GNU General Public License v3.0

C++ 54.20% Python 4.55% C 39.45% CMake 1.80%

fuel's Introduction

FUEL (with SSLidar option and Gazebo Simulation)

Adapted from FUEL, an excellent drone exploration algorithm from Boyu Zhou.

Project Structure

Exploration

  • exploration_manager: High-level modules that schedule and call the exploration algorithms.

  • active_perception: Find and organize frontier clusters, observe and avoid unknown obstacles.

Planning

  • plan_manage: High-level modules that schedule and call the mapping and planning algorithms.

  • path_searching: Path searching algorithems like kinodynamic astar and topology PRM.

Mapping

  • plan_env: Online mapping algorithms, build an Euclidean signed distance filed (ESDF) for the planning systems.

Running Preparation

  • fuel_in_gazebo: Components required by Gazebo, like models, worlds and pulgins.

  • px4_connection: Command analysis and other tools for communicate with px4 (both on sitl and onboard).

    • msg_conversion: Tools for running FUEL onboard, including keyboard control,sensor pose / control command conversion.

others

  • bspline: A implementation of the B-spline-based trajectory representation.

  • bspline_opt: The gradient-based trajectory optimization using B-spline trajectory.

  • poly_traj, traj_utils, utils

Quick Start

Dependencies

This project has been tested on 18.04(ROS Melodic).

Before you build it using catkin_make, make sure you meet the following requirements:

  1. Basic ROS Environment (recommand desktop-full)

     sudo apt-get install ros-melodic-desktop-full
    
  2. PX4

    Install PX4 using v1.11.1 (with configurations of drone model Amov P450):

     git clone -b 'v1.11.1-22.7.28' --single-branch --depth 1 https://gitee.com/amovlab/prometheus_px4.git
     cd prometheus_px4
     git submodule update --init --recursive
     source ./Tools/setup/ubuntu.sh --no-nuttx
     make px4_sitl_default gazebo
    

    If you still meet python dependencies (like toml, jinja2, etc.) problems after source ./Tools/setup/ubuntu.sh , try:

     cd ~/.local
     sudo chown -R ${username} lib/
    
  3. MavROS

     sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras
    
  4. Gazebo Plugins

    For realsense sensors and lidar Gazebo plugins, in your workspace, run:

     git clone https://github.com/SeanZsya/gazebo_pulgins
    
  5. OpenGL

     sudo apt-get install build-essential libgl1-mesa-dev
     sudo apt-get install freeglut3-dev
     sudo apt-get install libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev 
    
  6. GeographicLib

     wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
     sudo ./install_geographiclib_datasets.sh
    
  7. Other Required Tools

     sudo apt-get install libarmadillo-dev ros-melodic-nlopt libdw-dev xmlstarlet
    
  8. Gazebo Models (optional)

    Clone the third-party models:

     git clone https://github.com/osrf/gazebo_models
    

    Put them in ~/.gazebo/models/

Path Setup

Add these lines to your ~./bashrc:

source ${path to your workspace}/devel/setup.bash
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:${path to your workspace}/src/FUEL/fuel_in_gazebo/models
export GAZEBO_PLUGIN_PATH=$GAZEBO_PLUGIN_PATH:${path to your workspace}/devel/lib

source ${path to your px4}/Tools/setup_gazebo.bash ${path to your px4} ${path to your px4}/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:${path to your px4}
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:${path to your px4}/Tools/sitl_gazebo

Run FUEL Simulation in Gazebo

Launch Exploration:

  • For Solid-state lidar:

      roslaunch fuel_in_gazebo multi_exp_sim_sslidar.launch
    

Then follow the instructions inside the keyboard control tab, pressing R and using 2d Nav Goal in Rviz to trigger exploration.

fuel's People

Contributors

473867143 avatar seanzsya avatar zbylgsc 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.