0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用DonkeyCar平台构建一个自主机器人

科技观察员 来源:hackster.io 作者:hackster.io 2022-04-18 17:19 次阅读

受到Plantvillage.psu.edu和iita.org工作的启发,我们希望使用DonkeyCar平台构建一个自主机器人。

机器人可以在农场环境中移动而不会损坏现有植物或土壤,并使用物体检测来查找和标记病害作物具有环保色彩。传统上,在大多数高科技案例中,我们都必须使用手机手动检查大型农场以标记农作物,这会花费我们大量的时间和精力。此外,使用的各种手机不一定具备高效完成任务所需的所有功能,或者他们必须等待拥有合适设备的人。围绕农场运行的统一机器人平台将解决这些问题并使标记速度更快。速度还可以更轻松地在多个农场之间共享平台。

挑战:

保持机器人的尺寸/重量足够小,以免损坏作物本身。

在不损坏现有作物的情况下导航。

寻找一种安全标记患病作物的方法。

寻找一个数据集和农场来测试平台

pYYBAGJdLO6AIrKTAADoaiwhRGU928.png

背景:

除了在方法、技术、时间安排等方面找到共同点之外,我们还必须制定一个包含会议时间表、存储库、会议技术等的框架。从本质上讲,专业项目的所有组成部分都必须到位,除了没有报酬。我们没有预算,不过这不是问题,因为我们有共同的愿景和执行意愿。在这段时间,我们都度过了愉快的时光,这是一次了不起的学习经历。

构建机器人:

底盘、自主导航和图像分类的工作立即开始,进展顺利。但我们遇到了与底盘和驱动系统相关的重大意外挑战和延误。

简而言之,我们没有预料到测试温室之间会出现如此多变的地形,在场景A中表现良好的电机、轮子、接线、控制等在场景B中不堪重负。我们通过大量的mod拨入了一个适用于我们所有环境的工作机箱。所以我们不得不做出大量时间和预算限制,但最终产品超出了我们最初的最小可行配置目标。提交时的最终设计如下所述。

相机杆:

为了能够观察凸起的植物床,并可能升级到可以观察番茄植物顶部和底部的移动摄像头,我们使用从车库出售的碳纤维杆建造了一个摄像杆。该杆装有2个3D打印夹具,用于导航和分类摄像头。我们还在杆子上添加了1.2v太阳能照明,以及在泳池顶部添加了12v多色状态灯。是的,那是一个在杆子顶部涂成黑色的重新利用的药丸容器。最终效果非常好!

pYYBAGJdLOqAXywXAAVv0k-8_n8898.png

这些相机是连接到两个由USB充电器供电的不同Pi上的RaspberryPi相机。使用2Pi的原因是分类和导航都使用需要大量处理能力的神经网络。此外,分类摄像头必须指向植物,而导航摄像头必须指向前方。杆子的顶部也必须有灯作为指示器。在寻找足够亮的RGB灯时,我们发现它们要花费100美元以上,所以我们使用扬声器的灯、一个用于反射的小塑料袋并装在一个空药瓶中制作了自己的灯。因为灯需要12伏我们的Arduino输出为5伏,我们将其连接到继电器。连接需要与Arduino和3根电线共同接地,我们在Arduino的引脚7、8和11上放置的绿色和蓝色灯。我们可以通过使用analogWrite函数为所有三根线提供不同的值来模拟这些灯的RGB光谱。请注意,为了正确着色,所有三个都需要写入,否则之前在任何一个引脚上写入的颜色可能会显示出意想不到的结果。

pYYBAGJdLOWAEioRAASDK5BnYWI274.png

机壳:

我们在StoneCoop和GrowingHope农场对带有轮子和履带的塑料底盘进行的实验证明是不成功的,这两种选择都将挖入有利于植物的沙地。我们剥离了其中一个临时底盘版本很多塑料齿轮在升级到金属之前和处理更高电流的能力:

poYBAGJdLOCAdsYQAAWoTHnq4jQ371.png

由于其强大的电机和大轮子,我们最终选择了MountainArkSR13底盘,并按照以下说明进行组装。

我们对MountainArk进行了修改,添加了一个平台以将计算技术与电源分开,并通过定制涂漆的轻质外壳和独特的徽标为Farmaid增添了一丝风格。

pYYBAGJdLNuAfP3LAANpTAFQPTw861.png

组装好底盘后,我们需要电机和电池为其供电。虽然底盘带有电池盒,但我们决定使用12V锂聚合物电池,因为我们已经有了可用的电池,并且已将其与旧底盘一起使用。电机使用接线盒连接到电池,以获得更高的电流消耗。

poYBAGJdLNeAHHNwAAM3jhknqZo118.png

我们最初使用的是我们拥有的普通L298电机控制器,但发现电流太低,无法为我们现在拥有的320RPM电机供电。因此,我们改用IBT-2电机控制器,这是另一个创客空间成员捐赠的。IBT-2电机控制器的问题在于它们只能控制1个电机,所以我们必须连接其中的4个。

IBT-2的详细信息可以在这里看到:http://www.hessmer.org/blog/2013/12/28/ibt-2-h-bridge-with-arduino/为了节省布线空间,我们拼接了左右PWM线,接头将左侧电机和右侧电机的L-PWM和R-PWM相互连接。

pYYBAGJdLNOAFrf7AASmowTf9eg097.png

我们使用的另一种节省空间的技术是将所有电机的使能引脚直接连接到Arduino的5伏电压。

poYBAGJdLM-APILAAAQlOCQ5Ii8448.png

在此之后,我们需要直接连接到Arduino的唯一电机部分是PWM引脚。在左侧,我们将左侧电机的R_PWM连接到Arduino上的6引脚,将L_PWM连接到5引脚。请注意,左侧两个控制器的R_PWM引脚和左侧两个控制器上的L_PWM是拼接的,因此向一个的正向命令将同时向前移动,向一个反向命令将在左侧的两个轮子反转。右侧也进行了同样的拼接。右侧的R_PWM连接到Arduino的9针,L_PWM连接到Arduino的10针。对于碰撞检测,我们首先尝试了我们小组成员中的一个Garmin激光雷达,但我们很难让它工作,所以我们决定使用SR04超声波传感器

poYBAGJdLMqAQ18kAASQpy_Neag488.png

我们还在后面添加了另一个传感器,但由于使用定时器中断的方式,我们无法在手动控制机器人的同时使用它。请注意,我们制作了另一个Arduino例程,仅使用传感器在障碍物之间移动机器人,但这不符合行为克隆方法。

pYYBAGJdLMWABJcvAAUFnvomIec020.png

驾驶:

由于我们无法使用类似于驴车的底盘,因为它无法在我们给定的环境中行驶,因此我们必须编写自己的驾驶代码。为此,我们使用了两个灵感,DonkeyCar自己的方法以及YouTuberSentdex的一系列视频。驾驶模型基于DonkeyCar,除了没有回归和均方误差,我们使用分类来使用图像在7个按钮之间进行分类。我们还将它转换成一个全卷积神经网络,使其更快,并与新的研究相一致。在测试中,我们发现它不断输出一个按钮,这与训练中我们在几个间隔后按下一个键不同。为了解决这个问题,我们后来在Arduino脚本中添加了一些代码来输出按钮按下之间经过的时间。

病株分类:

对于分类,我们使用MobileNetSSD模型,因为它的尺寸相对较小,而且它已经有一种上传到安卓应用程序的方法。我们通过使用5-10秒的视频获取数据并创建了一个脚本来从这些视频中提取图像视频。视频本身被放置在以疾病和植物命名的文件夹中。我们确保在不同的条件和不同的地点拍摄这些视频。整个训练数据集由大约2000张图像组成。我们还制作了一个网站来展示分类的输出以及温室及其植物健康的整体地图。该网站使用XML数据创建此网格。

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

    关注

    206

    文章

    27078

    浏览量

    201528
  • 自主机器人
    +关注

    关注

    0

    文章

    16

    浏览量

    7852
收藏 人收藏

    评论

    相关推荐

    激光导航AGV底盘定制 巡检机器人,服务机器人,智慧物流搬运AGV

    技术先进的无反射板激光导航移动平台。同时为这些相关行业提供智慧物流以及仓储系统解决方案。 苏州智伟达机器人科技有限公司根据LNM自主导航解决方案自主研发激光导航AGV底盘定制 利用激光
    发表于 06-10 14:24

    深度解析|机器人自主移动的秘密(二)

    SLAM主要解决机器人的实时定位与自动建图问题,那么,在实际应用时,SLAM究竟是如何实现的呢?在实现过程中有哪些难点?这是完整的SLAM和导航系统的主要架构图:其中,SLAM核心过程包括3
    发表于 06-30 15:05

    深度解析|机器人自主移动的秘密(三)

    规划(Motion Planning)。运动规划是很大的概念,从机械臂的运动、到飞行器的飞行,再到这里我们说的扫地机的清扫路径规划,都是运动规划的范畴。我们先谈谈针对扫地机这类轮式机器人的运动规划
    发表于 08-01 13:50

    机器人想要实现智能移动,必须具备超强的自主定位导航能力

    ```` 移动机器人想要在完全陌生的环境中(没有预先录入地图的情况下)实现智能导航,显然不是那么简单。所以,移动机器人实现智能化的第步,当然是像
    发表于 01-03 11:41

    SLAM不等于机器人自主定位导航

    和运动控制。在SLAM技术帮助机器人确定自身定位和构建地图之后,进行叫做目标点导航的能力。通俗的说,就是规划条从A点到B点的路径出来,
    发表于 08-24 16:56

    服务机器人是如何实现自主定位导航的?

    的解决,就成为评判这个系统实力的指标了。  这是前两天在我们办公室进行的测试,当机器人已经绕场周后,ROS构建的地图出现了中断,而Slamware模块构建的地图是
    发表于 10-10 16:29

    【MAX40056申请】自主机器人的BLDC驱动

    项目名称:自主机器人的BLDC驱动试用计划:目前项目基于传统六步方波的BLDC驱动, 想逐步改进成FoC方式, 需要更精密的电流采样。想评估下MAX40056在电机线上的直接电流采集, 因为没有窗口期的问题, 可以任意时间采样电流。
    发表于 09-02 11:03

    怎么构建张满足机器人导航需求的地图?

    定位导航技术使机器人即使在无人操控的情况下,也可实现自主行走、避障及顺利到达目的地,机器人和人类绘制地图样,在描述环境及认识环境的过程中都需要依靠地图,它主要利用地图类描述其当前环境
    发表于 08-18 06:47

    微信控制的家庭智能机器人(附语音聊天、人脸检测、自主巡航等)

    今天给大家分享很不错的资料,大家有时间可以用来参考参考。该项目是基于嵌入式开发平台机器人,主要使用树莓派和arduino作为核心控制,在互联网这个大的
    发表于 09-30 14:33

    什么是服务机器人

    问:什么是服务机器人?答:根据国际机器人联合会(InternationalFederationofRobotics,IRF)的定义,服务机器人种半
    发表于 09-17 07:49

    机器人是什么?

    我们,也就是说,我们手动给他们发出指令。有些非常聪明,因为他们能感知环境,在没有人类干预的情况下工作。下面将给你洞察类型的机器人:-自主机器人
    发表于 03-31 10:31

    DIY友好型自主机器人

    描述ISLA 自主机器人ISLA 项目是 DIY 友好型自主机器人,主要使用通孔组件,使得这种设计对于任何有钱、Raspberry Pi Pico 和烙铁的人来说都非常容易实现。我
    发表于 07-13 06:18

    自制单独行走的机器人

    描述自主机器人这个项目是单独行走的机器人,奇妙的是它的简单和使用很少的组件,它走在条黑色的“轨道”线上。你会喜欢的,它很受孩子们欢迎。
    发表于 07-13 07:30

    毫米波技术如何为自主机器人提供边缘智能

    本文讨论毫米波技术如何为自主机器人提供边缘智能,使传感器能够做出实时决策,以减缓或停止机器人,并确保其在工业机器人应用中的持续性能。 TI毫米波传感器可用于旨在帮助工业机器人避免碰撞的
    发表于 11-09 08:08

    【科普】干货!带你从0了解移动机器人(三) ——自主导航系统及上位机软件设计与实现

    人类社会中发挥着越来越重要的作用。但移动机器人拥有自主导航能力,才能进步完成上诉所设定的任务。可以说自主导航能力是移动机器人最为基础和核心
    发表于 06-28 09:36