Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
329 commits
Select commit Hold shift + click to select a range
b4aefb9
fix: update type aliases for Eta and Nu to use Pose and Twist
ppakr Feb 5, 2026
5d31409
Added NMPC, functioning. Sinus references
Henrimha Feb 9, 2026
2bd2c4e
Add stoping msg publishes when goal reached
anbit-adhi Feb 11, 2026
52c919f
Add a square test script
anbit-adhi Feb 16, 2026
11e8d60
Fix Cmake problome for squaretest
anbit-adhi Feb 16, 2026
30568ab
Fix adaptive param lag
anbit-adhi Feb 16, 2026
f8e4c23
feat: added the math and setup of the ESKF, need some changes
Talhanc Feb 9, 2025
d11a267
feat: added in the IMU msg and DVL msg, pluss ros2 setup
Talhanc Feb 10, 2025
648e39f
feat: added ES-UKF filter
Talhanc Feb 21, 2025
59164c3
feat: added UKF fix injection step
Talhanc Feb 27, 2025
b5e1453
feat: working ukf filter is added, some issue in the ESUKF
Talhanc Mar 9, 2025
707c4f4
added in some changes to eskf and the ukf algorithm
Talhanc Mar 14, 2025
3861aab
added test script
Talhanc Mar 14, 2025
2ede07e
fixed some errors, code runs from eskf_test now
Talhanc Mar 14, 2025
60e533e
added changes to ukf
Talhanc Mar 20, 2025
b569a60
feat: Added ESKF in cpp using .hpp and .cpp, current implementation u…
Talhanc Mar 28, 2025
f0ccaf0
fix: Added correction for the IMU measurements
Talhanc Apr 2, 2025
db879db
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Apr 3, 2025
b0e97bd
refactor: remove python eskf
Talhanc Apr 3, 2025
32e2d66
fix: added errorstate and nominalstate variables into the eskf class
Talhanc Apr 5, 2025
ed91667
feat: modified imu correction and added in tested imu noise
Talhanc Apr 17, 2025
c5f443e
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Apr 17, 2025
3bf8b94
feat: added NIS plots
Talhanc May 8, 2025
10c8ec9
fix: issues in innovation and jacobian of the measurement
Talhanc May 13, 2025
e08ef73
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 13, 2025
4078d43
feat: Adding in the TUKF and the UKF
Talhanc May 14, 2025
338bb9e
fix: added tukf and simulation
Talhanc May 18, 2025
7a88044
fix:added in some minor fixes
Talhanc May 20, 2025
017a1f8
added the cpp code
Talhanc May 30, 2025
723da45
fix: removing tukf and some errors in eskf
Talhanc Oct 5, 2025
1d34174
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 5, 2025
9f9c916
ci: add node test for eskf
Andeshog Oct 7, 2025
587137d
feat: Added fancy text for starting filter
Talhanc Oct 7, 2025
f3b1429
fix: moved the fancy text variable outside the initiation
Talhanc Oct 7, 2025
0659e42
Fixed some of the suggested comments, add debug flag
AhmedBorch Oct 15, 2025
15dd969
updating the published topic name
AhmedBorch Oct 19, 2025
fe06684
implemented the sensor concept requirement, added eskf.tpp so that I …
AhmedBorch Oct 19, 2025
c1275ef
removed gravity from the state vector and put it seperately for effic…
AhmedBorch Oct 26, 2025
4c869db
added code for errors and for covariance publishing
AhmedBorch Nov 5, 2025
2b340d8
added the modifications from Talha's branch /dev/auv-navigation-eskf …
AhmedBorch Nov 9, 2025
9771158
removed unused variable and old comment
AhmedBorch Nov 9, 2025
e7e6450
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Nov 9, 2025
ed87ce6
clang-format fix
AhmedBorch Jan 5, 2026
8e9fb52
ament_cpplint fixes
AhmedBorch Jan 5, 2026
56fbccc
missing dependency
AhmedBorch Jan 5, 2026
03f2dae
updating yaml, P(cov) is 15*15 now
AhmedBorch Jan 5, 2026
ec0ffcf
update for the separate vortex_utils
AhmedBorch Jan 5, 2026
08b88d2
puting the covariance in the odom msg. Fixing the orientation for IMU…
AhmedBorch Jan 16, 2026
0ea28f0
clnag-format fix
AhmedBorch Jan 16, 2026
c945ab8
code for debugging+NEES/RMSE test file + fix for odom ang vel output
AhmedBorch Feb 6, 2026
e9c9e78
removing debugging topics, fixing the initial orientation, and the ro…
AhmedBorch Feb 10, 2026
99a506b
fixes for review findings
AhmedBorch Feb 18, 2026
0e6621d
fixes for pre-commit
AhmedBorch Feb 18, 2026
e7cdcf9
Merge remote-tracking branch 'origin/main' into dp-quaternion-control
ppakr Feb 21, 2026
2d71411
fix: add vortex_utils_ros to target dependencies
ppakr Feb 21, 2026
afab550
refactor: remove debug parameters and logging from PID controller imp…
ppakr Feb 21, 2026
f1df4f7
feat: transform joystick inputs from body frame to world frame in mov…
ppakr Feb 21, 2026
386fd99
fix: update PID parameters and joystick interface
ppakr Feb 21, 2026
73b460c
Add tuning parameters
anbit-adhi Feb 22, 2026
bb54545
Merge branch 'main' into anbit/guidance
anbit-adhi Feb 22, 2026
29a5709
merge main updates into this branch
anbit-adhi Feb 22, 2026
76f803e
Add tuned parameters
anbit-adhi Feb 24, 2026
6ecdc9f
Fix vector feild simulation issues
anbit-adhi Feb 24, 2026
574b64c
fixes for pre-commit
AhmedBorch Feb 18, 2026
a5287ad
Added the transaltion parameters of imu,dvl, and depth_sensor. Added …
AhmedBorch Feb 25, 2026
de9098e
merging main
AhmedBorch Feb 25, 2026
59f0835
Switching dvl to the actual simulated topic. Removing duplicate lines…
AhmedBorch Feb 25, 2026
4c59e21
Added acados NMPC, ill conditioned needs fixing
Henrimha Feb 25, 2026
b71f62c
Merge remote-tracking branch 'origin' into anbit/guidance
anbit-adhi Feb 25, 2026
3a10402
no longer numericly unstable, just numericly wrong
Henrimha Mar 1, 2026
013db77
adding the effect from translation of dvl and imu frames
AhmedBorch Mar 2, 2026
1801343
fixing dvl rotation matrix, publishing vel in body frame
AhmedBorch Mar 2, 2026
7c72929
docs: update docs
ppakr Mar 6, 2026
9fe9af2
Merge remote-tracking branch 'origin/main' into dp-quaternion-control
ppakr Mar 6, 2026
17d89c9
Clean code and readMe draft
anbit-adhi Mar 8, 2026
374230a
ReadMe draft
anbit-adhi Mar 8, 2026
853741d
add changes to readMe file
anbit-adhi Mar 8, 2026
2476ace
Add more stuff in readme-file
anbit-adhi Mar 8, 2026
0f4094a
fix pre-commit issues
anbit-adhi Mar 8, 2026
a8bf5b4
Fix pre-commit header issues
anbit-adhi Mar 8, 2026
820694d
Merge remote-tracking branch 'origin' into anbit/guidance
anbit-adhi Mar 8, 2026
bdb00db
fix build error
anbit-adhi Mar 8, 2026
1d8df3a
Fixed LQR controller, signs, refactored into scripts folder, tried to…
Henrimha Mar 9, 2026
4beeab0
Changed how one verifies the control output from LQR
Henrimha Mar 9, 2026
c8a1da7
Fix issues with new operation_manager
anbit-adhi Mar 9, 2026
a2927ad
Add clamp for pitch
anbit-adhi Mar 9, 2026
7f7fdde
Fix some duplicate issues
anbit-adhi Mar 9, 2026
f64e566
Fix max_pitch to 55 degres
anbit-adhi Mar 9, 2026
bf97597
Merge remote-tracking branch 'origin/main' into dp-quaternion-control
ppakr Mar 11, 2026
d97c0f2
refactor: remove commented-out PID parameter arrays from pid_params.yaml
ppakr Mar 11, 2026
d69fed6
docs(controller): update readme
ppakr Mar 11, 2026
4509286
Merge branch 'main' into anbit/guidance
anbit-adhi Mar 12, 2026
7a39ece
Fix: merge issiue
anbit-adhi Mar 12, 2026
dadc5cc
Merge branch 'main' into dev/eskf_fuse_depth
AhmedBorch Mar 15, 2026
748dae7
Merge remote-tracking branch 'origin/main' into dev/eskf_fuse_depth
AhmedBorch Mar 15, 2026
d00ffd1
changing dvl input and params use based on latest changes in simulati…
AhmedBorch Mar 15, 2026
3841172
Merge remote-tracking branch 'origin' into anbit/guidance
anbit-adhi Mar 15, 2026
0431417
Start: Test libraary for los
anbit-adhi Mar 16, 2026
ae31273
Merge remote-tracking branch 'origin/Henrik/velocity_control' into au…
anbit-adhi Mar 16, 2026
f495f8b
Initial fixes
Henrimha Mar 16, 2026
2e73cff
changed to lifecycle node
Henrimha Mar 19, 2026
b6f144b
changed to global parameter file
Henrimha Mar 19, 2026
c6a2047
Changed more to global paramter file
Henrimha Mar 19, 2026
4818dae
removed unneccessary parameters
Henrimha Mar 19, 2026
9a560f7
refactor: update message types in PID controller to use Odom as input…
ppakr Mar 21, 2026
ae83763
Merge remote-tracking branch 'origin/main' into dp-quaternion-control
ppakr Mar 21, 2026
2d347c2
init package structure
jorgenfj Mar 21, 2026
03289be
update waypoint utils to quat
jorgenfj Mar 21, 2026
acb05b4
refernce filter quat implementation
jorgenfj Mar 21, 2026
c71c094
RPY reference testing publisher
jorgenfj Mar 21, 2026
e0b29a5
sim test for quat ref filter
jorgenfj Mar 21, 2026
7b3eaf2
update pkg maintainer :)
jorgenfj Mar 21, 2026
217831a
add reference quat sim test to workflow
jorgenfj Mar 21, 2026
beb0b70
helpers for step function
jorgenfj Mar 22, 2026
ef4517e
Add: Diffrent test scenraios for autopilot test
anbit-adhi Mar 23, 2026
1a9af09
changed State overload with msg_ptr, added reset function, changed re…
Henrimha Mar 23, 2026
c4e0770
changed the PID class, better interface and more checks
Henrimha Mar 23, 2026
44de4c7
set new controller in launch file
Henrimha Mar 23, 2026
77c69e2
Merge remote-tracking branch 'origin' into Henrik/velocity_control
Henrimha Mar 23, 2026
17b261c
changed autopilot global launch file to Composable Node
Henrimha Mar 23, 2026
94b1d70
changed launch files, works now
Henrimha Mar 24, 2026
5b68001
minor bug fixes
Henrimha Mar 24, 2026
b29e76d
untracked som files
Henrimha Mar 24, 2026
ff2cdc5
added autostart and odometry dropout checks
Henrimha Mar 24, 2026
07b3737
seperate config files for seperate drones, and PID parameters from co…
Henrimha Mar 24, 2026
0acc8cb
preparing to merge changes to autopilot branch and branch for pushing…
Henrimha Mar 24, 2026
32a51d2
more changes to prepare for merges
Henrimha Mar 24, 2026
a06855f
more changes to prepare for merges
Henrimha Mar 24, 2026
7ec9873
Add: Slowing down while reaching the goal
anbit-adhi Mar 24, 2026
52b958b
idk what this is
Henrimha Mar 24, 2026
b9e2d8a
Autopilot new start
anbit-adhi Mar 24, 2026
b61a37a
new fixes
Henrimha Mar 24, 2026
b965ebd
Fix: Issues with slowdown function
anbit-adhi Mar 24, 2026
6b5b275
Merge branch 'main' into anbit/guidance
anbit-adhi Mar 24, 2026
bcd49aa
Merge with main
anbit-adhi Mar 24, 2026
e4db24b
fix slowing issue
anbit-adhi Mar 24, 2026
5d766b2
Pre-commit check and changes
anbit-adhi Mar 24, 2026
3e6f6f1
fixed error calculation, and NED to body calculation
Henrimha Mar 24, 2026
df6aab0
Some cleanup in LQR, ros, and added PID external error
Henrimha Mar 25, 2026
182688f
changed the file system so that test files is only built when testing
Henrimha Mar 25, 2026
8d2707a
Edit in read me
anbit-adhi Mar 25, 2026
e7a3eaa
cleaned up the program for push
Henrimha Mar 25, 2026
f4d9c57
Cleaned up a bit more, removed comments, Guidance_values class and LQ…
Henrimha Mar 25, 2026
c018821
Added ReadMe file
Henrimha Mar 25, 2026
a74fd95
Final changes before PR
anbit-adhi Mar 25, 2026
b7e6903
Merge branch 'main' into anbit/guidance
anbit-adhi Mar 25, 2026
86c6f3b
Add: New simulation test
anbit-adhi Mar 25, 2026
bf60cb3
Final Final changes for PR
anbit-adhi Mar 25, 2026
8ac7b2b
FInal FInal Final change before PR
anbit-adhi Mar 25, 2026
a0cc075
Finally Final changes before PR
anbit-adhi Mar 25, 2026
ffff21f
rebase
jorgenfj Mar 25, 2026
0eb1234
waypoint sim test wrapper scripts
jorgenfj Mar 25, 2026
d23e4c4
feat: convert from i2c to uart
forrisdahl Mar 26, 2026
26aae1b
feat: add correct create packet and correct sending for testing
forrisdahl Mar 26, 2026
f2949ef
fix: wrong name
forrisdahl Mar 26, 2026
a4f3d6a
fix: lookup table error on create packet function
forrisdahl Mar 26, 2026
c8028f0
Merge remote-tracking branch 'origin/main' into anbit/guidance
anbit-adhi Mar 26, 2026
7c9c4f3
Fix: errror in launch file
anbit-adhi Mar 26, 2026
94dbf07
Merge remote-tracking branch 'origin/main' into anbit/guidance
anbit-adhi Mar 26, 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
76033a6
Merge branch 'dev/eskf_fuse_depth' into easter-testing-2026
jorgenfj Mar 27, 2026
0a4a35d
Merge branch 'dp-quaternion-control' into easter-testing-2026
jorgenfj Mar 27, 2026
2cab3e3
Merge branch 'anbit/guidance' into easter-testing-2026
jorgenfj Mar 27, 2026
04f63ad
Merge branch 'main' into feat/new-default-drone
jorgenfj Mar 27, 2026
5fd26d3
Merge branch 'tmp/reference-filter-quat' into easter-testing-2026
jorgenfj Mar 27, 2026
24fe5eb
Merge branch 'refactor/thruster' into easter-testing-2026
jorgenfj Mar 27, 2026
d710cc7
remove control toolbox from package.xml
jorgenfj Mar 27, 2026
97c8003
added install_ct script
jorgenfj Mar 27, 2026
e0e9ab1
remove ct from dep.repos. Use install script instead
jorgenfj Mar 27, 2026
4ac866b
convert los guidance to composable node
jorgenfj Mar 27, 2026
debb334
velocity_controller composable node
jorgenfj Mar 27, 2026
bd74b5f
fix autopilot launch
jorgenfj Mar 27, 2026
da2a485
remove feedback from LOS guidance action
jorgenfj Mar 27, 2026
059a22e
remove reference feedback from waypoint manager action
jorgenfj Mar 27, 2026
2cf9f6f
ref_quat remove waypoint_utils and ref feedback
jorgenfj Mar 27, 2026
aa900c9
ref_RPY remove feedback
jorgenfj Mar 27, 2026
7458952
use local WaypointEuler type
jorgenfj Mar 27, 2026
155a7db
eskf remove stonefish dependency
jorgenfj Mar 27, 2026
ba978f2
eskf actually remove stonefish dep
jorgenfj Mar 27, 2026
fe941b2
update tf2 lookups
jorgenfj Mar 27, 2026
82cb900
update default ip launch config
jorgenfj Mar 27, 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
64c24b7
ESKF: pose and twist publishers
jorgenfj Mar 28, 2026
612ae6e
simple odom publisher
jorgenfj Mar 28, 2026
1401dfb
update config with thruster mapping
jorgenfj Mar 29, 2026
d3c6d6b
fix utility asio include bug
jorgenfj Mar 29, 2026
2432f8d
add solver type to thrusters.launch
jorgenfj Mar 29, 2026
a380ab4
update state estimation launch with nortek updates
jorgenfj Mar 29, 2026
fb39d7e
nortek odom transformer launch file
jorgenfj Mar 29, 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
5df6781
updated thruster mapping, 6-7 swapped
vortexuser Mar 30, 2026
7d85966
fix state_est launch, update eskf pub rate to 5ms
vortexuser Mar 30, 2026
c2ac163
ESKF: added 'add_gravity_to_imu' arg
jorgenfj Mar 30, 2026
0377aff
move nucleus_odom_transformer to auv_setup
jorgenfj Mar 30, 2026
fb28b46
added tf2 launch pub to state estimation launch
jorgenfj Mar 30, 2026
1bc4db8
thruster interface uart config update
vortexuser Mar 30, 2026
59c2f5f
ESKF: initial nominal bias config
jorgenfj Mar 30, 2026
928e938
print initial bias values
jorgenfj Mar 30, 2026
17d55cd
ESKF: fix set imu translation
jorgenfj Mar 30, 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
d6eaa21
added the depth sensor, with some modifications related to the imu calib
AhmedBorch Mar 31, 2026
14772e8
fixing problem with environment params
AhmedBorch Mar 31, 2026
1f6cb36
thrust pwm: clamp to publish neutral pwn
jorgenfj Mar 31, 2026
8481728
Finished the Lyapunov proof for the controller, and will upload it to…
Q3rkses Mar 31, 2026
ecdb27e
fixed
Q3rkses Mar 29, 2026
d075b62
update imu tf
jorgenfj Mar 31, 2026
af998be
Feat/solver and drone sim tests (#699)
jorgenfj Mar 28, 2026
e51e3d8
claude fix dp to be composable with ref filter
Q3rkses Apr 1, 2026
0a19b4e
fixed merge conflict
Q3rkses Apr 1, 2026
77f50d1
changed to eskf topic odom
Q3rkses Apr 1, 2026
5977225
some changes to dp_controller_backstepping
Q3rkses Apr 1, 2026
b9714b6
added utility scripts
Q3rkses Apr 1, 2026
a54a569
tuned controllers
Q3rkses Apr 1, 2026
5e176c9
update with local drone changes
vortexuser Apr 2, 2026
9ca4b55
tuned los a bit with vel controller and los guidance
Q3rkses Apr 2, 2026
28138d5
reset nucleus pose on start
vortexuser Apr 3, 2026
9d502ca
changed joystick and auv_setup to be able to give references in both …
Q3rkses Apr 3, 2026
c4ea866
Merge branch 'easter-testing-2026' of github.com:vortexntnu/vortex-au…
Q3rkses Apr 3, 2026
7a3192d
changed such that quat dp utilizes quat more efficiently
Q3rkses Apr 3, 2026
e1edd91
urfd: updated gripper position
jorgenfj Apr 3, 2026
9a086fc
URDF: update down cam link
jorgenfj Apr 3, 2026
23ba63a
new tuning values
Q3rkses Apr 3, 2026
87d699e
Merge branch 'easter-testing-2026' of github.com:vortexntnu/vortex-au…
Q3rkses Apr 3, 2026
6402f5f
Guidance changes
anbit-adhi Apr 3, 2026
926c93c
quat and rpy fix
Q3rkses Apr 3, 2026
a7063c3
Merge branch 'easter-testing-2026' of github.com:vortexntnu/vortex-au…
Q3rkses Apr 3, 2026
a361efb
add asio to install script
jorgenfj Apr 4, 2026
348d129
added dp topcis for orca with new system
vortexuser Apr 4, 2026
79414e5
utility
Q3rkses Apr 4, 2026
3fca957
Merge branch 'easter-testing-2026' of github.com:vortexntnu/vortex-au…
Q3rkses Apr 4, 2026
7deec26
launched dp adapt quat controller
Q3rkses Apr 4, 2026
358d11d
changed so gimbal lock no longer gimbals
Q3rkses Apr 5, 2026
e47529e
changed to sim and vehicle params
Q3rkses Apr 5, 2026
d7734bd
added dp_adapt_backstepping_quat and fixed huge merge conflict
Q3rkses Apr 5, 2026
81d3f83
fixed convention error in quaternion pertrubation that made controlle…
Q3rkses Apr 5, 2026
e819972
fixed everything
vortexuser Apr 5, 2026
09b387d
added cool ascii art to controller and minor fixups
Q3rkses Apr 5, 2026
66a791d
Merge branch 'easter-testing-2026' of github.com:vortexntnu/vortex-au…
Q3rkses Apr 5, 2026
f7dcf8a
fixed everything 2nd DP has been tuned
Q3rkses Apr 5, 2026
37edc22
added utility script to run dp
Q3rkses Apr 5, 2026
132d269
unify reference actions to same action type
jorgenfj Apr 5, 2026
0510b55
added readme to quat AB dp
Q3rkses Apr 6, 2026
f690864
tf: move down cam down
jorgenfj Apr 13, 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
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,8 @@ qtcreator-*
.#*

# End of https://www.gitignore.io/api/ros
control/pid_controller_dp/test/test_main.cpp
control/pid_controller_dp/test/test_pid_basic.cpp
control/pid_controller_dp/test/test_pid_controller.cpp
control/pid_controller_dp/test/test_type_casting.cpp
scripts/ci_install_dependencies.sh
2 changes: 2 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
#
# See https://github.com/pre-commit/pre-commit

exclude: (^|/)(test|tests)/.*

repos:
# Standard hooks
- repo: https://github.com/pre-commit/pre-commit-hooks
Expand Down
32 changes: 30 additions & 2 deletions auv_setup/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,36 @@ The config folder contains physical parameters related to the AUV and the enviro
* thrusters: Thruster configs for different thruster types

### Launch
This package contains a launchfile for each specific AUV. Additionally the topside.launch file is to
be used on the topside computer that the joystick is connected to, for ROV operations.

This package contains launchfiles for each specific AUV. Additionally `topside.launch.py` is used on the topside computer that the joystick is connected to, for ROV operations.

#### dp.launch.py

Launches the DP (dynamic positioning) stack — a reference filter and a controller — as a composable node container.

```bash
ros2 launch auv_setup dp.launch.py
```

| Argument | Default | Description |
|---|---|---|
| `drone` | `nautilus` | Drone model — loads `auv_setup/config/robots/<drone>.yaml` |
| `namespace` | `<drone>` | ROS namespace. Defaults to the drone name if left empty |
| `controller_type` | `adaptive` | Controller to use: `adaptive` or `pid` |

**`adaptive`** — launches `dp_adapt_backs_controller` with `reference_filter_dp` (Euler/RPY reference filter). Controller params are loaded from `dp_adapt_backs_controller/config/adapt_params_<drone>.yaml`.

```bash
ros2 launch auv_setup dp.launch.py controller_type:=adaptive drone:=nautilus
```

**`pid`** — launches `pid_controller_dp` with `reference_filter_dp_quat` (quaternion reference filter). Controller params are loaded from `pid_controller_dp/config/pid_params.yaml`.

```bash
ros2 launch auv_setup dp.launch.py controller_type:=pid drone:=nautilus
```

> When using the joystick to send references, make sure `orientation_mode` in `joystick_interface_auv` matches the controller: use `euler` with `adaptive` and `quat` with `pid`.

### Description
The description folder contains the URDF and xacro files for the AUVs. The main description launch file is drone_description.launch.py, which makes all static transforms available to the ros graph.
38 changes: 21 additions & 17 deletions auv_setup/config/robots/nautilus.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
/**:
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
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]
center_of_mass: [0.0, 0.0, 0.05] # 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: [55.7, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 55.7, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 55.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:
dofs:
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 All @@ -80,8 +80,8 @@
]

constraints:
max_force: 40.0
min_force: -40.0
max_force: 39.0
min_force: -41.0
input_matrix_weights: [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]
slack_matrix_weights: [2000.0,2000.0,2000.0,2000.0,2000.0,2000.0]

Expand All @@ -90,6 +90,10 @@

thrust_update_rate: 100.0 # [Hz]
watchdog_timeout: 1.0 # [s]
thruster_to_pin_mapping: [4, 5, 7, 6, 0, 1, 2, 3] # I.e. if thruster_to_pin = [ 7, 6, 5, 4, 3, 2, 1, 0 ] then thruster 0 is pin 1 etc..
thruster_direction: [-1, -1, 1, 1, -1, -1, 1, 1] # Disclose during thruster mapping (+/- 1)
thruster_PWM_min: [1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050] # Minimum PWM value, Recommended: [1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100]
thruster_PWM_max: [1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950] # Maximum PWM value, Recommended: [1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900]

topics:
wrench_input: "wrench_input"
Expand All @@ -110,7 +114,7 @@
waypoint: "waypoint"
guidance:
los: "guidance/los"
dp: "guidance/dp"
dp_rpy: "guidance/dp_rpy"
dp_quat: "guidance/dp_quat"
dvl_twist: "dvl/twist"
dvl_altitude: "dvl/altitude"
Expand Down
140 changes: 140 additions & 0 deletions auv_setup/config/robots/nautilus_bak.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
# This file defines parameters specific to Nautilus.
# When looking at the AUV from above, the thruster placement is:
#
# front
# |======|
# |=7↗=| |=0↖=|
# | | | |
# | 6• | | 1• |
# | | | |
# | | | |
# | 5• | | 2• |
# | | | |
# |=4↘=|==||==|=3↙=|
#

/**:
ros__parameters:
physical:
center_of_mass: [0.0, 0.0, 0.1] # 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:
dofs:
num: 6
dimensions:
num: 3
thrusters:
num: 8
thruster_force_direction: [ # Direction of forces X,Y,Z, same logic as thruster_position thruster0 produces thrust in (X0,Y0,Z0) and ||(X0,Y0,Z0)|| = 1
0.70711,
0.00000,
0.00000,
-0.70711,
-0.70711,
0.00000,
0.00000,
0.70711, # Surge
-0.70711,
0.00000,
0.00000,
-0.70711,
0.70711,
0.00000,
0.00000,
0.70711, # Sway
0.00000,
1.00000,
1.00000,
0.00000,
0.00000,
1.00000,
1.00000,
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.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.305680,
-0.305680,
-0.313022,
-0.313022,
-0.305680, # y-positions of the thrusters
0.021736,
0.021736,
0.021736,
0.021736,
0.021736,
0.021736,
0.021736,
0.021736, # z-positions of the thrusters
]

constraints:
max_force: 40.0
min_force: -40.0
input_matrix_weights: [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]
slack_matrix_weights: [2000.0,2000.0,2000.0,2000.0,2000.0,2000.0]

rate_of_change:
max: 1 # Maximum rate of change in newton per second for a thruster

thrust_update_rate: 100.0 # [Hz]
watchdog_timeout: 1.0 # [s]
thruster_to_pin_mapping: [4, 5, 7, 6, 0, 1, 2, 3] # I.e. if thruster_to_pin = [ 7, 6, 5, 4, 3, 2, 1, 0 ] then thruster 0 is pin 1 etc..
thruster_direction: [-1, -1, 1, 1, -1, -1, 1, 1] # Disclose during thruster mapping (+/- 1)
thruster_PWM_min: [1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050] # Minimum PWM value, Recommended: [1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100]
thruster_PWM_max: [1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950] # Maximum PWM value, Recommended: [1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900]

topics:
wrench_input: "wrench_input"
thruster_forces: "thruster_forces"
pwm_output: "pwm"
current: "power_sense_module/current"
voltage: "power_sense_module/voltage"
pressure: "pressure"
temperature: "temperature"
joy: "joy"
pose: "pose"
twist: "twist"
odom: "odom"
operation_mode: "operation_mode"
killswitch: "killswitch"
reference_pose: "reference_pose"
landmarks: "landmarks"
waypoint: "waypoint"
guidance:
los: "guidance/los"
dp_rpy: "guidance/dp_rpy"
dp_quat: "guidance/dp_quat"
dvl_twist: "dvl/twist"
dvl_altitude: "dvl/altitude"
imu: "imu/data_raw"
sonar_info: "fls/sonar_info"
pressure_sensor: "pressure_sensor"
gripper_servos: "gripper_servos"


action_servers:
reference_filter: "reference_filter"
los: "los_guidance"
landmark_polling: "landmark_polling"
landmark_convergence: "landmark_convergence"
waypoint_manager: "waypoint_manager"

services:
set_operation_mode: "set_operation_mode"
set_killswitch: "set_killswitch"
toggle_killswitch: "toggle_killswitch"
get_operation_mode: "get_operation_mode"
waypoint_addition: "waypoint_addition"
start_mission: "start_mission"
3 changes: 2 additions & 1 deletion auv_setup/config/robots/orca.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@
waypoint: "waypoint"
guidance:
los: "guidance/los"
dp: "guidance/dp"
dp_rpy: "guidance/dp_rpy"
dp_quat: "guidance/dp_quat"
fsm:
active_controller: "fsm/active_controller"
Expand All @@ -156,6 +156,7 @@
set_killswitch: "set_killswitch"
toggle_killswitch: "toggle_killswitch"
get_operation_mode: "get_operation_mode"
los_mode: "set_los_mode"
waypoint_addition: "waypoint_addition"
start_mission: "start_mission"

Expand Down
6 changes: 3 additions & 3 deletions auv_setup/description/nautilus.urdf.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
<joint name="base_to_imu" type="fixed">
<parent link="base_link"/>
<child link="imu_link"/>
<origin xyz="0.0057 0.0 0.0827" rpy="0.0 0.0 0.0"/>
<origin xyz="-0.1 -0.001 0.085" rpy="0.0 0.0 0.0"/>
</joint>

<!-- base to dvl -->
Expand Down Expand Up @@ -46,7 +46,7 @@
<joint name="base_to_downwards_camera" type="fixed">
<parent link="base_link"/>
<child link="downwards_camera_link"/>
<origin xyz="0.283615 -0.085021 0.094186" rpy="-1.5708 -1.5708 -1.5708"/>
<origin xyz="0.283615 -0.158 0.12" rpy="-1.5708 -1.5708 -1.5708"/>
</joint>
<xacro:flir_blackfly_s frame="downwards_camera_link" base="downwards_camera" name="flir_blackfly"/>

Expand All @@ -66,7 +66,7 @@
<joint name="shoulder_joint" type="fixed">
<parent link="base_link"/>
<child link="shoulder"/>
<origin xyz="0.282589 0.07822 0.115803" rpy="0.0 0.0 0.0"/>
<origin xyz="0.282589 0.028 0.115803" rpy="0.0 0.0 0.0"/>
</joint>

<link name="arm"></link>
Expand Down
Loading
Loading