姿态补偿测试面临一个根本性的物理约束:测试台的机械行程是有限的,而真实机器人运行环境的运动可能是无限持续的。例如,船舶机器人在海浪中的横摇、无人机在长坡中的俯仰,这些运动在时间上连续、在空间上累积。若测试台试图1:1复现,很快会触及机械极限。洗出算法(Washout Algorithm)正是为解决这一矛盾而生。
在这里插入图片描述

洗出算法的核心思想源于人体前庭感知模型。人类对低频线加速度与持续角速度的感知存在阈值,低于阈值的缓慢运动不会被察觉。算法利用这一生理特性,将输入的六维运动指令分解为高频瞬态通道与低频持续通道。高频通道(如路面颠簸、碰撞冲击)直接由平台复现;低频通道(如长坡道、持续转弯)则通过高通滤波提取瞬态分量由平台执行,同时以缓慢回中的方式将平台位移与角度归零。这种设计使得平台在有限的±1000mm线位移与±45°转角范围内,能够无限期地模拟持续运动环境。
在数学实现上,洗出算法是一组级联的高通、低通与积分滤波器。以俯仰通道为例,输入的俯仰角θ经过高通滤波后得到平台执行角θ_hp,其截止频率通常设定在0.1Hz至0.5Hz之间;同时,θ经过低通滤波与积分运算后生成一个与重力分量相关的补偿信号,用于模拟持续俯仰带来的G力感知。六个通道(俯仰、横滚、偏航、纵移、横移、升降)的滤波器参数需根据被测机器人的感知带宽进行独立整定,这要求控制软件开放参数调节接口。
实时控制架构方面,现代测试台普遍采用PC-based控制方案。工业PC运行实时操作系统(如RT-Linux或VxWorks),通过EtherCAT主站卡以1000Hz周期向六台伺服驱动器发送位置指令。控制软件内部通常划分为三个线程:最高优先级线程以1kHz执行EtherCAT通讯与伺服数据交换;中优先级线程以200Hz运行洗出算法与逆运动学解算;低优先级线程以10Hz至50Hz处理用户界面、数据记录与仿真软件通讯(如通过UDP/TCP/IP接收X-Plane或CarSim的输出)。
这种架构的优势在于开放性与可扩展性。通过开放API或SDK,研究人员可将自研算法嵌入中优先级线程。例如,在机器人自适应控制测试中,需要将平台实际位姿作为状态观测器的输入,同时将观测器估计的扰动前馈至平台力控模式。若平台控制架构封闭,此类深度定制将无法实现。此外,支持MATLAB/Simulink实时接口的平台,允许研究人员直接在Simulink模型中部署洗出算法,自动生成的C代码通过外部模式下载至目标机,大幅缩短了算法验证周期。
在某服务机器人导航测试项目中,我们利用平台的开放接口实现了双层洗出。外层为传统六自由度洗出,模拟室内地面的随机倾斜;内层为机器人本体主动补偿环,根据IMU反馈调整驱动轮速。两层控制通过共享内存交互,周期分别为5ms(平台姿态环)与2ms(机器人控制环)。测试发现,当两层控制的相位延迟不匹配时,系统会出现轻微的正反馈震荡。通过在外层引入相位超前补偿,并将平台位姿反馈通过USB3.0以1kHz高速输出至机器人控制器,震荡得以消除。这一案例表明,洗出算法并非孤立运行,其性能取决于与外部控制环路的协同设计。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐