4.2 ROS节点运行管理launch文件

目录

4.2.1 Launch文件标签之launch

1.属性

2.子级标签

3.实操

4.2.2 Launch文件标签之node

1.属性

2.子级标签

3.实操

4.2.3 Launch文件标签之include

1.属性

2.子级标签

3.实操

4.2.4 Launch文件标签之remap

1.属性

2.子级标签

3.实操

4.2.5 Launch文件标签之param

1.属性

2.子级标签

3.实操

4.2.6 launch文件标签之rosparam

1.属性

2.子级标签

3.实操

4.2.7 Launch文件标签之group

1.属性

2.子级标签

3.实操

4.2.8 Launch文件标签之arg

1.属性

2.子级标签

3.实操


关于 launch 文件的使用我们已经不陌生了,在第一章内容中,就曾经介绍到:

        一个程序中可能需要启动多个节点,比如:ROS 内置的小乌龟案例,如果要控制乌龟运动,要启动多个窗口,分别启动 roscore、乌龟界面节点、键盘控制节点。如果每次都调用 rosrun 逐一启动,显然效率低下,如何优化?

        采用的优化策略便是使用roslaunch 命令集合 launch 文件启动管理节点,并且在后续教程中,也多次使用到了 launch 文件

概念

        launch 文件是一个 XML 格式的文件,可以启动本地和远程的多个节点,还可以在参数服务器中设置参数。

作用

        简化节点的配置与启动,提高ROS程序的启动效率。

使用

        以 turtlesim 为例演示

1)新建launch文件

        在功能包下添加 launch目录, 目录下新建 xxxx.launch 文件,编辑 launch 文件

<launch>

<node pkg="turtlesim" type="turtlesim_node"     name="myTurtle" output="screen" />

<node pkg="turtlesim" type="turtle_teleop_key"  name="myTurtleContro" output="screen" /></launch>

2) 调用 launch 文件

roslaunch 包名 xxx.launch

注意:roslaunch 命令执行launch文件时,首先会判断是否启动了 roscore,如果启动了,则不再启动,否则,会自动调用 roscore

3)运行结果

        本节主要介绍launch文件的使用语法,launch 文件中的标签,以及不同标签的一些常用属性。

4)参考文献

4.2.1 Launch文件标签之launch

        <launch>标签是所有 launch 文件的根标签,充当其他标签的容器

1.属性

        deprecated = "弃用声明"、告知用户当前 launch 文件已经弃用

2.子级标签

        所有其它标签都是launch的子级

3.实操

代码

 <launch deprecated="此文件已经超时,不建议使用" > 
    <!--node pkg="helloworld" type="demo_hello" name="hello" output="screen" /-->
    <node pkg="turtlesim" type="turtlesim_node" name="t1" output="screen"  /> 
    <node pkg="lxht02_turte_yuan" type="turtle_ht01_yuan_c" name="turtle_ht01_yuan_c"  output="screen"/>
</launch>

效果图

4.2.2 Launch文件标签之node

        <node>标签用于指定 ROS 节点,是最常见的标签,需要注意的是: roslaunch 命令不能保证按照 node 的声明顺序来启动节点(节点的启动是多进程的)

1.属性

  • pkg="包名"

        节点所属的包

  • type="nodeType"

        节点类型(与之相同名称的可执行文件)

  • name="nodeName"

        节点名称(在 ROS 网络拓扑中节点的名称)

  • args="xxx xxx xxx" (可选)

        将参数传递给节点

  • machine="机器名"

        在指定机器上启动节点

  • respawn="true | false" (可选)

        如果节点退出,是否自动重启

        respawn_delay=" N" (可选)    <

  • 14
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
    随着ICT技术不断深化和传统场景的结合,自动化、智能化相融合已经成为ICT技术的下一代浪潮,以工业机器人、服务机器人、自动驾驶等的新一代技术浪潮目前已经方兴未艾,成为又一波热点。而作为次级操作系统的ROS则提供了一系列的调试、仿真工具,能支持激光导航、视觉导航等算法,是切入机器人和自动驾驶技术的重要基石。    机器人是一个复合型的领域,涉及软件、算法、硬件、结构等诸多方向,是一个理论性和实践性并重的行业,考虑到其复杂性和讲解的循序渐进,整个系列课程将分为三个系列即入门系列、中级系列、高级系列。   在入门系列中,我们将介绍ROS的基础知识(机器人基础知识、ROS开发环境等)、ROS配置管理(系统架构、参数管理Launch启动、编译配置以及如何基于源代码开发等)、ROS系统调试(代码调试、可视化调试、消息回放、单元测试等)。   在中级系列中,我们将围绕机器人仿真涉及的URDF机器人模型、Gazebo仿真环境、坐标变换、运动控制等展开介绍,并随着课程的深入,将会深度使用RVIZ、Gazebo等仿真和调试工具。   在高级系列中,我们将着眼于人工智能框架及算法,分享机器人开发涉及的运动控制、SLAM、语音交互、计算机视觉等。逐层递进,为大家一层层剥开机器人的神秘面纱。    本系列课程的特色在于:    1、从基础知识、编译管理、通信机制、系统调试等4个方面循序渐进、逐步深化,知识覆盖全面,便于深度认知;    2、从基本理论、源码解读、工程示例等领域开展ROS系统入门知识的深度介绍和分析,源于工程实践,利于快速上手;   3、基于全新的环境Ubuntu 20.04、ROS Noetic、Gazebo 11、GMapping、Cartographer、tensorFlow 2.*、OpenCV 4.*等讲解,紧跟时代前沿。   整个系列的课程将会逐步开发并上线,三个系列是一个逐步深入、环环相扣的课程内容,感兴趣的同学可以开始学习啦。  
ROS(Robot Operating System)是一个开源的机器人操作系统,它提供了很多工具和库,方便我们构建、测试和部署机器人应用。ROS节点(node)是ROS系统中的基本构建块,它们可以执行各种任务,并通过ROS通信机制与其他节点通信。 在ROS中,我们可以使用launch文件管理节点的启动和运行launch文件是一个XML格式的文件,其中包含了我们需要启动的节点、参数、话题、服务等信息。在本次实验中,我们将学习如何编写一个简单的launch文件管理ROS节点的启动和运行,并对实验过程进行总结。 实验步骤: 1. 创建ROS工作空间 首先,我们需要创建一个ROS工作空间,如果已经有了可以跳过此步骤。在终端输入以下命令: ``` mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make source devel/setup.bash ``` 2. 创建ROS节点ROS工作空间的src目录下创建一个ROS节点。在终端输入以下命令: ``` cd ~/catkin_ws/src catkin_create_pkg my_node rospy ``` 这里创建了一个名为“my_node”的ROS包,其中使用了ROS的Python库rospy。 3. 编写ROS节点代码 在my_node包中创建一个名为“my_node.py”的Python文件,并将以下代码复制到文件中: ``` #!/usr/bin/env python import rospy def main(): rospy.init_node('my_node') rospy.loginfo('Hello, ROS!') if __name__ == '__main__': main() ``` 这个ROS节点非常简单,它只是打印了一条信息“Hello, ROS!”。当然,我们也可以在这里添加更多的代码来完成其他任务。 4. 编写ROS launch文件 在my_node包中创建一个名为“my_node.launch”的launch文件,并将以下代码复制到文件中: ``` <launch> <node pkg="my_node" type="my_node.py" name="my_node" output="screen"/> </launch> ``` 这个launch文件定义了一个ROS节点,其中“pkg”属性指定了节点所在的ROS包,“type”属性指定了节点的Python文件,“name”属性指定了ROS节点的名称,“output”属性指定了节点输出的消息类型。 5. 运行ROS launch文件 在终端输入以下命令来启动ROS launch文件: ``` roslaunch my_node my_node.launch ``` 在终端中将会看到输出“Hello, ROS!”,说明ROS节点已经成功启动。 实验总结: 通过本次实验,我们学习了如何使用ROS launch文件管理ROS节点的启动和运行。在编写launch文件的过程中,需要注意以下几点: 1. 在launch文件中定义的节点必须与Python文件中的节点名称相同。 2. 在编写launch文件时,需要指定节点所在的ROS包、Python文件以及节点的名称。 3. 在运行launch文件时,需要使用“roslaunch”命令,并指定launch文件所在的ROS包和launch文件的名称。 总的来说,ROSlaunch文件非常方便,可以大大简化我们的节点管理工作。在实际的机器人应用中,我们可以使用launch文件来启动多个节点,并通过ROS通信机制将它们连接在一起,完成更加复杂的任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青配时代

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值