ROS入门六 launch文件及软件rviz、Gazebo介绍
launch启动文件
文件类型解释
基本元素
参数设置
重映射机制
嵌套复用
rviz三维可视化平台
安装并运行rviz
Gazebo仿真环境
特点:
典型应用场景包括:
launch启动文件
文件类型解释
启动文件Launch File便是ROS中一种同时启动多个节点的途径它还可以自动启动ROS Master节点管理器并且可以实现每个节点的各种配置为多个节点的操作提供很大便利。

在这里插入图片描述

基本元素

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

<launch>XML文件必须包含一个根元素launch文件中的根元素采用标签定义文件中的其他内容都必须包含在这个标签中

launch文件中的根元素采用标签定义
<node>启动文件的核心是启动ROS节点采用标签定义

pkg:节点所在的功能包名称
type:节点的可执行文件名称
name:节点运行时的名称(output、respawn、required、ns、args)
参数设置
<param>parameter是ROS系统运行中的参数存储在参数服务器中。在launch文件中通过元素加载parameterlaunch文件执行后parameter就加载到ROS的参数服务器上了。每个活跃的节点都可以通过rosparamget()接口来获取parameter的值用户也可以在终端中通过rosparam命令获得parameter的值。
设置 ROS系统运行中的参数,存储在服务器:

<param name="output_frame" value="odom"/

  • name:参数名
  • value:参数值
    <rosparam>可以帮助我们将一个YAML格式文件中的参数全部加载到ROS参数服务器中需要设置command属性为“load”还可以选择设置命名空间“ns”。
    加载参数文件中的多个参数:
<rosparam file="params.yaml" command="load" ns=“params" />

<arg>argument是另外一个概念类似于launch文件内部的局部变量仅限于launch文件使用便于launch文件的重构与ROS节点内部的实现没有关系。
设置argument使用标签元素:

<arg name="arg-name" default= "arg-value"/>
//launch文件内部的局部变量仅限于launch文件使用
  • name:参数名
  • value:参数值
    launch文件中需要使用到argument时可以使用如下方式调用:
<param name="foo" value="$(arg arg-name)" />
<node name="node" pkg="package" type="type " args="$(arg arg-name)" />

重映射机制
ROS提供一种重映射的机制简单来说就是取别名类似于C++中的别名机制我们不需要修改别人的功能包的接口只需要将接口名称重映射一下取一个别名我们的系统就认识了接口的数据类型必须相同。launch文件中的标签可以帮助我们实现这个重映射功能。
<remap>比如turtlebot 的键盘控制节点发布的速度控制指令话题可能是/turtlebot/cmd_vel 但是我们自己的机器人订阅的速度控制话题是/cmd_vel这时使用就可以轻松解决问题将/turtlebot/cmd_vel重映射为/cmd_vel我们的机器人就可以接收到速度控制指令了。
从映射ROS计算图资源的命名:

<remap from="/turtlebot/cmd_vel" to="/cmd_vel"/>

from:原命名
to:映射之后的命名

嵌套复用
<include>在复杂的系统中launch文件往往有很多这些launch文件之间也会存在依赖关系。如果要直接复用一个已有launch文件中的内容可以使用标签包含其他launch文件这与C语言中的include几乎是一样的。
包含其他launch文件,类似于C语言的头文件包含:

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

rviz三维可视化平台
Rviz是一款三维可视化工具,可以很好的兼容基于ROS软件框架的机器人平台。

在rviz中,可以使用可扩展标记语言XML对机器人、周围物体等任何实物进行尺寸、质量、位置、材质、关节等属性的描述,并且在界面中呈现出来。
同时,rviz还可以通过图形化的方式,实时显示机器人传感器的信息、机器人的运动状态、周围环境的变化等信息。
总而言之,rviz通过机器人模型参数、机器人发布的传感信息等数据,为用户进行所有可监测信息的图形化显示。用户和开发者也可以在rviz的控制界面下,通过按钮、滑动条、数值等方式,控制机器人的行为。
安装并运行rviz
rviz已经集成在桌面完整版的ROS中如果已经成功安装桌面完整版的ROS可以直接跳过这一步骤否则请使用如下命令进行安装

$ sudo apt-get install ros-kinetic-rviz

安装完成后在终端中分别运行如下命令即可启动ROS和rviz平台

$ roscore
$ rosrun rviz rviz

在这里插入图片描述

Gazebo仿真环境

Gazebo azebo是一款功能强大的物理仿真平台

特点:

  • 具备强大的物理引擎
  • 高质量的图形渲染
  • 方便的编程与图形接口
  • 开源免费

典型应用场景包括:

  • 测试机器人算法
  • 机器人的设计
  • 现实情景下的回溯测试

在这里插入图片描述