commit dee25c3fe4020e0c1f8bc723fd8120ff805da6ae Author: lyz <18813864538@163.com> Date: Mon Dec 1 20:32:31 2025 +0800 添加 创建和显示机器人所用的launch文件 diff --git a/创建和显示机器人所用的launch文件 b/创建和显示机器人所用的launch文件 new file mode 100644 index 0000000..e4a6498 --- /dev/null +++ b/创建和显示机器人所用的launch文件 @@ -0,0 +1,41 @@ +import launch +import launch_ros +from ament_index_python.packages import get_package_share_directory +import os +def generate_launch_description(): + #获取urdf路径 + urdf_package_path = get_package_share_directory("fishbot_description") + default_rviz_config_path = os.path.join(urdf_package_path,"config","display_robot_model.rviz") + default_urdf_path = os.path.join(urdf_package_path,"urdf","first_robot.urdf") + #声明一个urdf目录的参数,方便修改 + action_declare_arg_mode_path = launch.actions.DeclareLaunchArgument( + name="model",default_value=str(default_urdf_path),description="加载模型文件路径" + ) + #通过文件路径,获取内容,并转化成数值对象,以供传入 robot_state_publisher + substitutions_command_result = launch.substitutions.Command(["xacro ",launch.substitutions.LaunchConfiguration("model")]) + + robot_description_value = launch_ros.parameter_descriptions.ParameterValue(substitutions_command_result,value_type=str) + + action_robot_state_publisher = launch_ros.actions.Node( + package="robot_state_publisher", + executable="robot_state_publisher", + parameters=[{f"robot_description":robot_description_value}] + ) + + action_joint_state_publisher = launch_ros.actions.Node( + package="joint_state_publisher", + executable="joint_state_publisher" + ) + + action_rviz_node = launch_ros.actions.Node( + package="rviz2", + executable="rviz2", + arguments=["-d",default_rviz_config_path] + ) + + return launch.LaunchDescription([ + action_declare_arg_mode_path, + action_robot_state_publisher, + action_joint_state_publisher, + action_rviz_node, + ]) \ No newline at end of file