lyz_learn/创建和显示机器人所用的launch文件

41 lines
1.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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,
])