×

AWS DeepRacer到自动驾驶漫游车

消耗积分:0 | 格式:zip | 大小:0.00 MB | 2023-06-19

王树林

分享资料个

描述

概括

这个项目,最简单地说,是对通用移动机器人技术的探索。我已着手在 DeepRacer 上构建多种行为,以了解机器人专家所需的不同技能。在撰写本文时,我已经构建了并行停车和车道跟踪 ROS 节点,这些节点在机器人上运行,具有相当强的鲁棒性。我希望任何阅读本文的人都知道如何使用 OpenCV 的广泛库实现基本的颜色阈值、边缘检测和特征提取。您还将能够编写一个简单的基于 python 的 ROS 包,以近乎实时的方式实现该算法。最后,我将 AprilTag 检测库用于平行停车功能,

背景

AWS DeepRacer 是亚马逊开发的一款可爱的机器,旨在让没有技术背景的人更容易使用强化学习。该车辆拥有运行 Ubuntu 16.04 的英特尔凌动处理器,允许它使用机器人操作系统 (ROS) 和英特尔 OpenVINO 进行视觉处理(我对这个框架没有做任何事情)。它配备了一个 4 兆像素的广角摄像头、一个控制所有 4 个轮子的直流电机和一个转向伺服系统。还有一个惯性测量单元 (IMU),我还没有接触到它。有关 DeepRacer 的更多信息,请访问https://aws.amazon.com/deepracer/

我有机会修补其中一个版本 1 DeepRacers,我想分享我的经验。我一定要尽可能多地解释我的过程,或者附上我将从中改编方法的地方的链接。

车道跟随

我在机器人上实现车道跟踪时使用的算法基础可以在 David Tian 撰写的精彩的 6 部分系列文章中找到,该系列文章开头为:https://towardsdatascience.com/deeppicar-part-1-102e03c83f2c。

该算法背后的基本思想分为两部分:

1.图像处理:

来自 DeepRacer 相机的校正图像流首先针对色调-饱和度值 (HSV) 颜色空间中的目标车道颜色进行阈值处理,因为这在宽亮度范围内提供了显着更高的性能。然后使用 Canny 边缘检测算法计算找到的区域的边缘。随后使用概率霍夫线变换将计算出的边连接成线段。这三种算法都是现成的OpenCV函数,所以不需要重新造轮子。整个感兴趣区域缩小到图像的下半部分,因为这是 DeepRacer 立即关注的区域。然后使用剩余计算出的线段的平均坡度来计算第 2 部分中使用的检测到的车道线。

下图显示了处理图像的进展,最终检测到的车道投影到原始图像上。

 
 
 
poYBAGOhJlCAPaCyAACeqeqdFCA301.png
 
1 / 6HSV 图像
 

2. 计算目标航向:

这部分算法是我和 Tian 的工作的卷积。这部分采用第 1 部分中的车道线。如果车道可见,则有两种可能的情况 - 两条车道线都可见(理想情况),或者只有一条线可见。

首先,我们解决两者中较容易的一个:

  • 两条可见车道线 - 当有两条可见车道线时,任务简化为计算两个端点之间的中点并将其设置为目标点。然后我在目标和图像底部的中心点(我将其作为相机的中心)之间插入一条线。这条线与正 y 轴形成的角度给出了传递给 DeepRacer 的转向角。
  • 一条可见的车道线——只有一条车道线,我在计算转向角时遇到了一些困难。我最终决定简单地计算一条与单个可见线平行的航向线。在反复测试中,这种方法产生了不错的结果,但我不相信它的稳健性,我愿意接受更好的建议。

这基本上总结了 DeepRacer 的基本车道跟随算法。我希望它有助于为任何流动站开发车道跟随器提供基础。

平行停车

在本节中,我将介绍为平行停放机器人而开发的算法。我想首先指出,由于感测有限,算法相当简单——单个摄像头意味着汽车必须依赖大部分开环控制。这就是说,平行泊车方法分为两部分——

  • DeepRacer 从位置 1 开始,如下图所示,它估计标签 1 和 2 之间的距离,并确定它是否真的可以放入停车位
  • 如果可以,它就会驱动到位置 2。这部分过程是完全开环的
  • 然后它可以从位置 2 估计它相对于标签 3 的位置,如果它在指定区域内,它会继续实际停放自己。同样,这部分是开环的,因为我们无法在它停放时感觉到它靠近任何一个盒子
 
 
 
pYYBAGOhWKCAOzjfAA4TupCGKww039.jpg
 
1 / 3停车设置
 

编写此节点的目的是让自己获得一些编写发布和订阅 ROS 节点的经验,该节点实现了多种消息类型并包含视觉信息。前面提到的标签是 AprilTags,它是一个标记家族,可以简化各种与深度相关的图像处理任务。有关 AprilTag 项目的更多信息,请访问https://april.eecs.umich.edu/software/apriltag 标准 AprilTag ROS 节点发布相机相对于相机视野内任何标签的旋转和平移(姿势)。我就是用这个姿势来确保汽车可以完成过程的每个阶段。

随着我花更多时间在 DeepRacer 上,我会不断改进算法并增加它们的数量。我已经着眼于实施对象检测和跟踪,以消除系统对 AprilTag 系统的依赖。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !