Skip to content

Nautilus-UUV/dave

 
 

Repository files navigation

DAVE - Nautilus-UUV Fork

Publish a Docker image (AMD64; Common X86_64 Linux Machine) Publish a Docker image (ARM64; Apple Silicon)

This is the Nautilus-UUV fork of DAVE (Aquatic Robotic Simulator) containing custom configurations for the Glider Nautilus robot.

Upstream DAVE Documentation: http://dave-ros2.notion.site

Installation

Prerequisites

  1. Install DAVE following the official installation tutorial:

Installing Nautilus Custom Models

After completing the official DAVE installation:

# Navigate to the DAVE workspace
cd ~/dave_ws/src

# Remove the default DAVE repository
rm -rf dave

# Clone the Nautilus fork with the dev branch
git clone -b dev https://github.com/Nautilus-UUV/dave.git

# Navigate back to workspace root
cd ~/dave_ws

# Rebuild the workspace with Nautilus customizations
colcon build --symlink-install

# Source the workspace
source install/setup.bash

Branch Structure

Our fork uses a structured branching model:

polaris-ros2 (stable - tracks upstream + Nautilus customizations)
    └── dev (active development - merge feature branches here)
        ├── feature/new-sensor-integration
        ├── feature/improved-controller
        └── feature/your-feature-name

Branch Descriptions

  • polaris-ros2: Stable branch with tested Nautilus customizations

    • Tracks upstream IOES-Lab/dave:ros2
    • Contains production-ready Glider Nautilus models
    • Protected branch - requires PR approval
  • dev: Active development branch

    • Base branch for all new feature development
    • Integration testing happens here
    • Periodically merged into polaris-ros2 after testing
  • feature/*: Individual feature branches

    • Created from dev
    • One feature per branch
    • Merged back to dev via PR

Contributing Workflow

1. Set Up Your Development Environment

cd ~/dave_ws/src/dave

# Add the upstream IOES-Lab repository (for pulling updates)
git remote add upstream https://github.com/IOES-Lab/dave.git

# Verify remotes
git remote -v
# Should show:
#   origin    https://github.com/Nautilus-UUV/dave.git

2. Create a Feature Branch

# Make sure you're on the dev branch
git checkout dev

# Pull the latest changes
git pull origin dev

# Create your feature branch
git checkout -b feature/your-feature-name

3. Make Your Changes

Edit files in the appropriate locations:

  • Robot models: models/dave_robot_models/description/glider_nautilus/
  • Configurations: models/dave_robot_models/config/glider_nautilus/
  • Meshes: models/dave_robot_models/meshes/glider_nautilus/
  • Launch files: Add to appropriate package directories
dave/
├── models/
│   └── dave_robot_models/
│       ├── description/
│       │   └── glider_nautilus/    # Robot SDF files
│       ├── config/
│       │   └── glider_nautilus/    # Launch configuration ros_gz_bridge
│       └── meshes/
│           └── glider_nautilus/    # 3D mesh files
├── README.md                       # This file
└── ...                             # Other DAVE packages

4. Test Your Changes

# Rebuild the workspace
cd ~/dave_ws
colcon build --symlink-install

# Source the workspace
source install/setup.bash

# Test your changes (launch files, simulations, etc.)
ros2 launch <your_test_commands>

5. Commit Your Changes

cd ~/dave_ws/src/dave

# Stage your changes
git add .

# Run pre-commit checks
pre-commit run --all-files

# Commit with a descriptive message
git commit -m "feat: add description of your feature"

# Push to your feature branch
git push origin feature/your-feature-name

6. Create a Pull Request

  1. Go to https://github.com/Nautilus-UUV/dave
  2. Click "Pull requests" → "New pull request"
  3. Set base branch to dev (not polaris-ros2!)
  4. Set compare branch to your feature/your-feature-name
  5. Fill in the PR description:
    • What does this feature add/fix?
    • How did you test it?
    • Any breaking changes?
  6. Request review from team members
  7. Address review feedback and update your branch as needed

7. After PR is Merged

# Switch back to dev
git checkout dev

# Pull the updated dev branch
git pull origin dev

# Delete your local feature branch
git branch -d feature/your-feature-name

# Delete the remote feature branch
git push origin --delete feature/your-feature-name

Commit Message Conventions

Follow conventional commits format:

  • feat: add new buoyancy model - New feature
  • fix: correct thruster orientation - Bug fix
  • docs: update installation instructions - Documentation
  • refactor: simplify sensor configuration - Code refactoring
  • test: add integration test for controller - Tests
  • chore: update dependencies - Maintenance tasks

Syncing with Upstream DAVE

Periodically pull updates from the upstream IOES-Lab/dave repository:

# Checkout polaris-ros2
git checkout polaris-ros2

# Fetch upstream changes
git fetch upstream

# Merge upstream ros2 into polaris-ros2
git merge upstream/ros2

# Resolve any conflicts if they occur

# Push updated polaris-ros2
git push origin polaris-ros2

# Update dev branch with the new changes
git checkout dev
git merge polaris-ros2
git push origin dev

About

Project DAVE

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 71.8%
  • Python 8.3%
  • Cuda 7.6%
  • CMake 5.3%
  • Dockerfile 4.1%
  • Shell 2.9%