蝇控机器人实验中的信息流示意图
利用NI的LabVIEW软件和CompactRIO硬件制造一个快速、模块化、易于使用的仿生机器人平台,它涉及各种工业协议和实时闭环激励信号生成。
"借助于CompactRIO控制器和LabVIEW,我们对于飞虫如何实现出色的飞行控制进行了研究。"
苍蝇能够高速追逐,并精确地降落在盘子的边缘,这其中的机动性令人非常感兴趣。我们可以利用苍蝇作为模型系统研究神经信息处理、空气动力学和遗传学,此外,它们还可以快速、精确地使用它们的生物传感器、控制器和执行机构。人们对它们这样的能力很感兴趣但是难以进行研究。测量和激励装置必须具有高带宽、低延迟,并拥有灵活的界面。同时,易用性和模块化特性也是跨学科和合作研究的关键。
我们利用CompactRIO 控制器和LabVIEW 图形系统设计软件来研究飞虫如何实现出色的飞行控制。我们采用了数字I/O模块来连接一个基于LED的视觉激励场,它具备了时间和空间的精确的分辨率,使得我们可以有效刺激苍蝇的视觉系统。记录昆虫的响应需要一个快速、灵活的采集系统。LabVIEW能够提供记录这些信号所需要的速度和模块化特性,并且能够将它们作为实时反馈来生成刺激信号。这样,我们就能够把将苍蝇作为一个活的传感器,并嵌入到一个科技系统中。
我们开发了一个试验。在试验中,我们把一只果蝇用绳拴住,通过果蝇的动作来控制伊普克(e-puck)机器人。该机器人是一个小型移动机器人,是一个大学的研究项目,它被设计用于通过充满障碍的环境。从绑定在机器人上的照相机和接近传感器可以获得反馈,用来确定向苍蝇展示的视觉刺激、翅振频率和幅度等飞行参数,来控制机器人运动(图1)。苍蝇和机器人之间的传递函数会发生变化,从而实现一系列的试验模式。
苍蝇的高速电影:加速的LED视觉场
视觉激励场包括8个绿色LED 面板,它们通过I2C协议连接到定制的控制器。在过去的设计中,所有的飞行都由一条总线进行控制。为了实现更高的帧率,并根据苍蝇的反馈来调节视觉激励,我们必须使用多条并行的总线。最终,我们选择了NI cRIO-9014 实时控制器和一体化NI cRIO-9104可重新配置嵌入式机箱更换了最初的控制器。
蝇控机器人:从苍蝇到机器人
在实验装置(图2)中,果蝇被用绳拴在一个环形的LED面板阵列的中心。虽然昆虫不能够移动,但仍可以拍打翅膀并且按照和自由飞行相同的方式飞行。数字振翅分析仪会获得电流频率、振幅、位置均值和苍蝇振翅的相位。这些行为状态矢量通过用户数据协议(UDP)包传输到一台运行LabVIEW的主机上。我们可以在主机上应用自定义传递函数计算出更新的伊普克(e-puck)机器人的轮转速。这些数值再通过蓝牙(Bluetooth)发送到机器人上。
从机器人到苍蝇
当我们利用昆虫的行为来操纵机器人时,来自机器人设备的反馈会修改面向昆虫的视觉显示方式。反馈由安装在机器人顶部的三个线性照相机和八个接近传感器给出。照相机以10Hz的频率采集,每帧拥有102像素。接近传感器以20Hz的频率输出标定后的数据。主机会通过蓝牙(Bluetooth)接收这些信号并且应用第二个自定义传递函数,以生成在LED视觉场上显示的下一帧图像。
主机应用程序通过以太网(Ethernet)把新的图像模式发送到实时控制器。然后这一图像模式被划分为8×8像素块,每个像素块将与一个LED面板相对应,并被转换为I2C指令。为了实现最大处理量,这些数据会经由DMA(直接内存存取)的FIFO(先进先出)队列传递到FPGA(现场可编程门阵列)。中断向量可以保证在实时控制器命令生成和FPGA底层硬件通信之间的同步。而后,FPGA背板采用I2C协议控制12条总线,每条总线分别控制五个面板。从而,机器人所看到的环境决定了针对苍蝇的视觉刺激,而苍蝇对视觉刺激的响应也改变了机器人前进的路径。
视觉刺激的帧率大约在30Hz和400Hz之间,这取决于模式的深度和是否垂直对称。控制回路中的累积延迟小于50毫秒并且这主要是由传感器信息是经由蓝牙从机器人传输到主机而造成的。
有效地设计:灵活的界面和模块化的结构
借助于LabVIEW和CompactRIO,我们可以通过各种不同的协议连接到一系列的研究工具。NI和LabVIEW的网络用户社区提供的极大的灵活性和许多范例程序,这使得基于LabVIEW设计的应用有效地替代了实验生物学中的定制控制器。
我们设计了一种友好的GUI(图形用户界面),它为实验者提供了必要的控制手段和信息,从而简化了多个硬件平台上运行的代码的复杂度(图3)。这一功能在一些跨学科的应用中非常有效,能够增进生物学家、数学家、物理学家和工程师之间的密切合作。此外,LabVIEW代码的模块性和可移植性也使其能够在实验室之间被分享和重复利用。例如,在这一解决方案的定制化版本,运算模式可以被预先生成并且保存在U盘中,然后下载到实时控制器的RAM中,再传输到LED面板,以获得更高的刷新率。
一个混合的自适应控制器
由于苍蝇的部分神经回路具有高度的可塑性,它可以被看作一个自适应控制器。通过使用新的仿生机器人平台,我们能够评估控制器在各种外部传递函数下的性能,这些传递函数几乎能够模仿出所有的苍蝇的自然飞行环境,例如根据最靠近机器人的障碍物的位置来确定视觉场中的栅格的上下移动。但令人惊讶地是,最接近于直觉的传递函数并不一定会获得最佳结果。
LabVIEW 和 CompactRIO为构造这一包含活体昆虫并且允许我们进行各种实验的控制回路提供了理想解决方案。CompactRIO负责采集并生成各种适用不同工业标准的信号,并扩展了自定制的研究工具。另外,由于我们在计算机、实时控制器和FPGA上分别实现的应用程序是在同一个编程环境和开发语言下完成的,这大大节省了我们的学习时间,提高了效率。此外,大量的附件产品和外接接口还为未来的扩展和适应性提供了巨大潜力。