二维码识别与跟踪
Hint
操作环境及软硬件配置如下:
-
OriginBot机器人(Lite版/标准版/Pro版)
-
PC:Ubuntu (≥20.04) + ROS2 (≥Foxy)
在日常生活中,我们每天接触最多的图像识别场景是什么?扫码一定是其中之一。
微信登录要扫二维码,手机支付要扫二维码,共享单车也要扫二维码,除了这些在日常生活中已经非常普及的扫码场景,二维码在工业生产中也已经普遍应用,比如使用二维码标记物料型号,或者在二维码中保存产品的生产信息,只要通过相机一扫,很快就可以看到对应的内容。
二维码的编码方式有很多种,常见的是QR Code,主要用在移动设备上。
既然二维码可以保存很多信息,那是不是也可以和机器人结合一下,比如当机器人识别到不同二维码时,对应做出不同的动作?
接下来我们就尝试下让机器人识别二维码,并且跟随二维码运动。
二维码识别
SSH连接OriginBot成功后,在终端中输入如下指令,启动二维码识别功能:
WEB端查看例程效果
运行成功后,在同一网络的PC端,打开浏览器,输入 http://IP:8000 ,选择“web展示端”,即可查看图像和算法效果,IP为OriginBot的IP地址。
二维码跟踪
启动底盘
SSH连接OriginBot成功后,在终端中输入如下指令,启动机器人底盘:
启动二维码控制节点
SSH连接OriginBot,在二维码识别节点启动之后,在终端中输入如下指令,启动二维码控制节点:
二维码控制
默认识别二维码内容 Front,、Back、 Left、 Right 对小车控制,可以使用以下二维码 对小车控制
查看控制模式
也可以识别二维码的相对位置实现对二维码的跟踪
在终端中输入如下指令,查看控制模式:
$ ros2 param get /qrcode_control control_with_qrcode_info
# False 不识二维码内容,只跟随二维码位置运动
# True 识别二维码内容,根据二维码内容执行命令
修改控制模式
在终端中输入如下指令,修改控制模式:
此时会识别二维码的相对位置发送速度
可以在文件 qr_code_control_node.py 中调整移动速度