由双目相机引出的两个问题
背景
最近连续碰到两个 bug,都跟光学定位相机有关。表面上完全不一样(一个卡、一个跳远点),根因都落在”NDI 相机帧和 Qt 应用层的数据流不对齐”上。
bug1
症状:配准偶现离群点,离群点会把整个ICP变换矩阵拉飞。
我总结了几次出现离群点的点集,发现离群点都会出现在相似的位置。那这个点是怎么得到的呢?
正常情况下:
针尖的位置要靠双目相机捕获到反光球的位置,如果没有找到反光球,则是missing帧,如果是missing帧,那qt这边就会更新状态给个提示就好了,看上去好像理所应当,但是这里会存在一个问题:状态信号和数据信号是否同步。如果不同步则会出现捕获到missing帧的情况,那算出来的问题就偏了,整体ICP矩阵就坏掉了。
bug2
症状:界面旋转 3D 视图卡顿
这个其实也是和更新频率有关系,3d视图默认是一块白板,每次更新都是往上面画画。相机的数据以20Hz的频率过来,每次数据更新都会触发一个视觉过滤器)→ 触发 MITK 整个 3D 视图重画。调用的频率高了,自然渲染就慢了。我们只需要将渲染的频率降低即可,数据的获取依然按照原来的频率。对于人眼来说没有区别。数据也不会影响。