场地标定

本教程将会引导读者如何标定 KKSWARM 项目所需要的真实物理环境

提示

在场地标定前,请务必确认已经完成 场地搭建相机校准

光照标定

注意

由于海康威视相机并未开源底层代码。因此对于相机的参数只能通过其软件进行调节。但是使用其官方软件调节的时候,无法启动ROS驱动。故在光照调节上需要时间和耐心

  1. 将场地搭建好以后,将开迷你主机

  2. 启动海康威视软件。打开终端,输入命令:

    cd /opt/MVS/bin
    ./MVS.sh
    
  3. 调节参数如下图所示:

    配置界面

将采样频率设置为30,伽马设置为sRGB。曝光时间根据实际的场地进行调整。

  1. 关闭该窗口。启动ROS相机驱动(记得启动 roscore)

    rosrun camtoros camtoros
    
  2. 启动直方图参考程序

    rosrun camtoros hist_reference_generate.py
    

该程序将会在当前目录下生成一个直方图,如下图所示:

亮度直方图参考

  1. 此时可以将小车摆放在不同的位置,观察rviz中是否能识别到其坐标变化。如果可以,表示标定成功。如果出现卡顿或者无法识别。请重复 2-5 步骤。

提示

  1. 上述直方图仅做一个参考
  2. 如果仍然无法标定,建议购买补光灯

位置标定

  1. 将场地搭建好以后,将迷你主机开机。

  2. 打开终端,输入命令,启动roscore

    roscore
    
  3. 启动相机驱动。打开终端,输入命令:

    rosrun camtoros camtoros
    
  4. 启动二维码检测功能包。打开终端,输入命令:

    roslaunch apriltag_ros continuous_detection.launch
    
  5. 启动定位系统。打开终端,输入命令:

    roslaunch global_vision start.launch
    
  6. 启动rviz。打开终端,输入命令:

    roscd camtoros/config
    rviz -d tf.rviz
    
  7. 将相机的话题选择为 /reference_rectangle/image_raw,即可看到画面中有一个绿色的参考框出现。

  8. 由于在 场地搭建 中,仅仅只是搭建了场地,但是没有进行标定。因此,此时需要根据程序,调节摄像机的高度和方向,让参考框和地毯的白线对齐。如下图所示:

    图3 场地标定界面

注意

该步骤需要两个人配合完成

警告

调节相机的时候,需要梯子或桌子垫高。请务必注意安全,防止跌伤!

  1. 当参考框对齐以后,将任意一辆小车(以1号车为例),放置在原点位置。(原点位置确定见场地搭建),此时输入命令rostopic echo /robot_1/pose 或 查看 rviz 里面,robot_1/base_link 标签下的 Postion中的xy值,看看小车的坐标是否在原点附近。如果不在,打开代码:src/apriltag_ros/apriltag_ros/src/common_functions.cpp549行,进行误差的修正:

    averagePoint.x / 355 - 2.9, averagePoint.y / 355 - 2.7, tvec.at<double>(2);
    

通过修改第 549 行的 355 ± x,来修正原点位置。

注意

每次修改完以后,需要进行编译,然后重启 roslaunch global_vision start.launch 命令