diff --git a/src/modelec_core/launch/modelec.launch.py b/src/modelec_core/launch/modelec.launch.py index a57a6ec..b9c5a0b 100644 --- a/src/modelec_core/launch/modelec.launch.py +++ b/src/modelec_core/launch/modelec.launch.py @@ -30,9 +30,10 @@ def generate_launch_description(): with_com = LaunchConfiguration('with_com') with_strat = LaunchConfiguration('with_strat') - def launch_rplidar_restart_if_needed(context, *args, **kwargs): - if context.launch_configurations.get('with_rplidar') == 'true': - rplidar_node = Node( +def launch_rplidar_restart_if_needed(context, *args, **kwargs): + if context.launch_configurations.get('with_rplidar') == 'true': + def create_rplidar_node(): + return Node( package='rplidar_ros', executable='rplidar_node', name='rplidar_node', @@ -47,19 +48,22 @@ def generate_launch_description(): output='screen' ) - restart_handler = RegisterEventHandler( - OnProcessExit( - target_action=rplidar_node, - on_exit=[ - TimerAction( - period=5.0, # Delay before restarting (in seconds) - actions=[rplidar_node] # Restart the rplidar_node - ) - ] - ) + rplidar_node = create_rplidar_node() + + restart_handler = RegisterEventHandler( + OnProcessExit( + target_action=rplidar_node, + on_exit=[ + TimerAction( + period=5.0, + actions=[create_rplidar_node()] # ✅ créer un NOUVEAU Node + ) + ] ) - return [rplidar_node, restart_handler] - return [] + ) + + return [rplidar_node, restart_handler] + return [] # Function to launch GUI and shutdown handler diff --git a/src/modelec_strat/data/config.xml b/src/modelec_strat/data/config.xml index c1fe64d..3700056 100644 --- a/src/modelec_strat/data/config.xml +++ b/src/modelec_strat/data/config.xml @@ -9,7 +9,7 @@ 50 0.5 5 - 500 + 50 50 -0.3