技术分享 | turtlebot3自动驾驶之道路信号检测

前言 在上一篇文章中,我们介绍了turtlebot3如何检测道路,以便于让其能正确的在道路中央行驶。本文将会介绍turtlebot3在行驶过程中,遇见一些常见的交通信号,例如:红绿灯、转弯等交通标志。

1. 理论 turtlebot3对交通标志的识别,采用的是 SIFT算法 https://docs.opencv.org/master/da/df5/tutorial_py_sift_intro.html 详情可以点击这个链接。这里就不再详细叙述。

2. T型路口标志检测 首先启动仿真环境 roslaunch turtlebot3_gazebo turtlebot3_autorace_2020.launch

新开终端,输入 export TURTLEBOT3_MODEL=burger(建议将上面这一行,加入到 ~./bashrc文件末尾) roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

新开终端,输入 rqt_image_view 接着我们将turtlebot3手动移动到仿真环境中,并且能在rqt中看到交通标志。(在实际环境中可以手动将turtlebot3放在交通标志面前)如下图所示 file 此时选择话题 /camera/image_compensated 然后去掉交通标志以外的部分(换句话仅仅截图包含交通标志的部分)将图像保存在这个目录下(本文的例子) /catkin_ws/src/turtlebot3/turtlebot3_autorace_2020/turtlebot3_autorace_detect/image/ 文件名应该与源代码中使用的名称相匹配。这里为 intersection.png。(如下图所示) file 新开终端,输入 roslaunch turtlebot3_autorace_camera intrinsic_camera_calibration.launch 新开终端,输入 roslaunch turtlebot3_autorace_camera extrinsic_camera_calibration.launch 新开终端,输入 roslaunch turtlebot3_autorace_detect detect_sign.launch mission:=intersection 这里需要说明一下,sift算法已经申请专利,在某些OpenCV版本中无法使用,并且需要修改源代码。具体可以查看下面这个链接。(https://stackoverflow.com/questions/64525121/sift-surf-set-opencv-enable-nonfree-cmake-solution-opencv-3-opencv-4) 本文使用的的环境是已经完整编译的OpenCV4.1.0版本。 然后打开源代码:/catkin_ws/src/turtlebot3/turtlebot3_autorace_2020/turtlebot3_autorace_detect/nodes/detect_intersection_sign第62行。修改如下 file 这里建议将 detect_intersection_sign detect_construction_sign detect_level_crossing_sign detect_parking_sign detect_tunnel_sign 均做修改,否则后面运行将会报错 再次运行上面最后一个启动命令,打开rqt,选择话题/detect/image_traffic_sign/compressed ,就可以看到特征匹配的图像。如下图 file 至此,就完成了turtlebot3对交通标志的检测,下文提到的其余交通标志的检测方式类似。 Tips: roslaunch turtlebot3_autorace_detect detect_sign.launch mission:=xxxxx 将xxxx改为 intersection construction parking level_crossing tunnel

3.左转弯标志检测 打开小车键盘控制节点,将小车移动到对应的交通标志前 roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch file 新开终端,输入 roslaunch turtlebot3_autorace_detect detect_sign.launch mission:=intersection 然后在rqt里面将话题选择为 /detect/image_traffic_sign/compressed,即可看到匹配 file 需要说明的是,识别结果取决于你截图保存下来的交通标志。如果在面前没有识别,可以尝试重新截图,然后再次运行,或者移动小车。

4.道路施工标志检测 继续移动小车至仿真环境中的施工标志面前 打开终端输入: roslaunch turtlebot3_autorace_detect detect_sign.launch mission:=construction 如果运行报错,需要修改源代码 file file

5.泊车标志检测 将小车移动到泊车标志面前,输入 roslaunch turtlebot3_autorace_detect detect_sign.launch mission:=parking file

6.停车标志检测 将小车移动到停车标志前面, 输入 roslaunch turtlebot3_autorace_detect detect_sign.launch mission:=level_crossing file

7.隧道标志检测 将小车移动到停车标志面前,输入 roslaunch turtlebot3_autorace_detect detect_sign.launch mission:=tunnel file

GZH:阿木实验室 ( 领取免费资料包) TB店:阿木实验室(可购买硬件配件) 硬件:yanyue199506(欢迎洽谈合作) 课程:jiayue199506 (免费领取机器人工程师学习计划)

  • End -

技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把机器人行业最新的技术和硬件推荐给大家。看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值。如果你在机器人行业,就请关注我们的公众号,我们将持续发布机器人行业最有价值的信息和技术。 阿木实验室致力于前沿IT科技的教育和智能装备,让机器人研发更高效!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值