✅图 2 会有一个绕原路的bug,也就是一个 findAPath 有 bug,有些能卖的没卖出去,图 1 修正后反而会死锁等待
✅图 2 最上面的小口子没判断走进去
✅#pragma GCC optimize(2) 可以非编译指令加 O2 优化
✅摩擦力降低带来了碰撞的损失变少:直接加速撞死算了,反正不容易卡死,碰撞检测的后退太慢了。一方面碰撞情况极大地增加,另一方面碰撞的速度损失降低,蓝色方价值损失也少了一半
✅智能体动态优先级(老是出现没那东西的去卡拿了东西的,甚至把拿了7的给撞没)优先级设置:
最高:卡死的(A没路走的话A优先级最高)
最低:本来就已经在避障的
系数:
当前物品剩余价值V,如果为空则为目标优先级系数(就是之前那个每个站台的优先级系数)* smothing
当前剩余路程S
自身ID
计算公式大概是:
先判断是不是没路走了,如果是,设个很大的值 return
然后判断是不是已经在避障了,如果是的话就给个0,继续避 return
然后以V S ID为顺序,依次计算优先级(可以搞成一个函数,没想好,我回来可以设计一下)
目前想的一个优先级是:
✅对于不带物品提高速度
✅路径规划的有问题,容易撞上,具体表现在DodgingCorners和fixpath
所有可以分红蓝决策的地方 针对运动已经做完了
找到5m路径最后停住,然后停住一会对方已经过来了😅然后撞上了 这个确实是被推着走所必然的
✅效率:碰撞检测可能选择太差的路径:每隔 50 帧,重算一遍路径
问题:碰撞检测
效率:防止一秒内刷新四次跳帧,改成 %100==id*10
效率:可能会存在一些节点去非常远的地方,这非常影响效率。对于急缺的物资,需要动态提高效率
红蓝双方:
✅30 帧卡死重算路径→10 帧算卡死路径
✅做了追逐检测
100 帧重算【不算对于 2 图有很好的效果,但是应该通过其他方式解决,比如避障应该跑的更远一些,促进转圈圈】
对 7 号工作台的参数设置更高一些,让 7的生产不要停下来,图 1 生产的比别人慢一些,用带物品的距离来衡量好的工作台
✅躲避障碍物应该更远一些,因为狭窄地图的情况确实不会出现了 0.81 0.74 0.56