Page last modified: Apr 11 2022.
DAVE Aquatic Virtual Environment(DAVE) is a simulation environment to support the rapid testing and evaluation of underwater robotic solutions, specifically underwater vehicles (AUVs/UUVs) operating autonomously and completing missions that involve autonomous maniputlation. The environment is built upon existing ROS and Gazebo infrastructure, particularly the UUV Simulator and WHOI’s ds_sim.
- For a high-level overview of the project, see the release highlight videos:
- For an overview of what is included in the most recent release, see the Changelog
- To try the simulation, follow the Installation Tutorial.
The objective of the project is to provide the following capabilities:
- Visual, physical and (hydro)dynamic models of generlized vehicle, manipulator and sensor elements.
- Simulation of sensing specific to underwater robotics including perception (e.g., sonar, underwater lidar and optical imaging) and navigation (e.g., DVL and USBL).
- Parameterized representations of the ocean environment including seafloor bathymetry and ocean currents.
These capabilities will enable support the development of autonomous systems capable of multi-phase underwater missions over large time and space scales.
We welcome contributions from the robotics community. We are particularly interested in contributions to extend and improve capabiliteis associated with the objectives described above. To contribute, please submit an issue or a pull request.
In addition to our officially supported, core features, Dave also includes a number of features that are supported exclusively by community members. Click here for the current list of community supported features.
If you use this simulator for your project, please cite the following paper:
Mabel M. Zhang, Woen-Sug Choi, Jessica Herman, Duane Davis, Carson Vogt, Michael McCarrin, Yadunund Vijay, Dharini Dutia, William Lew, Steven Peters, and Brian Bingham, “DAVE Aquatic Virtual Environment: Toward a General Underwater Robotics Simulator,” in IEEE/OES Autonomous Underwater Vehicle (AUV) Symposium, 2022. doi: 10.1109/AUV53081.2022.9965808
If you use the multibeam sonar simulation, please cite the following paper:
Woen-Sug Choi, Derek R. Olson, Duane Davis, Mabel Zhang, Andy Racson, Brian Bingham, Michael McCarrin, Carson Vogt, and Jessica Herman, “Physics-based modelling and simulation of Multibeam Echosounder perception for Autonomous Underwater Manipulation,” Frontiers in Robotics and AI, 2021. doi: 10.3389/frobt.2021.706646
Step-by-step guides to illustrate working examples how to accomplish certain tasks and demonstrate features of the project.
Dave depends upon ROS Noetic and Gazebo 11 - with community support for previous versions of ROS and Gazebo. The project may be installed directly on your host or run using Docker.
- Check to make sure you meet the System Requirements.
- Follow the Installation Tutorials to set up your system.
- New-Underwater-Vehicle: Given a visual and dynamic model of an underwater vehicle, how to instantiate the model in Gazebo.
- Vehicle Models: Visual and physical models of existing vehicle platforms.
- Bathymetry Models: Underwater heightmap included in the repository.
- Building a simple underwater environment via heightmaps: How to build your own bathymetry.
Object Models: A collection of useful objects for composing underwater search and manipulation scenarios.
Object Degradation Tools: Tools for altering the geometric shape of a 3D mesh model and for adding customized SDF properties such as surface material to be interpreted by Gazebo plugins.
- Multibeam Forward Looking Sonar
- Doppler Velocity Logger
- 3D Underwater Lidar
- Ultra-Short Base-Line
- Underwater Camera
- Ocean Current Models: A plugin for constant/stratified ocean current with Gauss-Markov model definitions.
- Bathymetry generation and auto spawning: A plugin that automatically spawns and removes bathymetry grids converted preliminarily from NOAA data.
- Occlusion: An example of bottom occlusion due to silt or object occlusion due to marine growth.
- Gamepad Teleoperation Mapping: Default mapping of gamepad interface to thruster allocation and manipulators.
- Electrical Mating Plugin: Youssef’s GSoC demo of a custom plugin to implement the subsea mating of an electrical connector. The plugin implements constraints on alignment and forces necessary to complete the manipulation.
- BOP panel manipulation mission: Implementing the blowout preventer panel example from the UUV Simulator.
- Manipulation force feedback: First implementation of joint-based force feedback to enhance perception.
- Swapping-out-the-Oberon7-arm-with-another-manipulator: Tutorial demonstrating how to swap out the oberon7 arm for another custom made arm.
- Retrieving a bar from the seafloor: Coordinated telecoperation of vehicle and manipulator.
- Bimanual Manipulation Example: Equipping the RexROV with dual Oberon7s.
Descriptions of how things work, how certain aspects of the project are implemented (descriptions of the methods and techniques used by developer) or results of reverse engineering existing implementations. May include recommendations for further work and improvements.
- UUV Simulator Image Sonar: Description of foward looking sonar implementation.
- UUV Simulator Doppler Velocity Loggers: Description of UUV Simulator and WHOI DSL environment DVL plugin implementations.