A ROS 2 bridge for implementing a HoloOcean-based underwater robotics simulation with sonar mapping.
Check out our intro video on Youtube.
- ROS2 bridge using rclpy and the HoloOcean Python API
- Thruster control using ROS2 messages
- Basic URDF file for the HoveringAUV vehicle based on the Unreal Engine simulation
- Converts ImagingSonar data to PointCloud messages
- Uses PyBind-based C++ module to handle the conversion
- Runs the conversion on a background thread to reduce simulation delays
- Docker and Virtualenv based development environment (see holoocean_tools)
- Demo application with Rviz visualization
NOTE: You have to clone the holoocean_tools repository for using this project. Please check the README in holoocean_tools for building instructions.
To run the simulation with point cloud visualization:
cd /holoocean/holoocean_tools
./run_point_cloud_visualization_test.sh
Now the simulation is running. You can control the submarine by selecting the control window and using the following keys:
W: move forward
A: strafe left
S: move backwards
D: strafe right
I: move upwards
J: turn left
K: move downwards
L: turn right
You can also use HoloOcean's built-in hotkeys which are documented here: https://holoocean.readthedocs.io/en/develop/usage/hotkeys.html
- Implement ROS2 Control Hardware Interface
- Implement more sensors
- Allow handling more agents at the same time
This project was implemented as a research project by Migeran - Software Engineering & Consulting. We are available for new software development projects in Robotics, AR/VR and other domains. If you have any questions, you may contact us through our website.