Skip to content
Open
Show file tree
Hide file tree
Changes from 121 commits
Commits
Show all changes
143 commits
Select commit Hold shift + click to select a range
ab3bd3a
added Node, publisher, launch file, config file
Henrimha Sep 24, 2025
23fea72
added subscriber with topic in config
Henrimha Sep 24, 2025
1d1cb53
Added hpp file
Henrimha Sep 24, 2025
60dbb72
added subscriber to current velocity and pitch maybe
Henrimha Sep 24, 2025
252ec54
Changed parameter file, topic and subscriber name
Henrimha Oct 1, 2025
58a87f9
Made PI regulator, able to plot the thrust
Henrimha Oct 1, 2025
2760cbe
Implemented the LQR lib from python
Henrimha Oct 7, 2025
fc5d99b
added a PID_controller class
Henrimha Oct 8, 2025
b962ad5
changed datatypes, information flow
Henrimha Oct 8, 2025
5e8e77a
New get_paramters function, changed topics in test_node
Henrimha Oct 12, 2025
2fb9d91
nye versjonen av guidance
Oct 19, 2025
40eb88f
fixed code so that it likely could compile if I had Drake. Made a Uti…
Henrimha Oct 19, 2025
9141eca
Removed Drake, Changed from std::vector to Eigen in LQR
Henrimha Oct 22, 2025
064adef
los test
Oct 26, 2025
7019787
Implemented LQR solver, SLICOT call and some dimension mistakes
Henrimha Oct 26, 2025
bbd8564
merging origin/main into anbit/guidance
Oct 28, 2025
e6ae145
Resolve stash conflicts: keep my YAML; keep main's joystick node
Oct 28, 2025
4d22267
fixing my error
Oct 28, 2025
3f3e671
maths behind proportional LOS
Oct 29, 2025
2688e27
refactor: change los structure
Nov 2, 2025
798542a
refactor: remove unused los package
Nov 2, 2025
3bb8926
fix: fix ignore lib
Nov 2, 2025
3afca97
Fixed LQR_solve_k_p
Henrimha Nov 2, 2025
2f6c253
Changed LQR test file, it works
Henrimha Nov 5, 2025
9ec7fd4
Changed launch file, fixed QoS problem and changed ouput topic
Henrimha Nov 5, 2025
b7f63a9
Test: add test files for ALos and Plos
Nov 5, 2025
ee303e7
complete the restructuring of ros node
Nov 9, 2025
c687343
Complete los switchin
Nov 12, 2025
314a60b
All changes until christmas
Henrimha Nov 12, 2025
03560cf
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Nov 12, 2025
66b252e
ci: trigger Industrial CI on PRs and main branch pushes
kluge7 Nov 12, 2025
a36297a
Add C++ and CMake pre-commit hooks (#568)
kluge7 Nov 12, 2025
a10e639
docs: add pre-commit CI badge to README
kluge7 Nov 12, 2025
b2e632b
refactor: merge the two pre-commit files to replace the pre-commit-ci…
kluge7 Nov 16, 2025
ef96e1e
Feat/waypoint manager (#645)
jorgenfj Dec 19, 2025
8f15552
Refactor/type rename (#647)
jorgenfj Dec 22, 2025
84ae150
refactor to new utils ros packages (#648)
jorgenfj Dec 25, 2025
76da1d9
Added support for vortex utils and changed to using their ssa
Henrimha Jan 5, 2026
cb4156b
Fix: Issues from feedback on PR draft
Jan 6, 2026
5ce96ef
New parameters for water resistance
Henrimha Jan 6, 2026
1305ea7
removed unneccessary features, added euler angle publisher
Henrimha Jan 6, 2026
f5d698a
fixed dumb bugs
Henrimha Jan 6, 2026
524a97e
fix git
Jan 6, 2026
b7805ea
Fixed bugs so that it works
Henrimha Jan 6, 2026
8c61007
Start vector Feild LOS & Clean code
Jan 7, 2026
294ab77
Adda vector field LOS & Test
Jan 7, 2026
edc7185
Start quto-euler for graphing
Jan 8, 2026
763f784
Fix emailaddress error for git
anbit-adhi Jan 15, 2026
f073936
Fix building error
anbit-adhi Jan 16, 2026
70d0bb3
Clean the code
anbit-adhi Jan 23, 2026
65a37c2
reworked the LQR
Henrimha Jan 24, 2026
7273d43
minor changes to PID
Henrimha Jan 24, 2026
ab5a067
added framework for tests
Henrimha Jan 24, 2026
98d4faa
Finished tests for PID, and changed PID
Henrimha Jan 25, 2026
47b5121
Fix build error
anbit-adhi Jan 25, 2026
a55e636
added framework for LQR_tests, changed CMake into 2 files(test and no…
Henrimha Jan 25, 2026
c79cee8
Fixed integrator, unstability and LQR tests, added repository, other …
Henrimha Jan 31, 2026
5099e51
fixed bug and crash in LQR test
Henrimha Jan 31, 2026
6a13ca1
Fix surge error
anbit-adhi Feb 4, 2026
2baeae8
0;9uMerge branch 'main' into anbit/guidance
anbit-adhi Feb 4, 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
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
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
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
4509286
Merge branch 'main' into anbit/guidance
anbit-adhi Mar 12, 2026
7a39ece
Fix: merge issiue
anbit-adhi Mar 12, 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
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
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
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
31a3a0e
updated autopilot.launch.py
Henrimha Mar 29, 2026
cb88a38
updated to be on point with easter testing branch
Henrimha Mar 29, 2026
e02dc47
Removed .cache file from tracking
Henrimha Mar 29, 2026
de375d3
removed the changes in los_guidance
Henrimha Mar 29, 2026
bbe0eaf
Merge branch 'main' of github.com:vortexntnu/vortex-auv into Henrik/v…
Henrimha Mar 29, 2026
0c11cff
Minor changes here and there
Henrimha Mar 29, 2026
92a43c3
some pre commit hooks auto changes
Henrimha Mar 29, 2026
e198b16
updated guidance repositry from main
Henrimha Mar 29, 2026
6a90ce7
no move contructor and no move assignment
Henrimha Mar 29, 2026
a42b6c3
fixed some pre commit hooks
Henrimha Mar 29, 2026
6968952
more precommit hooks fixes
Henrimha Mar 29, 2026
6eb2d7e
final pre commit hooks
Henrimha Mar 29, 2026
786b98e
reverted guidance to main
Henrimha Mar 29, 2026
c106bbb
new try at reverting guidance to version from main
Henrimha Mar 29, 2026
edf1e1b
thougts and prayers
Henrimha Mar 29, 2026
c1ae0ac
first draft of fixing PR comments, and added control manager and gene…
Henrimha Apr 1, 2026
e438f33
minor tuning
Henrimha Apr 2, 2026
f080525
Changed initialization of controllers
Henrimha Apr 10, 2026
6b5e9ce
Merge branch 'main' of github.com:vortexntnu/vortex-auv into Henrik/v…
Henrimha Apr 10, 2026
e29606d
removed changes to config files
Henrimha Apr 10, 2026
1e05128
added general clamping
Henrimha Jun 7, 2026
6a9910b
controller class does not copy states anymore and LQR now uses better…
Henrimha Jun 7, 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
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dont upload cache files

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
26 changes: 12 additions & 14 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Created by https://www.gitignore.io/api/ros
# Edit at https://www.gitignore.io/?templates=ros

# CMake
cmake-build-debug/

### ROS ###
install/
log/
Expand All @@ -21,41 +21,39 @@ msg/*Result.msg
msg/_*.py
build_isolated/
devel_isolated/
*.cache/

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bruh



# Generated by dynamic reconfigure
*.cfgc
/cfg/cpp/
/cfg/*.py

# Ignore generated docs
*.dox
*.wikidoc

# IDE stuff
.project
.cproject
.vscode
.DS_Store
.idea

# qcreator stuff
CMakeLists.txt.user

srv/_*.py
*.pcd
*.pyc
qtcreator-*
*.user
*hintmux.sh


/planning/cfg
/planning/docs
/planning/src

*~

# Emacs
.#*

# End of https://www.gitignore.io/api/ros
.cache
# End of https://www.gitignore.io/api/ros

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

huh why did you rename this file and what is a .ignore

File renamed without changes.
1 change: 1 addition & 0 deletions auv_setup/config/robots/orca.yaml

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove anbits files so i can focus on your review

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

still not your change

Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@
set_killswitch: "set_killswitch"
toggle_killswitch: "toggle_killswitch"
get_operation_mode: "get_operation_mode"
los_mode: "set_los_mode"
waypoint_addition: "waypoint_addition"

fsm:
Expand Down
83 changes: 52 additions & 31 deletions auv_setup/launch/autopilot.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,44 +9,65 @@
)
from launch.launch_description_sources import PythonLaunchDescriptionSource
from launch.substitutions import LaunchConfiguration


from auv_setup.launch_arg_common import (
declare_drone_and_namespace_args,
resolve_drone_and_namespace,
)
from launch_ros.actions import ComposableNodeContainer
from launch_ros.descriptions import ComposableNode
def launch_setup(context, *args, **kwargs):
drone = LaunchConfiguration("drone").perform(context)

los_guidance_launch = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
os.path.join(
get_package_share_directory("los_guidance"),
"launch",
"los_guidance.launch.py",
)
),
launch_arguments={"drone": drone}.items(),
drone, namespace = resolve_drone_and_namespace(context)
drone_params = os.path.join(
get_package_share_directory("auv_setup"),
"config",
"robots",
f"{drone}.yaml",
)

autopilot_controller_launch = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
os.path.join(
get_package_share_directory("velocity_controller_lqr"),
"launch",
"velocity_controller_lqr.launch.py",
)
),
launch_arguments={"drone": drone}.items(),
VC_params = os.path.join(
get_package_share_directory("velocity_controller"),
"config",
"parameters.yaml",
)
adapt_params = os.path.join(
get_package_share_directory("los_guidance"),
"config",
"guidance_params.yaml",
)
container=ComposableNodeContainer(
name="autopilot_container",
namespace=namespace,
package="rclcpp_components",
executable="component_container_mt",
composable_node_descriptions=[
ComposableNode(
package="velocity_controller",
plugin="velocity_controller_node",
name="velocity_controller_node",
namespace=namespace,
parameters=[VC_params,drone_params],
extra_arguments=[{"use_intra_process_comms":True}],
),
ComposableNode(
package="los_guidance",
plugin="los_guidance_node",
name="los_guidance_node",
namespace=namespace,
parameters=[adapt_params,drone_params],
extra_arguments=[{"use_intra_process_comms":True}],
),

return [los_guidance_launch, autopilot_controller_launch]
],
output="screen",
arguments=["--ros-args","--log-level","error"],
)
return [container]



def generate_launch_description() -> LaunchDescription:
def generate_launch_description():
return LaunchDescription(
[
DeclareLaunchArgument(
"drone",
default_value="orca",
description="Drone name / namespace",
),
declare_drone_and_namespace_args()
+ [
OpaqueFunction(function=launch_setup),
]
)
73 changes: 73 additions & 0 deletions control/velocity_controller/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
cmake_minimum_required(VERSION 3.8)
project(velocity_controller)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

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(rclcpp REQUIRED)
find_package(rclcpp_lifecycle REQUIRED)
find_package(lifecycle_msgs REQUIRED)
find_package(std_msgs REQUIRED)
find_package(vortex_msgs REQUIRED)
find_package(vortex_utils REQUIRED)
find_package(Eigen3 REQUIRED)
find_package(geometry_msgs REQUIRED)
find_package(nav_msgs REQUIRED)
find_package(ct_optcon REQUIRED)
find_package(ct_core REQUIRED)
find_package(casadi REQUIRED)

include_directories(
include
)

#target_include_directories(velocity_controller_node PUBLIC
# $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
# $<INSTALL_INTERFACE:include>
#)

add_executable(velocity_controller_node
src/velocity_controller.cpp
src/PID_setup.cpp
src/LQR_setup.cpp
src/utilities.cpp
src/ct_instantiations.cpp
)
ament_target_dependencies(velocity_controller_node
rclcpp
rclcpp_lifecycle
lifecycle_msgs
std_msgs
vortex_msgs
geometry_msgs
nav_msgs
vortex_utils
)
#target_include_directories(velocity_controller_node PRIVATE casadi Eigen3)
target_link_libraries(velocity_controller_node Eigen3::Eigen casadi::casadi ct_optcon ct_core)
install(TARGETS
velocity_controller_node
DESTINATION lib/${PROJECT_NAME}
)

install(
DIRECTORY include/
DESTINATION include
)

install(DIRECTORY
launch
config
DESTINATION share/${PROJECT_NAME}/
)
if(BUILD_TESTING)
add_subdirectory(tests)
endif()

ament_package()
Loading
Loading