ROS机器人操做系统在机器人应用领域很流行,依托代码开源和模块间协做等特性,给机器人开发者带来了很大的方便。咱们的机器人“miiboo”中的大部分程序也采用ROS进行开发,因此本文就重点对ROS基础知识进行详细的讲解,给不熟悉ROS的朋友起到一个抛砖引玉的做用。本章节主要内容:html
1.ROS是什么python
2.ROS系统总体架构nginx
3.在ubuntu16.04中安装ROS kineticdjango
4.如何编写ROS的第一个程序hello_worldubuntu
5.编写简单的消息发布器和订阅器centos
9.熟练使用rvizide
(1)rviz总体界面
(图29)rviz总体界面
rviz是ROS自带的图形化工具,能够很方便的让用户经过图形界面开发调试ROS。操做界面也十分简洁,如图29,界面主要分为上侧菜单区、左侧显示内容设置区、中间显示区、右侧显示视角设置区、下侧ROS状态区。
(2)添加显示内容
(图30)设置Global Options
如图30,启动rviz界面后,首先要对Global Options进行设置,Global Options里面的参数是一些全局显示相关的参数。其中的Fixed Frame参数是全局显示区域依托的坐标系,咱们知道机器人中有不少坐标系,坐标系之间有各自的转换关系,有些是静态关系,有些是动态关系,不一样的Fixed Frame参数有不一样的显示效果,在导航机器人应用中,通常将Fixed Frame参数设置为map,也就是以map坐标系做为全局坐标系。值得注意的是,在机器人的tf tree里面必需要有map坐标系,不然该选项栏会包error。至于Global Options里面的其余参数能够不用管,默认就好了。
(图31)添加地图显示
如图31,在机器人导航应用中,咱们经常须要用rviz观察机器人创建的地图,在机器人发布了地图到主题的状况下,咱们就能够经过rviz订阅地图相应主题(通常是/map主题)来显示地图。订阅地图的/map主题方法很简单,首先点击rviz界面左下角[add]按钮,而后在弹出的对话框中选择[By topic],最后在列出的topic名字中找到咱们要订阅的主题名字/map,最后点击[OK]就完成了对/map主题的订阅。订阅成功后,会在rviz左侧栏中看到Map项,而且中间显示区正常显示出地图。
(图32)添加tf显示
如图32,在机器人导航应用中,除了观察地图外,咱们经常还须要观察机器人在地图中的位置以及各个坐标系的关系是否工做正常,这个时候就须要经过rviz来显示tf。和上面添加显示主题的方法相似,这里添加TF这个类型主题就能够了。说明一下,添加主题能够按主题类型查找,也能够按主题名称查找。上面添加地图主题就是按主题名称查找的,这里添加tf主题是按主题类型查找的。
(图33)添加里程计显示
如图33,咱们能够经过rviz订阅里程计来观察机器人的运动轨迹(图中红色箭头链接起来的轨迹)。和上面添加显示主题的方法相似,这里添加/odom这个主题就能够了。这里特别说明一点,咱们须要去掉左侧栏中Odometry里面Covariance项后面后面的勾,也就是在Odometry显示中不启用Covariance信息。Covariance是描述里程计偏差的协方差矩阵,若是启用Covariance来描述Odometry将致使显示效果很难看,因此建议去掉。
(图34)添加机器人位置粒子滤波点显示
如图34,在机器人导航中,一般采用AMCL粒子滤波来实现机器人的全局定位。经过rviz能够显示全局定位的例子点。和上面添加显示主题的方法相似,这里添加/particlecloud这个主题就能够了。
(图35)添加激光雷达显示
如图35,机器人SLAM和导航中用到的核心传感器激光雷达数据,咱们能够经过rviz显示激光雷达数据(图中红色点组成的轮廓)。和上面添加显示主题的方法相似,这里添加/scan这个主题就能够了。
(图36)添加摄像头显示
如图36,rviz还能够订阅摄像头发布的主题,这样在rviz上就能够实现远程视频监控了。和上面添加显示主题的方法相似,这里添加/usb_cam/image_raw这个主题就能够了。
经过上面的实例,咱们已经知道在rviz中订阅须要显示的主题了,被订阅的主题会在rviz左侧栏中列出,而且主题的显示与否是相互独立的,能够经过勾选的方式决定是否显现该主题,主题项下拉条目中有不少参数能够设置,这些参数决定显示的风格等等,能够根据须要进行设置。其余一些不经常使用的主题订阅实例没有给出,有须要能够依葫芦画瓢在rviz中进行订阅显示就好了。
(3)主界面中经常使用按钮
(图37)rviz显示配置保存
在上面的添加显示内容的实例中,咱们在rviz中添加了不少主题显示项,并对各显示项的参数作了相应的设置。为了下次启动rviz时,能直接显示这些内容和风格,咱们须要将当前的rviz显示风格以配置文件的方式保存,下次启动rviz后只须要载入这个配置文件就能进入相应的显示风格。很简单,点击rviz左上角[file]菜单,在下拉中选择[Save Config As],在弹出来的对话框中给配置文件取一个名字(我取名为my_cfg1),而后直接Save,my_cfg1.rviz配置文件会被保存到系统中rviz的默认目录。下次启动rviz后,经过点击rviz左上角[file]菜单,在下拉中选择[Open Config],打开相应的配置文件就好了。如图37。
(图38)机器人初始位置设定与导航目标设定
在机器人导航中,当机器人刚启动的时候,机器人位置每每须要人为给定一个大概的估计位置,这样有利于AMCL粒子滤波中粒子点的快速收敛。如图38,点击[2D Pose Estimate]按钮,而后在地图中找到机器人大体的位置后再次点击鼠标左键并保持按下状态,拖动鼠标来指定机器人的朝向,最后松手就完成对机器人初始位置的设定了。其实就是两步,先指定机器人的位置,再指定机器人的朝向。咱们能够在地图中指定导航目标点,让机器人自动导航到咱们的指定的位置。经过[2D Nav Goal]按钮就能够完成。操做步骤和机器人初始位置的设定是相似的,就不累述了。
(图39)获取地图中指定点的坐标值
有时候咱们须要知道地图中某个位置的坐标值,好比咱们获取地图中各个位置的坐标值并填入巡逻轨迹中,让机器人按照指定巡逻路线巡逻。经过[Publish Point]按钮就能够知道地图中的任意位置的坐标值,点击[Publish Point]按钮,而后将鼠标放置到想要获取坐标值的位置,rviz底部显示栏中就会出现相应的坐标值。
(4)rviz启动方法
首先须要启动roscore,而后启动rviz,命令以下:
#打开终端,输入下面命令
roscore
#再打开一个终端,输入下面命令
rviz
------SLAM+语音机器人DIY系列【目录】快速导览------
第1章:Linux基础
第2章:ROS入门
第3章:感知与大脑
第4章:差分底盘设计
第5章:树莓派3开发环境搭建
第6章:SLAM建图与自主避障导航
2.google-cartographer机器人SLAM建图
第7章:语音交互与天然语言处理
第8章:高阶拓展
2.centos7下部署Django(nginx+uwsgi+django+python3)
----------------文章将持续更新,敬请关注-----------------
若是你们对博文的相关类容感兴趣,或有什么技术疑问,欢迎加入下面的《SLAM+语音机器人DIY》QQ技术交流群,一块儿讨论学习^_^
关于咱们:
视频教程: