1 Navigation
Navigation Steps:
1 Map Representations-Walkable Area
2 Formats
1 Waypoint Network
把空间抽象成一个个的点。
点和点之间形成一个网络,路网的方法,很古老。
缺点:地图经常变化,需要经常跟新网络图,目前很少用了
2 Grid
可以动态更新,问题在于:存储浪费,效率低,很难表示层递结果。
3 Navigation Mesh
面覆盖,ai可以更自由,
多边形:凸多边形
寻路很快,但是生成毕竟麻烦
小鸟和无人机无法表达。
4 八叉树
解决naviMesh的问题。
存储毕竟浪费。
3 寻路
两个算法:
深度优先
广度优先
但是无法计算加权最短路径。
Dijkstra 算法
启发式算法;A*算法是最普遍的算法。小机器人在环境里如何动了。
4 Path Smoothing
Funnel算法
5 NavMesh 生成
体素化-标记成可通行区域,
标记navmesh。
块,一个个的块,
建立手动的连接线,提供向上的开放性。
2 Steering
追,逃
速度匹配
朝向一致
1 Seek/Flee
2 velocity Match
小步长。
3 Align
角速度也有个速度
角速度的加速。角加速和角减速
3 Crowd Simulation
群体运动;
微观控制
运动趋势
宏观控制+围观控制
1 微观
不可控的
2 宏观
3 宏观+微观
4 避免碰撞
数字孪生
基于速度的障碍法
多个物体,需要做整体的优化,空间 上所有的速度。
RVO复杂度很高,很难实现,推荐Force-based方法。
在引擎里有mpc,mpc有群体的行为,不希望彼此碰撞,ai效率很低,需要碰撞避免系统。
4 Sensing
1 静态信息;
2 动态信息:
引擎需要设计一个开放的接口
3 感知模拟
5 Classic Decision Making Algorithms
1 有限状态机
当state很多的时候,就毕竟麻烦了
这些算法是15年前用的,HFSM
2 行为树BT
状态机是AI逻辑的抽象,状态里来回切换,但是不符合真实人的思考。
人的真实思考是分支性思考,像一棵棵树一样,他来源于是决策树。
1 可以执行的节点
2 控制节点
决策时可以同时处理多个事情。
1 sequence
非常重要的控制节点
2 Selector
3 Parallel
3 Tick 行为树
4 Precondition
最了不起的地方是:人类好去理解,好去维护
五类节点包含了几乎全部人类所有的活动。
5 Blackboard
6 Pros
7 cons
8 AI planning and goals
6 问题
有个goto
读的是点,图,
AI获取数据的时候效率很低,
垂直面,可以标记。