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.
- Open-source ✔️
- High-fidelity rendering using Unreal Engine 5 ✔️
- Underwater physics and robot models ✔️
- Linux and Windows compatible ✔️
- ROS1 and ROS2 support ✔️
Example environments: MIMIR
3. UNav-Sim ros navigation stack
UNav-Sim relies in Unreal Engine 5 for generating realistic renderings. First, install UE5 and then proceed to install UNav-Sim
-
Make sure you are registered with Epic Games. This is required to get source code access for Unreal Engine.
-
Clone Unreal 5.1 in your favorite folder and build it (this may take a while!)
# go to the folder where you clone GitHub projects
git clone -b 5.1 [email protected]:EpicGames/UnrealEngine.git
cd UnrealEngine
./Setup.sh
./GenerateProjectFiles.sh
make
Clone this repo in your favourite folder:
git clone [email protected]: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
cd ~/UNav-Sim/Unreal/Environments/Blocks
right-click on Blocks.uproject, select Unreal Engine Generate Project Files
- Add the settings.json file to C:\Users[username]\Documents\AirSim
- open the project using your IDE
- Run and debug using Launch BlocksEditor(DebugGame)
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.
-
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
-
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. -
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
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}
}
For questions and inquiries please create a GitHub issue and we will try to respond as soon a possible!
Thank you for using this project! 🌟