turtlebot3-burger_150.png
turtlebot3-waffle-pi_150.png
turtlebot3-arm_150.png
walking-y2_150.png
turbot3-multi_150.png
turbot3-dl-ros1_150.png
turbot3-ai.png
turbot3-dl-ros2_150.png
turbot3-slam_150.png
turbot3-arm_150.png
turtlebot4-lite_150.png
turtlebot4-pro_150.png
turbot4-dl_150.png
turbot4-ai_150.png
aidriving-racebot_150.png
aidriving-autodrive_150.png
turtlebot-arm_150.png
openmanipulator-x_150.png
Home » Turtlebot3自动驾驶教程_视频版 » Turtlebot3自动驾驶入门教程-车道识别

Turtlebot3自动驾驶入门教程-车道识别

纠错,疑问,交流: 请进入讨论区请点击进入页面,扫码加入微信群或Q群进行交流

获取最新文章: 扫一扫加入“创客智造”公众号

欢迎加入我们的turtlebot3交流群,微信扫描右侧二维码立即进群交流

群二维码

说明

  • 介绍如何通过摄像头来识别车道

操作步骤

  • [Remote PC] 新终端,启动roscore
$ roscore
  • [TurtleBot SBC] 新终端,启动摄像头
$ roslaunch turtlebot3_autorace_camera turtlebot3_autorace_camera_pi.launch
  • [TurtleBot SBC] 新终端,打开action模式下的内标定程序
$ export AUTO_IN_CALIB=action
$ roslaunch turtlebot3_autorace_camera turtlebot3_autorace_intrinsic_camera_calibration.launch
  • [Remote PC] 新终端,打开action模式下的外标定程序
$ export AUTO_EX_CALIB=action
$ roslaunch turtlebot3_autorace_camera turtlebot3_autorace_extrinsic_camera_calibration.launch
  • 主要调整feature detector/color filter来优化对象识别

  • 将tb3放置在车道中间,左边为黄色线,右边为白色线

  • [Remote PC] 新终端,启动calibration模式下的车道识别

$ export AUTO_DT_CALIB=calibration
 $ roslaunch turtlebot3_autorace_detect turtlebot3_autorace_detect_lane.launch
  • [Remote PC] 新终端,启动rqt
$ rqt
  • 在左上角选择plugins -> visualization -> Image view 新建图像窗口

  • 打开第二个图像窗口,选择topic:/detect/image_yellow_lane_marker/compressed

  • 打开第三个图像窗口,选择topic:/detect/image_lane/compressed

  • 打开第四个图像窗口,选择topic:/detect/image_white_lane_marker/compressed

  • 如果一切正常,左右屏幕将显示黄线和白线的过滤图像,中心屏幕将显示机器人应该去的路径

  • 在标定模式下,左右屏幕将显示白色,中央屏幕可能显示异常结果

  • 应该调整滤镜参数以显示正确的线条和方向

  • [Remote PC] 新终端,启动rqt_reconfigure

$ rosrun rqt_reconfigure rqt_reconfigure
  • 由于实际物理环境包括房间内的光亮等,车道的彩色滤波的校准过程有时会非常困难

  • 校准时可以参考turtlebot3_autorace_detect/param/lane/lane.yaml里面的参数值

  • 首先校准色调低 - 高值。 色调值表示颜色,每种颜色,如黄色,白色,都有自己的色调值区域(参考hsv图)

  • 然后校准饱和度低 - 高值。 每种颜色也有自己的饱和度。

  • 最后,校准亮度低 - 高值。 将亮度高值设置为255.清晰过滤的线条图像将为您提供清晰的通道结果。

  • 最终校准好的参数值保存在PC端的turtlebot3_autorace_detect/param/lane/lane.yaml的参数文件里

  • 效果图: 请输入图片描述

注意事项:

  • 以上效果图仅供参考,请根据实际环境来设置参数
  • 由于车道识别极其容易受到环境光线影响,校准时应将机器人放置在不同位置测试车道检测效果,比如手持机器人绕行车道几圈来测试识别效果

车道识别测试

  • [Remote PC] 完成标定之后关闭 rqt_rconfigure and turtlebot3_autorace_detect_lane
  • [Remote PC] 新终端,启动action模式下的车道识别测试
$ export AUTO_DT_CALIB=action
 $ roslaunch turtlebot3_autorace_detect turtlebot3_autorace_detect_lane.launch
  • [Remote PC] 新终端,启动车道识别控制程序
$ roslaunch turtlebot3_autorace_control turtlebot3_autorace_control_lane.launch
  • [TurtleBot SBC] 新终端,启动tb3
$ roslaunch turtlebot3_bringup turtlebot3_robot.launch

FAQ

  • 错误一:执行车道识别测试步骤时,容易出现以下错误
[ERROR] [1531197022.305949]: bad callback: <bound method DetectLane.cbFindLane of <__ main __. DetectLane instance at 0x7ff7b58a9cf8 >>
Traceback (most recent call last):
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/topics.py", line 750, in _invoke_callback
    cb (msg)
  File "/ home / cutop14 / catkin_ws / src / turtlebot3_autorace / turtlebot3_autorace_detect / nodes / detect_lane", line 170, in cbFindLane
    self.left_fit = np.array ([np.mean (self.mov_avg_left [:: - 1] [:, 0] [0: MOV_AVG_LENGTH]),
AttributeError: DetectLane instance has no attribute 'mov_avg_left'
  • 问题所在:无法识别到车道

  • 解决方法:需要重新校准,得出能稳定地识别到车道的参数

演示视频

<iframe height=498 width=100% src="//player.bilibili.com/player.html?aid=66491934&cid=115316745&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>

纠错,疑问,交流: 请进入讨论区请点击进入页面,扫码加入微信群或Q群进行交流

获取最新文章: 扫一扫加入“创客智造”公众号

欢迎加入我们的turtlebot3交流群,微信扫描右侧二维码立即进群交流

群二维码

标签: turtlebot3自动驾驶入门教程