Author:
- Maximilian Nitsch maximilian.nitsch@rwth-aachen.de (Institute of Automatic Control - RWTH Aachen University)
Maintainer:
- Maximilian Nitsch maximilian.nitsch@rwth-aachen.de (Institute of Automatic Control - RWTH Aachen University)
This project implements a provider for three different trajectories of the autonomous underwater vehicle "nanoAUV".
The simulator implements the following features:
- "Lawnmower" trajectory
- "YoYo" trajectory
- "Validation" trajectory (mix of different trajectories)
Our in-house hydrodynamics and control simulator have generated all trajectories. The trajectories are provided as CSV files. The Offline Trajectory Provides loads a CSV file and publishes the data as ROS 2 odometry and AccelStamped message.
This project depends on the following literature and libraries:
- ROS 2 Humble: ROS 2 is a set of software libraries and tools for building robot applications: ROS 2 Installation page).
To install the offline_trajectory_provider_package, you need to follow these steps:
-
Install ROS 2 Humble: Make sure you have ROS 2 (Humble) installed. You can follow the official installation instructions provided by ROS 2. Visit ROS 2 Humble Installation page for detailed installation instructions tailored to your platform.
-
Clone the Package: Clone the package repository to your ROS 2 workspace. If you don't have a ROS 2 workspace yet, you can create one using the following commands:
mkdir -p /path/to/ros2_workspace/src cd /path/to/ros2_workspace/srcNow, clone the package repository:
git clone <repository_url>
Replace
<repository_url>with the URL of your package repository. -
Build the Package: Once the package is cloned, you must build it using colcon, the default build system for ROS 2. Navigate to your ROS 2 workspace and run the following command:
cd /path/to/ros2_workspace colcon buildThis command will build all the packages in your workspace, including the newly added package.
-
Source the Workspace: After building the package, you need to source your ROS 2 workspace to make the package available in your ROS 2 environment. Run the following command:
source /path/to/ros2_workspace/install/setup.bashReplace
/path/to/ros2_workspacewith the actual path to your ROS 2 workspace.
That's it! Your offline_trajectory_provider_package should now be installed along with its dependencies and ready to use in your ROS 2 environment.
-
Configure your YAML file for your IMU or use the default file.
-
Start the Offline Trajectory Provider with the launch file:
ros2 launch offline_trajectory_provider_package offline_trajectory_provider_launch.launch.py
The Offline Trajectory Provider now starts reading in the selected CSV file and publishes ground truth odometry and acceleration messages.
The IMU simulator node implements five publishers and subscribes to one topic. ROS 2 services or actions are not provided.
This node publishes the following topics:
| Topic Name | Message Type | Description |
|---|---|---|
/auv/odometry |
nav_msgs/Odometry.msg |
Publishes odometry data. |
/auv/accel |
geometry_msgs/AccelStamped.msg |
Publishes acceleration data. |
This project follows these coding guidelines:
- https://google.github.io/styleguide/cppguide.html
- http://docs.ros.org/en/humble/The-ROS2-Project/Contributing/Code-Style-Language-Versions.html
The offline trajectory provider simulator implementation closely follows the work:
- M. Nitsch, "Navigation of a miniaturized autonomous underwater vehicle exploring waters under ice," Dissertation, Rheinisch-Westfälische Technische Hochschule Aachen, Aachen, RWTH Aachen University, 2024. DOI: 10.18154/RWTH-2024-05964.
If you want to contribute to the project, see the CONTRIBUTING file for details.
This project is licensed under the BSD-3-Clause License. See the LICENSE file for details.
