从其他多个地方“借来的”觉得需要多看看的东西,与移动机器人相关的论述。
天上飞的,水里游的,地上跑的,都可以应用移动机器人领域的技术。
比如说,1、工业机器人:搬运机器人(AGV);2、商用机器人:无人车、无人机、送餐机器人、导览机器人;3、消费类机器人:扫地机。
移动机器人的核心技术紧紧围绕着“感知”、“决策”、“执行”这三方面。
关键技术一:定位与建图(slam)。
介绍如下(以下大部分摘自“www.slamcn.org”):
SLAM是Simultaneous Localization and Mapping的缩写,意为“同时定位与建图”。它是指运动物体根据传感器的信息,一边计算自身位置,一边构建环境地图的过程。目前,SLAM的应用领域主要有机器人、虚拟现实和增强现实。其用途包括传感器自身的定位,以及后续的路径规划、场景理解。
随着传感器种类和安装方式的不同,SLAM的实现方式和难度会有很大差异。按传感器来分,SLAM主要分为激光、视觉两大类。其中,激光SLAM研究较早,理论和工程均比较成熟。视觉方案目前(2016)尚处于实验室研究阶段,极少看到实际产品应用。
SLAM研究自1988年提出以来,已经过了近三十年。早期SLAM研究侧重于使用滤波器理论,最小化运动体位姿和地图的路标点的噪声。21世纪之后,学者们开始借鉴SfM(Structure from Motion)中的方式,以优化理论为基础求解SLAM问题。这种方式取得了一定的成就,并且在视觉SLAM领域中取得了主导地位。
激光传感器:激光传感器可以直接获得相对于环境的直接距离信息,从而实现直接相对定位,对于激光传感器的绝对定位及轨迹优化可以在相对定位的基础上进行。
视觉传感器:视觉传感器很难直接获得相对于环境的直接距离信息,而必须通过两帧或多帧图像来估计自身的位姿变化,再通过累积位姿变化计算当前位置。这种方法更类似于直接用里程计进行定位,即视觉里程计(Visual Odometry)。里程计的测量积分后才相当于激光传感器直接获得的定位信息,这就是图优化SLAM框架中的前端。而后端对定位和位姿轨迹的优化本质上与激光传感器的优化相同,都基于最优估计的理论框架进行。
关键技术二:规划。
规划包括路径规划和运动规划。规划相关的技术发展较为成熟。
移动机器人常用的路径规划算法有A*、D*等;常用的运动规划有PID、VFF、DWA、PTG等。
关键技术三:控制。
关键技术四:结构设计、硬件设计。
内部传感器:装载在机器人身上并且不依赖外部设备的传感器。可进行自我状态估计,但终究“当局者迷”。
1.编码器。2.IMU。3.雷达。4.深度摄像头(或者RGBD)。5.单目摄像头。6.双目摄像头。7.辅助传感器:超声波、红外、碰撞。
外部传感器:相对于“内部传感器”。作为机器人的观察信息,起到“旁观者清”的作用。
1.GPS。2.WiFi。3.蓝牙。4.UWB。5.V2X。
定位与建图:ICP(or CSM)+POSE_GRAPH,粒子滤波、闭环检测、非线性优化。
规划:包括路径规划和运动规划。移动机器人规划方面,很多可以参考借鉴多维机械臂的规划控制。一方面要充分考虑机器人本身的约束,另一方面要设计合理的评价函数。
本篇主要介绍常见的移动机器人
任何产品的问世旨在帮助人类减轻劳动强度、节约成本,提升幸福感,移动机器人也不例外,它代替人类从事繁重、重复、危险、恶劣的环境,主要应用在物流仓储搬运、医疗、监视、检测等领域,配合其他传感器和配套工具可以完成更多更复杂的功能。
目前工厂实际应用的AGV大多需要预定路径,依靠电磁,磁带,视觉二维码实现导航,但他们各自都有明显的缺陷,电磁,磁带都需要进行场地施工,后期产品线更新都需要重新施工,周期长且投资大;而二维码虽然没有那么麻烦但是得定期进行清理,维护,更换产品线也得重新铺设二维码.
自主定位导航是AGV的发展趋势,也是目前各大公司、高校研究的重点,目前自主定位导航也日渐成熟,主要有激光SLAM和视觉SLAM,但是两者各有其短板,激光SLAM稳定性好、可靠性高、测量距离远、精度高(一般3-5cm,加辅助定位可达到±1cm),但对黑色表面、玻璃、镜面、单一长距离环境会失效,最主要是成本昂贵;视觉SLAM测量范围广、获取信息完整,但处理数据量大、实时性差,且受环境影响大(如光照);实际应用中会配合起来,还要辅以超声波、IMU(惯性测量单元)、里程计等传感器,但大多数公司超声波只是装饰品,并没有使用,因为他会和激光雷达发生干涉.
工厂对AGV需求其实蛮旺盛的,很多公司也在考虑使用AGV来替代人力,但是有两个核心问题摆在面前,一是造价昂贵,主要在激光雷达上,一台AGV可能雷达成本就要2-3万,而企业对AGV的整机价格在5万左右;二是技术问题,自主导航算法还不是很完善,有些环境会失效;三是是相关配套设备,企业不可能只要个整机AGV,还要有配套自动回充、货架、货柜、调度系统(对接他们WMS仓库管理系统),而绝大数公司都没有能力提供全套产品及服务,只要这两个核心问题解决了自主定位导航AGV才会在工厂普及。
Turtlebot
提到移动机器人就不得不介绍Turtlebot,作为移动机器人入门级产品,几乎每个研究移动机器人的都是从他开始的,同时学习资料也是最丰富的;Turtlebot提供基础的硬件架构和移动平台,以及基于ROS的开源操作系统,编程开发者只需要依据平台提供的各种接口就可以实现需要的功能(机器人定位、SLAM建图、导航、跟随等功能)。
Turtlebot2
平台标配有微软Kinect相机,安装激光雷达后,可以实现基于ROS的视觉SLAM、激光SLAM;同时可以自由选配充电桩。
Turtlebot3
Turtlebot3代最大不同是所有零件都需要自己组装,并且标配2D平面激光雷达和单板机
Clearpath Robotics
加拿大clearpath公司产品主要针对高校和科研所,提供各类室外移动平台,搭载不同传感器可以实现自主导航、移动侦查、移动抓取等功能
Husky A200 990x670x390mm,最大负载75Kg,最大速度1m/s
最经典的室外移动平台,被各大高校和研究所熟知,搭载视觉相机、激光雷达、GPS等传感器
Jackal
入门级小型室外移动平台,508x430x250mm,最大负载20Kg,最大速度2m/s,四轮差速驱动,全地形使用
Ridgeback
主要用于室内移动平台,960x793x296mm,最大负载100Kg,最大速度1.1m/s,基于激光雷达可实现自主移动、避障、路径规划
Ridgeback
Heron M300
主要用于水上机器人移动,1.35x0.98x0.32m,最大负载10Kg,最大速度1.7m/s
Warthog
水陆两栖移动机器人 1.52x1.38x0.83m,最大负载272Kg,最大速度18Km/h(陆地),4Km/h(水面)
MiR(Mobile Industrial Robots)
丹麦MIR公司主要生产室内移动平台,用于仓储智能搬运,旗下现有MIR100,MIR200,MIR500等系列产品,MIR目前在业内知名度较高,在全球也有大量客户如波音、联合利华、爱立信、霍尼韦尔、达能等客户
MIR100,负载为100Kg,最大速度1.5m/s向前,0.3m/s向后
MIR200,负载200Kg,最大速度1.1m/s向前,0.3m/s向后
MIR500,最大负载500Kg,最大速度2m/s
MIRHook200,最大特点是提供牵引式推车,提高运输效率
Kiva无疑是仓储物流运输领域最成功的移动机器人,在2012被亚马逊以7.75亿美元收购
KUKA
YouBot麦克纳姆轮式全向移动平台,搭载5轴机械臂,用于研究移动抓取的经典产品,只可惜这款产品停产了,好像是中国强大的模仿能力导致的,本来市场需求量就少
海康威视
阡陌系列产品,负载有300Kg,500Kg,600Kg,1000Kg
快仓科技
快仓科技算得上一家市场定位比较准确的公司,没有用技术含量更高的完全自主导航技术,而是以视觉二维码+惯导比较可靠的方式进入市场,稳定后向更加智能的完全自主导航方式转变,进一步占领市场,所以快仓产品市场占有率较高,像京东、天猫、唯品会、大润发、盒马鲜生、菜鸟、中国邮政、国药集团、国家电网等都是其客户
木木机器人
国家人工智能标准起草单位成员,诺亚医院物流机器人,主要用在医疗行业
思岚科技
思岚科技公司产品以小型激光雷达和服务机器人通用底盘为主
云迹
云迹服务机器人在业内知名度较高,市场占有率还可以,主要应用在酒店服务机器人,客户包括苏州洲际酒店、海口希尔顿酒店、皇冠假日酒店、浙江大酒店、深圳深航国际酒店等酒店
优必选
优必选主要做教育机器人,也做服务机器人如Cruzr,成名于2016年春节联欢晚会,540台 Alpha机器人与孙楠同台表演《心中的英雄》
移动机器人种类繁多,大小公司也是不计其数,诸如马路创新、极智嘉、欧凯、新松机器人、南江机器人等,很多公司想在这个市场分一杯羹,只是完全自主导航机器人还没有到爆发期;主要是上面提到的三个问题:一是成本问题;二是技术问题;三是配套问题
下一个阶段,看好个人用户、家庭用户的机器人。面临几个问题:
主要是技术人员开发成本高,其次是激光雷达贵,靠谱的视觉模块贵。
最直接的感官,各个厂商的宣传视频就可以看到,视频加速播放,如果原速度,机器人移动速度、反应慢的尴尬。
复读机、大号学习机、闹钟、开关灯。这些还没有吸引人去购买家用机器人的地步。 就算是扫地机器人,碰到汪星人拉肚子,屋里会被“清洁”成什么样子,不堪去想。
这个问题提的较宽泛,激光雷达有单线、多线之分,还有精度、距离、分辨率、视场角等参数差异,我简单说下市面上一些主流的激光雷达
激光雷达由于国外起步较早,应用比较成熟,市场基本被国外品牌所垄断,最近几年国内也出现了几款不错的激光雷达品牌,但整体稳定性还是赶不上国外
美国老牌3D激光雷达生产商,知名度很高,产品也很稳定,谷歌的自动驾驶就是用他家的,其主要产品有16线,32线,64线;16线早期价格较高,现在已经批量生产,市场价格在3.5w-4.5w,32线价格在40w左右,64线在80w左右,线束每增加一倍,价格也差不多翻一番,主要是制造难度成几何倍数增加,并且高线束客户群体较少没有实现量产
德国西克,主要生产2D单线激光雷达,工业上应用很多,AGV小车基本用他家的,应用较多有:Sick LMS111,Sick TIM561,Sick TIM571等价格在几万元
日本北阳激光雷达以2D单线为主,在工业应用上也较多,主要型号有:
UST-10LX,UTM-30LX-EW等,价格大多在5W以下
产品在国内应用较多,跟很多公司和高校都有合作,他们官网有很多案例
主要有RS-LiDAR-16、RS-LiDAR-32两种多线激光雷达,价格分别在3w、13w左右
自动驾驶激光雷达-速腾聚创
禾赛出了一款40线激光雷达,说是对标Velodyne64线雷达,最大区别是通过不均匀分布线束的方法,使其最小角分辨率更小,达到0.33°,但是由于创始人自身问题,产品不禁令人担忧,其他量产的还有思岚科技、北科天绘、镭神智能、北醒光子等国内品牌
SLAM发展到今天,好些人认为这已经是个Solved Problem了。然而实际去考察,你会发现这个同时『定位』与『建图』,在『定位』这端做了很多工作,但『建图』这端是明显缺乏的。按照理想中的情况,一个SLAM程序的流程应该是这样:
这基本上是SLAM的最终目标了。但是当你打开一个SLAM程序,你会发现我们只能做完第1步,往往是建完地图之后,程序退出,所有你建起来的特征点也好,稠密点云也好,surfel也好,tsdf也好,好看是好看,基本没法存下来当作地图来继续使用(顶多做个3D模型打印一下)。所以如果要问『SLAM现在做到什么程度』,我觉得大致上可以这样回答:
所以现阶段我们还能难说『视觉SLAM已经解决』这样的话,除非能够拿出一张可以随时定位的视觉地图。这部分的缺失,我认为是语义SLAM的一个很重要的动机。我们不妨想想,现在有哪些可能用来作为视觉地图的东西:
所以现在看来室内比较有希望的是后面几种,自动驾驶主要是高精地图。
语义SLAM的概念很模糊。你会找到许多带着『Semantic』字眼,实际上完全不在说同一件事情的论文。比如从图像到Pose端到端的VO、从分割结果建标记点云、场景识别、CNN提特征、CNN做回环、带语义标记误差的BA,等等,都可以叫语义SLAM。
但是从实用层面考虑,我觉得最关键的一点是:
用神经网络帮助SLAM提路标
提路标这件事实际上是传统SLAM非常不擅长的事情。我们用角点和边缘,是因为现在只有角点和边缘可用。如果现在有个网络,对任意一张图片都能正确找到图片里的路标,一一对应,非常鲁棒,那么后续的SLAM就是件很简单的事情。比如现在人脸关键点能够做的非常准、非常鲁棒,对各种光照下的人脸我们都能找到那几十个点, 如果我们能在道路场景或室内场景也能做到这种程度,那SLAM就完全不一样。然而现在似乎并没有这种做法,至少还没流行开来。
那么就只能退而求其次,用现有的检测和分割来帮忙提路标。如果已经知道图像中某个物体属于一个既定的类别,然后再提角点,就会比针对全图提角点要好很多。当然,如果能直接提到点,那肯定是提点更好用,检测和分割都需要一些额外的后续处理。
带标记的点云是研究最多的,从很早之前就有。它的思路是把分割的结果往RGBD点云里投,然后做一个融合,RGBD+室内的场景多一些,室外也有一部分。18年比如ETH有把Mask RCNN结果投到3D中进行Instance推断然后建图的,可以达到非常细致的结果。
再早一点比如牛津的Semantic Fusion,算是比较经典的工作
自动驾驶里也有这种类型的高精地图,举例比如说Civil maps的演示视频,点云中有标记车道线和地面箭头。后面也有带物体instance的地图,单纯的给点云上标记的事情其实并没有太多用途。给激光用,激光ICP通常不考虑标记信息;给视觉用,视觉也没法直接和点云去匹配。
所以这种五颜六色的点云来说,物体级别的地图会更加有用。这种图的好处在于物体实际充当了SLAM中的路标的功能,它们的提取和匹配会比传统的角点更加鲁棒。你可以期待不同天气下都能提到同一个红绿灯,但你不能期待对于各种天气下同样的建筑物能提到同样的角点。
细分下去,这种基于物体的地图也可以有不同做法。比如室内环境,你可以准备一个3D模型库,只检测模型库内的物体。这种做法在早期的SLAM++和现在的一些论文中都能看到,比如这个就是存了椅子模型的。这个模型更多一些,除了椅子还有很多小物体,能用地图信息修正检测结果,并且他们用的是检测而不是分割。
所以『把物体建出来当地图路标』其实是一个不错的思路。剩下的就是看物体有多少类,能不能支持到大多数常见的物体。就自动驾驶来说,有了车道线,你至少就能知道自己在第几根车道线之间。有了车道线地图,就能知道自己在地图上哪两根车道线之间。类别再丰富一些,能用来定位的东西就更多,覆盖范围也就更宽。
这个算是语义SLAM和传统SLAM中最不同的地方了。