Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Checks: >
performance-*,
portability-*,
readability-*,
-portability-avoid-pragma-once,
-google-readability-braces-around-statements,
-google-readability-namespace-comments,
-google-runtime-references,
Expand Down
8 changes: 6 additions & 2 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ RUN sudo apt-get -q update \
&& sudo rm -rf /var/lib/apt/lists/*

RUN . "/opt/ros/${ROS_DISTRO}/setup.sh" \
&& colcon build \
&& colcon build --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
&& echo "source ${USER_WORKSPACE}/install/setup.bash" >> /home/$USERNAME/.bashrc \
&& echo "if [ -f /opt/ros/${ROS_DISTRO}/setup.bash ]; then source /opt/ros/${ROS_DISTRO}/setup.bash; fi" >> /home/$USERNAME/.bashrc

Expand All @@ -74,12 +74,16 @@ RUN pip install \
pre-commit

# Install debugging/linting C++ packages
# libstdc++-16-dev completes the gcc-16 toolchain that gets pulled in transitively
# without it, which otherwise leaves clang-tidy's GCC auto-detection unable to find
# standard library headers.
RUN sudo apt-get -q update \
&& sudo apt-get -q -y upgrade \
&& sudo apt-get install -y \
clang-format-18 \
clang-format-22 \
clang-tidy \
clang-tools \
libstdc++-16-dev \
&& sudo apt-get autoremove -y \
&& sudo apt-get clean -y \
&& sudo rm -rf /var/lib/apt/lists/*
Expand Down
29 changes: 6 additions & 23 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,26 +1,9 @@
{
"name": "ROS 2 Dev Container",
"dockerFile": "Dockerfile",
"context": "../",
"workspaceMount": "source=${localWorkspaceFolder},target=/home/ubuntu/ws_ros/src/auv_controllers,type=bind",
"workspaceFolder": "/home/ubuntu/ws_ros/src/auv_controllers",
"remoteUser": "ubuntu",
"customizations": {
"vscode": {
"extensions": [
"ms-azuretools.vscode-docker",
"ms-python.python",
"njpwerner.autodocstring",
"ms-vscode.cpptools",
"redhat.vscode-xml",
"redhat.vscode-yaml",
"smilerobotics.urdf",
"DavidAnson.vscode-markdownlint",
"esbenp.prettier-vscode",
"xaver.clang-format",
"charliermarsh.ruff",
"ms-vscode.cmake-tools"
]
"workspaceMount": "source=${localWorkspaceFolder},target=/home/ubuntu/ws_ros/src/auv_controllers,type=bind",
"workspaceFolder": "/home/ubuntu/ws_ros/src/auv_controllers",
"remoteUser": "ubuntu",
"build": {
"dockerfile": "Dockerfile",
"context": "../"
}
}
}
3 changes: 3 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,7 @@
!topic_sensors
!twist_controllers
!whole_body_controllers
!trajectory_controllers
!controller_coordinator
!impedance_controller
!ros2.repos
4 changes: 4 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ jobs:
ROS_DISTRO: ${{ matrix.env.ROS_DISTRO }}
CXXFLAGS: -Wall -Wextra -Wpedantic -std=c++20
CLANG_TIDY: true
# Ubuntu's gcc-16 metapackage is pulled in transitively without a matching
# libstdc++-16-dev, which leaves clang-tidy's GCC auto-detection pointing at
# an incomplete toolchain and unable to find standard library headers.
ADDITIONAL_DEBS: libstdc++-16-dev
UPSTREAM_WORKSPACE: ros2.repos
AFTER_SETUP_UPSTREAM_WORKSPACE: vcs pull $BASEDIR/upstream_ws/src
AFTER_SETUP_DOWNSTREAM_WORKSPACE: vcs pull $BASEDIR/downstream_ws/src
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,12 @@ build/
install/
log/

# Python Cache
.mypy_cache/
.ruff_cache/

# CMake Cache
.cache

# Zed settings
.zed
19 changes: 0 additions & 19 deletions .vscode/c_cpp_properties.json

This file was deleted.

86 changes: 0 additions & 86 deletions .vscode/settings.json

This file was deleted.

70 changes: 0 additions & 70 deletions .vscode/tasks.json

This file was deleted.

4 changes: 4 additions & 0 deletions auv_control_demos/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog for package auv_control_demos

## 0.5.1 (2026-08-14)

- Declares the missing `rclpy` dependency

## 0.5.0 (2026-05-29)

## 0.4.3 (2026-04-25)
Expand Down
14 changes: 14 additions & 0 deletions auv_control_demos/chained_controllers/launch/chaining.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,23 @@ def generate_launch_description():
)
robot_description = {"robot_description": robot_description_content}

controller_params = PathJoinSubstitution(
[
FindPackageShare("auv_control_demos"),
"config",
"chained_controllers.yaml",
]
)

velocity_controller_spawner = Node(
package="controller_manager",
executable="spawner",
arguments=[
"adaptive_integral_terminal_sliding_mode_controller",
"--controller-manager",
["", "controller_manager"],
"--param-file",
controller_params,
],
)

Expand All @@ -65,6 +75,8 @@ def generate_launch_description():
f"thruster_{i + 1}_controller",
"--controller-manager",
["", "controller_manager"],
"--param-file",
controller_params,
],
)
for i in range(8)
Expand Down Expand Up @@ -93,6 +105,8 @@ def generate_launch_description():
"thruster_allocation_matrix_controller",
"--controller-manager",
["", "controller_manager"],
"--param-file",
controller_params,
],
)
delay_tam_controller_spawner_after_thruster_controller_spawners = (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,14 @@ def generate_launch_description():
)
robot_description = {"robot_description": robot_description_content}

controller_params = PathJoinSubstitution(
[
FindPackageShare("auv_control_demos"),
"config",
"individual_controller.yaml",
]
)

return LaunchDescription(
[
Node(
Expand All @@ -57,15 +65,7 @@ def generate_launch_description():
package="controller_manager",
executable="ros2_control_node",
output="both",
parameters=[
PathJoinSubstitution(
[
FindPackageShare("auv_control_demos"),
"config",
"individual_controller.yaml",
]
),
],
parameters=[controller_params],
remappings=[
("/controller_manager/robot_description", "/robot_description"),
],
Expand All @@ -77,6 +77,8 @@ def generate_launch_description():
"adaptive_integral_terminal_sliding_mode_controller",
"--controller-manager",
["", "controller_manager"],
"--param-file",
controller_params,
],
),
]
Expand Down
4 changes: 3 additions & 1 deletion auv_control_demos/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<package format="3">

<name>auv_control_demos</name>
<version>0.5.0</version>
<version>0.5.1</version>
<description>Example package that includes demos for using auv_controllers in individual and chained modes</description>

<maintainer email="evanp922@gmail.com">Evan Palmer</maintainer>
Expand All @@ -19,6 +19,8 @@

<buildtool_depend>ament_cmake</buildtool_depend>

<depend>rclpy</depend>

<exec_depend>robot_state_publisher</exec_depend>
<exec_depend>xacro</exec_depend>

Expand Down
4 changes: 4 additions & 0 deletions auv_control_msgs/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog for package auv_control_msgs

## 0.5.1 (2026-08-14)

- Declares the missing `builtin_interfaces` dependency

## 0.5.0 (2026-05-29)

## 0.4.3 (2026-04-25)
Expand Down
Loading
Loading