二维码跟踪

1 准备开始

在进行二维码跟踪前,我们需要做一些准备。

  1. 打印二维码,二维码放在了/handsfree_ros_ws/src/handsfree/handsfree_ar_tags/config目录下
    picture

    tips:这里由于算法缘故,若将二维码在手机上打开进行识别,摄像头很难识别出来!

  2. 确保摄像头可以正常工作,可以根据驱动测试中的rgbd_camera测试完成这一步。(如果之前已经测试完成,请忽略此步骤)

注意:要关掉有进程正在运行的终端,请在该窗口使用 Ctrl+C 来中断程序,然后在关掉该窗口。

2 简明步骤

您只需要打开1个终端,分别输入下面1条命令

roslaunch handsfree_ar_tags robot_follow_ar_marker.launch

然后在镜头前晃动印有二维码的纸张(不要晃太快哦!),机器人就会跟着动起来了。

3 跟踪二维码

当机器人成功的识别到了二维码,我们就可以开始尝试让机器人跟踪二位码,通过移动二维码来让机器人跟着前进和后退,左右移动。 打开两个终端,分别输入下面两条指令,机器人就可以识别二维码了,详细过程参考二维码识别

roslaunch handsfree_camera view_astra_dabai.launch
roslaunch handsfree_ar_tags ar_indiv_rgb_camera.launch
  1. 关闭之前所有终端,打开新的终端,输入下面指令

     roslaunch handsfree_ar_tags robot_follow_ar_marker.launch
    

    正常情况下,rviz会显示摄像头数据和模型数据
    handsfree_hw

    终端会显示,红线下面是机器人识别到二维码打印出来的信息
    ar_follower

  2. 将二维码放到摄像头前开始测试,看机器人能否跟踪这个二维码来移动。

    如果摄像头与二维码的距离在(70 ~ 80)cm这个大致范围内(手动测量会有误差,请原谅哈!)机器人就不会前进后退,但可以转向;若距离小于这个区间,则机器人会后退,保持间距;若距离大于这个区间,则机器人会跟随二维码前进运动,始终保持距离。

    但要注意,移动二维码的速度不要太快哦,否则机器人是跟不上的。还有就是该模式下机器人不会自动避障,要保护好你的机器人,不要损坏咯!

  3. 小结

    跟踪二维码是在识别二维码的基础上进行的,所以要在识别二维码的基础上进行操作。需要在终端运行一条指令,打开一个节点。

    • 需要一键启动机器人跟踪节点,确保机器人跟踪摄像头识别到的二维码,然后动起来。

      在识别二维码一章中我们通过rostopic echo命令,可以看到数字表现形式的二维码的位置和姿态。当然了,机器人也有自己的位置和姿态。跟踪节点的作用就是处理二维码的位置和姿态,让机器人和二维码保持处于一个相对的状态。

  4. 拓展

    到了这里我们已经完成了二维码的识别和跟踪,我们来讲讲如何生成机器人能识别的二维码,感兴趣的话,可以了解一下。

    我们可以通过ar_track_alvar功能包来完成二维码的创建,这个功能包已经在本地了。

    打开终端,输入下面这条指令

     rosrun ar_track_alvar createMarker
    

    ar-track-alvar

    通过图片,可以看出这个功能包还是很强大的,可以生成0到65535之间任意数字的编码,可以生成字符串,可以生成网址等。

    我们分别演示一下生成数字,字符串和网址,打开终端,分别输入下面三行指令

     rosrun ar_track_alvar createMarker 4
     rosrun ar_track_alvar createMarker -1 "handsfree"
     rosrun ar_track_alvar createMarker -3 www.taobotics.com
    

    creatMarker

    生成的图片可以在Home中看到
    home-picture

results matching ""

    No results matching ""