相机校准

KKSWARM定位系统依赖于相机,因此,相机参数内参校准将会影响到后续的定位系统的精度

注意

虽然相机在给到用户手中是进行过校准的。但是由于用户实际使用场地和发货前测试场地不一定完全相同。因此建议用户在拿到相机后,自行进行校准一次

前期准备

相机校准需要用到以下环境和物品:

  1. 海康威视相机驱动Linux版本(软件环境安装)
  2. 完成场地搭建工作
  3. 准备棋盘格校准工具
  4. 安装校准所需工具
    sudo apt intstall ros-melodic-camera_calibration
    

具体操作步骤

注意

  1. 由于该相机镜头是一个可变焦距镜头,因此在校准前。 务必固定好焦距,再进行校准
  2. 校准将会在完成场地搭建的基础上进行校准
  3. 校准时,建议两个人配合完成
  1. 将相机固定在龙门架上,然后将相机接入MINI主机
  2. 打开终端,输入命令:
cd /opt/MVS/bin
./MVS.sh

此时将会启动海康威视相机的客户端界面,如图1所示:

图1 相机启动界面

  1. 根据图2的操作,连接相机

图2 连接相机

  1. 相机连接以后,需要进行调节相机的焦距。相机镜头有两个旋钮,通过旋转不同的旋钮使得在图像采集界面出现的图像是 清晰可见 以及 亮度合适 的画面。

警告

调节焦距需要使用家庭便携梯子,或者桌子等。请注意安全!防止跌落摔伤

  1. 待焦距固定以后,开始校准相机
  2. 打开终端,输入命令,启动 roscore
    roscore
    
  3. 打开终端,输入命令,启动相机节点
    rosrun camtoros camtoros
    
  4. 打开终端,输入命令,启动相机校准节点
    rosrun camera_calibration cameracalibrator.py --size 6x4 --square 0.037 image:=/hik_camera/image_raw
    

如图3所示:

图3 相机校准程序

  1. 将棋盘格放置在镜头正下方,然后开始 左右、上下、倾斜 等动作进行缓慢移动。直到右边的按钮变亮即可,如图4所示:

图4 相机校准完成

注意

尽可能让棋盘格离相机近一点,方便检测。如果位置太低,会出现无法检测的情况

  1. 点击 图4 中的 CALIBEATE 按钮,程序将会自动进行校准。等校准完成以后,终端将会输出校准信息,如图5所示

图5 相机校准结果

  1. 点击 SAVE 按钮,将信息保存下来,同时终端将会输出保持位置的信息。如图6所示

图6 相机校准结果保存位置

  1. 打开终端,输入命令
mkdir ~/calb
cp /tmp/calibrationdata.tar.gz ~/calb
cd ~/calb
tar -xzvf calibrationdata.tar.gz
  1. 在解压中的文件中,找到名为 ost.yaml 的文件,该文件包含相机校准的参数。将该文件重命名为 caminfo.yaml 放到 kk-robot-swarm/src/camtoros/config/ 文件夹下。

注意

该操作将会覆盖发货测试时的相机参数,建议先将原来的文件重命名为 caminfo.yaml.back 再进行复制操作

  1. 打开复制后的文件 caminfo.yaml,将文件内的参数修改为如下所示:
...
camera_name: hik_camera
...
distortion_model: radtan