ROS 中的 launch 文件

launch 文件中的标签解析:

ROS 中,通常参数 param 是指存储在参数服务器中的参数,在编写 launch 文件中,参数往往是不可避免的并且通常使用 <param> 和 <rosparam> 等标签来定义参数,这里简单介绍这些标签的使用及区别:

<param> 标签可以从文件中读取参数,也可以直接定义参数

<rosparam> 标签用于从 yaml 文件中读取并设置参数

这两个标签定义参数后回存在参数服务器中,在 launch 文件被执行时会调用 rosparam 功能包设置参数

此外还有 <arg> 标签可以设置参数,不同的是,<arg> 标签设置的参数作用域仅限与 launch 文件内部使用

 

Talk Is Cheap, Show Me The Code !!!


<launch>
    <!-- 使用 param 直接定义参数 -->
    <param name="/use_sim_time" value="false" />

    <!-- arg 定义参数,仅在本文件中使用 -->
    <arg name="sim" default="true" />

    <!-- param 通过加载文件形式,定义参数 -->
    <param name="robot_description" command="$(find xacro)/xacro --inorder '$(find marm_description)/urdf/arm.xacro'" />

    <node name="arbotix" pkg="arbotix_python" type="arbotix_driver" output="screen">
        <!-- rosparam 加载 yaml 文件 定义参数 -->
        <rosparam file="$(find marm_description)/config/arm.yaml" command="load" />
        <!-- param 直接定义参数>
        <param name="sim" value="true"/>
    </node>

    <node name="gripper_controller" pkg="arbotix_controllers" type="gripper_controller">
        <rosparam>
            model: singlesided
            invert: false
            center: 0.0
            pad_width: 0.004
            finger_length: 0.08
            min_opening: 0.0
            max_opening: 0.06
            joint: finger_joint1
        </rosparam>
    </node>

    <node pkg="robot_state_publisher" type="robot_state_publisher" name="rob_st_pub" />

    <include file="$(find marm_moveit_config)/launch/move_group.launch" />

    <!-- 启动rviz可视化界面 -->
    <node name="rviz" pkg="rviz" type="rviz" args="-d $(find marm_planning)/config/pick_and_place.rviz" required="true" />

</launch>

参数查询:

运行 launch 文件时遇到的问题及警告

该警告是 ROS  功能包更新出现的,解决方法:

1、安装 joint_state_publisher_gui

sudo apt-get install ros-kinetic-joint-state-publisher-gui

2、修改 launch 文件,将 joint_state_publisher 换成 joint_state_pulisher_gui 即可

以下是一个ROS中的launch文件示例,用于启动一个简单的机器人模拟器(使用Gazebo仿真),并启动相应的ROS节点: ``` <launch> <!-- 启动Gazebo仿真器 --> <include file="$(find gazebo_ros)/launch/empty_world.launch"> <arg name="world_name" value="$(find my_robot)/worlds/my_world.world"/> <arg name="paused" value="false"/> <arg name="use_sim_time" value="true"/> <arg name="gui" value="true"/> <arg name="headless" value="false"/> <arg name="debug" value="false"/> </include> <!-- 启动机器人控制节点 --> <node name="robot_control" pkg="my_robot" type="robot_control_node.py" output="screen"> <param name="robot_name" value="my_robot"/> <param name="control_rate" value="10"/> </node> <!-- 启动传感器数据处理节点 --> <node name="sensor_processing" pkg="my_robot" type="sensor_processing_node.py" output="screen"> <param name="robot_name" value="my_robot"/> </node> </launch> ``` 上述launch文件中包含了三个节点: 1. Gazebo仿真器:使用Gazebo仿真器启动机器人模拟器,并设置仿真世界和一些参数。 2. 机器人控制节点:启动一个ROS节点,用于控制机器人的运动。 3. 传感器数据处理节点:启动一个ROS节点,用于处理机器人传感器的数据。 其中,节点的名称、包名、类型、参数等信息都需要根据实际情况进行修改。在终端中运行launch文件时,可以使用以下命令: ``` $ roslaunch my_robot my_robot.launch ``` 此时,launch文件中的节点会依次启动,完成机器人模拟器的启动和相关节点的启动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值