当前位置: 首页 > news >正文

ROS学习笔记(四)---使用 VScode 启动launch文件运行多个节点

ROS学习笔记文章目录

01. ROS学习笔记(一)—Linux安装VScode
02. ROS学习笔记(二)—使用 VScode 开发 ROS 的Python程序(简例)
03. ROS学习笔记(三)—好用的终端Terminator
一、什么是launch文件
虽然说Terminator终端是能够比较方便直观的看运行的节点,但有时候节点一多,输入的rosrun指令也会很多,这时候可以使用launch优化下启动节点的代码了。launch是启动文件,采用XML格式书写,roslaunch浏览XML文件是一行一行运行的。
下面是launch文件的几类标签。其中常用的有

在这里插入图片描述
launch 该标签是任何roslaunch文件的根元素。
node 用于启动和关闭节点,举例:

<node pkg="turtlesim" type="turtlesim_node" name="t1"/>
  • node —> 包含的某个节点
  • pkg -----> 功能包
  • type ----> 被运行的节点文件
  • name --> 为节点命名
  • output-> 设置日志的输出目标

启动luanch节点的指令:

roslaunch 包名 launch文件名

二、如何使用launch文件
1.在vscode中创建launch文件夹
首先右击我们上一项目创建的功能包,然后选择“新建文件夹”,命名为launch
在这里插入图片描述
2.创建.launch文件
选中 launch 文件夹右击 然后 添加 .launch 文件,如下的“start_turtle.launch”文件。然后点击保存!!很重要啊,不然后面会报错。
在这里插入图片描述
3.编辑launch文件
① 编写运行一个节点的launch文件,运行我们上一项目写好的一个打印输出的节点程序,

<launch><node pkg="hello" type="helloworld_p.py" name="Hello_Vscode_p" output="screen" />
</launch>

其中,pkg是你的功能包名hello,type是你要运行的节点的程序名(python文件需要加.py)
因为要打印输出,所以要显示在屏幕上,要添加output参数。然后保存。运行按下 Ctrl + “~”(那个小波浪号),在弹出来的窗口中输入,如果没有输入,可以点击右方的“+”号,看图。先source(source ./devel/setup.bash)一下,然后roslaunch(roslaunch hello start_turtle.launch)运行。最后可以看到打印的结果。
运行结果
在这里插入图片描述

② 添加多个节点。继续编写ROS自带的乌龟节点和乌龟键盘控制节点的程序

<launch><node pkg="hello" type="helloworld_p.py" name="Hello_Vscode_p" output="screen" /><node pkg="turtlesim" type="turtlesim_node" name="t1"/><node pkg="turtlesim" type="turtle_teleop_key" name="key1" />
</launch>

保存之后,同样先source一下,然后roslaunch。(将鼠标放在输出窗口终端通过↑↓←→就可以控制乌龟运动了)
在这里插入图片描述
同时你也可以下拉看到在窗口打印输出了
HelloWorld, 我是 VSCode!
在这里插入图片描述

这样就完成了运行一个launch文件,同时启动了3个节点(打印输出的hello.py,乌龟面板、乌龟键盘控制)的功能!

http://www.lryc.cn/news/167223.html

相关文章:

  • 编译Redis时报错: jemalloc/jemalloc.h: No such file or directory
  • LLM 05-大模型法律
  • 1-5 AUTOSAR数据交换文件ARXML
  • 学习尚硅谷HTML+CSS总结
  • 自己设计CPU学习之路——基于《Xilinx FPGA应用开发》
  • 数据结构与算法:树
  • Spark 【Spark SQL(一)DataFrame的创建、保存与基本操作】
  • 026-从零搭建微服务-文件服务(二)
  • Jenkins 页面部分显示Http状态403 被禁止
  • ajax day4
  • 8.Spring EL与ExpressionParser
  • Go和Java实现迭代器模式
  • 如何在 Vue.js 和 Nuxt.js 之间做出选择?
  • (二十三)大数据实战——Flume数据采集之采集数据聚合案例实战
  • Linux: network: dhcp: mtu 这个里面也有关于网卡的MTU设置;
  • Android中使用图片水印,并且能够在线下载字体并应用于水印
  • HTTP文件服务
  • nginx配置获取客户端的真实ip
  • 1990-2022上市公司董监高学历工资特征信息数据/上市公司高管信息数据
  • Java程序连接 Mysql 超时问题 - 数据包过大,导致超时,# 配置网络超时时间 socketTimeout: 1800000
  • c++分层最短路(洛谷飞行路线)acwing版
  • Python bs4 BeautifulSoup库使用记录
  • Jmeter系列-插件安装(5)
  • spring aop源码解析
  • 使用Unity的Input.GetAxis(““)控制物体移动、旋转
  • 【CSS】画个三角形或圆形或环
  • AI项目六:基于YOLOV5的CPU版本部署openvino
  • 记录YDLidar驱动包交叉编译时出现的一点问题
  • 嵌入式学习笔记(32)S5PV210的向量中断控制器
  • linux下安装qt、qt触摸屏校准tslib