徐洋猛地张了张嘴,眉头微蹙,脑子飞速运转个不停。
    他从事伺服控制领域已经有十几年了,对分数阶微积分也並不陌生,可那东西向来被业內人视作“屠龙之技”的。
    在理论层面堪称精致完美,看似无懈可击,可落到实际工程应用里,却处处都是难以突破的壁垒,根本没法真正落地,真正把这个方法用到实际实验中的,少之又少。
    可肖宿刚才给出的频带范围和近似阶次,精確得像是已经把仿真跑过几百遍一样。
    “肖教授,”徐洋的声音有些发乾,“分数阶项的离散化实现方案,您有更具体的……內容吗?”
    肖宿扫了他一眼,转身在白板上写出了递归滤波器的零极点配置公式。
    “用oustaloup递归滤波器,五阶逼近就够了,零极点交错分布在指定频带內。”
    “极点的频率分布可以採用几何级数,公比取10^(1/n),n是逼近阶数,五阶逼近在你们关心的频段內幅频误差不会超过0.3db,相频误差不会超过2度。”
    实验室里安静了几秒钟。
    角落里一个年轻工程师小声问旁边的同事:“他刚才说的那个ous什么东西,你听说过吗?”
    同事摇了摇头,脸色发白。
    徐洋顾不上管身后的动静,他脑子里正在疯狂地把肖宿给出的传递函数代入到他们现有的系统框图中去推演。
    他越推越快,越推越心惊。
    这个方案不是看起来可行,而是几乎不需要做任何额外的理论验证,拿过来就能往dsp里写代码了。
    “可是肖教授,”徐洋突然想到了什么,“分数阶pid的参数整定,用相位裕度法需要用到一个参考模型,我们的参考模型又该怎么建呢?”
    “可以用den hartog的临界灵敏度法变形,把整数阶的nyquist判据推广到分数阶域。”
    肖宿把笔帽盖上,语气平淡得像在说一加一等於二,“推广的步骤很简单,构造一个riemann曲面上的复变函数,把分数阶项映射到曲面的不同叶上,然后在主叶上做nyquist围线积分。
    jacobian矩阵的结构和李群上的切空间有自然的对应关係,这一步我在另一篇论文里详细写过,回头你们可以看一下。”
    徐洋的脑袋已经开始发胀了。
    他搞了十几年伺服控制,自认为在国內算得上顶尖水平,可肖宿刚才说的话里,他能完全听懂的不到一半。
    沈凌比徐洋好不到哪去。
    他是做图像重建的,控制理论不是他的本行,但他已经敏锐地意识到了一个问题,那就是肖宿刚才解决伺服延迟的方法,和他接下来要问的成像畸变问题,在数学结构上似乎是相通的。
    “肖教授,”沈凌深吸一口气,往前迈了一步,“成像这边的问题,您刚才也听到了。
    我们的多视图几何重建在动態场景下会出现帧间畸变,我用梯度下降和卡尔曼滤波都试过了,效果还是不太理想。”
    “因为你的问题不在滤波。”肖宿转身面对他,“你把你们的投影矩阵写给我看看。”
    沈凌立刻拉过一台笔记本电脑,调出他们当前使用的三维重建算法的核心代码,把投影矩阵的定义部分展示在屏幕上。
    肖宿只是上下扫了一遍就知道他们问题在哪儿了。
    他直接指著屏幕上的一个矩阵说道:
    “世界坐標繫到相机坐標系的变换用的是欧拉角表示旋转矩阵,然后用对极几何约束求本质矩阵,再用svd分解做运动恢復。”
    “问题就出在这一步,在高速动態场景下,相邻帧之间的旋转不是在欧几里得空间里发生的,而是在一个弯曲的流形上。
    你的svd分解把非线性约束强制投影到了线性空间里,相当於把球面坐標硬塞进直角坐標系,畸变就是这么来的。”
    沈凌的瞳孔缩了一下。
    他隱隱约约感觉到问题出在几何框架上,但一直没能准確定位到,想不到肖宿一下子就看出来了。
    “正確的做法应该是放弃欧拉角,改用四元数表示旋转,並且在单位四元数构成的s^3球面上直接做优化。”
    肖宿再次拿起白板笔,在图纸的另一块空白区域写了起来。
    “首先,设第k帧到第k+1帧的旋转四元数为q_k,那么帧间运动导致的深度估计误差肯定满足一个辛结构保持的hamilton系统。
    然后构造这样一个辛矩阵m,它的作用是把高维的投影误差映射到一个低维的辛商流形上,在这个商流形上,误差传播方程就会退化成一个可积系统。”
    “这个辛矩阵的定义是m = j·?2h,其中j是標准辛形式,h是系统的hamilton函数,取为投影误差在深度方向上的二范数。
    ?2h是h的hessian矩阵,在这个特定的几何设定下,它的闭式解是?2h = (i - n·n^t)/d^2,其中,n是视线方向的单位向量,d是深度值。
    这两个一乘,m的特徵值就会全部落在单位圆上,所以数值稳定性是自然的,不需要任何额外的正则化。”
    沈凌的嘴唇微微颤抖著。
    他浑身上下都激动的泛起了鸡皮疙瘩。
    那个困扰了他一年半的帧间畸变问题,肖宿只是用一组辛矩阵轻轻描淡写地把它拆解了。
    每一步推导都写得那么简单,组合在一起,却让他有些头皮发麻。
    这种震撼不是来自结论本身有多复杂,恰恰相反。
    它太简单了。
    简单到让人觉得,在正確的视角下,这个问题本来就不应该有困难。
    “可是我还有一个问题,”沈凌强迫自己冷静下来,“辛矩阵的方案解决了旋转部分的畸变,但平移部分的漂移呢?
    我们的相机在快速大范围移动时,深度图会出现一个缓慢的累积漂移,这个漂移在用了您的辛矩阵修正旋转后还是会残留的。”
    “那个漂移不是平移带来的,而是你的深度图初始值在高速运动下没有及时收敛。”
    肖宿的回答几乎没有任何停顿,“可以用非线性互补滤波器来解决。
    在低频段,可以信任惯性测量单元的姿態数据,而高频段则可以信任视觉里程计的相对运动估计。至於交叉频率,直接设在视差数据的噪声带宽和imu漂移带宽的交点处就可以。
    传递函数就取n阶巴特沃斯(butterworth)形式,阶数n的取值,是由姿態误差的截止频率和深度估计的收敛速率共同决定的。
    我已经给你们算好了,n取3。”