由3 4可推导出弹丸飞行时间t
水平方向:
j-yaw为机器人云台上的绝对角度,d-yaw为相机中目标相对于图像中心(瞄准基线)的相对角度。假设目标始终在视野范围内,转动云台则j-yaw的变化值delta-j-yaw与d-yaw的变化值delta-d-yaw相等(不等就将d-yaw这个数据处理使delta-j-yaw与delta-d-yaw强制相等)。
在此处定义一个概念目标角度a-yaw=j-yaw+d-yaw。且delta-j-yaw=delta-d-yaw。
基于此不难发现目标角度a-yaw只与敌我双方的相对位置相关,与运动状态无关,与我正视还是斜视无关。
每处理一帧图像则会更新目标角度a-yaw。一旦敌我双方相对位置改变时,a-yaw则会发生变化(谁动都无所谓,两个都动也可),变化角度为delta-a-yaw,耗时为delta-t,即两帧图像时间差(假如处理能到50帧,就是20ms)。
角速度为Omega=delta-a-yaw/delta-t。再微分一次就得到角加速度a。那么Omega*t+0.5a*t^2就是预瞄的角度啦,做个闭环让d-yaw=Omega*t+0.5a*t^2就打上了。
竖直方向就按照抛物线算即可,这个方向变化不是太大。
方法亲测有效,我是搞电控的,我感觉这个方法比起卡尔曼滤波更平易近人,通俗易懂大家可以试试,后期在搞毕业的事,也没有什么视频。
第一次写这种东西,感觉写的乱七八糟的,大家凑合看吧,希望能有用,有问题可以直接交流。
军临战队敖布和
QQ:848533123