zl程序教程

您现在的位置是:首页 >  其他

当前栏目

【ROS入门教程】---- 11 如何使用ROS进行开发

入门教程开发 如何 进行 11 ---- ros 使用
2023-09-11 14:16:44 时间

在这里插入图片描述

一、常用可视化工具

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的控制界面下,通过按钮、滑动条、数值等方式,控制机器人的行为。

  • 使用界面:
    在这里插入图片描述

  1. 3D视图区,模型、图像、点云的显示区域;
  2. 工具栏,可以选择使用工具,拖拽、目标点、导航点、选择实体;
  3. 显示项列表,通过ADD添加图像或者机器人模型、点云、地图等显示项,并设置对应话题;
  4. 视角设置区,用于选项调整观看显示区域的角度等;
  5. 时间显示区,ROS启动时间、系统默认时间等

3. Gazebo

在这里插入图片描述

  • Gazebo:三维物理仿真平台,具备强大的物理引擎、高质量的图形渲染,方便的编程与图形接口,开源免费,主要应用于测试机器人算法,机器人设计、显示情景下的回溯测试等方面。

在这里插入图片描述

  1. 主区域:3D视图区、仿真区;
  2. 工具栏,调整光线、模型位置、角度;
  3. 左侧上方:模型列表,即右侧主区域模型的列表(阳光、大地、障碍物等);
  4. 左侧下方:模型属性项 insert:插入模型库的模型;
  5. 时间显示区:模拟时间、实际时间等;

关于RVIZ和Gazebo的使用,后续还会推出一些新系列的使用教程,敬请期待

二、如何使用ROS

1. ROS开发的意义

  • 在之前的十节内容中,我们已经掌握了ROS的基本使用方法,以及各种通讯机制的编程实现方面,那么我们究竟应该如何使用ROS来打造属于我们自己的机器人呢?

  • ROS,机器人开源操作系统,它仅仅只是一个工具、一个框架,机器人的建造还是在你,只是你要合理的、高效的来使用这一套工具。我们简单的来想,ROS系统中拥有着大量的仿真方法,那么我们还需要去购买真实的机器人设备吗,从传感器、首相头、主控板等来说,价格高昂,相比于ROS仿真,似乎缺乏意义。

在这里插入图片描述

  • ROS的意义在于,免去实际调试的成本和时间,使用ROS对机器人进行控制和仿真,提供强大的通讯机制和控制系统。

2. ROS能做什么

  • 机器人仿真控制:
    在这里插入图片描述

  • 导航与定位:
    在这里插入图片描述

  • 步态规划控制:
    在这里插入图片描述

3. 进一步的学习方向

  • 教程:博主书写博客的本意也是供自己复习使用,并且通过整理知识加深对于ROS的印象,但是正如其名,这仅仅是入门教程,后续的进一步学习仍旧需要更加深入的教程学习
  1. 知识:对于机器人学的认知,可以通过各个大学的网络教程进行学习;
  2. 资源:ROS的官方网站,包含ROS、ROS Wiki、Con等;
  3. 个人教程:古月居、鱼香、赵虚左等;
  4. 书籍:例如下图:
    在这里插入图片描述
  • 项目:对于ROS开发而言,最深刻、最有价值的学习方法,还是找一个项目,实际进行开发研究;找到对应的硬件,在硬件完成实验,能够更加准确的把握ROS开发的核心和关键,在开发中体会机器人的魅力。

在这里插入图片描述