导航插件
有许多插件接口供用户创建自己的定制应用程序或算法使用。包括 costmap 层、规划器、控制器、行为树和行为插件。下面列出了 ROS 2 Navigation 中已知的所有插件。如果你知道某个插件,或者你创建了一个新的插件,请考虑提交一个包含该信息的拉取请求。
此文件可在 sphinx_docs/plugins/index.rst
下找到并编辑。有关创建自己插件的教程,请参阅:编写新的Costmap2D插件、编写新的行为树插件、编写新的控制器插件、编写一个新的规划器插件、编写新的行为插件 或 编写新的导航器插件。
行为树导航器
插件名称 |
创建者 |
描述 |
---|---|---|
Steve Macenski |
通过行为树动作服务器实现点对点导航 |
|
Steve Macenski |
通过行为树动作服务器实现途经多个点的导航 |
Costmap Layers
插件名称 |
创建者 |
描述 |
---|---|---|
Eitan Marder-Eppstein |
使用深度和激光传感器读数以及射线投射来维护持久的3D体素图层,以清理空闲空间 |
|
David Lu |
使用概率模型将发布范围消息的传感器数据放置在代价地图上 |
|
Eitan Marder-Eppstein |
获取静态``map``并将占用信息加载到代价地图中 |
|
Eitan Marder-Eppstein |
使用指数衰减方式在costmap中膨胀致命障碍物 |
|
Eitan Marder-Eppstein |
通过射线投射将2D激光扫描转化为持久的2D代价地图,用于清除自由空间 |
|
Steve Macenski |
通过传感器模型对时间上稀疏的3D体素网格进行衰减维护 |
|
Steve Macenski |
维护只包含最多测量集的3D占据网格 |
|
Andrey Ryzhikov |
过滤由噪声引起的孤立障碍物或小障碍物群组 |
代价地图过滤器
插件名称 |
创建者 |
描述 |
---|---|---|
Alexey Merzlyakov |
维护禁止区域/安全区域和移动的首选车道 |
|
Alexey Merzlyakov |
限制机器人在速度限制区域内的最大速度 |
|
Alexey Merzlyakov |
启用二进制(布尔)掩码行为以触发动作。 |
控制器
插件名称 |
创建者 |
描述 |
驱动系统支持 |
---|---|---|---|
David Lu!! |
一个高度可配置的DWA实现,具有插件接口 |
差分,全向,腿式 |
|
Christoph Rösmann |
一种适用于Ackermann、差分和全向机器人的类MPC控制器。 |
阿克曼,腿式,全向,差分 |
|
Steve Macenski |
一种具有自适应功能的纯追踪算法的服务/工业机器人变体。 |
Ackermann,腿式,差动 |
|
Steve Macenski Aleksei Budyakov |
一种具有模块化和自定义成本函数的预测 MPC 控制器,可完成许多任务。 |
差动,全向,Ackermann |
|
Steve Macenski |
一个用于在传递给主控制器进行跟踪之前将其旋转到路径航向的“垫片”控制器。 |
差动、全向、模型原地旋转 |
规划器
插件名称 |
创建者 |
描述 |
驱动系统支持 |
---|---|---|---|
Eitan Marder-Eppstein和Kurt Konolige |
一种使用 A* 或 Dijkstra 扩展的导航函数,假设为二维全向性粒子。 |
差分,全向,腿式 |
|
|
Steve Macenski |
一种使用Dubin或Reeds-shepp运动模型的SE2混合A*算法实现,具有更平滑和多分辨率查询。适用于汽车、类似汽车和Ackermann车辆。运动学可行。 |
Ackermann、差分、全向、腿式 |
Steve Macenski |
一个使用4个或8个相邻区域连接的2D A*实现,具有更平滑和多分辨率查询 |
差分,全向,腿式 |
|
Steve Macenski |
一个使用预生成的最小控制集实现的状态栅格规划器,可用于对任何类型的车辆进行动力学可行规划。包括用于 Ackermann、差分、全向和腿式机器人的生成器脚本。 |
差动、全向、Ackermann、腿式、任意/自定义 |
|
Anshumaan Singh |
一个使用4个或8个相邻区域连接的Theta*实现,将机器人假设为2D全向粒子 |
差动、全向 |
平滑器
插件名称 |
创建者 |
描述 |
---|---|---|
Steve Macenski |
适用于无法实现(例如2D)规划器的简单路径平滑器 |
|
Matej Vargovcik和Steve Macenski |
使用约束问题求解器优化各种准则(如平滑性或与障碍物的距离),以实现路径平滑化,保持最小转弯半径 |
|
Steve Macenski |
使用Savitzky-Golay滤波器通过数字信号处理对路径进行平滑,以去除路径中的噪声。 |
行为
插件名称 |
创建者 |
描述 |
---|---|---|
Eitan Marder-Eppstein |
在感知错误或机器人卡住的情况下清除给定代价地图的服务 |
|
Steve Macenski |
将机器人旋转到可配置角度以清除空闲空间,并推动机器人摆脱潜在的局部故障 |
|
Brian Wilcox |
可配置距离的备份行为,以解决机器人卡住的情况 |
|
Steve Macenski |
可配置等待时间的等待行为,用于处理基于时间的障碍,如人流或获取更多传感器数据 |
|
Joshua Wallace |
带有可配置驱动距离的按航向前进行为 |
|
Joshua Wallace |
辅助遥控行为,通过缩放遥控命令以防止碰撞。 |
路径点任务执行器
插件名称 |
创建者 |
描述 |
---|---|---|
Fetullah Atas |
在路标到达时执行等待行为的插件。 |
|
Fetullah Atas |
在路标到达时拍摄并保存照片到指定目录的插件。 |
|
Steve Macenski |
在继续下一个路径点之前等待用户输入的插件。 |
目标检查器
插件名称 |
创建者 |
描述 |
---|---|---|
David Lu!! |
该插件用于检查机器人是否在目标的平移距离和旋转距离范围内。 |
|
David Lu!! |
该插件用于检查机器人是否在目标的平移距离、旋转距离和速度阈值范围内。 |
进度检查器
插件名称 |
创建者 |
描述 |
---|---|---|
David Lu!! |
一个插件,用于检查机器人是否能够在给定时间内移动最小距离,以实现朝目标前进的进度 |
|
Guillaume Doisy |
该插件用于检查机器人是否能够在给定的时间内以最小的距离或角度移动,以实现向目标前进的进展。 |
行为树节点
动作插件名称 |
创建者 |
描述 |
---|---|---|
Michael Jeronimo |
调用备份行为动作 |
|
Joshua Wallace |
调用沿着指定方向行驶的行为动作 |
|
Joshua Wallace |
调用辅助遥控行为动作 |
|
卡尔·德尔西 |
调用清除整个代价地图服务 |
|
Guillaume Doisy |
调用清除代价地图除区域服务 |
|
Guillaume Doisy |
调用机器人周围清除代价地图的服务 |
|
“计算路径到位姿行为”_ |
Michael Jeronimo |
调用Nav2规划器服务器 |
“平滑路径行为”_ |
Matej Vargovcik |
调用Nav2平滑器服务器 |
Michael Jeronimo |
调用Nav2控制器服务器 |
|
Michael Jeronimo |
BT节点,供其他BehaviorTree.CPP BT以子树动作的形式调用Navigation2 |
|
卡尔·德尔西 |
将AMCL重新初始化为新的姿态 |
|
卡尔·德尔西 |
调用旋转行为动作 |
|
Steve Macenski |
等待行为调用 |
|
Francisco Martín |
修改路径使其更短 |
|
Matej Vargovcik |
提取围绕机器人的路径部分 |
|
Pablo Iñigo Blasco |
基于主题输入选择全局规划器,否则使用默认规划器 ID |
|
Pablo Iñigo Blasco |
基于主题输入选择控制器,否则使用默认控制器 ID |
|
Pablo Iñigo Blasco |
基于主题输入选择目标检查器,否则使用默认目标检查器 ID |
|
Owen Hooper |
根据主题输入选择平滑器,否则使用默认的平滑器ID |
|
[导航通过姿势](Navigate Through Poses)_ |
Steve Macenski |
供其他BehaviorTree.CPP行为树调用Nav2的NavThroughPoses动作的BT节点 |
[移除已完成目标](Remove Passed Goals)_ |
Steve Macenski |
从路径重新规划中剔除传递的目标姿势或在容差范围内剔除旧的途经点 |
[计算通过姿势的路径](Compute Path Through Poses)_ |
Steve Macenski |
使用指定的规划器插件计算通过一组姿势而不是单个目标姿势的路径 |
[取消控制动作](Cancel Control Action)_ |
Pradheep Padmanabhan |
取消Nav2控制器服务器 |
Pradheep Padmanabhan |
取消备份行为动作 |
|
Pradheep Padmanabhan |
取消旋转行为动作 |
|
Pradheep Padmanabhan |
取消等待行为动作 |
|
Joshua Wallace |
取消朝特定方向驱动行为动作 |
|
Joshua Wallace |
取消辅助远程操控行为动作 |
条件插件名称 |
创建者 |
描述 |
---|---|---|
卡尔·德尔西 |
检查目标是否在容差范围内达到。 |
|
Aitor Miguel Blanco |
检查目标是否被中断。 |
|
Joshua Wallace |
检查全局行为树上的目标是否被抢占 |
|
卡尔·德尔西 |
检查初始姿态是否已设置 |
|
Michael Jeronimo |
检查机器人是否在前进或卡住 |
|
Steve Macenski |
检查是否有 TF 变换可用。成功时返回后续调用的成功。 |
|
Sarthak Mittal |
检查机器人是否已行进给定距离。 |
|
Sarthak Mittal |
检查是否已经过去了给定的时间段。 |
|
Sarthak Mittal |
检查电池百分比是否低于指定值。 |
|
Joshua Wallace |
通过确保路径上没有致命障碍物来检查路径是否有效。 |
|
Joshua Wallace |
检查计时器是否已经过期。如果路径更新,则计时器将被重置。 |
|
Joshua Wallace |
检查指定的错误代码是否存在。 |
|
Joshua Wallace |
检查控制器恢复是否有助于清除控制器服务器错误代码。 |
|
Joshua Wallace |
检查规划器恢复是否有助于清除规划器服务器错误代码。 |
|
Joshua Wallace |
检查平滑器恢复是否有助于清除平滑器服务器错误代码。 |
|
Alberto Tudela |
检查电池是否正在充电。 |
装饰器插件名称 |
创建者 |
描述 |
---|---|---|
Michael Jeronimo |
将子节点限制在给定速率下 |
|
Sarthak Mittal |
根据机器人行进距离触发子节点 |
|
Sarthak Mittal |
将子节点限制在基于当前机器人速度的速率下 |
|
Francisco Martín |
通过主题订阅更新接收到的目标 |
|
Steve Macenski |
每个BT运行仅触发一次下面的节点/子树 |
|
Pradheep Padmanabhan |
如果新的全局路径在接近目标时明显比旧的全局路径更长,则触发子节点 |
控制插件名称 |
创建者 |
描述 |
---|---|---|
卡尔·德尔西 |
序列节点的一种变体,即使有其他子节点正在运行,也会重新触发先前的子节点 |
|
卡尔·德尔西 |
节点必须包含2个子节点,并在第一个子节点成功时返回成功。如果第一个子节点失败,则会触发第二个子节点。如果成功,将重试第一个子节点,然后返回其值 |
|
Mohammad Haghighipanah |
将逐个处理第 |