物理引擎,能够模拟重力、碰撞、摩擦、弹性形变、流体动力学等基本的物理规律。其次,需要一组虚拟的感知和运动器官——相当于给棋手模型在虚拟世界中装上一双眼睛和一只手。眼睛提供视觉输入,手提供触觉输入和运动输出。最后,需要一套自动化的训练任务生成系统,能够根据棋手模型当前的能力水平,生成难度适中的训练任务,引导它逐步提升对物理世界的理解。”
“这个工程量不小。”另一名仿真工程师说,“光是物理引擎的开发和调试,可能就需要两到三个月的时间。”
“时间不是问题。”陆迪峰说,“重要的是先把框架搭起来,然后在运行中不断完善。这个项目我亲自跟进,需要什么资源直接跟我说。”
虚拟训练场的开发工作在会议结束后立即启动。陆迪峰将珠网系统的研发暂时交给了***负责,自己则将大部分精力投入到了训练场的架构设计中。
他花了整整一周的时间,绘制出了训练场的整体架构图。架构图分为三层:底层是物理引擎层,负责模拟虚拟世界中的所有物理交互;中间层是感知-运动接口层,负责将虚拟世界中的物理状态转换为棋手模型可以理解的符号化输入,并将棋手模型的决策指令转换为虚拟世界中的运动输出;顶层是训练任务管理层,负责生成、调度和评估训练任务。
在感知-运动接口层的设计中,陆迪峰做了一件出人意料的事情——他没有采用传统的图形渲染方式来为棋手模型提供视觉输入,而是将珠四号中使用的触觉感知编码方式移植到了视觉领域。具体来说,虚拟世界中的物体表面被划分为一个个微小的“感知像素”,每一个感知像素在被棋手模型的虚拟“手指”触摸时,会返回该点的材质属性(硬度、粗糙度、温度等)和几何属性(高度、坡度、曲率等)。棋手模型通过用虚拟手指在虚拟物体表面反复扫描,逐步建立起对物体形状和材质的认知。
这种设计方式的灵感来源于盲人的触觉阅读方式——盲人用手指触摸盲文凸点来阅读文字,通过触觉来构建对世界的认知。陆迪峰希望棋手模型也能够通过类似的触觉探索方式,建立起对物理世界的直观理解,而不是依赖预先渲染好的视觉图像。
“视觉图像是二维的投影,容易产生歧义。”他在设计笔记中写道,“而触觉是三维的、直接的、与物理交互紧密耦合的。让棋手模型通过触觉来认识世界,虽然比视觉更慢、更费力,但建立起来的理解会更加扎实、更加贴近物理本质。”
在陆迪峰埋头
本章未完,请点击下一页继续阅读!