场地标定
本教程将会引导读者如何标定 KKSWARM
项目所需要的真实物理环境
提示
光照标定
注意
由于海康威视相机并未开源底层代码。因此对于相机的参数只能通过其软件进行调节。但是使用其官方软件调节的时候,无法启动ROS驱动。故在光照调节上需要时间和耐心
-
将场地搭建好以后,将开迷你主机
-
启动海康威视软件。打开终端,输入命令:
cd /opt/MVS/bin ./MVS.sh
-
调节参数如下图所示:
配置界面
将采样频率设置为30
,伽马设置为sRGB
。曝光时间根据实际的场地进行调整。
-
关闭该窗口。启动ROS相机驱动(记得启动 roscore)
rosrun camtoros camtoros
-
启动直方图参考程序
rosrun camtoros hist_reference_generate.py
该程序将会在当前目录下生成一个直方图,如下图所示:
亮度直方图参考
- 此时可以将小车摆放在不同的位置,观察
rviz
中是否能识别到其坐标变化。如果可以,表示标定成功。如果出现卡顿或者无法识别。请重复 2-5 步骤。
提示
- 上述直方图仅做一个参考
- 如果仍然无法标定,建议购买补光灯
位置标定
-
将场地搭建好以后,将迷你主机开机。
-
打开终端,输入命令,启动
roscore
:roscore
-
启动相机驱动。打开终端,输入命令:
rosrun camtoros camtoros
-
启动二维码检测功能包。打开终端,输入命令:
roslaunch apriltag_ros continuous_detection.launch
-
启动定位系统。打开终端,输入命令:
roslaunch global_vision start.launch
-
启动rviz。打开终端,输入命令:
roscd camtoros/config rviz -d tf.rviz
-
将相机的话题选择为
/reference_rectangle/image_raw
,即可看到画面中有一个绿色的参考框出现。 -
由于在 场地搭建 中,仅仅只是搭建了场地,但是没有进行标定。因此,此时需要根据程序,调节摄像机的高度和方向,让参考框和地毯的白线对齐。如下图所示:
图3 场地标定界面
注意
该步骤需要两个人配合完成
警告
调节相机的时候,需要梯子或桌子垫高。请务必注意安全,防止跌伤!
-
当参考框对齐以后,将任意一辆小车(以1号车为例),放置在原点位置。(原点位置确定见场地搭建),此时输入命令
rostopic echo /robot_1/pose
或 查看rviz
里面,robot_1/base_link
标签下的Postion
中的xy
值,看看小车的坐标是否在原点附近。如果不在,打开代码:src/apriltag_ros/apriltag_ros/src/common_functions.cpp
第549
行,进行误差的修正:averagePoint.x / 355 - 2.9, averagePoint.y / 355 - 2.7, tvec.at<double>(2);
通过修改第 549 行的 355 ± x
,来修正原点位置。
注意
每次修改完以后,需要进行编译,然后重启
roslaunch global_vision start.launch
命令