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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 古月居_launch启动文件的使用方法 -> 正文阅读

[人工智能]古月居_launch启动文件的使用方法

??launch文件的作用:通过XML文件实现多节点的配置和启动(可自动启动ROS Master)。

launch文件语法

??典型的launch文件如下:

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

<launch>

??launch文件中的根元素采用<launch>标签定义。

<node>

??启动节点:

<node pkg="helloworld" type="demo_hello" name="hello" output="screen"/>
  • pkg:节点所在的功能包名称。
  • type:节点的可执行文件名称。
  • name:节点运行时的名称。
  • output:日志的输出目标。

<param>和<rosparam>

??设置ROS系统运行中的参数,存储在参数服务器中:

<param name="output_frame" value="odom"/>
  • name:参数名。
  • value:参数值。

??加载参数文件中的多个参数:

<rosparam file="params.yaml" command="load" ns="params"/>

<arg>

??launch文件内部的局部变量,仅限于launch文件使用:

<arg name="arg-name" value="arg-value"/>
  • name:参数名。
  • value:参数值。

调用:

<param name="foo" value="$(arg arg-name)"/>
<node name="node" pkg="package" type="type" args="$(arg arg-name)"/>

<remap>

??重映射ROS计算图资源的命名:

<remap from="/turtle1/cmd_vel" to="/cmd_vel"/>
  • from:原命名。
  • to:映射之后的命名。

<include>

??包含其他launch文件,类似C语言中的头文件包含:

<include file="$(dirname)/other.launch"/>

launch的用法

node的一般用法

??创建功能包:

$ cd ~/catkin_ws/src
$ catkin_create_pkg learning_launch

catkin_ws/src/learning_launch下新建一个目录launch,在该目录中添加文件sample.launch

<launch>
    <node pkg="learning_topic" type="person_subscriber" name="talker" output="screen"/>
    <node pkg="learning_topic" type="person_publisher" name="listener" output="screen"/>
</launch>

??使用如下命令运行代码:

$ cd ~/catkin_ws
$ catkin_make
$ source devel/setup.bash
$ roslaunch learning_launch sample.launch

node的args用法

??在launch目录中添加文件broadcaster_listener.launch

<launch>
    <!-- Turtlesim Node-->
    <node pkg="turtlesim" type="turtlesim_node" name="sim"/>
    <node pkg="turtlesim" type="turtle_teleop_key" name="teleop" output="screen"/>
    <node pkg="learning_tf" type="turtle_tf_broadcaster" args="/turtle1" name="turtle1_tf_broadcaster"/>
    <node pkg="learning_tf" type="turtle_tf_broadcaster" args="/turtle2" name="turtle2_tf_broadcaster"/>
    <node pkg="learning_tf" type="turtle_tf_listener" name="listener"/>
</launch>

param和rosparam的用法

??在catkin_ws/src/learning_launch下新建一个目录config,在该目录中添加文件param.yaml

A: 123
B: "hello"

group:
  C: 456
  D: "hello"

launch目录中添加文件turtle_param.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>

??使用如下命令运行代码:

$ cd ~/catkin_ws
$ catkin_make
$ source devel/setup.bash
$ roslaunch learning_launch turtle_param.launch

可以看到小乌龟的界面被打开了,可以用方向键进行控制。
??执行命令rosparam list

$ rosparam list
/turtle_number
/turtlesim_node/A
/turtlesim_node/B
/turtlesim_node/group/C
/turtlesim_node/group/D
/turtlesim_node/turtle_name1
/turtlesim_node/turtle_name2

??执行命令rosparam get

$ rosparam get /turtle_number
2
$ rosparam get /turtlesim_node/turtle_name1
Tom
$ rosparam get /turtlesim_node/turtle_name2
Jerry

remap的用法

??在launch目录中添加文件remap.launch

<launch>
    <include file="$(find learning_launch)/launch/simple.launch"/>
    <node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node">
        <remap from="/turtle1/cmd_vel" to="/cmd_vel"/>
    </node>
</launch>

执行该launch文件后,查看ROS服务器中的topic

$ rostopic list
/cmd_vel

可以看出/turtle1/cmd_vel被重命名为/cmd_vel

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-24 10:34:02  更:2021-09-24 10:36:23 
 
开发: 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/27 12:56:06-

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