跳转至

视觉巡线(OpenCV)

Hint

操作环境及软硬件配置如下:

  • OriginCar机器人
  • PC:Ubuntu (≥22.04) + ROS2 (≥humble)
  • 巡线场景:黑色路径线,背景有明显反差

场景说明

视觉巡线的场景示例如下,该例程使用黑色引导线作为识别目标,尽量向下调节相机角度,避免外界干扰。

e15c780e42a2fc9bb4895f6425a9275

Attation

视觉巡线算法受光线和场地颜色影响较大。如果小车无法识别线条或原地打转,强烈建议在运行前先调试二值化阈值。

修改完成后,请务必在工作空间根目录下重新编译。

启动步骤

本示例中完整的开启小车巡线功能需要开启三个终端,分别用于驱动底盘、开启相机和运行巡线逻辑。

第一步:启动底盘驱动

通过 SSH 连接 OriginCar,在第一个终端中输入如下指令,启动机器人底层驱动:

ros2 launch origincar_base origincar_bringup.launch.py

2022-10-01_00-12

第二步:启动相机节点

在 SSH 中打开第二个终端,输入如下指令,启动摄像头并发布图像话题:

ros2 launch origincar_bringup usb_websocket_display.launch.py

2022-10-01_00-12

第三步:启动巡线功能包

在 SSH 中打开第三个终端,启动我们编译好的 OpenCV 巡线节点:

ros2 run line_follower_pkg line_follower
启动成功后,终端会打印巡线已启动的信息。稍等片刻,当摄像头捕捉到线条后,机器人将开始自动巡线运动。

2022-10-01_00-19

启动成功后,稍等片刻,机器人就开始自动巡线运动了。

上位机可视化显示

为了便于看到机器人的动态识别效果,在同一网络下的PC端,启动rqt_image_view:

ros2 run rqt_image_view rqt_image_view

2022-10-01_00-19_1

订阅/camera/image话题,即可看到动态识别的图像效果。

图片1