Navigation 2 学习02 nav2 行为树概念

行为树定义:

行为树(BT)在复杂的机器人任务中变得越来越普遍。它们是要完成的任务的树形结构。它创建了一个更具可扩展性和人类可理解性的框架,用于定义多步骤或多状态应用程序。这与有限状态机(FSM)相反,有限状态机可能有数十个状态和数百个转换。一个例子是踢足球的机器人。将足球比赛的逻辑嵌入到
FSM 中将具有挑战性,并且容易出错,因为有许多可能的状态和规则。此外,建模选择(例如从左侧、右侧或中心射门)尤其不清楚。通过
BT,可以创建基本原语,如“踢”、“走”、“去球”,并可重复用于许多行为。

行为树为导航逻辑提供了一个正式的结构,它既可以用于创建复杂的系统,也可以使用高级工具进行验证和验证,证明其正确性。将应用程序逻辑集中在行为树中并具有独立的任务服务器(仅通过树通信数据)可以进行形式分析。

对于这个项目,我们使用BehaviorTree CPP V3作为行为树库。我们创建节点插件,可以将其构造成树,在. 节点插件被加载到BT中,并且当解析树的XML文件时,注册的名称被关联。此时,我们可以通过行为树进行导航。BT Navigator

使用该库的原因之一是它能够加载子树。这意味着Nav2行为树可以加载到另一个更高级别的BT中以使用该项目作为节点插件。一个例子是在足球比赛中,使用 Nav2 行为树作为“去球”节点,并将球检测作为更大任务的一部分。此外,我们还NavigateToPoseAction为 BT 提供了一个插件(以及其他插件),以便可以通过常用的操作接口从客户端应用程序调用 Nav2 堆栈。

参考:
https://navigation.ros.org/concepts/index.html#ros-2

你可能感兴趣的:(nav2,nav2,机器人,机器人仿真,人工智能,ros2)