zl程序教程

您现在的位置是:首页 >  其他

当前栏目

关于LANC控制镜头中出现的问题

控制 关于 出现 问题 镜头
2023-09-11 14:15:21 时间

基于LANC协议的手持机镜头
预置位功能实现需求

一、技术描述:

1.控制接口

  32.5mm耳机口 仅使用一个信号脚和一个GND,同时作为输入输出 。

▲ 图1.1 LANC通讯结构

▲ 图1.1 LANC通讯结构

2.LANC协议

  单线半双工串行通信。由摄像机生成电报帧,创建8个起始位后面跟8位(1个字节)和一个长停止位。每一位的电平持续时间为104us,两个起始位之间间隔1200us-1400us

  之间,两个电报帧之间间隔20msPAL/625)或16.6msNTSC/525)。

  通信时序可以理解为9600波特率下的UART,起始位1位,数据位8位,停止位2位。

▲ 图1.1 LANC 通讯协议

▲ 图1.1 LANC 通讯协议

3.通信规则

  通信由摄像机发起,不同的厂家LANC协议有差异。

  有些需要通过若干条握手指令才能完成连接匹配,然后才可以对摄像机进行控制。之后摄像机与控制器之间需要以20ms左右的间隔持续通信,若通信中断则无法继续控制,需要重新开始握手连接。

  有些较简单,只需要控制器在收到摄像机的指令后立即回复控制指令即可生效。

4.变焦控制

  标准LANC协议支持变焦的8档速度控制,持续发送指令后摄像机镜头会持续的变焦。

5.镜头预置位

   KXWELL云台设备支持预置位功能,所谓镜头预置位,就是将某一时刻的镜头位置记录下来存储到内存中,然后可以通过按键等触发的方式让镜头回到之前所记录的位置。

6.基于LANC的手持机镜头预置位实现

  标准LANC不包含镜头绝对位置指令,因此对于镜头变焦是一个开环控制。

  当前的实现方式是通过软件计步的方式,在不超限的前提下,记录发送指令中往广角和特写的方向的计数值,以特写方向为正计数。调用预置位时根据当前程序计数与存储的计数对比,发送相应的指令若干次。

7.步骤简述:

  1. 开机自动回到最广角位置,此时软件计数为0
  2. 发送特写指令100次,此时软件计数为100,存储到1号预置位
  3. 继续发送特写指令50次,此时软件计数为150
  4. 调用1号预置位,程序判定需要往广角运动,发送50
  5. 发送广角指令50次后停止,完成预置位调用

▲ 图1.2 讨论的腾讯会议

▲ 图1.2 讨论的腾讯会议

二、现存问题

  1) 关于边界问题,程序无法检测到边界,所以一旦越界运动,计数值就失去了准确性 ;

  2) 累计误差问题,实际测试(发送特写200)(发送特写100次,再发送广角50次,再发送特写100次,再发送广角50次,再发送特写100次),虽然往特写方向的计数值一样,但实际运动的行程是不一样的

  3) 如果每次调用时都回到镜头最广角是可以满足预置位调用需求,但不满足现场应用;

1. 功能预期:

  在不定制摄像机协议的情况下,任意时刻调用之前存储的任意预置位可回到之前存储的位置;

三、初步求解方案

  针对会议中讨论的问题,建议:

  • 首先把现在存在的问题通过技术方式进行定量化,以便可以:
    • 评估出现运动误差的分布,比如概率、方差、直方图;
    • 对于逐渐分析措施(比如优化通讯物理结构、改进控制指令参数等)的效果评估;
    • 验证系统是否能够最终被解决;
  • 其次,如果在现在被测对象的物理层无法直接检测到指令开环执行结果(比如在镜头控制环增加编码器),建议可以利用图像处理的方法,检测摄像机得到的测试图像的变化,获得执行的结果。
    • 这方面可以参考计算机视觉的方法来获得镜头成像的物理参数(内参)和环境参数(外参);

  如果在上述方案解决过程中遇到问题,可以考虑把可以试验的系统发送到我的实验室,我可以协助进行解决。

  完成以上分析之间,下面可以确定是否在现有的开环状态下能够完成镜头的精确控制。


● 相关图表链接: