文章目录
- 前言
- 今天实现的内容:
-
-
-
- 样条线控制的车辆AI原型
- PID控制器
- 红绿灯系统
-
-
- 接下来的计划:
前言
这是一个ai车辆项目,将包含几种不同行为模式的AI车辆在城市交通场景中运行,你可以理解我我计划做出GTA等城市场景开放世界游戏中的NPC车辆及交通,这个项目将成为本人的毕设及实习training。
今天实现的内容:
准确来说,这个项目8月我就开始上手了,但是当时没有写日志,今天的日志就记录一下以前的成果。
样条线控制的车辆AI原型
我最简单的构思,就是通过样条线将道路路径描述出来,AI车辆要能开走只需要跟随样条线就行。原型已经用UE4蓝图做出来了。按照这个油管视频作者的系列教程做的。
Seredias
在此基础上,可以加入简单的红绿灯,还可以通过在车前放一个触发器的办法来检测前方的障碍物,不过更好的办法是使用UE4提供的sensor。
PID控制器
这是实习项目给的参考资料。
How to implement vehicle AI in UE4
PID控制器,我也不太懂,据懂的人说,这是一种水多加面,面多加水的设计思路,给出目的地就能让AI汽车计算出合适的运行行为。因为我们的AI车不是直接让车辆产生位移,而是控制车辆的油门,方向盘。使用PID控制器能让AI车一点一点“蹭”到正确方向,如果参数得当,车辆的运行看起来就非常真实。
很可惜,我看不懂,计时我能让源代码跑起来,由于参数不好,我的AI车的运动蛮奇怪。如果我能够更好的实现PID控制器,也许在可能会用到的小范围移动时能够使用PID控制器,希望不会用到。
红绿灯系统
作为交通的一部分,红绿灯是很重要的一环,所有我实现的早,实现方法是,首先安排一个bool表示当前是红灯还是绿灯。然后给AI Car做个Stop函数来设置刹车,在红绿灯下面放一个触发器,一旦车辆开进去,触发触发器的On Component Begin Overlap函数,就开始判断当前是红灯还是绿灯,如果是红灯就让该函数调用车辆的Stop函数,绿灯则调用Drive函数。
然后让表示红绿灯的bool参数每隔一段时间变一下就行。
接下来的计划:
之前我应该是实现了使用UE4的PawnSensing来让车辆识别前方的障碍物,不过碍于今天回到公司,发现电脑打不开,浪费了一些时间让IT大哥来修,导致没时间看(bushi。
接下来的工作,就是车辆障碍物识别,速度限制啥的,然后就可以出一代原型(prototype 1.0)了。