ROS中的关键组件
Launch文件、TF坐标、Qt工具箱、Rviz可视化炮台、Gazebo物理仿真环境
ROS中的关键组件——Launch文件
Launch文件:通过XML文件实现多节点的配置和启动(可自动启动ROS Master)
<launch> launch文件中根元素采用<launch>标签定义
启动节点
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" ></node>
name :节点运行时的名陈
pkg :节点所在的功能包名称
type :节点的可执行文件的名称
output、respawn、required、ns、args
参数设置
<param> / <rosparam> <arg>
<!-- 加载机器人模型描述参数 -->
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find mbot_description)/urdf/xacro/gazebo/mbot_gazebo.xacro'" />
<!-- 设置launch文件的参数 -->
<arg name="paused" default="false"/>
<arg name="use_sim_time" default="true"/>
<arg name="gui" default="true"/>
<arg name="headless" default="false"/>
<arg name="debug" default="false"/>
重映射
<remap>
# 重映射ROS计算机图资源的命名。
<remap from="/turtlebot/cmd_vel" to="/cmd_vel/">
#from:原命名
#to:映射之后的命名
嵌套
# 包含其他launch文件,类似C语言中的头文件包含。
<include file="$(dirname)/other.launch"/>
#file:包含的其他launch文件路径
更多标签可参见:http://wiki.ros.org/roslaunch/XML
ROS中提供了很多强大的功能,下面介绍几种关键组件
1、rviz
rviz是ROS中一款强大的3D可视化工具,这个玩意在后面可是要频繁用到的,是必须要弄明白的,详细的教程可以参考wiki:
rviz是ROS中一款强大的3D可视化工具 ,可以很好的兼容基于ROS软件框架的机器人平台。
0 :3D视图区 1 :工具栏 2 :显示项列表 3 :视角设置区 4 :时间显示区
我们可以在里面创建自己的机器人,并且让机器人动起来。还可以创建地图,显示3D点云等等,总之,想在ROS中显示的东东都可以在这里显示出来。当然这些显示都是通过消息的订阅来完成的,机器人通过ROS发布数据,rviz订阅消息接收数据,然后显示,这些数据也是有一定的数据格式的,可以参考下面的链接:
http://www.ros.org/wiki/rviz/DisplayTypes
看到上面的机器人了吧,是不是很酷,在rviz中,这样的机器人模型是通过urdf文件描述的,具体urdf文件怎么写,参考wiki:
2、tf
tf是ROS中的坐标变换系统,在机器人的建模仿真中经常用到。
ROS中主要有两种坐标系:
(1)固定坐标系:用于表示世界的参考坐标系;
(2)目标坐标系:相对于摄像机视角的参考坐标系。
教程见:http://www.ros.org/wiki/tf
3、gazebo
这个工具是ROS中的物理仿真环境,gazebo本身就是一款机器人的仿真软件,基于ODE的物理引擎,可以模拟机器人以及环境中的很多物理特性,这个软件可以稍作了解,并不是后面开发所必须要的。
0 :3D视图区 1 :工具栏 2 :模型列表 3 :模型属性项 4 :时间显示区
gazebo_ros - 主要用于gazebo接口封装、gazebo服务端和客户端的启动、URDF模型生成等。
gazebo_msgs - 是gazebo的Msg和Srv数据结构。
gazebo_plugins - 用 于 gazebo的通用传感器插件。
gazebo_ros_api_plugin和gazebo_ros_path_plugin 这两个Gazebo的插件实现接口封装。