zl程序教程

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

当前栏目

机器人编程趣味实践19-武林秘籍(文档)

2023-03-31 10:31:39 时间

机器人技术快速发展,教程等迭代速度非常快,周期在1-2年,新生期都是如此,进入成熟期会好很多,文档迭代周期会延长至3-5年。至于那些经典技术通常生命周期长达10年或更久。

在开启本文之前,推荐一篇:

沉迷机器人操作系统的一个理由和四种修仙秘籍(更新ROS 2.0内容)

基础篇

之前,机器人操作系统编程文档,查阅wiki,后来官方作了大量调整和更新,如下所示:

网址为docs.ros.org。推荐为ROS 1 Noetic和ROS 2 Galactic,ROS1最终版和ROS2最新版。

ROS2还在快速研发中。打开ROS2稳定版(Foxy)可以看到:

这文档比ROS1要规范很多。在完成Tutorials学习之后,通常会进入两个主题:

  • Navigation2
  • MoveIt2

移动机器人

ROS2(Navigation2)导航系统试用及文档

如上为旧版案例,最新版案例即将更新(ROS 2 Foxy)。

  • navigation.ros.org

已经更新,并且默认文档为ROS 2 Foxy

Nav2 项目是 ROS 导航堆栈的精神继承者。 该项目旨在寻找一种安全的方式让移动机器人从 A 点移动到 B 点。它也可以应用于其他涉及机器人导航的应用,例如跟踪动态点。 这将完成动态路径规划、计算电机速度、避开障碍物和结构恢复行为。 了解本项目的相关项目、机器人使用、ROS1对比、维护者等更多信息,请参见关于和联系方式。

Nav2 使用行为树调用模块化服务器来完成一次行动。 行动可以是计算路径、控制工作、恢复或任何其他与导航相关的动作。 这些都是通过 ROS 操作服务器与行为树 (BT) 通信的独立节点。 下图将对 Nav2 的结构有一个很好的初步了解。 注意:可以在每个服务器中为控制器、规划器和恢复使用多个插件,并使用匹配的 BT 插件。 这可用于创建上下文导航行为。 如果想查看此项目与 ROS (1) Navigation 之间的比较,请参阅 ROS to ROS 2 Navigation。

Nav2 的预期输入是符合 REP-105 的 TF 转换、使用静态成本地图层的地图源、BT XML 文件和任何相关的传感器数据源。然后它将为完整或非完整机器人的电机提供有效的速度命令以跟随。目前支持所有主要的机器人类型:完整、差分驱动、腿式和阿克曼(类汽车)基本类型!通过圆形和任意形状的机器人为 SE2 碰撞检查提供独特的支持。

具有以下工具:

  1. 加载、提供和存储地图(地图服务器)
  2. 在地图上定位机器人 (AMCL)
  3. 围绕障碍物规划从 A 到 B 的路径(Nav2 Planner)
  4. 控制机器人跟随路径(Nav2 Controller)
  5. 将传感器数据转换为世界的成本地图表示(Nav2 Costmap 2D)
  6. 使用行为树(Nav2 行为树和 BT Navigator)构建复杂的机器人行为
  7. 发生故障时计算恢复行为(Nav2 Recoveries)
  8. 跟随顺序航点(Nav2 Waypoint Follower)
  9. 管理服务器的生命周期和看门狗 (Nav2 Lifecycle Manager)
  10. 启用自定义算法和行为的插件(Nav2 Core)

Nav2还提供了一组启动插件来帮助前进。 NavFn 使用 A* 或 Dijkstra 算法计算从初始位置到目标姿势的最短路径。 DWB 将使用 DWA 算法计算跟踪路径的控制工作,并为轨迹比较器提供几个自定义插件。 恢复行为包括:等待、旋转、清除代价地图和备份。 有一组BT插件用于调用这些服务器和计算条件。 最后,还有一组用于与堆栈交互和控制生命周期的 Rviz 插件。 可以在导航插件上找到所有用户报告的插件的列表。

这里是关于如何安装和使用 Nav2 与示例机器人 Turtlebot 3 (TB3) 的文档,以及如何为其他机器人自定义它、调整行为以获得更好的性能以及自定义内部结构以获得高级结果。

工业机械臂

MoveIt 2适用于ROS 2的运动规划框架

如上为旧版案例,最新版案例即将更新(ROS 2 Foxy)。

  • moveit.ros.org

已经更新,并且默认文档为ROS 2 Foxy

推荐ROS 2 Foxy 2.1 LTS。功能强大!

将机器人带入未来

结合运动规划、操控、3D 感知、运动学、控制和导航方面的最新进展

  • 运动规划 :通过混乱的环境中产生的高自由度轨迹,避免局部最小值
  • 操控:通过抓取生成分析环境并与之交互
  • 逆运动学:求解给定姿势的关节位置,即使在过度致动的手臂中
  • 控制:通过通用接口对低级硬件控制器执行时间参数化联合轨迹
  • 三维感知:使用 Octomaps 连接深度传感器和点云
  • 碰撞检测:使用几何图元、网格或点云数据避开障碍物

大厂酷爱,不要犹豫,这只是一小部分大厂名单呢……

-End-