From 8c8c27464ce7f8992c0a989487b9e59a7381af90 Mon Sep 17 00:00:00 2001 From: Luis Camero Date: Mon, 9 Jun 2025 10:03:18 -0400 Subject: [PATCH 1/5] Only add battery estimator when no battery driver --- .../clearpath_generator_robot/launch/generator.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/clearpath_generator_robot/clearpath_generator_robot/launch/generator.py b/clearpath_generator_robot/clearpath_generator_robot/launch/generator.py index 9413425b..70d69aa3 100644 --- a/clearpath_generator_robot/clearpath_generator_robot/launch/generator.py +++ b/clearpath_generator_robot/clearpath_generator_robot/launch/generator.py @@ -232,10 +232,13 @@ def __init__(self, setup_path: str = '/etc/clearpath/') -> None: common_platform_components = [ self.wireless_watcher_node, self.diagnostics_launch, - self.battery_state_estimator, self.battery_state_control ] + # Only add estimator when no BMS is present + if self.bms_launch_file is None: + common_platform_components.append(self.battery_state_estimator) + if len(self.can_bridges) > 0: common_platform_components.extend(self.can_bridges) From 86ebbfc48b9bc99608c686815967950c8e9d1045 Mon Sep 17 00:00:00 2001 From: Luis Camero Date: Mon, 9 Jun 2025 12:05:18 -0400 Subject: [PATCH 2/5] Update valence arguments --- .../launch/generator.py | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/clearpath_generator_robot/clearpath_generator_robot/launch/generator.py b/clearpath_generator_robot/clearpath_generator_robot/launch/generator.py index 70d69aa3..ae441fb4 100644 --- a/clearpath_generator_robot/clearpath_generator_robot/launch/generator.py +++ b/clearpath_generator_robot/clearpath_generator_robot/launch/generator.py @@ -155,28 +155,32 @@ def __init__(self, setup_path: str = '/etc/clearpath/') -> None: if (self.clearpath_config.platform.battery.model in [BatteryConfig.VALENCE_U24_12XP, BatteryConfig.VALENCE_U27_12XP]): - can_dev = 'can1' - bms_id = '0' - launch_args = self.clearpath_config.platform.battery.launch_args - if launch_args: - if 'can_device' in launch_args: - can_dev = launch_args['can_device'] - if 'bms_id' in launch_args: - bms_id = launch_args['bms_id'] - - bms_launch_args = [ - ('namespace', self.namespace), - ('can_device', can_dev), - ('bms_id', bms_id), + valence_launch_args = [ + ('namespace', f'{self.namespace}/platform/bms'), + ('interface', 'can1'), + ('bms_id', '0') ] + for i in range(len(valence_launch_args)): + key = valence_launch_args[i][0] + if key in launch_args: + val = launch_args[key] + valence_launch_args[i] = (key, str(val)) + + self.bms_launch_file = LaunchFile( + 'valence_bms', + filename='bms', + package=Package('valence_bms_driver'), + args=valence_launch_args + ) + self.bms_launch_file = LaunchFile( 'bms', package=Package('valence_bms_driver'), - args=bms_launch_args - ) + args=valence_launch_args + ) # Lighting self.lighting_node = LaunchFile.Node( From a284a125e11fb2b6fa8911c2ec8a4a2c124696b9 Mon Sep 17 00:00:00 2001 From: Luis Camero Date: Mon, 9 Jun 2025 12:17:40 -0400 Subject: [PATCH 3/5] Fix valence launch filename --- .../clearpath_generator_robot/launch/generator.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/clearpath_generator_robot/clearpath_generator_robot/launch/generator.py b/clearpath_generator_robot/clearpath_generator_robot/launch/generator.py index ae441fb4..c791e4e8 100644 --- a/clearpath_generator_robot/clearpath_generator_robot/launch/generator.py +++ b/clearpath_generator_robot/clearpath_generator_robot/launch/generator.py @@ -170,8 +170,7 @@ def __init__(self, setup_path: str = '/etc/clearpath/') -> None: valence_launch_args[i] = (key, str(val)) self.bms_launch_file = LaunchFile( - 'valence_bms', - filename='bms', + 'bms', package=Package('valence_bms_driver'), args=valence_launch_args ) From 5d7774d987a2d593122f599ed36be273208e1307 Mon Sep 17 00:00:00 2001 From: Luis Camero Date: Mon, 9 Jun 2025 12:21:27 -0400 Subject: [PATCH 4/5] Remove duplicate definition --- .../clearpath_generator_robot/launch/generator.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/clearpath_generator_robot/clearpath_generator_robot/launch/generator.py b/clearpath_generator_robot/clearpath_generator_robot/launch/generator.py index c791e4e8..264a6897 100644 --- a/clearpath_generator_robot/clearpath_generator_robot/launch/generator.py +++ b/clearpath_generator_robot/clearpath_generator_robot/launch/generator.py @@ -175,12 +175,6 @@ def __init__(self, setup_path: str = '/etc/clearpath/') -> None: args=valence_launch_args ) - self.bms_launch_file = LaunchFile( - 'bms', - package=Package('valence_bms_driver'), - args=valence_launch_args - ) - # Lighting self.lighting_node = LaunchFile.Node( package='clearpath_hardware_interfaces', From f8bfe207b101fb39aadc6c097726001ab7fc88fa Mon Sep 17 00:00:00 2001 From: Luis Camero Date: Mon, 9 Jun 2025 13:10:20 -0400 Subject: [PATCH 5/5] Add robot namespace argument --- .../clearpath_generator_robot/launch/generator.py | 1 + 1 file changed, 1 insertion(+) diff --git a/clearpath_generator_robot/clearpath_generator_robot/launch/generator.py b/clearpath_generator_robot/clearpath_generator_robot/launch/generator.py index 264a6897..68903bef 100644 --- a/clearpath_generator_robot/clearpath_generator_robot/launch/generator.py +++ b/clearpath_generator_robot/clearpath_generator_robot/launch/generator.py @@ -158,6 +158,7 @@ def __init__(self, setup_path: str = '/etc/clearpath/') -> None: launch_args = self.clearpath_config.platform.battery.launch_args valence_launch_args = [ + ('robot_namespace', self.namespace), ('namespace', f'{self.namespace}/platform/bms'), ('interface', 'can1'), ('bms_id', '0')