IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> ROS入门21讲笔记(十一)编写并使用launch启动文件 -> 正文阅读

[开发测试]ROS入门21讲笔记(十一)编写并使用launch启动文件

launch文件:通过XML文件实现多节点配置和启动
在这里插入图片描述

一、launch文件语法

launch文件的根节点采用<launch>标签定义,节点采用<node>标签定义

<node>标签用于启动节点<node pkg="package-name" type="executeble-name" name="node-name" />

  • pkg:节点所在的功能包名称
  • type:节点的可执行文件名称
  • name:节点运行时名称
  • output:运行信息输出位置,如输出至屏幕:output="screen"
  • respawn required ns args

<param>:标签用于启动运行中的参数:<param name="output_frame" value="odom"/>

  • name 参数名
  • value参数值

<rosparam>加载参数文件中的多个参数,存放在参数服务器中:<rosparam file="params.yaml" command="load" ns="params"/>

<arg> launch文件内部的局部变量,仅限于launch文件使用<arg name>="arg-name" default="arg-value/>"

  • name:参数名
  • value:参数值
    调用:
  • <param name="foo" value="$(arg arg-name)" />
  • <node name="node" pkg="package" type="type" args=$(arg arg-name)"/>

<ramap> 重映射ROS计算图资源的命名。<remap from "turtlebot/cmd_vel" to="/cmd_vel"/>

  • from +待映射的名称
  • to +映射后的名称

<include>包含其他launch文件。<include file="$(dirname)/other.launch"/>

  • file:包含的其他launch文件路径

更多标签可以参考官方文档:http://wiki.ros.org/roslaunch/XML
如:

<launch>
	<node pkg="turtlesim" name="sim1" type="turtlesim_node"/>
	<node pkg="turtlesim" name="sim2" type="turtlesim_node"/>
</launch>

二、例子

先创建一个功能包:catkin_create_pkg learning_launch

├── CMakeLists.txt
└── package.xml

0 directories, 2 files

在功能包里创建一个名为launch的文件夹,方便管理这些launch文件。

2.1 运行发布者和接受者

在launch文件夹下创建一个名为simple.launch的文件,内容如下:

<launch>
	<node pkg="selfmsg" type="pub" name="talker" output="screen"/> 
	<node pkg="selfmsg" type="sub" name="listener" output="screen"/> 
</launch>

返回工作空间根目录,然后编译它catkin_make(其实没有编译过程,似乎是让ros知道这个launch文件的存在)
在这里插入图片描述
运行ok!再也不用开启两个终端了!对了rosmaster也会自动帮你运行,无需自己键入roscore

2.2 启动模拟乌龟!

新建一个名为turtlesim_parameter_config.launch,内容为:

<launch>
    <param name="/turtle_number" value="2"/>
    <node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node">
        <param name="turtle_name1" value="Tom"/>
        <param name="turtle_name2" value="Jerry"/>
        <rosparam file="$(find learning_launch)/config/param.yaml" command="load"/>
    </node>
    <node pkg="turtlesim" type="turtle_teleop_key" name="turtle_teleop_key" output="screen"/>
</launch>
  • <rosparam file="$(find learning_launch)/config/param.yaml" command="load"/>$(find learning_launch)是让ROS查找名为learning_launch的功能包路径,在这个路径下的config文件夹中的para.yaml。

新建一个文件夹名字config,然后往param.yaml中写入(C前面是两个空格):

A: 123
B: "Hello"

group:
  C: 456
  D: "789"

运行roslaunch learning_launch turtlesim_parameter_config.launch,一切顺利:
在这里插入图片描述
查看一下参数有没有设置、加载成功,rosparam list

/rosdistro
/roslaunch/uris/host_room__42341
/rosversion
/run_id
/turtle_number
/turtlesim_node/A
/turtlesim_node/B
/turtlesim_node/background_b
/turtlesim_node/background_g
/turtlesim_node/background_r
/turtlesim_node/group/C
/turtlesim_node/group/D
/turtlesim_node/turtle_name1
/turtlesim_node/turtle_name2

查看/turtle_number的变量值:rosparam get /turtle_number

2.3 启动一个复杂的应用

新建一个文件名为:start_tf_demo_c++.launch的launch文件,其内容如下:

<launch>
  <!-- Turtlesim Node -->
  <node pkg="turtlesim" type="turtlesim_node" name="sim"/>
  <node pkg="turtlesim" type="turtle_teleop_key" name="telep" output="screen"/>
  
  <node pkg="tfbroadcast_test" type="broadcast" args="/turtle1" name="turtle1_tf_broadcaster"/>
  <node pkg="tfbroadcast_test" type="broadcast" args="/turtle2" name="turtle2_tf_broadcaster"/>
  
  <node pkg="tfbroadcast_test" type="tf_listerner" name="listener"/>
  
</launch>

在这里插入图片描述
上一讲启动的时候相当复杂,启动了非常多的终端,本节以后我们可以通过编写launch来启动它:
roslaunch learning_launch start_tf_demo_c++.launch

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-04-04 12:40:45  更:2022-04-04 12:42:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 1:37:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码