Skip to content

Commit 526129c

Browse files
committed
removed default yaml file, added launch args for launching drone either for simulator or physical drone
1 parent 3a11679 commit 526129c

30 files changed

Lines changed: 71 additions & 630 deletions

auv_setup/auv_setup/launch_arg_common.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,15 @@ def resolve_drone_and_namespace(context):
2323
if namespace == "":
2424
namespace = drone
2525
return drone, namespace
26+
27+
28+
def declare_config_type_arg(default_config_type="sim"):
29+
return DeclareLaunchArgument(
30+
"config_type",
31+
default_value=default_config_type,
32+
description="Controller config variant: 'sim' or 'physical'",
33+
)
34+
35+
36+
def resolve_config_type(context):
37+
return LaunchConfiguration("config_type").perform(context)

auv_setup/launch/dp.launch.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,16 @@
77
from launch_ros.descriptions import ComposableNode
88

99
from auv_setup.launch_arg_common import (
10+
declare_config_type_arg,
1011
declare_drone_and_namespace_args,
12+
resolve_config_type,
1113
resolve_drone_and_namespace,
1214
)
1315

1416

1517
def launch_setup(context, *args, **kwargs):
1618
drone, namespace = resolve_drone_and_namespace(context)
19+
config_type = resolve_config_type(context)
1720

1821
filter_file_path = os.path.join(
1922
get_package_share_directory("reference_filter_dp"),
@@ -31,7 +34,7 @@ def launch_setup(context, *args, **kwargs):
3134
adapt_params = os.path.join(
3235
get_package_share_directory("dp_adapt_backs_controller"),
3336
"config",
34-
f"adapt_params_{drone}.yaml",
37+
f"adapt_params_{drone}_{config_type}.yaml",
3538
)
3639

3740
container = ComposableNodeContainer(
@@ -68,6 +71,7 @@ def generate_launch_description():
6871
return LaunchDescription(
6972
declare_drone_and_namespace_args()
7073
+ [
74+
declare_config_type_arg(),
7175
OpaqueFunction(function=launch_setup),
7276
]
7377
)

auv_setup/launch/dp_quat.launch.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,16 @@
77
from launch_ros.descriptions import ComposableNode
88

99
from auv_setup.launch_arg_common import (
10+
declare_config_type_arg,
1011
declare_drone_and_namespace_args,
12+
resolve_config_type,
1113
resolve_drone_and_namespace,
1214
)
1315

1416

1517
def launch_setup(context, *args, **kwargs):
1618
drone, namespace = resolve_drone_and_namespace(context)
19+
config_type = resolve_config_type(context)
1720

1821
filter_config = os.path.join(
1922
get_package_share_directory("reference_filter_dp_quat"),
@@ -31,7 +34,7 @@ def launch_setup(context, *args, **kwargs):
3134
adapt_params = os.path.join(
3235
get_package_share_directory("dp_adapt_backs_controller_quat"),
3336
"config",
34-
f"adapt_params_{drone}.yaml",
37+
f"adapt_params_{drone}_{config_type}.yaml",
3538
)
3639

3740
container = ComposableNodeContainer(
@@ -67,6 +70,7 @@ def generate_launch_description():
6770
return LaunchDescription(
6871
declare_drone_and_namespace_args()
6972
+ [
73+
declare_config_type_arg(),
7074
OpaqueFunction(function=launch_setup),
7175
]
7276
)

auv_setup/launch/topside.launch.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33
from ament_index_python.packages import get_package_share_directory
44
from launch import LaunchDescription
55
from launch.actions import (
6+
DeclareLaunchArgument,
67
IncludeLaunchDescription,
78
OpaqueFunction,
89
SetEnvironmentVariable,
910
)
11+
from launch.substitutions import LaunchConfiguration
1012
from launch.launch_description_sources import PythonLaunchDescriptionSource
1113
from launch_ros.actions import Node
1214

@@ -19,6 +21,7 @@
1921
def launch_setup(context, *args, **kwargs):
2022
"""Set up the topside nodes with drone-specific namespace."""
2123
drone, namespace = resolve_drone_and_namespace(context)
24+
orientation_mode = LaunchConfiguration("orientation_mode").perform(context)
2225

2326
joy_node = Node(
2427
package="joy",
@@ -42,6 +45,7 @@ def launch_setup(context, *args, **kwargs):
4245
),
4346
launch_arguments={
4447
"drone": drone,
48+
"orientation_mode": orientation_mode,
4549
"namespace": namespace,
4650
}.items(),
4751
)
@@ -68,5 +72,12 @@ def generate_launch_description() -> LaunchDescription:
6872
return LaunchDescription(
6973
[set_env_var]
7074
+ declare_drone_and_namespace_args()
71-
+ [OpaqueFunction(function=launch_setup)]
75+
+ [
76+
DeclareLaunchArgument(
77+
"orientation_mode",
78+
default_value="quat",
79+
description="Reference orientation representation: 'euler' (ReferenceFilter) or 'quat' (ReferenceFilterQuat)",
80+
),
81+
OpaqueFunction(function=launch_setup),
82+
]
7283
)

control/dp_adapt_backs_controller/config/adapt_params_nautilus.yaml renamed to control/dp_adapt_backs_controller/config/adapt_params_nautilus_physical.yaml

File renamed without changes.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/**:
2+
ros__parameters:
3+
K1 : [15.0, 15.0, 15.0, 1.5, 6.0, 6.0] # Outer loop tuning parameters
4+
K2 : [30.0, 30.0, 30.0, 2.0, 8.5, 8.5] # Inner loop tuning parameters
5+
r_b_bg : [0.0, 0.0, 0.01] # Vector from body centre to centre of gravity
6+
adapt_gain : [0.6, 0.15, 0.6, 0.15, 0.6, 0.15, 0.6, 0.15, 0.6, 0.15, 0.6, 0.15] # Tuning parameters for linear and nonlinear damping
7+
d_gain : [0.8, 0.8, 0.8, 0.8, 0.8, 0.8] # Tuning parameters for the unmodeled disturbances and uncertanties

control/dp_adapt_backs_controller/config/adapt_params_orca.yaml renamed to control/dp_adapt_backs_controller/config/adapt_params_orca_physical.yaml

File renamed without changes.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/**:
2+
ros__parameters:
3+
K1 : [10.5, 10.5, 13.5, 0.0, 4.0, 4.0] # Outer loop tuning parameters
4+
K2 : [20.5, 20.5, 20.5, 0.0, 5.5, 5.5] # Inner loop tuning parameters
5+
r_b_bg : [0.01, 0.0, 0.02] # Vector from body centre to centre of gravity
6+
adapt_gain : [0.4, 0.1, 0.4, 0.1, 0.4, 0.1, 0.4, 0.1, 0.4, 0.1, 0.4, 0.1] # Tuning parameters for linear and nonlinear damping
7+
d_gain : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6] # Tuning parameters for the unmodeled disturbances and uncertanties

control/dp_adapt_backs_controller/launch/dp_adapt_backs_controller.launch.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,21 @@
66
from launch_ros.actions import Node
77

88
from auv_setup.launch_arg_common import (
9+
declare_config_type_arg,
910
declare_drone_and_namespace_args,
11+
resolve_config_type,
1012
resolve_drone_and_namespace,
1113
)
1214

1315

1416
def launch_setup(context, *args, **kwargs):
1517
drone, namespace = resolve_drone_and_namespace(context)
18+
config_type = resolve_config_type(context)
1619

1720
adapt_params = os.path.join(
1821
get_package_share_directory("dp_adapt_backs_controller"),
1922
"config",
20-
f"adapt_params_{drone}.yaml",
23+
f"adapt_params_{drone}_{config_type}.yaml",
2124
)
2225

2326
drone_params = os.path.join(
@@ -41,5 +44,6 @@ def launch_setup(context, *args, **kwargs):
4144

4245
def generate_launch_description():
4346
return LaunchDescription(
44-
declare_drone_and_namespace_args() + [OpaqueFunction(function=launch_setup)]
47+
declare_drone_and_namespace_args()
48+
+ [declare_config_type_arg(), OpaqueFunction(function=launch_setup)]
4549
)

control/dp_adapt_backs_controller/test/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ add_executable(
1212

1313
target_compile_definitions(${TEST_BINARY_NAME} PRIVATE
1414
DRONE_YAML_PATH="${CMAKE_CURRENT_SOURCE_DIR}/../../../auv_setup/config/robots/nautilus.yaml"
15-
CONTROLLER_YAML_PATH="${CMAKE_CURRENT_SOURCE_DIR}/../config/adapt_params_nautilus.yaml"
15+
CONTROLLER_YAML_PATH="${CMAKE_CURRENT_SOURCE_DIR}/../config/adapt_params_nautilus_sim.yaml"
1616
)
1717

1818
target_link_libraries(

0 commit comments

Comments
 (0)