本人小恐龙,汽车圈IT从业近10年,于3年前不小心掉进物流机器人的大坑。作为汽车行业先进物流技术的探索者之一,希望将我这几年在智能机器人的使用经验和教训和大家分享,希望可以为行业总结经验,少走些弯路。那么第一篇文章先来聊聊物流场景。
物流智能机器人已经在电商领域和快递行业取得了非常大的成功,甚至有某"知名"电商宣称可以提高分拣效率8-10倍。那么这种成功是否可以在工业领域成功复制呢?以我在汽车行业的应用经验来看,想达到人工效率,已经是成功了;超过人工,难度极高。
那么这种新技术是否就在这个行业没有价值呢?相反,有很大价值。通过合理的设计,效率上可以达到人工的2倍左右(但不足以产生明显的正向ROI);同时,可以大大减少劳动强度;减少蓝领的脑力消耗;有效提高操作准确性;有效降低培训时间;最重要的是,可以有效降低招聘门槛,可以解决在不提高薪资水平的条件下,招不到人的困境(实际上是可以降低标准招人)。通过这种技术,可以在不提高用工成本的前提下,保证高准确率操作的要求,而对操作准确性的要求,是工业领域丝毫不能妥协的关键 (不准确不规范的操作,给客户造成的损失,要远远大于电商类型业务)。
下面我们来按照物流和使用关键要素来详细讨论汽车配件库房的应用场景。本文并不会太涉及这种机器人的内部设计. IT整体方案的设计,将会在以后的文章中单独讨论, 也不会在本文中体现.
1)罪魁祸首:汽车配件SKU太复杂
在汽车售后零配件库房,SKU的货物品类,基本在几万到十万种上下,这种SKU品类的密度,是普通电商库房的几倍甚至几十倍(电商库房会按照SKU品类分库,即不同性质的货物不会放在一个库房里,所以虽然商城里SKU多大几十万种,但是每个库房却相对单一)。
在这数万种SKU里,按照包装体积,分成大(发动机,保险杠),中(雨刷),小(火花塞),微(螺丝,垫片)多种;按照重量,有的体积大但是很轻,有的很小但是密度极大(刹车片);按照流动速度,又分成A类(每天有流动),B类(每月有流动),C类(每月有流动),D类(每年有流动。。。就是传说中的,遭人恨的长尾货);按照销售最小包装,有的需要一个螺丝一个螺丝的数,耗时极大。
可见,如此多维度的SKU分类,造成了一个棘手的问题是,针对中小件存储区域,库房每平方米要存储的SKU品类将会高达十甚至数十种。而为了最有效利用存储空间和货物管理,电商库房常用的一货多位存储方式,在汽车零配件库房是很难采用的(补货货位是有的, 但是不做进出库).
不幸的是,中小件,正是物流机器人最适用的SKU场景,所以在整个方案的设计里,必须要兼顾存储空间利用率,操作准确性,管理准确性,效率,机器人数量成本等相互矛盾的诉求。怎样在这些矛盾中寻求突破,用好机器人设备,这是本文要讨论的内容.
2)一货多位,还是一货一位?
由于SKU品类太多,造成库房很难做到一货多位的管理。一货一位,是库房进行人工货位调整,人工货位优化的基础,如果使用一货多位,人工管理的难度将会大大升高,管理的有效性有大大降低的风险,管理成本会大大提高。对货位的优化,将会达不到期望的效果。那么专业的IT系统是否可以付能管理人员进行一货多位的管理呢?仍然非常困难,因为除了管理成本,一货多位会对一线操作人员造成困惑,会影响一线的操作效率。自动化设备的引入,可以帮助一线操作人员解决这个问题。一货多位是这种物流机器人的核心优势之一。
另外,一货多位会造成的一个问题是容积,有可能会使货位的容积浪费变大,另一个问题是SKU的存放位置的设置就变得异常复杂。有人会问为什么不做用大数据做货位的基于算法的冷热分析来解决这个问题呢?由于汽车零配件的来源极其复杂,造成上下游的主数据,包装单位数据很难统一规范。不准确的各种基础数据,是本行业的特点和一直以来的痛点,尽人皆知,影响很大,无人能解。
大数据和运筹学在仓储领域擅长的SKU冷热分析,由于数据的缺失,也难有发挥的空间,间接的,造成了物流机器人系统不可能通过机器人自主的调整货架位位置来优化效率。
我们在使用机器人的过程中,可以考虑用渐进式的方式,先一货一位,逐渐补齐数据,慢慢过渡到一货多位。一步到位,是不可取的方式。
需要注意的是,如果机器人方案里不具备实施一货多位的条件,那么同一种货物将会只在一个货架上出现,在拣货任务分配逻辑上,需要重点考虑不同工作站(件货台)之间的货架调拨逻辑。
3)阿弥陀佛,货架顶歪了!
首先,再一次,还是由于单位面积的SKU品类太多,机器人货架必须要设计成能够承载最多品种的货物,最多时单个货架需要设计多达50种SKU,那么必然要求货架需要有足够大的人工操作界面,说白了,就是需要设计的足够高,能容得下很多层。同时又必须兼顾人员操作的便利性,那么货架的存储净高度应该在1.8米左右(总高度2米左右)。这样的设计问题是,会使得货物的中心偏高,造成货架倾倒的几率变大。货架的具体设计,在下一章做详细讨论。
其次,由于SKU最小包装单位的缺失,和货物重量数据的不准确,在机器人上货和拣货的时候,系统不能自动计算货架两侧的重量平衡,和上下层货位的中心分布。一旦货架重心分布和总重量超过了一定阈值,货架在加速,减速,旋转过程中都有可能发生倾倒。(数据的缺失,是由于整个行业的数据缺失和供应链上下各个环节没有打通所致,这并非一家公司可以解决的问题,需要整个供应链的共同努力。这个话题太大,可以另作讨论,大家知道结果就行,就是没数据,即便有,也不准确。有人说用区块链?按照行业规律,谁说区块链谁就是来骗钱的!)。
重心的偏移,还会导致机器人本身受到的压力不平均,时间久了,会造成承重部件的过度磨损,比如某个方向的万向轮,托盘旋转电机,减速机,齿轮箱等。一旦出现机器人关键部件磨损,会造成货架转向不足/过度。而一旦机器人没有检测到偏移,就会出现因为一个歪的货架行进在路上,剐蹭到一排货架的情况。
为了避免/减小货架歪了的情况出现,需要在上架的时候,将重的货物放在尽量靠下的位置。同时需要注意货架的左右面的重量分布不能过偏。对重量分配的调整,需要现场操作人员持续的关注,会给一线员工造成额外的管理开销。
4)货位设计,这是门玄学
在汽车售后配件行业,对货位的管理,绝对称得上是一门玄学。
一个汽车售后配件库房,面积一般在1万-5万平米之间;常备的SKU在3万-5万种之间。安全库存,我们拿业界最高的履约标准来看的话,库存周转周期在3个月左右,库存价值在1-10亿RMB之间。
那么如何才能对如此复杂的SKU进行有效的储存管理?既要考虑对三维空间的利用效率,又要考虑库房总体吞吐能力的最优,同时还要考虑为在途的货物预留(大量的货物需要进口。空运海运清关的时间周期和单个批次货物总量都不相同);既要考虑货来了,能及时完成上架(否则会占用开放区,堵死操作),又要考虑拣货时候容易捡出(成托盘上货,拆零拣货,所以上货拣货对货位的要求明显不同),还要考虑危化品,磁性,精品,高价值货物的不同特性。。。而货物的大小,重量,包装规格,运输单位,数量,易碎品等,只不过是研究货位的基本功课而已。
那么怎么样才能有效地管理如此多的因素呢?目前,在汽车行业,算法还不能和经验相提并论,大数据不如Excel,是常态。AI能帮忙吗?过拟合,欠拟合的发生都会是个大悲剧,因为库房操作的容错性很低,操作必须可知可控可预测。运筹学在不考虑成本的前提下,是个正确的方向,越大的库房越需要算法支持。但是规模很大的仓库里面也同时有大专家蹲守,而不具备专家的小库房,有没有必要用算法。。。靠人肉足以。业界宣称的技术是一回事,实际使用的效果是另一回事,在这里有充分体现。
货架是由许多货位组成的,而不同的SKU对货位要求千差万别,我们需要首先研究研究货位。从仓储的管理角度看,货位是货物的基本管理单元,涉及到库房一共能存储多少种品类的货物,总重量,总体积,存储类型,位置等关键信息;而从单个SKU角度看,货位又是某个品类货物的存储属性, 在仓储管理系统中,物料主数据里,一定会有一个以上关键字段是货位,用来传递这个货物存储位置的信息。一个货位,绑定了物料在这个库房种的三维位置信息,流动特性,物料重量特征,体积特称,包装特征等很多信息。
谈清楚了货位设计的基本因素之后,我们可以谈谈机器人货架的设计了。
首先,在设计机器人货架的时候, 要搞清楚我们的目标物料是哪些,从最小的到最大的,从最轻的到最重的,再找到最独特的包装的。根据我们的经验,有三类货物需要重点关注。第一种是拣选很花时间的,比如螺丝,如果会单个拣选的话;第二种是密度很大的,比如刹车片,这种物料的包装规则,容易存取,体积小密度大,所以很容易造成货架整体重心偏移,导致货架侧倾;第三种是重量轻但是包装易滑的,比如塑料膜包装,这种配件在货架移动时候,很容易滑动,需要对货架容器开口做特殊处理。针对不同的配件包装,需要设计宽度,深度,高度非常不同的货位容器。
其次,我们需要考虑机器人货架要存储多少体积的物料,在配件清单定义清楚的情况下,进一步需要考虑的是每一种配件的流动速度,即吞吐量。这里吞和吐两个流向需要分别考虑,因为库房一定是大口吃进去,小口吐出来,那么每种货位的总容积,需要满足这个配件的库存周转周期,外加安全库存的冗余。
第三,需要考虑不同配件之间有可能的耦合关系。比如保养件,如果是需要成套销售的,那么这些配件是高度相关的,那么将这些配件放在相同的货架上,一次全部捡出同一个货架上的货物的几率就会增大,进而提高吞吐效率。具体怎么分配物料和货架的耦合关系,需要有足够的数据作为支撑,一货一位还是一货多位,就是是设计的关键。
综合上面三个要素,货架的货位组合关系,怎么优化,就需要一个长期的优化过程。根据我们的经验,货架的分类不宜过多,货位应该以大型和中型为主。中型的货位应该放在货架的中间高度,以便人员容易操作。货架应该分成AB两面,每一面的深度应该相同,这样可以有效利用工作面,多放货位,同时可以保证中心容易平衡。货位工作面,不应该小于一个拳头的大小,以便手的进出。
货架的逻辑设计完成之后,还需要考虑货架的材料。
首先,货架的立柱,横撑,隔板,应该尽量使用高强度轻质材料。根据我们的经验,一个两米高的货架,如果是普通钢材制作,自身的净重就会有70公斤左右,考虑到机器人的托举能力最大500公斤的话,那么光货架就会损耗掉1/5,那么机器人货架的有效存储重量只有350多公斤。且钢制的货架,容易生锈,时间一长(以年为单位),有货架垮塌的风险。
其次,需要考虑货架的容器,目前大部分现成的塑料容器尺寸都不适合机器人货架测尺寸,那么我们需要考虑是以物料容器的尺寸来设计货架的宽度,还是以货架来定制物料容器。这个需要根据使用方和配套方的能力来综合考虑。
需要注意的是,千万不要用纸盒子作为容器!因为纸盒子受潮之后会膨胀变形,我现在还在流泪啊。。。。
![](https://img.jasve.com/2024-2/020236ac7cb0510e92273d3d34bd220e.webp)
5) 东邪西毒:合单一波流 VS 拆单流水线
前面的四个章节,我们分享了物流机器人在汽车配件库房的应用的静态要素。下面我们来讨论动态要素。
订单履约,是一个库房存在的核心使命。履约,用大白话来说,就是要使客户,及时的收到正确的货,并保障没有存储和运输的损伤。要保证履约,物流环节需要及时将货送到客户手上的话,除了运输环节的情况外,最关键的就是库房可以及时的将客户要求的货交割给承运商。那么对于库房来说,需要科学的去处理订单,才能保证时间节点。怎么处理订单才是算是科学的?在保证履约并不难,但是要做到最合理的使用手头的资源,最小化整个链条的成本,才能称得上是科学的。在这个前提下,不管是合单处理,还是拆单处理,都是库房根据各种限制条件和现有资源的合理选择。
说到物流机器人方案,是不是合单处理-拆单处理这两种模式都可以适应?小恐龙认为拆单流水线模式更适合机器人。机器人系统的设计方案必须要满足库房整体的履约能力的上限,才能在业务量大爆发时候不拖慢整个库房的效率。基于这样的考虑,机器人方案的设计难度,使用难度,容错空间,都将会面对极大挑战。为了满足这些极端情况,机器人的数量必须要足够,系统的控制逻辑要足够严谨,容灾和恢复能力要非常强,最终,为了满足峰值时候的吞吐量,会造成整个方案的成本飙升,最终超出合理范围(比人还贵)。考虑到机器人本身,最适合稳定的节拍,稳定的负载,所以说是适合生产线类型的操作节奏。那么针对库房,将收到的订单整合成多批次,小负载的,稳定的流水线模式,是最能发挥机器人系统的优势的选择,机器人的单体寿命可以最大化,系统容错空间大,成本低。
以小恐龙这几年的使用经验来看,机器人和流水线模式组合能相得益彰发挥优势,但是机器人和订单一波流模式的组合,有着难以克服的问题。必须要肯定的是,订单一波流,是非常科学操作模式。在这种模式下,库房会根据履约时间,向前推算订单的最后截至时间,在尽量多的收集到订单之后,免洗的处理订单。这种操作方法,可以将不同客户的相同订货整合,用最小的资源消耗去一次性命中最多的货物;可以使库房的操作按照时间段分片,可以用相同的空间和人力,在不同的时间段完成不同的作业,是综合成本最小化的库房管理方法。这是ToB类型的供应链库房的首选模式。但是这种操作模式,会造成在某个峰值时段,操作负载极高,人工传统模式的话,可以多扑人员来解决,但是对机器人方案来说,就要从一开始就要针对最大的吞吐量容量做设计。设计难度大,运营容错率低,对机器人产品的质量稳定性要求极高,项目成本高,收益低(可以想象,要积攒一天的订单在1-2小时里面集中处理掉,所以极限负载极高,但是在这个时间端之外,有没有多少任务可以作,所以机器人在大部分时间段在休息,浪费了投资)。
对机器人设备本身来说,高负载连续使用,会降低机器人寿命,这一点如果在操作种不能避免,就需要在商务协议中有所体现。
另外需要说明的是,机器人方案一定要基于库房整体的操作规则做设计,要将设备融合进现有流程。不能融合进大流程的设备,并不具有实施的价值。另外一边,大流程也需要针对机器人使用做细微变更,调整的好的话,可以取得双赢局面。
6)大巧若拙:单次分拣还是多次分拣
上一段讨论到了两种拣货模式的优缺点,那么针对机器人方案并不擅长的合单一波流,有什么办法来优化拣货效率呢?最关键环节的就是分拣层级的设计。
设计分拣层级,即每一级拣货的颗粒度。一般来讲,单次分拣粒度越高,本次拣货效率越低(因为需要将捡的货和客户对应起来),但是同时需要的分拣次数就越少。针对不同的库房,不同的货物,不同的货量,不同的客户量,设计多少层分拣,需要根据具体情况而定,并没有统一标准。
以一般的规律来看,区域的中心仓,超大型库房,会设置多级分拣(单纯拣货-】在一个区域分客户-】合单-】包装),多级分拣能有效提高效率,但是需要很大的操作界面和人力和自动化设备。中小型库房,会将中间某些环节合并操作。
那么在本文讨论的情景中,想使拣货效率最大化,必须使每个货架只需要移动一次就能命中本货加上全部的货物。基于这样的思路,单次分拣是一定不能最大化吞吐量的,因为单次分拣,在拣货的时候,需要同时将不同的客户货物区分开,而如果客户数量很大,就需要很大的播种墙(播种墙的设计在后面讨论),太大的播种墙会增加人员行走的时间,就是降低拣货的效率。同时面积过大的播种墙,会占用很多库房面积,也是成本。如果在拣货时候不区分客户呢?那么单纯拣货效率会很高,但是后面还需要二次分拣来区分客户。
这里的平衡点,其实就隐藏在货量和客户量之中。当客户数量大,但是每个客户需要的货量和品类很少的情境下,应该优先考虑二次分拣,因为一个货架移动一次如果只命中一个订单,货架需要不停的被移动,机器人系统的效率将会很低,还会造成整个系统的负载很高;当客户数量不大,但是每个客户的订货很多情境下,如果二次拣货,会有大量的货需要再次被移动和分拨,而且会需要占用很大的面积去分客户,所以不如在机器人货架区域,一次性区分好客户。
![](https://img.jasve.com/2024-2/e63d16c65a9f557fe660f2cdd5ed88e3.webp)
7)万剑归宗:路径规划
机器人要想完成一个指令,需要知道两个关键信息,第一,去哪,第二,怎么走。处理这两个信息的任务就是路径规划,将这两个任务变成机器人可以执行的信息,就是路径规划算法。路径规划算法其实要解决的问题很简单,从A点到B点。解决这个问题的方法和算法,在所有的计算机专业本科课程里都有阐述。但是,实际解决起来难度极大。
市面上的路径规划算法分成两大派系:集中式控制和分布式控制。
集中式控制,就是由一个核心节点掌控全局。将所有的实时信息,包括机器人的位置,速度,加速度,角度,方向,举升,全部汇总起来计算,并将计算结果实时的下发到机器人上去执行,机器人即时反馈信息给中央控制节点。这种设计的优势很明显:简单。机器人不需要承担任何复杂计算(机构和传统AGV类似),所有的计算逻辑由中心控制节点完成,在程序设计时,开发者可以明确分工,知识领域边界清晰,开发效率高,逻辑简单;其次是准确。服务器端,拥有在任何时刻的全部地图信息,知道任何一台机器人的状态和位置,可以做出最准确的判断,并在同一时间将所有机器人的路线一次性计算出来,并下发,这种特性,在节拍要求高的生产线尤其重要。集中式控制在机器人数量,或者说计算量要求不高的情况下,是很好的架构。但是,当机器人数量上升,或者地图变大时,会使得计算量指数性的提高,服务器的负载会极大增加。那么意味着需要提高服务器性能,增加成本到不可接受的程度。(有同学会问,服务器可以作集群,分布式并行计算,这个的确是个正确的方向,只不过需要将一个单一计算过程分变成分布式的计算,之后合并成一个结果,设计难度不低)。以目前行业的使用经验来看,这种架构可以承载的机器人数量在300-400台左右。不过随着运筹学的引入,算法也在快速优化中,计算速度已经开始有了突破。国内所有主流机器人公司都是采用了集中式控制。
需要强调的是,路径规划问题是一个逼近最优解的问题,而非传统编程上求对错的问题。需要很强的数学方法论基础。并非IT攻城狮擅长的领域。而所谓的最优解,有比较难的去定义,甚至需要根据具体实施来逐步摸索,是个很耗时间的工作(小恐龙在这里为「杉数科技」做做广告)。
和集中式控制相对的是分布式控制,即机器人本身承担主要的计算并做出决策,每个机器人分布式计算,只关心自己附近的局部情况。在这种架构中,每一台机器人只会关心他自身附近的地图信息,保证不出现安全问题即可,路线可以一边走一边计算,计算的过程,也不需要考虑其他机器人的路线规划。分布式控制仍然需要一个中心节点来为所有机器人同步地图信息,但不需要做路径规划计算。这种模式的优点就是计算量不会随着地图的复杂度和机器人数量快速增加(增加的只有通讯量,只是地图坐标,数据量不大)。这个优点可以使地图近乎可以无限增大,在应对超大规模应用时候有优势。分布式控制的缺点也很明显,由于机器人只关心自身附近的情况,有可能会造成相当严重的堵车,一旦一个点位出现了堵车,由于并没有一个中心统筹控制能力,其他的机器人仍然会向着堵车的位置行进,这样会将单点的堵车规模迅速广播扩大,造成连锁反应。由于机器人本身只计算自身路径,那么在堵车区域里面的机器人将很难冲出堵车区域。这点和现实生活中的堵车一摸一样(倒是很好的现实模拟器)。要想解决堵车问题,需要对机器人分布式的算法和态势感知进行干预,在坚持分布式控制的前提下,对算法提出了很大挑战。据说,亚马逊的机器人就是用的分布式算法。
底哪种控制方式更好呢?简单来说,集中式算法门槛低,但是潜力有限;分布式算法潜力大,但是难度高。选取哪个方向,需要根据具体情况而定。在中国,库房面积都不太大(跟美国相比),由于防火分区的限制,每一张地图最大面积一般在5000平米,可容纳的机器人在几百台水平,那么这种限制条件就决定了,在国内,使用简单可靠的集中式算法就足以满足需求了。能迈过分布式门槛的公司,不会太多(不是说做不出来,而是能否达到商业使用的稳定程度和效率要求)。
![](https://img.jasve.com/2024-2/dd94a64d34f0f515573f97c0fe592b07.webp)
要让人民少跑路,数据多跑腿。不论什么算法,都要做到让机器人物理上尽量少跑路。就近分配任务给机器人是个基本功,容易做到。单独看每台机器人的话,基本原则是最短时间算法,而不是最短路径算法。机器人移动时最花时间的地方在于转向,而不是走直线,所以要尽量多走直线,少转向。为了达到这个目的,就需要算法在计算最短路径的时候,考虑转向的权重。在一个以方格为基本单位的地图里,最考验算法的就是在对角线上两点的走法(用这个简单操作,就可以检验出来机器人公司的算法功力)。
走对角线的话,机器人走斜线不就行了么?还真走不了。大家知道机器人是靠二维码导航的(前文介绍过),靠双电机来行走和转向。在机器人行走过程中,机器人由于左右两轮的转速差异,地面起伏,负载中心位置等因素而会走偏,那么纠偏,除了陀螺仪外,就是靠地面二维码校正姿态(地面二维码除了导航外,还还负责纠偏)。机器人会根据二维码将自身的电机计数器,摄像头,陀螺仪纠偏。在机器人制造的时候,需要用精密工装来确保每个组件之间的位置精确性。如果让机器人斜着走,即和二维码的工装方向产生一定角度,那么必然会产生更大误差(多出了一个偏移量角度),机器人即便能走到下一个码上,也需要调正方向来校准,这样的时间消耗反而会更大。除了效率考虑,还有安全性问题,如果机器人被允许斜着走,在算法上还进一步需要考虑附近位置是否有足够的空间,不会影响到其他车的移动,而直线行驶,只要码间距设计合理,在算法上就更简单,安全性风险就更小。
8)九阴真经:地图设计
地图的设计一定要和机器人路径规划算法来一起讨论。离开了具体的路径规划算法,地图设计将会谬之千里。所以地图的合理性,和路径规划高度相关。
除了核心的路径算法之外,想设计一个好用的地图,还需要考虑诸如物理环境,立柱,工作站大小,位置,单行道,机器人总量,排队算法,壁障算法,充电规则,充电桩数量和位置因素而货架的摆放位置和数量,效率,是综合了全部因素之后的最终结果。
物理环境,首先需要考虑室内建筑环境。各家机器人供应商对地面平整度都有自己的要求,这些建筑专业术语转变成一般人能理解的语言就是不能剐蹭机器人底盘,由于机器人的动力轮是中间位置左右各一个,一旦摩擦力变化,会造成左右动力轮受力不均,造成机器人跑偏。而由于地面不平刮蹭了底盘,使某一边的动力轮悬空,是原因所在(这种情况下空车比有负载的车更容易发生跑偏)。一个简单的测量方法是用3米靠尺,下凹最深处,3~4毫米就是极限了。至于大范围的起起伏伏,并不会影响机器人安全运行。
![](https://img.jasve.com/2024-2/b99c51a74084426ec0c536dfbe62ca0d.webp)
物理环境,其次要考虑室外大环境的温度和湿度。温度很容易理解,目前这种机器人都是使用三元锂电池来供电,这种电池的适用温度是0~50摄氏度,在中国大部分库房,并没有高于40摄氏度的环境,而机器人也并没有超大功率输出的工况,所以高温工作环境不是个问题;但是大量的北方库房,比如北京的库房冬天室内温度就会低于0度,这个温度,会使三元锂结晶,会大大降低电池电量,更充不上电,如果硬要充电,会产生安全性风险,且大大降低电池寿命。目前很多电池包厂商可以提供自带加热功能的Pack来解决低温环境问题。低温环境除了对电池有很大影响,也会对机械部件产生影响,比如各种减速机的齿轮会受到低温影响,微小机械性能的改变在精密场景里会被放大。
目前已经有机器人厂商发布了冷链仓储机器人,效果拭目以待。
除了温度,湿度是个容易被忽视的问题。机器人的电子器件在高湿度的环境下容易损坏,是个众所周知的问题,除了电子元件之外,地面二维码的贴设也会不牢固。当地面有令凝水的化,有可能造成机器人打滑。
![](https://img.jasve.com/2024-2/7fc0be3345510a64444f82cb3d957dba.webp)
立柱,是第二个关键问题。当机器人运行环境里有立柱的话,要注意立柱的住脚是否会影响机器人路线,这个问题并没有技术难度,但是由于对图纸的理解,不同环节有不同的认识,住脚问题有可能会被忽略。比较理想的解决方案是在施工过程中,将住脚埋在地面一下,地面不露出螺丝。
![](https://img.jasve.com/2024-2/09e044267affab2a5dacaeef33fc258b.webp)
工作站的大小,是根据业务容量作为输入来设计的,由于工作站是整个方案的物料的出入口,那么需要以最大的吞吐量为下限来设计,原则是尽量能够同时满足尽量多的客户,即播种墙的面积要大,如果有拍灯器,那么拍灯器的数量要多,并且留下可以新增客户的物理冗余。
工作站的形状,常见的有L型,凹型,一型,应根据具体业务来具体设计。L型的播种墙,对操作人员最友善,最远处也在操作人员半径3米以内;凹型的工作站,适合和托盘结合,即三面播种墙是开放的,没有格挡,拣货时候货物直接上托盘,操作人员可以在一步之内将比较重的货物搬到托盘上;一字形的播种墙,占地面积最小(相同面积,一字形比L型更省空间),但是远端播种墙距离操作人员过远,走来走去的时间成本比较高(可以将拣货点位放在中间位置,减少走动的时间消耗)。工作站的地板,应该距离地面有一定的高度,用来保护操作人员安全,防止机器人带着货架来到工作站时候压到脚;另外有的货架货位比较高,没有垫高,够不到货物,工作站底板正好可以增加人员位置高度。工作站需要给操作人员流出足够的操作台面,用来临时方一些包材,笔,其他扫描枪,饮水等等。
工作站和地图衔接的位置就是拣货点,这个位置需要使操作人员,货架,打印机,显示器,指示器,播种墙都处在最舒服的位置。通常来讲,需要根据地图来确定工作站的设计。工作站的位置,是影响拣货效率的有一个关键因素。是否将所有工作站放在地图的同一边,需要考虑物料的流动特性。都放在同一边,会增在工作站附近的堵车风险。但是放在不同位置,又会增加库房面积的占用。
![](https://img.jasve.com/2024-2/ac5f9ff5eaa2020fded0b4b9261a5a6a.webp)
单行道,是在地图面积紧张而机器人路径规划算法又不能很好适应的情况下的妥协。在理想的情况下,机器人路径规划算法应该可以完美的计算出最优路线. 但实际情况远远达不到完美。我们需要用设置单行道的方式在大范围上维持一个可以循环起来的规则,即便牺牲些局部效率。由于单行道的存在,可以人为的控制堵车的点位,人为的区分开来回的路线;但是单行道必然会导致没有最短路线,时间开销将会变大。单行道的设置要谨慎,尤其是在没有双车道的情况下,因为一旦设置不当,机器人可有会绕很远的路线,甚至会和算法叠加之后出现死循环。
在不考虑成本的情况下,机器人总量是不是越多越好呢?不是。为了满足峰值吞吐量需求,用户往往会配置超量的机器人,但是一旦超过地图合理的容量,会造成堵车。每一台机器人都需要占用一个地图上一个位置,便是待命,也需要去充电,去充电的机器人在行进中就会占用其他有任务的机器人行动的路线。越多的机器人,会带来越多的维护成本。如果有机器人掉线,也有可能卡住地图点位,机器人越多,故障总量越大。判断配置的机器人够不够,一个简单的判断方法是看有多少货架可以一直在工作站排队,最理想情况是每个工作站只有一个机器人在待命,就是这个地图的最优机器人数量。
为了满足任务的波动,必须要考虑等待队列。那是我们前面提到的排队逻辑。排队的长度,太短,会造成供货货架衔接不上的情况,拖慢效率,太长,会造成机器人占用过多,浪费投资。如果解决方案可以按照实际的情况来动态调整排队的长度是最好的,但是算法难度不低。另外一个问题是能否按照一定的顺序来排队,在某些业务场景中,订单会需要按照一定的顺序来处理,那么就意味着货架需要按照一定的顺序来排队,这种情况会需要很多临时点位用来做堆栈类型的排序。
值得进一步讨论的是,当排队足以满足人员操作的情况下,想进一步提高拣货效率,必须要提高人员拣货这个环节的效率。货架的切换是在这个环节的一个主要时间开销,为了消除这个时间,可以考虑设置两个排队队列,对应两个相邻的拣货点位,两个指示器,这样货架的切换时间可以被两个货架交替拣货消除掉(和汽车双离合变速器异曲同工)。
机器人的壁障逻辑,不同公司的产品有不同的传感器,不同的算法。在复杂环境下,壁障有可能出现过于敏感的现象,会将环境内正常的东西识别成障碍物,比如起伏的地面,立柱等;不同的物体有对不同的传感器有不同的反馈。壁障逻辑的及时性和准确性,是个相互矛盾的问题,为了保证安全,需要尽可能精确,但是一旦误判,就会影响到路线的通常,卡住业务。小恐龙认为合理的解决方式是使用多模式识别,即用一套最精确的配置参数作为基准,当发现疑似障碍物后,切换多种模式算法和参数进行校验。
![](https://img.jasve.com/2024-2/afe7a224f9801d17340013913d8285de.webp)
本章节最后一个问题是充电。充电环节最重要的考虑就是一切都要安全。不同的地区有不同的法规,我们按比较严的的江浙地区作为案例来分析。首先用三元锂电池的机器人是可以在库房内使用的。但是充电有严格的规定,需要配置单独的防爆充电间来进行隔离。防爆充电间可以用装有防火门的封闭通道来连接库区,爆炸压力方向必须向室外。
在充电环境符合国家法规之后,我们首先要考虑的是充电过程的安全防护。为了保证充电效率,机器人公司会用大功率充电桩来充电,但是为了安全,在保证不大幅度影响效率的情况下,用低电压(48V),低电流(不大于20A)来缓慢的充电是最安全的做法。大功率快充,会损坏机器人的锂电池,造成火灾风险。在机器人充电的控制逻辑上,需要一直对充电的电流保持监控,一旦发现微小的波动,马上切断充电,并不允许自动重启充电,并要及时报警,由人工介入处理。
![](https://img.jasve.com/2024-2/ed98ed965fcc395a4debc235903033e2.webp)
充电的安全性,很大程度上依赖于充电机和机器人接驳的物理设计。由于充电电流有可能会很大,接驳的连接头需要非常紧密的紧密,才不会产生电阻变大,过热,着火的情况。但是紧密接触,需要全固定的充电头,这个对机器人和充电街头对齐有挑战(需要每台车去调教对齐);且需要有比较大的接触压力,这个对机器人的电机有影响。目前有的先进机器人公司已经将硬接驳,通过在充电机上加单维度的活动杆,阻尼器,精密的齿轮来将硬链接转化成半活动连接。这种连接方式是非常可取的安全设计,拥有这种充电机的公司,在供应商选型时候应该加分。
除了物理设计,充电的逻辑也是安全的关键组成部分。在设计上,机器人本身可以来主导充电控制,或者由充电桩来主导,每一家公司的设计会有很大差异。小恐龙的观点是,系统越复杂,故障点会越多,故障率会越高,所以在结构上看,应该减少控制点。基于这种考虑,充电的控制端要放在充电桩或者机器人上,二者选一。如果将控制端放在机器人端,那么充电桩就完全不需要被控制,不需要联网,这样从程序设计上,可以减少一个端,降低系统复杂度。不过这样的设计,由于充电桩不联网,那么充电桩的设计,制造,充电接驳的设计要有高度可靠,这对机械加工提出了比较大的挑战,成本会比价高。
在充电安全可以满足的前提下,就需要提高充电效率,而充电策略比单个机器人充电的速度更重要。我们可以选择的充电策略从满冲满放到快充一点就走都可以选择。如果应用场景是前面提到的合单一波流,那么在业务进行时段的使用压力会很大,为了保证有最多的机器人在场上工作,且减小堵车问题,需要减少机器人充电的次数,而一旦去充电了,则充满再出来。需要将充电阈值调的尽量低,而充满阈值设置的尽量高;那么在非高峰时段,可以将尽量多的机器人的电量保持在一定的阈值以上。
除了基本的充电策略按时间维度管理外,还可以考虑机器人的位置维度(在很大的地图上,机器人从远端去充电的时间开销很大),任务,批次,电池型号等更多的优先级参数。
9)大无相功:IT基础设施
无相,就是平时看不见摸不着,不会被注意到,但是一切的招式和技巧都需要以此为基石。在机器人实施的环境里,我们指的是电,网和机房。这还是个问题?还真是,不用不知道,一用吓一跳。
我们先谈谈电。首先就是电流总容量,机器人在使用中的充电总功率并不太大,但是电流很大,所以为了稳妥起见,需要配套一个比较大的配电柜,电缆需要留出足够的余量,来应对未来增加充电功率或者充电桩数量。其次,电压要稳,由于物流库房园区比较偏远,尤其是新建的园区,整体供电的配套并不完善,在使用的初期,电压会出现比较大的波动,这种电压的波动,会影响网络的稳定。
机器人方案对不间断供电有很强的要求,一旦在某个环节停电,会对整套系统有破坏性影响,恢复起来非常花时间,有安全性风险。所以在电源设计上,UPS要对机房,网络,WIFI,工作站有端到端的覆盖。UPS的续航时间,需要足以支撑到园区发电机切换。UPS在选型的时候,要输出功率大而输入功率小(就是来电了之后慢慢冲不着急),否则会对电网有很大的冲击。
再来谈谈重点,就是网络。在设计机器人网络的时候,我们需要按照7层网络OSI模型来逐层讨论。
首先是物理层。这个还有啥可讨论的,其实影响机器人表现的网络设计主要在这一层,但是常见的网络工程师有最缺乏这个领域的知识,这一层的问题,应该找搞通信的同学来搞定。我们先说说最常见的WIFI网络,常用的WIFI频段有2.4GHz和5GHz的区别,大家知道频率越高,传输的距离越短,抗干扰能力越差,所以通常来说2.4GHz的信号传输效果应该比5GHz的效果好,但同时应该考虑到机器人的密度,即在一个AP覆盖范围内,最多会有多少台机器人,2.4G的信道太少,并不能满足相对比较高的设备密度;与之相对,5GHz信号技术的信道有13个,基本可以满足设备连接,但是5GHz的信号衰减更快,覆盖距离更短,有的多天线的AP,使用了波束赋形的技术,可以是信号的传输距离变长,波束赋形的无线信号是有方指向性的,但是实际情况是机器人会被货架和货架里面的金属货物遮挡,造成波束赋形技术效果有限(主要是对AP有要求,需要天线足够多)。另外一个问题是AP路由问题,当机器人在不同的AP覆盖区域切换的时候,有可能会掉线,卡顿,当然这个可以由机器人上层的程序设计来解决,各家有各家的方案,这是个大问题,解决不好,就会严重影响使用。
物理层另外一个方向就是5G技术。5G这个话题太大,我们在这里只抛砖引玉的提一下。5G技术有三大方向:超大带宽,超高密度,超可靠和超低延迟。在我们的场景里,最优价值的是超可靠和超低延迟(uRLLC)。这种技术可以将网络延迟控制在1ms以内(round-trip),如果有了这种技术,那么我们就可以将机器人的中心控制模块服务器放在云上,这样就可以大大降低本地部署难度和成本,也能降低日常的管理维护难度。但是目前按照3GPP的路线图来看,还需要好几年才能够实现(R16),目前连技术标准都没有定下来,所以还只是镜中月水中花。在目前已经实现的5G技术里面,可以考虑的技术是5G的新型天线技术和调制技术,比如MIMO和波束赋形。目前设备商已经开始尝试园区内的私有部署,相对于传统WIFI的优势是单个天线覆盖面积大,不需要切换设备,这样就省去了机器人复杂的控制逻辑;同时减少室内的布线难度。在技术上已经没有难度,但是商业上是否合算,仍然是个未知数。
刚才提到了,不稳定的电压会影响网络的稳定,这个问题也是小恐龙的亲身经历。电压的变化会影响WIFI的表现,造成网络物理层信号不稳定,产生了大量的上层协议栈丢包重传现象,影响了机器人的表现(思科设备,在这里我必须吐槽一下。华为的设备没有使用经验)。在给WIFI加上了UPS之后,网络问题就解决了,这是个意外发现,在任何关于网络的课程上都没有提及。
在物理层之上是数据链路层。需要讨论的不是MAC层本身,而是基于这层的网络安全。大家知道物流机器人和传统AGV的区别就是内部有OS,可以自主处理复杂任务,这种OS在工业控制领域是及那么几种,那么就意味着有可能被攻击和渗透。而机器人本身对物理世界是会产生影响的,那么意味着一旦行为不可控,危险程度比传统服务器更严重的多。所以机器人系统的安全设计是需要从底层就开始考虑的。我们在这里不会讨论机器人本身的控制体系和安全认证等级,只讨论在网络层面的问题,安全设计就要从MAC层开始。机器人端需要和服务器端保持持续,高速,双向,同步的连接,连接实现上就完全淘汰了互联网常用的技术(https),而使用的是老一代开发者无比熟悉的socket, 加密机制就需要用TLS,SSL这样的技术。大家一般认为TLS加密技术是传输层技术,这没有错,只不过为了保护连接不被劫持,在实现上,对MAC层的包做了处理,加入了一些由4层计算之后的哈希算法的结果,所以实际上是从MAC层就开始了保护。
不论何种形式的加密机制,都需要证书来作为根。那么证书的分发就成为了关键的安全漏洞。目前来看,机器人的运行网络还是基本都在企业内网,那么证书的分发可以通过非加密方式发给机器人是可行的(虽然并不安全,但是单独攻击一台内网的机器人,经济上并不划算)。但是如果服务器端是在云端,那么证书就需要提前内置到机器人OS里面。目前各大厂商的IoT云解决方案里都有了端设备的加密和证书解决方案,比较完善,不过需要使用SDK。对于企业来说,机器人类型的有安全风险的端设备的安全管理,证书管理,注册管理仍然需要摸索。
IP层需要讨论的问题比较简单,就是IP是不是要绑定。目前比较简单可行的方式就是绑定IP地址,绑定之后,可以更容易的进行远程的访问和管理,这点IT从业人员都了解,不必解释。但是,一旦需要管理的机器人数量变多,那通过IP地址来管理机器人将会变得极其混乱,所以通过更上层的注册机制将机器人的编号和MAC绑定,作为管理清单是比较可行的,而IP完全可以隐藏下来(因为大企业的IP地址都是DHCP分配的,需要定期刷新,即便是做了处理,仍然由很大可能出错)。
传输层,我们一定要使用TCP而不是UDP,因为在网络传输过程中,IP包有可能发生丢包和错序,而如果使用UDP,去处理错误数据的机制就落在了应用层本身,时效性不允许,而TCP的话,可以有OS层的协议栈来自动处理,是最高效的方法。但是使用TCP协议栈的时候需要注意的是MTU的大小,在大型企业的网络里,MTU的协商机制有失效的可能(小恐龙有经验,眼泪哗哗。。。)。不选UDP,有的同学会问,很多要求其延迟的游戏也是UDP的,在应用层处理异常,也很好啊。这就是因为现实环境不允许短暂失控,而游戏可以。
传输层的另外一个问题是路由。在一个高标准库房里,都会要求ISP双线接入,一旦一条线路发生故障(比如光缆被挖掘机干断,这经常发生),下层网络会自动切换到另外的线路。但是,这需要时间,在切换过程中,耗时最久的就是路由的重新建立(几十秒),这段时间,机器人将会收到影响,为了避免机器人掉线,我们需要在应用上做合理的逻辑。
本章最后一个问题是机房. 这个问题是,机房到底要放在哪. 一般大型企业都会有数据中心, 按照这种公司又死又硬的所谓规定, 服务器应该放在数据中心, 机器人的服务器也不能例外. 那么问题来了, 机器人和服务器的数据传输是延迟敏感的, 目前行业一般的说法是延迟要在50ms一下,才可以保证机器人的效率. 如果我们的使用场景的位置距离服务器超过了1300公里, 那么网络上的延迟将会在50ms上下. 基于这样的事实, 专业的物流公司会将服务器就近部署 (不一定在库房内,但是会是很近的数据中心). 但是一般的企业很可能不具备这样的条件, 那么职能将服务器前置到库房. 这将会增加建设和管理成本, 所以并不是一个长期的办法. 目前来看,还是需要部署到云上, 在解决了网络传输质量的前提下.
上面这些内容是小恐龙这几年来在库房场景下的使用经验,希望对大家有所帮助,并希望和业内专家多多交流。