"""XR 手柄 UDP 接收节点的独立启动入口。 该 launch 文件只启动 `udp_controller_receiver`,用于低层通信调试:确认 PICO 或 sample_udp_sender 发出的 UDP JSON 能被 ROS2 接收,并发布到指定手柄话题。 完整单臂/双臂遥操作请优先使用 xr_rm_bringup 中的 launch 文件。 """ from launch import LaunchDescription from launch.actions import DeclareLaunchArgument from launch.substitutions import LaunchConfiguration from launch_ros.actions import Node def generate_launch_description() -> LaunchDescription: return LaunchDescription([ # UDP 监听地址和端口,需要与发送端配置一致。 DeclareLaunchArgument("udp_host", default_value="0.0.0.0"), DeclareLaunchArgument("udp_port", default_value="15000"), # 兼容旧版单手柄调试入口;双臂调试会使用 left_topic/right_topic。 DeclareLaunchArgument("topic", default_value="/xr/right_controller"), # 仅启动 UDP 接收节点,不启动任何机械臂控制节点。 Node( package="xr_rm_input", executable="udp_controller_receiver", name="udp_controller_receiver", output="screen", parameters=[{ "udp_host": LaunchConfiguration("udp_host"), "udp_port": LaunchConfiguration("udp_port"), "topic": LaunchConfiguration("topic"), }], ), ])