No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.
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.
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
-
Install ROS2:
Follow the ROS2 Installation Guide. -
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
-
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
-
Install CasADi:
Follow the CasADi Installation Instructions.
Installation Steps
-
Clone the Repository:
In your ROS2 workspace’ssrc
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
-
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
-
Build the Workspace:
Compile the project:
colcon build
-
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
- User Guide: User Documentation
- HIL Setup: Hardware-in-the-Loop Instructions
- Interactive Control: For Interactive, manual control and coverage examples, see uvms_simlab.
Citation
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.
No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.