Skip to content
Open
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
ffff21f
rebase
jorgenfj Mar 25, 2026
0eb1234
waypoint sim test wrapper scripts
jorgenfj Mar 25, 2026
66cdafa
made it so that gripper does not have buoyancy or mass. Collision mig…
Q3rkses Mar 26, 2026
ab5ee12
rebase
jorgenfj Mar 25, 2026
463ea7c
waypoint sim test wrapper scripts
jorgenfj Mar 25, 2026
5f9c567
made it so that gripper does not have buoyancy or mass. Collision mig…
Q3rkses Mar 26, 2026
9df8a23
changed so that drone type is resolved at launch for the adaptive dp …
Q3rkses Mar 27, 2026
d3e5f8a
Merge branch 'feat/solver-and-drone-sim-tests' of github.com:vortexnt…
Q3rkses Mar 27, 2026
0c6879a
Merge remote-tracking branch 'origin' into feat/solver-and-drone-sim-…
Q3rkses Mar 29, 2026
05f725f
updated thruster layout such that it fits the more spread out thruste…
Q3rkses Mar 29, 2026
db646f4
Added TODOs, figured out error quaternions and prepared for changes
Q3rkses Mar 30, 2026
71c1b84
Readded old controller, no need to throw it away.
Q3rkses Mar 30, 2026
72cf921
started implementing quat dp
Q3rkses Mar 31, 2026
8481728
Finished the Lyapunov proof for the controller, and will upload it to…
Q3rkses Mar 31, 2026
7deec26
launched dp adapt quat controller
Q3rkses Apr 4, 2026
7c5c869
Updated error quaternion formulation to be correct
Q3rkses Apr 6, 2026
62c6d9c
Made code more readable and added suitable helper/utility functions t…
Q3rkses Apr 6, 2026
925c447
changed lqr back to how it was before
Q3rkses Apr 6, 2026
4e782ad
Merge remote-tracking branch 'origin/main' into dp_adaptive_backstepp…
Q3rkses Apr 6, 2026
9abb46b
added changes the quat reference filter such that everything passes o…
Q3rkses Apr 6, 2026
ccf0220
fixed pre commit
Q3rkses Apr 6, 2026
b78c032
added changes to joystick_interface_auv to make sure tests work and e…
Q3rkses Apr 6, 2026
aadf2d5
changed the topics to match the new ropic names for dp guidance.
Q3rkses Apr 6, 2026
2a04778
changed to dp_rpy for orca aswell
Q3rkses Apr 6, 2026
6efa53a
fixed tuning and added font for refrence fitler
Q3rkses Apr 6, 2026
1f28c0e
fixed asci art, fixed correct min max on nautilus, changed comments i…
Q3rkses Apr 7, 2026
d75a688
ported PID controller from easter testing aswell, and updated the rea…
Q3rkses Apr 7, 2026
722cddc
fixed pre commit hooks and attempted fix on failing workflow
Q3rkses Apr 7, 2026
7653a28
attempted fix at reference filter workflow
Q3rkses Apr 7, 2026
b240ca4
hopefully final workflow fix
Q3rkses Apr 7, 2026
adf6ec0
worked through PR comments, will fail the build as i have not force p…
Q3rkses Apr 8, 2026
fe225ee
Ran pre commit hooks
Q3rkses Apr 8, 2026
2a5b93e
fixed the joystick auv to utilize quaternions for internal orientation
Q3rkses Apr 8, 2026
62dd01f
ran pre commit hooks
Q3rkses Apr 8, 2026
e9de5dd
claude fixed pid controller dp or something
Q3rkses Apr 8, 2026
fe8b381
updated readme for auv setup
Q3rkses Apr 9, 2026
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
26 changes: 13 additions & 13 deletions auv_setup/config/robots/nautilus.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
/**:
ros__parameters:
physical:
center_of_mass: [0.0, 0.0, 0.01] # CO is aligned with CM Position (x,y) in meters (M), small cg offset in z to keep drone naturally stable in roll/pitch
center_of_mass: [0.0, 0.0, 0.025] # CO is aligned with CM Position (x,y) in meters (M), small cg offset in z to keep drone naturally stable in roll/pitch
mass_matrix: [53.7, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 53.7, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 53.7, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 11.0628, 1.086, -3.17502, 0.0, 0.0, 0.0, 1.086, 23.1128, 0.1025, 0.0, 0.0, 0.0, -3.17502, 0.1025, 26.23998]
# 6x6 mass_inertia_matrix
propulsion:
Expand Down Expand Up @@ -53,22 +53,22 @@
0.00000, # Heave
]
thruster_position: [ # Position (x0,x1 ... x7,y1,y2, ...,y7,z1,z2, ... ,z7) in meters (M). i.e thruster0 has position (x0,y0,z0)
0.413892,
0.140095,
-0.163904,
-0.413892,
-0.413892,
-0.163904,
0.140095,
0.413892, # x-positions of the thrusters
0.45015,
0.24060,
-0.22970,
-0.43861,
-0.43861,
-0.22970,
0.240600,
0.450150, # x-positions of the thrusters
0.305680,
0.313022,
0.313022,
0.313022,
0.313022,
-0.313022,
0.305680,
-0.305680,
-0.313022,
-0.313022,
-0.313022, # y-positions of the thrusters
-0.305680, # y-positions of the thrusters
0.021736,
0.021736,
0.021736,
Expand Down
60 changes: 60 additions & 0 deletions auv_setup/launch/dp_quat.launch.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
import os

from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch.actions import OpaqueFunction
from launch_ros.actions import Node

from auv_setup.launch_arg_common import (
declare_drone_and_namespace_args,
resolve_drone_and_namespace,
)


def launch_setup(context, *args, **kwargs):
drone, namespace = resolve_drone_and_namespace(context)

filter_config = os.path.join(
get_package_share_directory("reference_filter_dp_quat"),
"config",
"reference_filter_params.yaml",
)

drone_params = os.path.join(
get_package_share_directory("auv_setup"),
"config",
"robots",
f"{drone}.yaml",
)

adapt_params = os.path.join(
get_package_share_directory("dp_adapt_backs_controller_quat"),
"config",
f"adapt_params_{drone}.yaml",
)

return [
Node(
package="reference_filter_dp_quat",
executable="reference_filter_dp_quat_node",
name="reference_filter_node",
namespace=namespace,
parameters=[filter_config, drone_params],
output="screen",
),
Node(
package="dp_adapt_backs_controller_quat",
executable="dp_adapt_backs_controller_quat_node",
name="dp_adapt_backs_controller_node",
namespace=namespace,
parameters=[adapt_params, drone_params],
output="screen",
),
]


def generate_launch_description():
return LaunchDescription(
declare_drone_and_namespace_args()
+ [OpaqueFunction(function=launch_setup)]
)
79 changes: 79 additions & 0 deletions control/dp_adapt_backs_controller_quat/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
cmake_minimum_required(VERSION 3.8)
project(dp_adapt_backs_controller_quat)

if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 20)
endif()

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()

find_package(ament_cmake REQUIRED)
find_package(vortex_utils REQUIRED)
find_package(vortex_utils_ros REQUIRED)
find_package(rclcpp REQUIRED)
find_package(rclcpp_components REQUIRED)
find_package(nav_msgs REQUIRED)
find_package(geometry_msgs REQUIRED)
find_package(Eigen3 REQUIRED)
find_package(tf2 REQUIRED)
find_package(vortex_msgs REQUIRED)
find_package(fmt REQUIRED)
find_package(spdlog REQUIRED)


include_directories(include)

set(LIB_NAME "${PROJECT_NAME}_component")

add_library(${LIB_NAME} SHARED
src/dp_adapt_backs_controller.cpp
src/dp_adapt_backs_controller_ros.cpp
src/dp_adapt_backs_controller_utils.cpp)

ament_target_dependencies(${LIB_NAME} PUBLIC
rclcpp
rclcpp_components
geometry_msgs
nav_msgs
Eigen3
tf2
fmt
spdlog
vortex_msgs
vortex_utils
vortex_utils_ros
)

rclcpp_components_register_node(
${LIB_NAME}
PLUGIN "DPAdaptBacksControllerNode"
EXECUTABLE ${PROJECT_NAME}_node
)

ament_export_targets(export_${LIB_NAME})

install(TARGETS ${LIB_NAME}
EXPORT export_${LIB_NAME}
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin
)

install(
DIRECTORY include/
DESTINATION include
)

install(DIRECTORY
launch
config
DESTINATION share/${PROJECT_NAME}/
)

if(BUILD_TESTING)
add_subdirectory(test)
endif()

ament_package()
Loading
Loading