码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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"/>
    
    • 1
    • node —> 包含的某个节点
    • pkg -----> 功能包
    • type ----> 被运行的节点文件
    • name --> 为节点命名
    • output-> 设置日志的输出目标

    启动luanch节点的指令:

    roslaunch 包名 launch文件名
    
    • 1

    二、如何使用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>
    
    • 1
    • 2
    • 3

    其中,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>
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

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

  • 相关阅读:
    机器学习之交叉验证汇总及其Python代码
    java校园快递代领系统 小程序
    重磅发布|腾讯云容器安全服务网络隔离功能已上线
    python学习003——enumerate() 函数
    【JAVA开发规范学习之 MySQL数据库】
    SpringCloud——注册中心Eureka
    MySQL表名区分不区分大小写,规则是怎样
    JavaSE_多线程入门 线程安全 死锁 状态 通讯 线程池
    Lens5 指南:专为Kubernetes人员设计的IDE
    【计算机毕业设计】基于SpringBoot+Vue的流浪猫狗救助救援网站的设计与实现
  • 原文地址:https://blog.csdn.net/lyx4949/article/details/132775554
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号