open-airlab / UNav-Sim

Visually Realistic Underwater Robotics Simulator UNav-Sim
Other
132 stars 15 forks source link
ai airsim autonomous-robots auv bluerov2 cpp gym-environment machine-learning mpc px4 reinforcement-learning ros simulation simulator slam underwater-robotics unreal unreal-engine unreal-engine-5

🌊🤖 Introducing UNav-Sim: The Ultimate Underwater Robotics Simulator! 🚀

UNavSim_logo

UNav-Sim is an open-source cutting-edge underwater robotics simulator tool that leverages the power of Unreal Engine 5 (UE5) and AirSim to provide highly detailed rendering and simulation capabilities. Whether you're a researcher, developer, or robotics enthusiast, UNav-Sim offers a platform for you to dive deep into the world of underwater robotics.

Key Features:

Index

1. Installation

2. Running the simulation

3. UNav-Sim ros navigation stack

4. UNav-Sim documentation

1. Installation Instructions (for Ubuntu OS)

UNav-Sim relies in Unreal Engine 5 for generating realistic renderings. First, install UE5 and then proceed to install UNav-Sim

1.1. UE5

1.2. UNav-Sim

Clone this repo in your favourite folder:

git clone git@github.com:open-airlab/UNav-Sim.git
cd UNav-Sim

We provide you scripts to automatically setup and build UNav-Sim:

./setup.sh
./build.sh
# use ./build.sh --debug to build in debug mode

Troubleshooting: If you're installing UNav-Sim from Ubuntu 22, then instead of vulkan-utils you will need to install vulkan-tools:

sudo apt update
sudo apt install vulkan-tools

1.3. Setting up the UE5 environment

cd ~/UNav-Sim/Unreal/Environments/Blocks
right-click on Blocks.uproject, select Unreal Engine Generate Project Files

2. Running the simulation

- open the project using your IDE 
- Run and debug using Launch BlocksEditor(DebugGame)

3. UNav-Sim ros navigation stack

The UNav-Sim ROS navigation stack, as detailed in the paper, encompasses various components essential for underwater vehicle navigation. It integrates a Nonlinear Model Predictive Controller (NMPC) tailored for the BlueROV2 Heavy model and a pipe-following path planner. Additionally, the stack incorporates several Visual Simultaneous Localization and Mapping (VSLAM) algorithms.

Components:

  1. NMPC for BlueROV2 Heavy Model
    Located in the ROS 1 repository, this component provides a Nonlinear Model Predictive Controller (NMPC) specifically designed for the BlueROV2 Heavy model. The controller facilitates precise and dynamic control of the underwater vehicle.
    Repository Path: \UNav-Sim\ros\src\UNav-Sim_NMPC

  2. Pipe Following Path Planner
    The stack includes a path planner neural network trained for pipe-following task, essential for various underwater inspection and maintenance missions.

  3. Visual Simultaneous Localization and Mapping (VSLAM) Algorithms
    The UNav-Sim ROS navigation stack incorporates several Visual Simultaneous Localization and Mapping (VSLAM) algorithms. These algorithms enable the vehicle to localize itself in its environment while simultaneously mapping the surroundings using visual sensor data.
    Repository Path for ROS 2: \UNav-Sim\ros2\src\robot_visual_localization

4. UNav-Sim documentation

Link to paper

Citation

If you use this framework in your work, please cite the following paper:Link to paper

@inproceedings{amer2023unav,
  title={UNav-Sim: A Visually Realistic Underwater Robotics Simulator and Synthetic Data-generation Framework},
  author={Amer, Abdelhakim and {\'A}lvarez-Tu{\~n}{\'o}n, Olaya and U{\u{g}}urlu, Halil {\.I}brahim and Sejersen, Jonas Le Fevre and Brodskiy, Yury and Kayacan, Erdal},
  booktitle={2023 21st International Conference on Advanced Robotics (ICAR)},
  pages={570--576},
  year={2023},
  organization={IEEE}
}
@inproceedings{alvarez2023mimir,
  title={Mimir-uw: A multipurpose synthetic dataset for underwater navigation and inspection},
  author={{\'A}lvarez-Tu{\~n}{\'o}n, Olaya and Kanner, Hemanth and Marnet, Luiza Ribeiro and Pham, Huy Xuan and le Fevre Sejersen, Jonas and Brodskiy, Yury and Kayacan, Erdal},
  booktitle={2023 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  pages={6141--6148},
  year={2023},
  organization={IEEE}
}

Questions and inquiries

For questions and inquiries please create a GitHub issue and we will try to respond as soon a possible!

⭐ Please star this repository if you find it useful! ⭐

Thank you for using this project! 🌟

Star History Chart