十、评估
第 1 章,机器人操作系统入门
- 这是 ROS 的三个主要功能:
- 消息传递接口,可与不同程序通信
- 现成的机器人算法,使机器人原型制作更快
- 可视化机器人数据和调试的软件工具
- ROS 中概念的不同级别是 ROS 文件系统级别,ROS 计算图级别和 ROS 社区级别。
- Catkin 构建系统是使用 CMake 和 Python 脚本构建的。 此工具可帮助我们构建 ROS 包。
- ROS 主题是一个命名的总线,其中一个节点可以与另一节点通信。 主题中使用的消息类型是 ROS 消息。
- ROS 计算图的不同概念是 ROS 节点,ROS 主题,ROS 消息,ROS 主控,ROS 服务和 ROS 袋子。
- ROS 主机充当连接两个 ROS 节点开始相互通信的中介程序。
- Gazebo 的重要特征是:
- 动态仿真:它包括 ODE,Bullet,Simbody 和 Dart 等物理引擎
- 先进的 3D 图形:它使用 OGRE 框架创建高质量的照明,阴影和纹理
- 插件支持:这将使开发人员可以添加新的机器人,传感器和环境控制
- TCP/IP 传输:使用基于套接字的消息传递接口控制 Gazebo
第 2 章,了解差动机器人的基础
- 完整的机器人可以在任何方向上自由移动,并且可控制的自由度等于总自由度。 基于 Omni 轮的机器人是完整机器人的示例。 非完整机器人对其运动有约束,因此可控制的自由度将不等于总自由度。 差分驱动器配置是非完整配置的一个示例。
- 机器人运动学在不考虑质量和惯性的情况下处理机器人的运动,而机器人动力学是质量和惯性,运动和相关转矩之间的关系。
- ICC 代表瞬时曲率中心,它是机器人围绕其旋转的车轮轴上的一个虚点。
- 这是从车轮速度中查找机器人当前位置的过程。
- 寻找达到目标位置的车轮速度。
第 3 章,建模差动机器人
- 机器人建模是创建具有机器人所有参数的 2D 和 3D 机器人表示的过程,其中包括机器人的运动学和动态参数。
- 2D 模型主要包括机器人零件的精确尺寸,这有助于我们计算机器人的运动学并帮助制造机器人零件。
- 机器人的 3D 模型是机器人硬件的精确复制品,具有使用 CAD 软件设计的物理机器人的所有参数。 这用于创建机器人仿真和机器人的 3D 打印部件。
- 如果您知道 Blender 脚本 API,则使用 Python 脚本创建 3D 模型比手动建模要容易和准确得多。
- URDF 是 ROS 中机器人的 3D 机器人模型表示。 它具有机器人的运动学和动态参数。
第 4 章,使用 ROS 模拟差动机器人
- 可以使用 Gazebo 插件在 Gazebo 中进行传感器建模。 传感器模型可以使用 C++ 编写,可以将其插入到 Gazebo 仿真器中。
- 使用 Gazebo ROS 插件将 ROS 连接到 Gazebo。 当我们将此插件加载到 Gazebo 中时,我们可以通过 ROS 接口控制 Gazebo。
- 重要的标签是
<inertia>
,<collision>
和<gazebo>
。 - ROS 中的 Gmapping 包是 Fast SLAM 算法的实现,可以在机器人中用于映射环境并在其上进行定位。 在 ROS 中使用 Gmapping 是一个简单的过程,包括具有必要参数和主题(例如里程计和激光扫描)的 Gmapping 节点。
Move_base
节点具有处理机器人中各种导航子系统的功能。 它具有处理全局和局部计划器的功能,也可以处理机器人的地图。 一旦节点收到目标位置,该目标位置就会馈入导航子系统,以到达该目标位置。- AMCL 代表自适应蒙特卡洛定位,这是一种在给定地图上定位机器人的算法。 ROS 中有一个 ROS 包,用于在我们的机器人中部署 AMCL。 我们可以使用适当的输入和必要的参数启动 AMCL 节点。
第 5 章,设计 ChefBot 硬件和电路
- 这是为满足机器人所需规格的机器人找到合适的机器人硬件组件的过程。 它还涉及电路设计和计算每个组件的电流,以确保机器人组件的稳定性。
- 它是控制电动机方向和速度的开关电路。
- 主要组件是用于计算车轮速度的车轮编码器以及用于检测机器人周围障碍物的激光测距仪或深度传感器。
- 我们需要检查它是否符合机器人的规格。
- 映射,障碍物检测,对象检测和跟踪。
第 6 章,执行器和传感器与机器人控制器的接口
- 开关电路,用于控制机器人中电机的速度。
- 可以检测车轮旋转速度和方向的传感器。
- 在 4X 编码方案中,我们提取编码器脉冲之间的最大过渡,以便从单个旋转中获得更多计数。
- 使用编码器计数和每计数距离,我们可以轻松计算出车轮的位移。
- 它是一种智能致动器,具有一个电机和一个微控制器,可以直接连接到 PC 并用于自定义致动器的不同设置。 可以菊花链方式连接,适用于机械臂。
- 它是用于查找范围的传感器,具有一个发射器和一个接收器。 发射器发射超声波,接收器接收超声波。 这些过程之间的延迟用于距离测量。
范围 = 回音针输出的高电平时间 * 速度(340M/S)/ 2
。- 它正在发送 IR 脉冲并由 IR 接收器接收。 根据距离,IR 接收器中的电压会发生变化,我们可以使用以下公式计算距离:
范围 = (6787 / (V - 3)) - 4
第 7 章,将视觉传感器与 ROS 接口
- 大多数 3D 深度传感器都有附加的视觉传感器来检测深度。 它可能使用 IR 投影方法或使用立体视觉。
- 消息传递界面,可视化和调试机器人的工具,现成的机器人算法。
-
OpenCV 主要具有计算机视觉算法,OpenNI 具有用于实现 NI 应用的算法实现,而 PCL 具有用于处理点云数据的算法。
-
它代表同时本地化和映射。 它是通常用于映射机器人环境并同时对其进行定位的算法。
- 它是一种在 3D 模式下映射机器人环境的算法。
第 8 章,构建 ChefBot 硬件和软件集成
- 它是机器人底层控制器和 PC 等高层控制器之间的中介程序。 它将低级数据转换为 ROS 等效数据。
- PID 是一种控制环反馈机制,可通过获取机器人位置的反馈来达到机器人目标位置。
- 使用编码器数据,我们可以使用机器人运动学方程来计算机器人所经过的距离。 这些值是里程表数据。
- 它主要用于映射环境。
- 它主要用于在静态地图中定位机器人。
第 9 章,使用 Qt 和 Python 为机器人设计 GUI
- Qt 和 GTK。
- 两种绑定几乎相同,只是名称不同。 PyQt 许可证是 GPL,而 PySide 随 LGPL 一起提供。 另外,PySide 拥有许多有关其 API 的文档。
- 我们可以使用名为 pyuic 的 Py UI 编译器。
- Qt 插槽是程序中可由 Qt 信号触发的函数。 例如,
click
是可以调用名为hello()
的函数的信号。 - Rqt 是 ROS 中有用的 GUI 工具之一。 我们可以创建 RQT 插件,并可以插入 RQT GUI 中。 RQT 中已有一些插件可以进行可视化,调试等。