2025-02-23 01:19:51 +08:00
|
|
|
import xacro
|
|
|
|
from launch import LaunchDescription
|
|
|
|
from launch.actions import DeclareLaunchArgument, RegisterEventHandler
|
|
|
|
from launch.event_handlers import OnProcessExit
|
|
|
|
from launch_ros.actions import Node
|
2025-02-23 22:07:46 +08:00
|
|
|
|
2025-02-23 01:19:51 +08:00
|
|
|
def generate_launch_description():
|
|
|
|
joint_state_publisher = Node(
|
|
|
|
package="controller_manager",
|
|
|
|
executable="spawner",
|
|
|
|
arguments=["joint_state_broadcaster",
|
2025-02-23 22:07:46 +08:00
|
|
|
"--controller-manager", "/controller_manager"]
|
2025-02-23 01:19:51 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
imu_sensor_broadcaster = Node(
|
|
|
|
package="controller_manager",
|
|
|
|
executable="spawner",
|
|
|
|
arguments=["imu_sensor_broadcaster",
|
2025-02-23 22:07:46 +08:00
|
|
|
"--controller-manager", "/controller_manager"]
|
2025-02-23 01:19:51 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
unitree_guide_controller = Node(
|
|
|
|
package="controller_manager",
|
|
|
|
executable="spawner",
|
2025-02-23 22:07:46 +08:00
|
|
|
arguments=["unitree_guide_controller", "--controller-manager", "/controller_manager"]
|
2025-02-23 01:19:51 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
return LaunchDescription([
|
2025-02-25 22:18:55 +08:00
|
|
|
joint_state_publisher,
|
|
|
|
RegisterEventHandler(
|
|
|
|
event_handler=OnProcessExit(
|
|
|
|
target_action=joint_state_publisher,
|
|
|
|
on_exit=[imu_sensor_broadcaster],
|
|
|
|
)
|
|
|
|
),
|
2025-02-23 01:19:51 +08:00
|
|
|
RegisterEventHandler(
|
|
|
|
event_handler=OnProcessExit(
|
2025-02-25 22:18:55 +08:00
|
|
|
target_action=imu_sensor_broadcaster,
|
|
|
|
on_exit=[unitree_guide_controller],
|
2025-02-23 01:19:51 +08:00
|
|
|
)
|
|
|
|
),
|
|
|
|
])
|