文章目录
一、常用可视化工具
1. QT工具箱
-
在ROS的生态系统中,拥有着大量的方便、快捷的可视化工具能够帮助我们简化那些复杂的操作,ROS提供了一个
QT架构的后台图形工具套件,rqt_common_plugins
,安装命令如下:
sudo apt-get install ros-noetic-rqt
sudo apt-get install ros-noetic--rqt=common-plugins
1)日志输出工具
-
rqt_console
:用于
图形化的显示和过滤系统运行中的日志消息
,例如可以包含info、warn、error等级别的日志,当系统内存在不同级别的日志时,界面就会依次显示内容,当然也可以选择过滤显示。
2)计算图可视化工具
-
rqt_graph
:用于
图形化的显示系统计算图
,表示当前活动中的节点与ROS网络上传输的消息之间相关性的工具
3)数据绘图工具
-
rqt_plot
:用于
绘制二维数值曲线
的工具,需要提供数据,即在界面上方选择话题,对应消息就会在xy坐标系中描绘。
4)参数动态配置工具
-
rqt_reconfigure
:用于
动态配置系统参数
,在代码中设置属性后,就可以启动工具通过滑动框等调节参数。
5)图像渲染工具
-
rqt_image_view
:用于
显示相机的图像数据
,仅仅在查看图像时有用,可以使用uvc_camera功能包。
2. RVIZ
-
RVIZ:
三维可视化工具,可以很好的兼容基于ROS软件框架的机器人平台
,它的主要目的是以三维方式显示ROS消息,可以将数据进行可视化表达。
-
作用:在rviz中,可以使用
可扩展标记语言XML
对机器人、周围物体等任何实物进行尺寸、质量、位置、材质、关节等属性的描述,并且在界面中呈现出来。同时,rviz还可以通过图形化的方式,
实时显示机器人传感器的信息,机器人的运动状态,周围环境的变化
等信息。 -
实质:rviz
通过机器人模型参数,机器人发布的传感信息等数据,为用户进行所有可检测信息的图形化显示
。用户和开发者也可以在rviz的控制界面下,通过按钮、滑动条、数值等方式,控制机器人的行为。 -
使用界面:
- 3D视图区,模型、图像、点云的显示区域;
- 工具栏,可以选择使用工具,拖拽、目标点、导航点、选择实体;
- 显示项列表,通过ADD添加图像或者机器人模型、点云、地图等显示项,并设置对应话题;
- 视角设置区,用于选项调整观看显示区域的角度等;
- 时间显示区,ROS启动时间、系统默认时间等
3. Gazebo
-
Gazebo:
三维物理仿真平台,具备强大的物理引擎、高质量的图形渲染
,方便的编程与图形接口,开源免费,主要应用于
测试机器人算法,机器人设计、显示情景下的回溯测试
等方面。
- 主区域:3D视图区、仿真区;
- 工具栏,调整光线、模型位置、角度;
- 左侧上方:模型列表,即右侧主区域模型的列表(阳光、大地、障碍物等);
- 左侧下方:模型属性项 insert:插入模型库的模型;
- 时间显示区:模拟时间、实际时间等;
关于RVIZ和Gazebo的使用,后续还会推出一些新系列的使用教程,敬请期待
二、如何使用ROS
1. ROS开发的意义
-
在之前的十节内容中,我们已经掌握了ROS的基本使用方法,以及各种通讯机制的编程实现方面,那么我们究竟应该如何使用ROS来打造属于我们自己的机器人呢?
-
ROS,机器人开源操作系统,它仅仅只是一个工具、一个框架,机器人的建造还是在你,只是你要合理的、高效的来使用这一套工具
。我们简单的来想,ROS系统中拥有着大量的仿真方法,那么我们还需要去购买真实的机器人设备吗,从传感器、首相头、主控板等来说,价格高昂,相比于ROS仿真,似乎缺乏意义。
- ROS的意义在于,免去实际调试的成本和时间,使用ROS对机器人进行控制和仿真,提供强大的通讯机制和控制系统。
2. ROS能做什么
-
机器人仿真控制:
-
导航与定位:
-
步态规划控制:
3. 进一步的学习方向
- 教程:博主书写博客的本意也是供自己复习使用,并且通过整理知识加深对于ROS的印象,但是正如其名,这仅仅是入门教程,后续的进一步学习仍旧需要更加深入的教程学习
- 知识:对于机器人学的认知,可以通过各个大学的网络教程进行学习;
- 资源:ROS的官方网站,包含ROS、ROS Wiki、Con等;
- 个人教程:古月居、鱼香、赵虚左等;
- 书籍:例如下图:
- 项目:对于ROS开发而言,最深刻、最有价值的学习方法,还是找一个项目,实际进行开发研究;找到对应的硬件,在硬件完成实验,能够更加准确的把握ROS开发的核心和关键,在开发中体会机器人的魅力。