uvms-simulator repository

uvms-simulator repository

uvms-simulator repository

Repository Summary

Description This repository features a ros2_control simulator for the BlueROV Heavy with an attached Reach Alpha 5 manipulator, using Thor Fossen’s methods for underwater vehicle dynamics and Featherstone's algorithm for the open chain structure.
Checkout URI https://github.com/edxmorgan/uvms-simulator.git
VCS Type git
VCS Version main
Last Updated 2025-04-10
Dev Status UNKNOWN
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
ros2_control_blue_reach_5 0.0.0

README

Underwater Vehicle & Manipulator Simulator and Hardware Framework

A ros2_control framework for simulating and interfacing with the BlueROV Heavy and Reach Alpha 5 manipulator.

Demo Video


Features

  • Realistic Dynamics: Close to real simulation of underwater vehicle and manipulator behavior.
  • Multi-Agent Support: Simulate multiple agents in a shared environment.
  • Hardware-in-the-Loop Support: Interface with real blueROV heavy robot, including A50 DVL and reach alpha 5 manipulator.
  • Internal Kalman Filter: Implements sensor fusion for robust state estimate.

Kinematics & Dynamics

This project derives its kinematic and dynamic models from diff_uv and diff_uvms, which provides the essential dynamic matrices used for control, stability analysis, and model identification.


Setup

Prerequisites

  1. Install ROS2:
    Follow the ROS2 Installation Guide.

  2. Ensure $ROS_DISTRO is Set:
    Confirm that the environment variable $ROS_DISTRO is correctly set:

   echo $ROS_DISTRO
   

If not, set it to your ROS2 distribution (e.g., humble):

   export ROS_DISTRO=humble
   
  1. Install Required Dependencies:
    Use your package manager to install dependencies:
   sudo apt-get install git-lfs \
       ros-$ROS_DISTRO-hardware-interface ros-$ROS_DISTRO-xacro \
       ros-$ROS_DISTRO-controller-manager ros-$ROS_DISTRO-joint-state-broadcaster \
       ros-$ROS_DISTRO-joint-state-publisher-gui ros-$ROS_DISTRO-forward-command-controller \
       ros-$ROS_DISTRO-ros2-control ros-$ROS_DISTRO-mavros ros-$ROS_DISTRO-mavros-msgs \
       ros-$ROS_DISTRO-nav2-msgs ros-$ROS_DISTRO-force-torque-sensor-broadcaster ros-$ROS_DISTRO-tf-transformations
   
  1. Install CasADi:
    Follow the CasADi Installation Instructions.

Installation Steps

  1. Clone the Repository:
    In your ROS2 workspace’s src directory, clone the project:
   cd /absolute/path/to/your_ros2_workspace/src
   git clone https://github.com/edxmorgan/uvms-simulator.git
   vcs import < uvms-simulator/dependency_repos.repos
   
  1. Install Dependencies:
    From the root of your workspace, install any missing dependencies:
   cd /absolute/path/to/your_ros2_workspace
   rosdep install --from-paths src --ignore-src -r -y
   
  1. Build the Workspace:
    Compile the project:
   colcon build
   
  1. Source the Setup File:
    Update your environment:
   source install/setup.bash
   

Replace /absolute/path/to/your_ros2_workspace with the actual absolute path to your ROS2 workspace.


Documentation & Use Cases


Citation

DOI


Resources & Contributing

Contributions are welcome! Please open an issue or submit a pull request.


License

This project is licensed under the MIT License.

CONTRIBUTING

No CONTRIBUTING.md found.

uvms-simulator repository

uvms-simulator repository

uvms-simulator repository

uvms-simulator repository

uvms-simulator repository

uvms-simulator repository

uvms-simulator repository

uvms-simulator repository

uvms-simulator repository

uvms-simulator repository

uvms-simulator repository

uvms-simulator repository

uvms-simulator repository

uvms-simulator repository

uvms-simulator repository