神经科学实验的传统硬件成本往往高达数万美元,这限制了研究的可及性与创新速度。2021 年,神经科学家 Viktor Tóth 通过一个 DIY 项目展示了另一种可能:用低于 2000 美元的预算构建完整的啮齿动物 VR 系统,并成功训练三只大鼠在 DOOM II 引擎中导航虚拟走廊。这个项目的工程价值不仅在于成本控制,更在于其模块化设计、实时数据处理架构和自动化训练机制的实现。
硬件架构:从 3D 打印到传感器集成的模块化设计
整个 VR 系统的核心是一个 40 厘米直径的泡沫球,表面涂有橡胶涂层以增加摩擦力。大鼠站在这个球形跑步机上,身体通过机械臂固定,形成自然的运动姿态。系统的硬件设计遵循模块化原则,每个组件都可以独立测试和替换。
运动传感系统
运动检测使用了两个经过改造的激光鼠标传感器,分别安装在前方和左侧,覆盖三个轴向的运动数据。激光鼠标的检测范围约为 1 厘米,为了应对泡沫球表面的不规则性,前部轴承安装在可调节的 "魔术臂" 上,确保传感器与球面保持恒定距离。
传感器数据通过 USB 接口传输到主控计算机,使用 Linux 的evdev库实时读取输入事件。这种设计实现了毫秒级的运动数据采集延迟,为实时游戏交互提供了基础。
3D 打印的机械结构
所有定制部件(附件、电气组件支架、机械装置)都在 Blender 中设计,然后 3D 打印。设计过程中测试了数十个版本,最终确定了最优结构。特别值得注意的是,为了支持不同尺寸的泡沫球,Tóth 编写了一个 Blender Python 脚本,根据球的直径、3D 打印机尺寸和轴承规格自动生成支撑臂的 3D 模型。
# 伪代码:Blender脚本自动生成支撑臂
def generate_support_arms(ball_radius, printer_bed_size, bearing_dimensions):
# 计算支撑臂的角度和位置
# 确保轴承与球面呈90度接触以最小化摩擦
# 生成可3D打印的STL文件
反馈机制硬件
正向反馈使用精密电磁阀控制糖水供给,每次剂量控制在数十微升。负向反馈原本计划使用 12V 微型气泵产生空气喷射,但最终出于谨慎考虑未在实际实验中使用。所有电子设备都安装在铝制框架上,框架由 Misumi 预切割并订购,确保了结构的稳定性和可重复性。
软件控制:实时数据流处理与游戏状态同步
系统的软件架构采用分层设计,将硬件控制逻辑尽可能推送到 PC 端,同时保持微控制器的响应时间在可接受范围内。
数据流架构
运动数据流遵循以下路径:
- 激光鼠标传感器 → USB 接口 → Linux 输入事件系统
- Python
evdev库读取原始运动数据 - 计算时间序列上的运动速度
- 缩放并转发到 ViZDoom 引擎
- ViZDoom 将运动转换为游戏内步伐
整个数据流延迟控制在 50 毫秒以内,确保了大鼠运动与游戏反馈的实时同步。
ViZDoom 游戏接口
ViZDoom 原本是为强化学习算法训练设计的 Doom API,但其丰富的游戏状态接口使其成为理想的实验平台。通过 ACS 脚本,系统可以访问玩家位置、怪物击杀数等游戏变量,并将这些信息暴露给 Python 实验脚本。
# 简化的ViZDoom接口代码
import vizdoom as vzd
# 初始化游戏
game = vzd.DoomGame()
game.load_config("experiment.cfg")
game.init()
# 获取游戏状态
state = game.get_state()
player_position = state.game_variables[0] # 自定义ACS变量
monster_count = state.game_variables[1]
# 发送动作
action = [move_forward, turn_left, turn_right, shoot]
reward = game.make_action(action)
微控制器通信协议
两个 Arduino 微控制器管理所有电子设备:2 个线性执行器 + 电机、2 个气泵、1 个电磁水阀、1 个推拉式电磁铁和射击按钮。PC 通过串口与微控制器通信,使用简单的二进制协议:
- 第一个字节:消息类型(扩展执行器、分配糖水等)
- 后续字节:有效载荷(执行器扩展时间、水量等)
这种设计保持了协议的简洁性,同时允许在 Python 端实现复杂的控制逻辑。
训练自动化:操作条件反射的工程实现参数
系统的核心创新在于自动化训练机制,这减少了实验者的人工干预,提高了训练的一致性和可重复性。
2D 运动训练算法
训练大鼠在球形跑步机上行走采用渐进式方法:
- 初始阶段:如果大鼠停滞不动,线性执行器将轮子推向球体,电机旋转 2 秒
- 适应阶段:大鼠学会利用电机辅助,开始主动行走
- 自主阶段:大鼠完全自主控制运动
关键工程参数:
- 电机推力:通过弹簧调节,保持与不规则球面的恒定接触压力
- 训练间隔:每次辅助后等待 3-5 秒观察大鼠反应
- 奖励阈值:连续自主运动 5 秒触发糖水奖励
射击行为训练机制
射击训练设计了一个精巧的机械系统:大鼠的背带连接到一个 3D 打印的臂上,允许垂直运动。推拉式电磁铁作为训练机制,当怪物出现在玩家前方时:
- 软件检测到怪物接近
- 激活电磁铁,轻微抬起大鼠
- 电磁铁轴接触按钮,触发游戏内射击
- 释放糖水奖励
理想情况下,大鼠学会在怪物面前抬起身体(一种自然的后仰行为),从而自主触发射击。电磁铁使用脉宽调制驱动,实现更渐进的拉动,避免惊吓动物。
实时行为状态机
整个训练过程由一个不到 300 行的 Python 脚本控制,实现了并发的事件处理:
class RatTrainingStateMachine:
STATES = ['IDLE', 'WALKING', 'TURNING', 'SHOOTING_TRAINING', 'REWARD']
def __init__(self):
self.current_state = 'IDLE'
self.transition_table = {
'IDLE': self._handle_idle,
'WALKING': self._handle_walking,
# ... 其他状态处理函数
}
def update(self, motion_data, game_state):
handler = self.transition_table[self.current_state]
new_state, actions = handler(motion_data, game_state)
self.current_state = new_state
return actions
成本效益分析:DIY 系统与商业方案的工程对比
成本分解
Tóth 系统的总成本低于 2000 美元,主要组件包括:
- 3D 打印材料:$150-200(PLA/ABS 耗材)
- 电子组件:$300-400(Arduino、传感器、执行器、电磁阀)
- 机械部件:$500-600(铝框架、轴承、泡沫球)
- 显示设备:$800(曲面 Dell 显示器)
- 杂项:$100-200(线缆、连接器、工具)
相比之下,商业啮齿动物 VR 系统价格通常在 7 万美元以上,主要差异在于:
工程质量对比
- 精度与校准:商业系统提供亚毫米级运动跟踪精度,DIY 系统依赖激光鼠标传感器,精度约为 1 厘米
- 可重复性:商业系统经过工厂校准,DIY 系统需要手动校准每个组件
- 支持与维护:商业系统提供专业技术支持,DIY 系统依赖社区和自行调试
可扩展性优势
DIY 系统的最大优势在于可定制性。研究人员可以:
- 修改硬件配置以适应特定实验需求
- 集成额外的传感器(EEG、EMG、眼动追踪)
- 开发自定义的软件分析工具
- 快速原型化新的实验范式
工程教训:可复现性与扩展性设计
硬件设计的关键参数
- 轴承接触角度:必须保持 90 度接触以最小化摩擦,偏差超过 5 度会导致明显的运动阻力
- 弹簧刚度:执行器与轮子之间的弹簧刚度需要精确计算,太软无法传递足够扭矩,太硬会过度推动球体
- 传感器采样率:激光鼠标的标准采样率为 125Hz,对于大鼠的快速运动足够,但对于更精细的神经相关分析可能需要升级到 500Hz 以上
软件架构的优化空间
- 数据流水线:当前的串行处理存在累积延迟,可改为并行流水线架构
- 状态管理:使用更正式的状态机实现(如 Python 的
transitions库)提高代码可维护性 - 配置管理:将所有硬件参数和训练参数外部化为 JSON 配置文件,便于实验复现
实验协议标准化建议
基于此项目的经验,建议未来的神经科学 VR 实验遵循以下工程标准:
- 运动数据格式:定义标准的运动数据格式(位置、速度、加速度的时间序列)
- 事件标记协议:统一标记行为事件(开始行走、转向、射击尝试)的时间戳格式
- 校准程序:制定详细的系统校准步骤,包括传感器零点校准、运动缩放因子测定
- 数据同步:实现硬件时钟同步,确保运动数据、游戏事件和神经记录的时间对齐
技术局限与未来方向
已识别局限性
- 训练时间不足:11 天的 VR 训练不足以完成复杂的射击行为训练
- 系统开发并行性:硬件与软件同步开发导致训练条件不一致
- 动物行为变异性:大鼠的个体差异和不可预测行为影响训练效果
工程改进建议
- 模块化传感器升级:替换激光鼠标为光学编码器,提高运动检测精度
- 分布式控制系统:使用 ROS(机器人操作系统)架构,实现更好的组件解耦
- 自动化校准工具:开发软件辅助的校准程序,减少手动调整时间
- 实时数据分析流水线:集成在线行为分类算法,实现自适应训练
神经科学应用扩展
此工程平台为多种神经科学研究提供了基础:
- 空间导航研究:在复杂虚拟迷宫中研究海马体位置细胞活动
- 决策行为分析:在游戏任务中研究前额叶皮层的决策机制
- 运动学习:追踪小脑在运动技能获取中的可塑性变化
- 多模态集成:结合视觉、前庭和本体感觉输入的研究
结语:低成本神经科学工程的可行性
Viktor Tóth 的 "大鼠玩 DOOM" 项目展示了神经科学研究中工程创新的力量。通过精心的硬件设计、简洁的软件架构和自动化的训练机制,他构建了一个功能完整且成本可控的实验平台。这个项目的真正价值不在于让大鼠玩电子游戏,而在于证明了:
- 成本不是创新的障碍:2000 美元的预算可以构建出价值 7 万美元系统 80% 的功能
- 开源硬件与软件的潜力:基于 Arduino、3D 打印和 Python 的生态系统足够强大,支持复杂的神经科学实验
- 跨学科工程的价值:将游戏开发、机械工程、嵌入式系统和行为科学相结合,创造出全新的研究工具
对于希望进入系统神经科学领域的研究者,这个项目提供了一个完整的工程蓝图。从 3D 建模到实时数据流,从硬件校准到行为训练,每个环节都有详细的技术参数和实现细节。更重要的是,它展示了如何将工程思维应用于生物学问题,创造出既实用又创新的研究工具。
在神经科学日益依赖复杂技术平台的今天,这种 DIY 工程方法不仅降低了研究门槛,更促进了方法的透明度和可重复性。当每个组件都可以被理解、修改和优化时,科学发现的速度和质量都将得到提升。
资料来源:
- Viktor Tóth. "Rats in Doom VR: Building a rodent VR setup from scratch." Medium, October 2021.
- ViZDoom Documentation. Farama Foundation. https://vizdoom.farama.org
- Thurley & Ayaz. "Virtual reality systems for rodents." Current Zoology, 2017.
注:所有动物实验均经过 Feinstein Institutes 机构动物护理与使用委员会批准。