import xacro from launch import LaunchDescription from launch.actions import DeclareLaunchArgument, RegisterEventHandler from launch.event_handlers import OnProcessExit from launch_ros.actions import Node def generate_launch_description(): joint_state_publisher = Node( package="controller_manager", executable="spawner", arguments=["joint_state_broadcaster", "--controller-manager", "/controller_manager"] ) imu_sensor_broadcaster = Node( package="controller_manager", executable="spawner", arguments=["imu_sensor_broadcaster", "--controller-manager", "/controller_manager"] ) unitree_guide_controller = Node( package="controller_manager", executable="spawner", arguments=["unitree_guide_controller", "--controller-manager", "/controller_manager"] ) return LaunchDescription([ joint_state_publisher, RegisterEventHandler( event_handler=OnProcessExit( target_action=joint_state_publisher, on_exit=[imu_sensor_broadcaster], ) ), RegisterEventHandler( event_handler=OnProcessExit( target_action=imu_sensor_broadcaster, on_exit=[unitree_guide_controller], ) ), ])