ROS中的关键组件(四)

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:

         http://www.ros.org/wiki/rviz 

         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:

         http://www.ros.org/wiki/urdf

          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的插件实现接口封装。

        教程见:http://www.ros.org/wiki/simulator_gazebo/Tutorials

猜你喜欢

转载自blog.csdn.net/weixin_39036700/article/details/81779031
今日推荐