公司动态
146、Sim2Real控制迁移:动力学差异与鲁棒控制
146、Sim2Real控制迁移:动力学差异与鲁棒控制上周在实验室调那个七轴机械臂,仿真里跑得好好的阻抗控制策略,一上真机就抖得跟帕金森似的。我盯着示波器上那条疯狂振荡的力矩曲线,突然意识到一个被无数论文轻描淡写带过的问题——Sim2Real的坑,从来不在你仿真里建了多少物理细节,而在你压根没想过真机和仿真之间那点“说不清道不明”的差异到底有多大。今天这篇笔记,咱们就着这个抖成筛子的机械臂,把Sim2Real控制迁移这件事掰开揉碎了聊。不整那些虚头巴脑的理论框架,就讲我踩过的坑、试过的招、以及最后真正管用的那几板斧。先别急着上域随机化,你得知道差异从哪来很多人一听说Sim2Real,第一反应就是“哦,域随机化嘛,把质量、摩擦、阻尼都加噪声,多训几个环境”。这话对了一半,但如果你连差异的来源都没搞清楚,域随机化就是在瞎蒙。我习惯把动力学差异分成三类。第一类是参数差异,比如质量、惯量、质心位置、关节摩擦系数,这些是可以用系统辨识去逼近的。第二类是结构差异,比如仿真里你用的是理想刚体模型,但真机上有柔性、有间隙、有齿轮回程差,这些是模型结构本身就不对。第三类是环境差异,包括供电电压波动、温度变化导致的润滑状态改变、甚至地面振动——这些在仿真里压根不存在。拿我那次抖动问题来说,仿真里我用的摩擦模型是库仑加粘滞,参数也是从厂家给的datasheet里扒的。但真机上那个谐波减速器的摩擦特性,跟库仑模型差了十万八千里——它有明显的Stribeck效应,低速时摩擦力反而更大,而且还有滞回特性。这就属于典型的“参数对不上,结构也不对”的双重打击。所以第一步,别急着改算法,先