![]() |
dp_adapt_backs_controller package from vortex-auv repoauv_setup dp_adapt_backs_controller pid_controller_dp pid_controller_dp_euler velocity_controller_lqr ekf_pose_filtering pose_action_server los_guidance reference_filter_dp docking joystick_interface_auv thrust_allocator_auv thruster_interface_auv |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | MIT |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Software for guidance, navigation and control for the Vortex AUVs. Purpose built for competing in AUV/ROV competitions. |
Checkout URI | https://github.com/vortexntnu/vortex-auv.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-25 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | robot ubuntu ros finite-state-machine autonomous sensor-fusion auv robosub robot-localization motion-control pathplanning autonomous-robots vortex-auv |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- talhanc
Authors
DP Adaptive Backstepping Controller
This package implements a dynamic positioning (DP) Adaptive backstepping controller for the orca AUV. It estimates the linear and nonlinear damping using adaptive parameters, and compensates for uncertainties and disturbances in real-time in the same manner as a state estimator. The proof for this is done using Lyapunov functions and stability requirements to ensure convergence and stability.
Overview
- Uses the backstepping control method for position and orientation control
- Includes adaptive terms to account for unmodeled dynamics and uncertainties.
Model for AUV
\dot{\eta} = J(\eta)\nu,
M \dot{\nu} + C(\nu)\,\nu - F(\nu, \Theta^\star) = \tau + d^\star
- $\nu$: Body-fixed velocity vector
- $\eta$: Inertial position and orientation vector
- M: Constant mass-inertia matrix
- C($\eta$): Coriolis and centripetal terms
- J($\eta$): Transformation from body to inertial coordinates
- F($\nu$, $\Theta^\star$) = Y($\nu$) $\Theta^\star$: The damping assumed damping function (linear and nonlinear), where Y(*) describes the behaviour
- $d^\star$: Disturbance and uncertainties
File overview
-
dp_adapt_backs_controller.cpp/hpp
- The controller implementation
- Implements the main control input, sets gains, references, and mass parameters.
-
dp_adapt_backs_controller_utils.cpp/hpp
- Provides utility functions: skew-symmetric matrix generation, quaternion-to-Euler, Jacobian and some functions needed for the adaptive functions.
-
dp_adapt_backs_controller_ros.cpp/hpp
- ROS node wrapper for the controller, subscribing to pose, twist, killswitch, and reference topics.
- Publishes thrust commands.
-
dp_adapt_backs_controller_node.cpp
- Entry point for the ROS executable.
-
adapt_params.yaml
- Tunable controller parameters (K1, K2, adapt_gain, d_gain)
- Contains the mass matrix (6×6) and other physical parameters:
M =
\begin{bmatrix}
30.0 & 0.0 & 0.0 & \cdots \\
0.0 & 30.0 & \cdots & \cdots \\
0.0 & \cdots & 30.0 & \cdots \\
\cdots & \cdots & \cdots & \cdots
\end{bmatrix}
(partially shown for brevity)
This is also added into the orca.yaml file
-
CMakeLists.txt
- Build configuration, ROS 2 dependencies, executable generation, and installation setup.
Tuning Parameters
- K1 and K2: Gains for the backstepping control laws.
- adapt_gain: Adaptive gain for the linear and nonlinear damping.
- d_gain: Adaptive gain for the disturbances and uncertainties.
- M and I_b: Mass inertia matrix and rotational inertia.
- m: Vehicle mass.
Backstepping controller
Using the Lyapunov proof we get the following functions for the backstepping controller:
Backstepping variables
z_1 = \eta - \eta_d
z_2 = \nu - \alpha
where the $\alpha$ is defined as the function that stabilizes the $z_1$ variable in the Lyapunov function system.
Adaptive parameters
\tilde{\Theta} = \hat{\Theta} - \Theta^\star
\tilde{d} = \hat{d} - d^\star
where:
- $\Theta^\star$ and $d^\star$ are the actual parameters,
- $\hat{\Theta}$ and $\hat{d}$ are the estimated parameters,
- $\tilde{\Theta}$ and $\tilde{d}$ are the estimation errors.
Proof of control law
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
rclcpp | |
geometry_msgs | |
nav_msgs | |
tf2 | |
vortex_msgs |
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dp_adapt_backs_controller at Robotics Stack Exchange
![]() |
dp_adapt_backs_controller package from vortex-auv repoauv_setup dp_adapt_backs_controller pid_controller_dp pid_controller_dp_euler velocity_controller_lqr ekf_pose_filtering pose_action_server los_guidance reference_filter_dp docking joystick_interface_auv thrust_allocator_auv thruster_interface_auv |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | MIT |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Software for guidance, navigation and control for the Vortex AUVs. Purpose built for competing in AUV/ROV competitions. |
Checkout URI | https://github.com/vortexntnu/vortex-auv.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-25 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | robot ubuntu ros finite-state-machine autonomous sensor-fusion auv robosub robot-localization motion-control pathplanning autonomous-robots vortex-auv |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- talhanc
Authors
DP Adaptive Backstepping Controller
This package implements a dynamic positioning (DP) Adaptive backstepping controller for the orca AUV. It estimates the linear and nonlinear damping using adaptive parameters, and compensates for uncertainties and disturbances in real-time in the same manner as a state estimator. The proof for this is done using Lyapunov functions and stability requirements to ensure convergence and stability.
Overview
- Uses the backstepping control method for position and orientation control
- Includes adaptive terms to account for unmodeled dynamics and uncertainties.
Model for AUV
\dot{\eta} = J(\eta)\nu,
M \dot{\nu} + C(\nu)\,\nu - F(\nu, \Theta^\star) = \tau + d^\star
- $\nu$: Body-fixed velocity vector
- $\eta$: Inertial position and orientation vector
- M: Constant mass-inertia matrix
- C($\eta$): Coriolis and centripetal terms
- J($\eta$): Transformation from body to inertial coordinates
- F($\nu$, $\Theta^\star$) = Y($\nu$) $\Theta^\star$: The damping assumed damping function (linear and nonlinear), where Y(*) describes the behaviour
- $d^\star$: Disturbance and uncertainties
File overview
-
dp_adapt_backs_controller.cpp/hpp
- The controller implementation
- Implements the main control input, sets gains, references, and mass parameters.
-
dp_adapt_backs_controller_utils.cpp/hpp
- Provides utility functions: skew-symmetric matrix generation, quaternion-to-Euler, Jacobian and some functions needed for the adaptive functions.
-
dp_adapt_backs_controller_ros.cpp/hpp
- ROS node wrapper for the controller, subscribing to pose, twist, killswitch, and reference topics.
- Publishes thrust commands.
-
dp_adapt_backs_controller_node.cpp
- Entry point for the ROS executable.
-
adapt_params.yaml
- Tunable controller parameters (K1, K2, adapt_gain, d_gain)
- Contains the mass matrix (6×6) and other physical parameters:
M =
\begin{bmatrix}
30.0 & 0.0 & 0.0 & \cdots \\
0.0 & 30.0 & \cdots & \cdots \\
0.0 & \cdots & 30.0 & \cdots \\
\cdots & \cdots & \cdots & \cdots
\end{bmatrix}
(partially shown for brevity)
This is also added into the orca.yaml file
-
CMakeLists.txt
- Build configuration, ROS 2 dependencies, executable generation, and installation setup.
Tuning Parameters
- K1 and K2: Gains for the backstepping control laws.
- adapt_gain: Adaptive gain for the linear and nonlinear damping.
- d_gain: Adaptive gain for the disturbances and uncertainties.
- M and I_b: Mass inertia matrix and rotational inertia.
- m: Vehicle mass.
Backstepping controller
Using the Lyapunov proof we get the following functions for the backstepping controller:
Backstepping variables
z_1 = \eta - \eta_d
z_2 = \nu - \alpha
where the $\alpha$ is defined as the function that stabilizes the $z_1$ variable in the Lyapunov function system.
Adaptive parameters
\tilde{\Theta} = \hat{\Theta} - \Theta^\star
\tilde{d} = \hat{d} - d^\star
where:
- $\Theta^\star$ and $d^\star$ are the actual parameters,
- $\hat{\Theta}$ and $\hat{d}$ are the estimated parameters,
- $\tilde{\Theta}$ and $\tilde{d}$ are the estimation errors.
Proof of control law
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
rclcpp | |
geometry_msgs | |
nav_msgs | |
tf2 | |
vortex_msgs |
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dp_adapt_backs_controller at Robotics Stack Exchange
![]() |
dp_adapt_backs_controller package from vortex-auv repoauv_setup dp_adapt_backs_controller pid_controller_dp pid_controller_dp_euler velocity_controller_lqr ekf_pose_filtering pose_action_server los_guidance reference_filter_dp docking joystick_interface_auv thrust_allocator_auv thruster_interface_auv |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | MIT |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Software for guidance, navigation and control for the Vortex AUVs. Purpose built for competing in AUV/ROV competitions. |
Checkout URI | https://github.com/vortexntnu/vortex-auv.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-25 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | robot ubuntu ros finite-state-machine autonomous sensor-fusion auv robosub robot-localization motion-control pathplanning autonomous-robots vortex-auv |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- talhanc
Authors
DP Adaptive Backstepping Controller
This package implements a dynamic positioning (DP) Adaptive backstepping controller for the orca AUV. It estimates the linear and nonlinear damping using adaptive parameters, and compensates for uncertainties and disturbances in real-time in the same manner as a state estimator. The proof for this is done using Lyapunov functions and stability requirements to ensure convergence and stability.
Overview
- Uses the backstepping control method for position and orientation control
- Includes adaptive terms to account for unmodeled dynamics and uncertainties.
Model for AUV
\dot{\eta} = J(\eta)\nu,
M \dot{\nu} + C(\nu)\,\nu - F(\nu, \Theta^\star) = \tau + d^\star
- $\nu$: Body-fixed velocity vector
- $\eta$: Inertial position and orientation vector
- M: Constant mass-inertia matrix
- C($\eta$): Coriolis and centripetal terms
- J($\eta$): Transformation from body to inertial coordinates
- F($\nu$, $\Theta^\star$) = Y($\nu$) $\Theta^\star$: The damping assumed damping function (linear and nonlinear), where Y(*) describes the behaviour
- $d^\star$: Disturbance and uncertainties
File overview
-
dp_adapt_backs_controller.cpp/hpp
- The controller implementation
- Implements the main control input, sets gains, references, and mass parameters.
-
dp_adapt_backs_controller_utils.cpp/hpp
- Provides utility functions: skew-symmetric matrix generation, quaternion-to-Euler, Jacobian and some functions needed for the adaptive functions.
-
dp_adapt_backs_controller_ros.cpp/hpp
- ROS node wrapper for the controller, subscribing to pose, twist, killswitch, and reference topics.
- Publishes thrust commands.
-
dp_adapt_backs_controller_node.cpp
- Entry point for the ROS executable.
-
adapt_params.yaml
- Tunable controller parameters (K1, K2, adapt_gain, d_gain)
- Contains the mass matrix (6×6) and other physical parameters:
M =
\begin{bmatrix}
30.0 & 0.0 & 0.0 & \cdots \\
0.0 & 30.0 & \cdots & \cdots \\
0.0 & \cdots & 30.0 & \cdots \\
\cdots & \cdots & \cdots & \cdots
\end{bmatrix}
(partially shown for brevity)
This is also added into the orca.yaml file
-
CMakeLists.txt
- Build configuration, ROS 2 dependencies, executable generation, and installation setup.
Tuning Parameters
- K1 and K2: Gains for the backstepping control laws.
- adapt_gain: Adaptive gain for the linear and nonlinear damping.
- d_gain: Adaptive gain for the disturbances and uncertainties.
- M and I_b: Mass inertia matrix and rotational inertia.
- m: Vehicle mass.
Backstepping controller
Using the Lyapunov proof we get the following functions for the backstepping controller:
Backstepping variables
z_1 = \eta - \eta_d
z_2 = \nu - \alpha
where the $\alpha$ is defined as the function that stabilizes the $z_1$ variable in the Lyapunov function system.
Adaptive parameters
\tilde{\Theta} = \hat{\Theta} - \Theta^\star
\tilde{d} = \hat{d} - d^\star
where:
- $\Theta^\star$ and $d^\star$ are the actual parameters,
- $\hat{\Theta}$ and $\hat{d}$ are the estimated parameters,
- $\tilde{\Theta}$ and $\tilde{d}$ are the estimation errors.
Proof of control law
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
rclcpp | |
geometry_msgs | |
nav_msgs | |
tf2 | |
vortex_msgs |
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dp_adapt_backs_controller at Robotics Stack Exchange
![]() |
dp_adapt_backs_controller package from vortex-auv repoauv_setup dp_adapt_backs_controller pid_controller_dp pid_controller_dp_euler velocity_controller_lqr ekf_pose_filtering pose_action_server los_guidance reference_filter_dp docking joystick_interface_auv thrust_allocator_auv thruster_interface_auv |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | MIT |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Software for guidance, navigation and control for the Vortex AUVs. Purpose built for competing in AUV/ROV competitions. |
Checkout URI | https://github.com/vortexntnu/vortex-auv.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-25 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | robot ubuntu ros finite-state-machine autonomous sensor-fusion auv robosub robot-localization motion-control pathplanning autonomous-robots vortex-auv |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- talhanc
Authors
DP Adaptive Backstepping Controller
This package implements a dynamic positioning (DP) Adaptive backstepping controller for the orca AUV. It estimates the linear and nonlinear damping using adaptive parameters, and compensates for uncertainties and disturbances in real-time in the same manner as a state estimator. The proof for this is done using Lyapunov functions and stability requirements to ensure convergence and stability.
Overview
- Uses the backstepping control method for position and orientation control
- Includes adaptive terms to account for unmodeled dynamics and uncertainties.
Model for AUV
\dot{\eta} = J(\eta)\nu,
M \dot{\nu} + C(\nu)\,\nu - F(\nu, \Theta^\star) = \tau + d^\star
- $\nu$: Body-fixed velocity vector
- $\eta$: Inertial position and orientation vector
- M: Constant mass-inertia matrix
- C($\eta$): Coriolis and centripetal terms
- J($\eta$): Transformation from body to inertial coordinates
- F($\nu$, $\Theta^\star$) = Y($\nu$) $\Theta^\star$: The damping assumed damping function (linear and nonlinear), where Y(*) describes the behaviour
- $d^\star$: Disturbance and uncertainties
File overview
-
dp_adapt_backs_controller.cpp/hpp
- The controller implementation
- Implements the main control input, sets gains, references, and mass parameters.
-
dp_adapt_backs_controller_utils.cpp/hpp
- Provides utility functions: skew-symmetric matrix generation, quaternion-to-Euler, Jacobian and some functions needed for the adaptive functions.
-
dp_adapt_backs_controller_ros.cpp/hpp
- ROS node wrapper for the controller, subscribing to pose, twist, killswitch, and reference topics.
- Publishes thrust commands.
-
dp_adapt_backs_controller_node.cpp
- Entry point for the ROS executable.
-
adapt_params.yaml
- Tunable controller parameters (K1, K2, adapt_gain, d_gain)
- Contains the mass matrix (6×6) and other physical parameters:
M =
\begin{bmatrix}
30.0 & 0.0 & 0.0 & \cdots \\
0.0 & 30.0 & \cdots & \cdots \\
0.0 & \cdots & 30.0 & \cdots \\
\cdots & \cdots & \cdots & \cdots
\end{bmatrix}
(partially shown for brevity)
This is also added into the orca.yaml file
-
CMakeLists.txt
- Build configuration, ROS 2 dependencies, executable generation, and installation setup.
Tuning Parameters
- K1 and K2: Gains for the backstepping control laws.
- adapt_gain: Adaptive gain for the linear and nonlinear damping.
- d_gain: Adaptive gain for the disturbances and uncertainties.
- M and I_b: Mass inertia matrix and rotational inertia.
- m: Vehicle mass.
Backstepping controller
Using the Lyapunov proof we get the following functions for the backstepping controller:
Backstepping variables
z_1 = \eta - \eta_d
z_2 = \nu - \alpha
where the $\alpha$ is defined as the function that stabilizes the $z_1$ variable in the Lyapunov function system.
Adaptive parameters
\tilde{\Theta} = \hat{\Theta} - \Theta^\star
\tilde{d} = \hat{d} - d^\star
where:
- $\Theta^\star$ and $d^\star$ are the actual parameters,
- $\hat{\Theta}$ and $\hat{d}$ are the estimated parameters,
- $\tilde{\Theta}$ and $\tilde{d}$ are the estimation errors.
Proof of control law
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
rclcpp | |
geometry_msgs | |
nav_msgs | |
tf2 | |
vortex_msgs |
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dp_adapt_backs_controller at Robotics Stack Exchange
![]() |
dp_adapt_backs_controller package from vortex-auv repoauv_setup dp_adapt_backs_controller pid_controller_dp pid_controller_dp_euler velocity_controller_lqr ekf_pose_filtering pose_action_server los_guidance reference_filter_dp docking joystick_interface_auv thrust_allocator_auv thruster_interface_auv |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | MIT |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Software for guidance, navigation and control for the Vortex AUVs. Purpose built for competing in AUV/ROV competitions. |
Checkout URI | https://github.com/vortexntnu/vortex-auv.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-25 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | robot ubuntu ros finite-state-machine autonomous sensor-fusion auv robosub robot-localization motion-control pathplanning autonomous-robots vortex-auv |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- talhanc
Authors
DP Adaptive Backstepping Controller
This package implements a dynamic positioning (DP) Adaptive backstepping controller for the orca AUV. It estimates the linear and nonlinear damping using adaptive parameters, and compensates for uncertainties and disturbances in real-time in the same manner as a state estimator. The proof for this is done using Lyapunov functions and stability requirements to ensure convergence and stability.
Overview
- Uses the backstepping control method for position and orientation control
- Includes adaptive terms to account for unmodeled dynamics and uncertainties.
Model for AUV
\dot{\eta} = J(\eta)\nu,
M \dot{\nu} + C(\nu)\,\nu - F(\nu, \Theta^\star) = \tau + d^\star
- $\nu$: Body-fixed velocity vector
- $\eta$: Inertial position and orientation vector
- M: Constant mass-inertia matrix
- C($\eta$): Coriolis and centripetal terms
- J($\eta$): Transformation from body to inertial coordinates
- F($\nu$, $\Theta^\star$) = Y($\nu$) $\Theta^\star$: The damping assumed damping function (linear and nonlinear), where Y(*) describes the behaviour
- $d^\star$: Disturbance and uncertainties
File overview
-
dp_adapt_backs_controller.cpp/hpp
- The controller implementation
- Implements the main control input, sets gains, references, and mass parameters.
-
dp_adapt_backs_controller_utils.cpp/hpp
- Provides utility functions: skew-symmetric matrix generation, quaternion-to-Euler, Jacobian and some functions needed for the adaptive functions.
-
dp_adapt_backs_controller_ros.cpp/hpp
- ROS node wrapper for the controller, subscribing to pose, twist, killswitch, and reference topics.
- Publishes thrust commands.
-
dp_adapt_backs_controller_node.cpp
- Entry point for the ROS executable.
-
adapt_params.yaml
- Tunable controller parameters (K1, K2, adapt_gain, d_gain)
- Contains the mass matrix (6×6) and other physical parameters:
M =
\begin{bmatrix}
30.0 & 0.0 & 0.0 & \cdots \\
0.0 & 30.0 & \cdots & \cdots \\
0.0 & \cdots & 30.0 & \cdots \\
\cdots & \cdots & \cdots & \cdots
\end{bmatrix}
(partially shown for brevity)
This is also added into the orca.yaml file
-
CMakeLists.txt
- Build configuration, ROS 2 dependencies, executable generation, and installation setup.
Tuning Parameters
- K1 and K2: Gains for the backstepping control laws.
- adapt_gain: Adaptive gain for the linear and nonlinear damping.
- d_gain: Adaptive gain for the disturbances and uncertainties.
- M and I_b: Mass inertia matrix and rotational inertia.
- m: Vehicle mass.
Backstepping controller
Using the Lyapunov proof we get the following functions for the backstepping controller:
Backstepping variables
z_1 = \eta - \eta_d
z_2 = \nu - \alpha
where the $\alpha$ is defined as the function that stabilizes the $z_1$ variable in the Lyapunov function system.
Adaptive parameters
\tilde{\Theta} = \hat{\Theta} - \Theta^\star
\tilde{d} = \hat{d} - d^\star
where:
- $\Theta^\star$ and $d^\star$ are the actual parameters,
- $\hat{\Theta}$ and $\hat{d}$ are the estimated parameters,
- $\tilde{\Theta}$ and $\tilde{d}$ are the estimation errors.
Proof of control law
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
rclcpp | |
geometry_msgs | |
nav_msgs | |
tf2 | |
vortex_msgs |
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dp_adapt_backs_controller at Robotics Stack Exchange
![]() |
dp_adapt_backs_controller package from vortex-auv repoauv_setup dp_adapt_backs_controller pid_controller_dp pid_controller_dp_euler velocity_controller_lqr ekf_pose_filtering pose_action_server los_guidance reference_filter_dp docking joystick_interface_auv thrust_allocator_auv thruster_interface_auv |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | MIT |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Software for guidance, navigation and control for the Vortex AUVs. Purpose built for competing in AUV/ROV competitions. |
Checkout URI | https://github.com/vortexntnu/vortex-auv.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-25 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | robot ubuntu ros finite-state-machine autonomous sensor-fusion auv robosub robot-localization motion-control pathplanning autonomous-robots vortex-auv |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- talhanc
Authors
DP Adaptive Backstepping Controller
This package implements a dynamic positioning (DP) Adaptive backstepping controller for the orca AUV. It estimates the linear and nonlinear damping using adaptive parameters, and compensates for uncertainties and disturbances in real-time in the same manner as a state estimator. The proof for this is done using Lyapunov functions and stability requirements to ensure convergence and stability.
Overview
- Uses the backstepping control method for position and orientation control
- Includes adaptive terms to account for unmodeled dynamics and uncertainties.
Model for AUV
\dot{\eta} = J(\eta)\nu,
M \dot{\nu} + C(\nu)\,\nu - F(\nu, \Theta^\star) = \tau + d^\star
- $\nu$: Body-fixed velocity vector
- $\eta$: Inertial position and orientation vector
- M: Constant mass-inertia matrix
- C($\eta$): Coriolis and centripetal terms
- J($\eta$): Transformation from body to inertial coordinates
- F($\nu$, $\Theta^\star$) = Y($\nu$) $\Theta^\star$: The damping assumed damping function (linear and nonlinear), where Y(*) describes the behaviour
- $d^\star$: Disturbance and uncertainties
File overview
-
dp_adapt_backs_controller.cpp/hpp
- The controller implementation
- Implements the main control input, sets gains, references, and mass parameters.
-
dp_adapt_backs_controller_utils.cpp/hpp
- Provides utility functions: skew-symmetric matrix generation, quaternion-to-Euler, Jacobian and some functions needed for the adaptive functions.
-
dp_adapt_backs_controller_ros.cpp/hpp
- ROS node wrapper for the controller, subscribing to pose, twist, killswitch, and reference topics.
- Publishes thrust commands.
-
dp_adapt_backs_controller_node.cpp
- Entry point for the ROS executable.
-
adapt_params.yaml
- Tunable controller parameters (K1, K2, adapt_gain, d_gain)
- Contains the mass matrix (6×6) and other physical parameters:
M =
\begin{bmatrix}
30.0 & 0.0 & 0.0 & \cdots \\
0.0 & 30.0 & \cdots & \cdots \\
0.0 & \cdots & 30.0 & \cdots \\
\cdots & \cdots & \cdots & \cdots
\end{bmatrix}
(partially shown for brevity)
This is also added into the orca.yaml file
-
CMakeLists.txt
- Build configuration, ROS 2 dependencies, executable generation, and installation setup.
Tuning Parameters
- K1 and K2: Gains for the backstepping control laws.
- adapt_gain: Adaptive gain for the linear and nonlinear damping.
- d_gain: Adaptive gain for the disturbances and uncertainties.
- M and I_b: Mass inertia matrix and rotational inertia.
- m: Vehicle mass.
Backstepping controller
Using the Lyapunov proof we get the following functions for the backstepping controller:
Backstepping variables
z_1 = \eta - \eta_d
z_2 = \nu - \alpha
where the $\alpha$ is defined as the function that stabilizes the $z_1$ variable in the Lyapunov function system.
Adaptive parameters
\tilde{\Theta} = \hat{\Theta} - \Theta^\star
\tilde{d} = \hat{d} - d^\star
where:
- $\Theta^\star$ and $d^\star$ are the actual parameters,
- $\hat{\Theta}$ and $\hat{d}$ are the estimated parameters,
- $\tilde{\Theta}$ and $\tilde{d}$ are the estimation errors.
Proof of control law
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
rclcpp | |
geometry_msgs | |
nav_msgs | |
tf2 | |
vortex_msgs |
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dp_adapt_backs_controller at Robotics Stack Exchange
![]() |
dp_adapt_backs_controller package from vortex-auv repoauv_setup dp_adapt_backs_controller pid_controller_dp pid_controller_dp_euler velocity_controller_lqr ekf_pose_filtering pose_action_server los_guidance reference_filter_dp docking joystick_interface_auv thrust_allocator_auv thruster_interface_auv |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | MIT |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Software for guidance, navigation and control for the Vortex AUVs. Purpose built for competing in AUV/ROV competitions. |
Checkout URI | https://github.com/vortexntnu/vortex-auv.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-25 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | robot ubuntu ros finite-state-machine autonomous sensor-fusion auv robosub robot-localization motion-control pathplanning autonomous-robots vortex-auv |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- talhanc
Authors
DP Adaptive Backstepping Controller
This package implements a dynamic positioning (DP) Adaptive backstepping controller for the orca AUV. It estimates the linear and nonlinear damping using adaptive parameters, and compensates for uncertainties and disturbances in real-time in the same manner as a state estimator. The proof for this is done using Lyapunov functions and stability requirements to ensure convergence and stability.
Overview
- Uses the backstepping control method for position and orientation control
- Includes adaptive terms to account for unmodeled dynamics and uncertainties.
Model for AUV
\dot{\eta} = J(\eta)\nu,
M \dot{\nu} + C(\nu)\,\nu - F(\nu, \Theta^\star) = \tau + d^\star
- $\nu$: Body-fixed velocity vector
- $\eta$: Inertial position and orientation vector
- M: Constant mass-inertia matrix
- C($\eta$): Coriolis and centripetal terms
- J($\eta$): Transformation from body to inertial coordinates
- F($\nu$, $\Theta^\star$) = Y($\nu$) $\Theta^\star$: The damping assumed damping function (linear and nonlinear), where Y(*) describes the behaviour
- $d^\star$: Disturbance and uncertainties
File overview
-
dp_adapt_backs_controller.cpp/hpp
- The controller implementation
- Implements the main control input, sets gains, references, and mass parameters.
-
dp_adapt_backs_controller_utils.cpp/hpp
- Provides utility functions: skew-symmetric matrix generation, quaternion-to-Euler, Jacobian and some functions needed for the adaptive functions.
-
dp_adapt_backs_controller_ros.cpp/hpp
- ROS node wrapper for the controller, subscribing to pose, twist, killswitch, and reference topics.
- Publishes thrust commands.
-
dp_adapt_backs_controller_node.cpp
- Entry point for the ROS executable.
-
adapt_params.yaml
- Tunable controller parameters (K1, K2, adapt_gain, d_gain)
- Contains the mass matrix (6×6) and other physical parameters:
M =
\begin{bmatrix}
30.0 & 0.0 & 0.0 & \cdots \\
0.0 & 30.0 & \cdots & \cdots \\
0.0 & \cdots & 30.0 & \cdots \\
\cdots & \cdots & \cdots & \cdots
\end{bmatrix}
(partially shown for brevity)
This is also added into the orca.yaml file
-
CMakeLists.txt
- Build configuration, ROS 2 dependencies, executable generation, and installation setup.
Tuning Parameters
- K1 and K2: Gains for the backstepping control laws.
- adapt_gain: Adaptive gain for the linear and nonlinear damping.
- d_gain: Adaptive gain for the disturbances and uncertainties.
- M and I_b: Mass inertia matrix and rotational inertia.
- m: Vehicle mass.
Backstepping controller
Using the Lyapunov proof we get the following functions for the backstepping controller:
Backstepping variables
z_1 = \eta - \eta_d
z_2 = \nu - \alpha
where the $\alpha$ is defined as the function that stabilizes the $z_1$ variable in the Lyapunov function system.
Adaptive parameters
\tilde{\Theta} = \hat{\Theta} - \Theta^\star
\tilde{d} = \hat{d} - d^\star
where:
- $\Theta^\star$ and $d^\star$ are the actual parameters,
- $\hat{\Theta}$ and $\hat{d}$ are the estimated parameters,
- $\tilde{\Theta}$ and $\tilde{d}$ are the estimation errors.
Proof of control law
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
rclcpp | |
geometry_msgs | |
nav_msgs | |
tf2 | |
vortex_msgs |
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dp_adapt_backs_controller at Robotics Stack Exchange
![]() |
dp_adapt_backs_controller package from vortex-auv repoauv_setup dp_adapt_backs_controller pid_controller_dp pid_controller_dp_euler velocity_controller_lqr ekf_pose_filtering pose_action_server los_guidance reference_filter_dp docking joystick_interface_auv thrust_allocator_auv thruster_interface_auv |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | MIT |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Software for guidance, navigation and control for the Vortex AUVs. Purpose built for competing in AUV/ROV competitions. |
Checkout URI | https://github.com/vortexntnu/vortex-auv.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-25 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | robot ubuntu ros finite-state-machine autonomous sensor-fusion auv robosub robot-localization motion-control pathplanning autonomous-robots vortex-auv |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- talhanc
Authors
DP Adaptive Backstepping Controller
This package implements a dynamic positioning (DP) Adaptive backstepping controller for the orca AUV. It estimates the linear and nonlinear damping using adaptive parameters, and compensates for uncertainties and disturbances in real-time in the same manner as a state estimator. The proof for this is done using Lyapunov functions and stability requirements to ensure convergence and stability.
Overview
- Uses the backstepping control method for position and orientation control
- Includes adaptive terms to account for unmodeled dynamics and uncertainties.
Model for AUV
\dot{\eta} = J(\eta)\nu,
M \dot{\nu} + C(\nu)\,\nu - F(\nu, \Theta^\star) = \tau + d^\star
- $\nu$: Body-fixed velocity vector
- $\eta$: Inertial position and orientation vector
- M: Constant mass-inertia matrix
- C($\eta$): Coriolis and centripetal terms
- J($\eta$): Transformation from body to inertial coordinates
- F($\nu$, $\Theta^\star$) = Y($\nu$) $\Theta^\star$: The damping assumed damping function (linear and nonlinear), where Y(*) describes the behaviour
- $d^\star$: Disturbance and uncertainties
File overview
-
dp_adapt_backs_controller.cpp/hpp
- The controller implementation
- Implements the main control input, sets gains, references, and mass parameters.
-
dp_adapt_backs_controller_utils.cpp/hpp
- Provides utility functions: skew-symmetric matrix generation, quaternion-to-Euler, Jacobian and some functions needed for the adaptive functions.
-
dp_adapt_backs_controller_ros.cpp/hpp
- ROS node wrapper for the controller, subscribing to pose, twist, killswitch, and reference topics.
- Publishes thrust commands.
-
dp_adapt_backs_controller_node.cpp
- Entry point for the ROS executable.
-
adapt_params.yaml
- Tunable controller parameters (K1, K2, adapt_gain, d_gain)
- Contains the mass matrix (6×6) and other physical parameters:
M =
\begin{bmatrix}
30.0 & 0.0 & 0.0 & \cdots \\
0.0 & 30.0 & \cdots & \cdots \\
0.0 & \cdots & 30.0 & \cdots \\
\cdots & \cdots & \cdots & \cdots
\end{bmatrix}
(partially shown for brevity)
This is also added into the orca.yaml file
-
CMakeLists.txt
- Build configuration, ROS 2 dependencies, executable generation, and installation setup.
Tuning Parameters
- K1 and K2: Gains for the backstepping control laws.
- adapt_gain: Adaptive gain for the linear and nonlinear damping.
- d_gain: Adaptive gain for the disturbances and uncertainties.
- M and I_b: Mass inertia matrix and rotational inertia.
- m: Vehicle mass.
Backstepping controller
Using the Lyapunov proof we get the following functions for the backstepping controller:
Backstepping variables
z_1 = \eta - \eta_d
z_2 = \nu - \alpha
where the $\alpha$ is defined as the function that stabilizes the $z_1$ variable in the Lyapunov function system.
Adaptive parameters
\tilde{\Theta} = \hat{\Theta} - \Theta^\star
\tilde{d} = \hat{d} - d^\star
where:
- $\Theta^\star$ and $d^\star$ are the actual parameters,
- $\hat{\Theta}$ and $\hat{d}$ are the estimated parameters,
- $\tilde{\Theta}$ and $\tilde{d}$ are the estimation errors.
Proof of control law
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
rclcpp | |
geometry_msgs | |
nav_msgs | |
tf2 | |
vortex_msgs |
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dp_adapt_backs_controller at Robotics Stack Exchange
![]() |
dp_adapt_backs_controller package from vortex-auv repoauv_setup dp_adapt_backs_controller pid_controller_dp pid_controller_dp_euler velocity_controller_lqr ekf_pose_filtering pose_action_server los_guidance reference_filter_dp docking joystick_interface_auv thrust_allocator_auv thruster_interface_auv |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | MIT |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Software for guidance, navigation and control for the Vortex AUVs. Purpose built for competing in AUV/ROV competitions. |
Checkout URI | https://github.com/vortexntnu/vortex-auv.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-25 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | robot ubuntu ros finite-state-machine autonomous sensor-fusion auv robosub robot-localization motion-control pathplanning autonomous-robots vortex-auv |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- talhanc
Authors
DP Adaptive Backstepping Controller
This package implements a dynamic positioning (DP) Adaptive backstepping controller for the orca AUV. It estimates the linear and nonlinear damping using adaptive parameters, and compensates for uncertainties and disturbances in real-time in the same manner as a state estimator. The proof for this is done using Lyapunov functions and stability requirements to ensure convergence and stability.
Overview
- Uses the backstepping control method for position and orientation control
- Includes adaptive terms to account for unmodeled dynamics and uncertainties.
Model for AUV
\dot{\eta} = J(\eta)\nu,
M \dot{\nu} + C(\nu)\,\nu - F(\nu, \Theta^\star) = \tau + d^\star
- $\nu$: Body-fixed velocity vector
- $\eta$: Inertial position and orientation vector
- M: Constant mass-inertia matrix
- C($\eta$): Coriolis and centripetal terms
- J($\eta$): Transformation from body to inertial coordinates
- F($\nu$, $\Theta^\star$) = Y($\nu$) $\Theta^\star$: The damping assumed damping function (linear and nonlinear), where Y(*) describes the behaviour
- $d^\star$: Disturbance and uncertainties
File overview
-
dp_adapt_backs_controller.cpp/hpp
- The controller implementation
- Implements the main control input, sets gains, references, and mass parameters.
-
dp_adapt_backs_controller_utils.cpp/hpp
- Provides utility functions: skew-symmetric matrix generation, quaternion-to-Euler, Jacobian and some functions needed for the adaptive functions.
-
dp_adapt_backs_controller_ros.cpp/hpp
- ROS node wrapper for the controller, subscribing to pose, twist, killswitch, and reference topics.
- Publishes thrust commands.
-
dp_adapt_backs_controller_node.cpp
- Entry point for the ROS executable.
-
adapt_params.yaml
- Tunable controller parameters (K1, K2, adapt_gain, d_gain)
- Contains the mass matrix (6×6) and other physical parameters:
M =
\begin{bmatrix}
30.0 & 0.0 & 0.0 & \cdots \\
0.0 & 30.0 & \cdots & \cdots \\
0.0 & \cdots & 30.0 & \cdots \\
\cdots & \cdots & \cdots & \cdots
\end{bmatrix}
(partially shown for brevity)
This is also added into the orca.yaml file
-
CMakeLists.txt
- Build configuration, ROS 2 dependencies, executable generation, and installation setup.
Tuning Parameters
- K1 and K2: Gains for the backstepping control laws.
- adapt_gain: Adaptive gain for the linear and nonlinear damping.
- d_gain: Adaptive gain for the disturbances and uncertainties.
- M and I_b: Mass inertia matrix and rotational inertia.
- m: Vehicle mass.
Backstepping controller
Using the Lyapunov proof we get the following functions for the backstepping controller:
Backstepping variables
z_1 = \eta - \eta_d
z_2 = \nu - \alpha
where the $\alpha$ is defined as the function that stabilizes the $z_1$ variable in the Lyapunov function system.
Adaptive parameters
\tilde{\Theta} = \hat{\Theta} - \Theta^\star
\tilde{d} = \hat{d} - d^\star
where:
- $\Theta^\star$ and $d^\star$ are the actual parameters,
- $\hat{\Theta}$ and $\hat{d}$ are the estimated parameters,
- $\tilde{\Theta}$ and $\tilde{d}$ are the estimation errors.
Proof of control law
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
rclcpp | |
geometry_msgs | |
nav_msgs | |
tf2 | |
vortex_msgs |
System Dependencies
Name |
---|
eigen |