亚马逊用传送带当机器手,解决快递分拣的“最后一公里”问题

亚马逊用传送带当机器手,解决快递分拣的“最后一公里”问题大数据文摘作品

作者:Mickey

在物流行业中,最棘手的始终是货物分拣的“最后一公里”,这涉及到将不同的货物挑选出来并进行分类递送,需要大量的末端人力来完成递送任务。

就在刚刚过去的双十二期间,快递员数量急剧减少,导致各地快递网点出现了大量货物堆积的情况,像这样?

亚马逊用传送带当机器手,解决快递分拣的“最后一公里”问题据报道,多个快递网点暂停运营,日薪400元也招不到临时工,上万件快递堆积如山。

亚马逊用传送带当机器手,解决快递分拣的“最后一公里”问题不仅国内如此,在人力成本更高的美国,电商巨头亚马逊也面临这一问题,因此一直在探索使用机器来解决这一“分拣”难题的可能性。

从一箱物品中取出一件物品并将其放入不同的箱子中,这是分拣包裹的关键步骤。然而,对于机器人来说,从一堆物品中挑选一件物品并不容易(特别是当不同物品的数量可能达到数百万时)。自2015年起,亚马逊就开始研发能够拣选物品的机器人,比如在ICRA上赞助了亚马逊拣选挑战赛。

亚马逊的这一努力终于取得了一定成效。一个月前,亚马逊推出了Sparrow,它被描述为“亚马逊仓库中的第一个机器人系统,能够检测、选择和处理我们库存中的单个产品”。

然而,目前Sparrow的实际工作环境与真实的快递场景仍有不同。Sparrow配备了非常适合机器人使用的分拣箱,这使得它的工作比真实场景更加轻松。

传输带+抓手,解决快递分拣的“最后一公里”

亚马逊机器人AI主管Sidd Srinivasa将物品装载问题描述为“一场噩梦……‘快递装载’从根本上打破了所有现有的工业机器人思维。”

当亚马逊仓库收到一批新货物时,比如说Extremely Very Awesome Nuggets (EVANs),第一步是调出一个有足够空货架的货舱,以便立即将所有EVANs装入其中。这样,当有人下单购买EVAN时,装满EVAN的货舱就会出现,人们可以从其中一个货架上挑选一件EVAN并装入合适的地方。然而,这种方法的问题是,如果装满EVAN的吊舱卡住或损坏或无法访问,那么整个系统的速度就会完全卡住(对EVAN的需求非常非常高)。

亚马逊的仓储对机器人来说既是前沿又是噩梦,因为它是一项针对人类进行了高度优化的任务。亚马逊在人工优化方面投入了大量资金,并且(至少目前)该公司非常依赖人类。这意味着任何会对以人为中心的工作流程产生重大影响的机器人解决方案可能不会走得太远。因此,Parness和高级应用科学家Parker Owan必须开发能够解决问题的硬件和软件。这是他们想出的解决方案:

亚马逊用传送带当机器手,解决快递分拣的“最后一公里”问题在硬件方面,有一个挂钩系统,可以将传送带拉开,以便进入每个储物空间。这是容易的部分,困难的部分体现在臂端工具 (EOAT) 中,它由两个长桨组成,可以轻轻挤压物品以将其捡起,其内表面带有传送带,可将物品射入储物箱。一种可伸缩的薄金属刮刀可以在臂端工具展开之前进入储物箱,并在必要时四处移动物品以腾出空间。

要使用所有这些硬件需要一些非常复杂的软件,因为系统需要能够感知储物箱中的物品(它们可能相互遮挡以及在松紧带后面),估计每个物品的特征,考虑方法这些物品可以被安全地推来推去,以根据要装载的物体最大化可用的储物箱空间,然后执行正确的动作来实现所有这些。目前,亚马逊研究人员已经能够实现(在实验室中)超过90%的装载成功率。

经过多年的工作,该系统运行良好,原型正在华盛顿州的亚马逊运营中心存放实际库存物品。目标是能够存放85%的亚马逊库存产品(数百万件),但由于该系统可以安装在人类使用的相同工作流程中,因此成功率也没有必要达到100%。如果系统无法处理它,它会将其传递给人类工作者。

负责人:希望能够一次解决分拣和装载的问题

IEEE与亚马逊机器人与人工智能应用科学高级经理Aaron Parness进行了交谈以了解更多信息。

亚马逊用传送带当机器手,解决快递分拣的“最后一公里”问题IEEE Spectrum:当机器手在储物箱中的物品信息不完整的情况下进行操作时,如何确保不会损坏任何东西?

Parness:这里有两点需要强调。一个是方法以及我们如何决定采取什么行动。其次是如何确保在执行这些操作时不会损坏物品,例如尽可能地挤压。

AI建筑知识问答 AI建筑知识问答

用人工智能ChatGPT帮你解答所有建筑问题

AI建筑知识问答 22 查看详情 AI建筑知识问答

首先,我们使用决策树。我们使用该物品信息来领取所有简单的东西——如果储物箱是空的,请将最大的东西放入储物箱。如果箱子里只有一件物品,而且你知道那件物品是一本书,你可以假设它是不可压缩的,然后你可以相应地操作它。当你沿着决策树向下移动时,你会到达某些分支和叶子,这些分支和叶子太复杂而无法使用一组启发式方法,这就是我们使用机器学习来预测事情的地方,比如,如果我扫过这个点云,我有多少空间可能在储物格里?

这就是基于接触的操作的用武之地,因为另一件事是,在仓库中,你需要有速度。你不能每小时装载一件物品并保持高效。这就是在控制回路中施加力和扭矩会产生影响的地方——我们需要有一个高速率,几百赫兹的回路在我们的导纳控制器和我们的运动规划堆栈中关闭传感器和一堆特殊的调味料以确保我们可以在不损坏物品的情况下执行这些动作。

IEEE Spectrum:在这些针对人类优化的环境中操作,机器人方法与人类行为的模仿程度如何?

Parness:我们从自己做开始。我们也拿着机器人末端执行器自己做一遍执行操作。这很重要,因为你没有意识到你在做所有这些精细的控制动作,而且你手上有这么多传感器。但是当我们自己完成这项任务时,当我们观察专家这样做时,运动基元的想法就是这么出现的,这使得这个问题更容易实现。

IEEE Spectrum:是什么让你使用运动基元方法而不是更通用的学习技术?

Parness:我会给你一个诚实的答案——我从来没有被强化学习所吸引。

但是我的团队中有些人对此很感兴趣,我们进行了辩论,因为我真的相信迭代设计理念和原型制作的价值。我们做了一堆早期原型,试图做出数据驱动的决策,而端到端的强化学习似乎很棘手。但运动基元策略让我不再怀疑机器人是否能完成这项工作,并让我想,“哦,是的,就是这样。我们必须为此努力。”那是一个转折点,获得那些运动基元并认识到这是构建问题以使其可解决的一种方法,因为它们可以帮助您完成大部分工作。

IEEE Spectrum:末端执行器看起来很专业——你是如何开发的?

Parness:环顾整个行业,有很多吸盘,很多捏手。当你拥有这些类型的抓手时,突然之间你会尝试使用你抓握的物品来操纵储物箱中的其他物品,对吧?当我们决定采用桨式方法并封装物品时,它给了我们对物品的六个自由度控制,以确保它不会进入我们不希望它进入的空间,同时也给了我们夹具上已知的工程表面。也许我只能以一般方式预测刚度或接触特性或储物箱中的物品,但我知道我正在用我的桨背面触摸它,它是铝制的。

但后来我们意识到,末端执行器实际上占用了储物箱中的大量空间,关键在于我们试图将这些储物箱填满,以便我们可以在Amazon.com上出售很多东西。这是一个超级简单的工具,你可以用它来推动东西,翻转东西,挤压东西……你绝对不是在做27自由度的人手东西,但是因为我们有这些运动基元,硬件补充了这一点。

然而,抓手还是带来了一个新问题,因为在使用它们时,我们基本上必须先放下物品,然后再尝试将其推入。正是这种动力——放手推——这不是很好。这就是将传送带放在机器抓手上的原因,就成功而言,这使我们登上了月球。

IEEE Spectrum:分拣在多大程度上只是“反向装载”?您能否反向运行您的系统并解决拣选问题?

Parness:这是一个很好的问题,因为显然我也考虑过这一点,但选择起来有点困难。对于装载,更多的是关于如何在储物箱中腾出空间,然后是如何将物品放入空间。对于拣选,您需要识别物品——当储物箱出现时,机器学习、计算机视觉,该系统必须能够在混乱中找到正确的物品。但是一旦我们可以处理联系并且可以处理混乱,选择肯定是一个打开的应用程序。

从长远来看,如果亚马逊部署了一堆这样的装载机器人,突然之间你就可以开始跟踪物品了,你会记得这个机器人把这个物品存放在这个箱子的这个地方。你可以开始构建容器映射。不过现在,系统不记得了。

特别是在挑选方面,亚马逊在过去几年里做的一件好事是开始更多地与学术界接触。我的团队赞助麻省理工学院和华盛顿大学的研究。华盛顿大学的团队实际上正在考虑挑选。装载和分拣都是非常困难且非常有吸引力的问题,我希望我能及时解决这两个问题!

素材来源:

https://www.php.cn/link/7b79052a522d19d23aae93d16d3c744a

亚马逊用传送带当机器手,解决快递分拣的“最后一公里”问题亚马逊用传送带当机器手,解决快递分拣的“最后一公里”问题点「在看」的人都变好看了哦!

以上就是亚马逊用传送带当机器手,解决快递分拣的“最后一公里”问题的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/464806.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月8日 05:01:12
下一篇 2025年11月8日 05:05:34

相关推荐

  • Go语言crypto/tls库的生产环境安全性评估与考量

    本文深入探讨go语言内置`crypto/tls`库在生产环境中的安全性,特别关注其作为tls客户端时的表现。基于go团队核心成员的早期评估,文章分析了该库在侧信道攻击(如rsa和椭圆曲线操作的非恒定时间问题)和外部安全审计方面的局限性。同时,文章也提及了go团队为提升安全性所做的努力,并讨论了ope…

    2025年12月16日
    000
  • 使用 Go net/http 服务二进制数据:以 GIF 图像为例

    本教程详细介绍了如何使用 go 语言的 `net/http` 包高效地在 web 服务器上提供二进制数据,特别是 gif 图像。文章涵盖了从 base64 字符串解码并直接响应二进制内容,以及从文件系统提供文件的方法。重点强调了正确的二进制数据写入方式、http 头设置、错误处理和验证技巧,确保内容…

    2025年12月16日
    000
  • 在 git2go 中获取 Git 文件模式(Filemode)及处理符号链接

    本文详细介绍了如何使用 `git2go` 库获取 git 仓库中文件或目录的模式(filemode)。通过访问 `treeentry` 结构体的 `filemode` 字段,开发者可以识别条目类型,特别是如何利用 `git.filemodelink` 常量来检测并解析符号链接的目标路径。文章强调了 …

    2025年12月16日
    000
  • Golang模板解析问题:空白页面的原因与解决方案

    本文旨在解决Golang模板解析时出现空白页面的问题。通过分析`template.ParseFiles`和`template.New`的区别,解释了模板名称不匹配导致的问题,并提供了两种有效的解决方案,帮助开发者正确使用Golang模板引擎。 在使用Golang进行Web开发时,模板引擎是不可或缺的…

    2025年12月16日
    000
  • Go语言HTTP请求中resp.Body.Close()的必要性与最佳实践

    在go语言进行http请求时,即使不读取响应体,也必须调用`resp.body.close()`。这是为了释放底层网络连接资源,防止连接泄露。若响应体未被读取,默认的http传输层会关闭连接。如果响应体已被读取,`close()`调用则允许连接复用,提高效率。对于仅需检查状态码的场景,`http.h…

    2025年12月16日
    000
  • Go语言中结构体通道的正确使用与死锁规避

    本文深入探讨了go语言中在结构体内部使用通道(channel)时可能遇到的死锁问题。通过分析一个典型的代码示例,阐明了无缓冲通道同步机制的原理,并对比了有缓冲通道的特性。文章详细讲解了多种常见的通道死锁场景,并提供了正确的通道使用范式和实践建议,旨在帮助开发者有效规避并发编程中的陷阱,确保go程序的…

    2025年12月16日
    000
  • Go语言中包名与变量名冲突的解决方案

    在go语言开发中,当导入的包名或其别名与局部作用域内的变量名相同时,会导致包被该变量遮蔽而无法直接访问。解决此问题的核心方法是在导入包时为其指定一个独特的别名,从而明确区分包引用与局部变量,有效避免命名冲突,确保代码的清晰性和可维护性。 理解Go语言中的命名冲突问题 Go语言的包管理机制允许开发者为…

    2025年12月16日
    000
  • Google App Engine Channel API 的线程安全与原子性

    本文旨在探讨 Google App Engine (GAE) Channel API 在并发环境下的线程安全性和原子性问题。 重点分析了从多个 goroutine 或任务队列同时调用 `channel.Send` 函数时可能出现的情况,并阐明了 App Engine API 在并发调用中的安全性原则…

    2025年12月16日
    000
  • Go语言:解决HTTP响应体赋值中的nil指针解引用恐慌

    本文深入探讨go语言中常见的“nil指针解引用”运行时错误,尤其是在处理http响应体并将其赋值给嵌套结构体字段时。我们将分析问题根源,即指针类型字段未初始化,并提供多种解决方案,包括显式初始化、使用结构体构造函数等,以确保代码健壮性并避免程序崩溃。 在Go语言开发中,处理HTTP请求和响应是常见的…

    2025年12月16日
    000
  • 使用Go Channel实现并发临界区的严格交替执行

    本文探讨了如何在go语言中,利用双通道(dual channel)机制,确保多个并发协程(goroutines)中的临界区(critical sections)严格按照预设的顺序交替执行。通过为每个协程分配一个接收通道和一个发送通道,实现了一种令牌传递模式,有效解决了并发资源访问的同步问题,并展示了…

    2025年12月16日
    000
  • Golang如何处理容器间通信安全

    答案:Go应用容器间通信安全需通过TLS加密、服务网格mTLS、NetworkPolicy访问控制及服务鉴权实现;具体包括使用HTTPS/gRPC加密传输,Istio等服务网格自动加密流量,Kubernetes NetworkPolicy限制Pod间访问,JWT或API Key验证调用身份,结合CA…

    2025年12月16日
    000
  • Go JSON:如何让结构体字段只被反序列化而不被序列化

    本文探讨在go语言中如何实现json结构体字段的选择性序列化与反序列化,即某个字段只在反序列化时读取,而在序列化时忽略。针对`json:”-“`标签无法满足此需求的问题,文章提出通过语义分离,将结构体拆分为不同用途的类型,并利用结构体嵌入实现这一目标,同时保持代码的清晰性和可…

    2025年12月16日
    000
  • 如何在Golang中实现TCP服务器

    答案:Golang通过net包实现TCP服务器,先监听端口,再循环接受连接并为每个连接启动协程处理数据收发。示例代码展示了一个回声服务,接收客户端消息后返回“echo: ”前缀的响应,可用telnet测试,适用于学习与小型应用。 在Golang中实现一个TCP服务器非常直接,得益于标准库 net 包…

    2025年12月16日
    000
  • Go语言中Map的参数传递与可变性深度解析

    go语言中的map在函数间传递时表现出引用类型的特性。即使map本身是按值传递的,但它内部持有对底层数据结构的引用。这意味着在函数内部对map内容进行的修改,在函数外部也是可见的,无需显式返回map或传递map的指针。本文将通过实例代码详细探讨这一机制。 Go语言的参数传递机制 在Go语言中,所有参…

    2025年12月16日
    000
  • Golang如何实现WebSocket通信

    Go语言通过gorilla/websocket库实现WebSocket通信,1. 服务端监听/ws路径并升级HTTP连接;2. 客户端使用ws协议连接服务器;3. 双方通过ReadMessage和WriteMessage收发数据,支持跨域与消息回显。 Go语言实现WebSocket通信主要依赖第三方…

    2025年12月16日
    000
  • Golang 工作区多项目管理指南

    本文旨在帮助开发者理解和实践 Golang 工作区中多项目管理的方法。通过合理组织项目结构,并利用 `go` 命令的灵活使用,可以在同一个 `GOPATH` 下高效地开发和维护多个独立的 Go 项目,避免为每个项目设置独立的 `GOPATH` 带来的不便。 在 Golang 开发中,GOPATH 是…

    2025年12月16日
    000
  • Go语言中访问C语言结构体中的联合体成员:以Windows API为例

    在go语言中与c语言结构体(尤其是windows api中包含联合体`union`的结构体)交互时,直接访问联合体成员会遇到类型安全问题。本文将详细介绍如何使用go的`unsafe`包来解决这一挑战,提供两种访问策略:直接的指针算术和更推荐的包装结构体方法,并强调`unsafe`包的使用注意事项。 …

    2025年12月16日
    000
  • Go语言中结构体内部列表的类型断言问题及解决方案

    本文旨在解决在Go语言中,当结构体内部包含列表,且列表元素为结构体自身类型时,访问列表元素属性时遇到的类型断言错误。通过具体示例,详细解释了错误原因以及如何使用类型断言来正确访问结构体内部列表元素。 在Go语言中,当你在结构体内部使用 list.List 存储特定类型的元素时,从列表中取出的元素类型…

    2025年12月16日
    000
  • Golang 并发编程:安全地向共享切片追加元素策略与实践

    本文深入探讨了在golang并发编程中,如何安全地从多个goroutine向同一个切片追加数据。文章详细介绍了三种核心策略:利用`sync.mutex`进行互斥访问、通过go channel收集并发结果,以及在切片大小已知时采用预分配并按索引写入的方法,并提供了相应的代码示例,旨在帮助开发者有效避免…

    2025年12月16日
    000
  • Go语言Web服务:高效响应GIF图像的实践指南

    本教程详细介绍了如何使用go语言的net/http包构建一个web服务器,以高效地响应gif图像。文章涵盖了从base64编码字符串直接提供gif数据的方法,以及从文件系统读取并响应gif的实践。教程强调了正确的http头设置、健壮的错误处理和多种验证方法,旨在帮助开发者构建稳定可靠的图像服务。 G…

    2025年12月16日
    000

发表回复

登录后才能评论
关注微信