E2ES
End-to-End UAV Simulation for Visual SLAM and Navigation
Introduction
This Kit provides an end to end simulation solution for MAV visual SLAM and path planning researches.
In this work, several features are added to the default PX4 Gazebo Simulator:
-A realsense D435 model (based on realsense_gazebo_plugin)
-Modified IRIS MAV model
-Several structured/unstructured simulation world
-Keyborad control support
The work has been verified on Ubuntu 18.04 + ROS melodic environment
We strongly recommend to you to run this simulation with CUDA supported graphic card!
Demo Video
manual control | Click and fly navigation |
---|---|
Usage
Install pre-requires:
sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras ros-melodic-mavros-msgs libncurses5-dev python3-pip libgstreamer1.0-dev python-jinja2 python-pip python-testresources libignition-math2 libgazebo9-dev
pip3 install --user empy toml numpy packaging jinja2
pip install numpy toml empy packaging
sudo apt upgrade libignition-math2
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
sudo bash ./install_geographiclib_datasets.sh
Downloadn and install the PX4 (1.11.0)
git clone https://github.com/PX4/PX4-Autopilot.git
cd PX4-Autopilot/
git checkout 71db090
git submodule sync --recursive
git submodule update --init --recursive
bash ./Tools/setup/ubuntu.sh
sudo apt upgrade libignition-math2
make px4_sitl_default gazebo
Clone this repository to catkin src folder say: ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/HKPolyU-UAV/E2ES.git
Install 3rd Part Library
cd ~/catkin_ws/src/e2es/3rdPartLib
sudo ./install3rdPartLib.sh
Compile
cd ~/catkin_ws/
catkin_make
By default ROS_WORK_SPACE_PATH is ~/catkin_ws and PX4_Firmware_PATH is ~/PX4-Autopilot
If Not, Edit the path in E2ES/sim.sh script(Line 1 to 4)
export GAZEBO_RESOURCE_PATH=$GAZEBO_RESOURCE_PATH:~/catkin_ws/src/e2es/gazebo
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:~/catkin_ws/src/e2es/gazebo/models
export GAZEBO_PLUGIN_PATH=$GAZEBO_PLUGIN_PATH:~/catkin_ws/devel/lib
cd ~/PX4-Autopilot
to
export GAZEBO_RESOURCE_PATH=$GAZEBO_RESOURCE_PATH:ROS_WORK_SPACE_PATH/src/e2es/gazebo
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:ROS_WORK_SPACE_PATH/src/e2es/gazebo/models
export GAZEBO_PLUGIN_PATH=$GAZEBO_PLUGIN_PATH:ROS_WORK_SPACE_PATH/devel/lib
cd PX4_Firmware_PATH
Run the simulator
roscd e2es
./sim.sh
Using keyboard to control the MAV in simulator
roslaunch e2es keyboard_ctr.launch
Running End-To-End simulation
You can use the FLVIS-glmapping-FUXI(localization-mapping-planning kits) navigation system.
The first step is to install FLVIS, glmapping and FUXI accordinly.
Then start the simulator localization mapping and planning kit in sequence.
roscd e2es
./sim.sh
roslaunch e2es flvis.launch
roslaunch e2es glmapping.launch
roslaunch e2es fuxi.launch
You can use the 2D-Nav-Goal in RVIZ to publish your destination.
Acknowledgement
This work are based on PX4 Projcet and realsense_gazebo_plugin
Maintainer
Shengyang Chen(Dept.ME,PolyU): shengyang.chen@connect.polyu.hk
Han Chen(Dept.AAE,PolyU):stark.chen@connect.polyu.