九游 (NineGame官方网站) 体育领航未来

创新动态
九游体育持续推进AR/VR技术在体育领域的创新应用,分享行业前沿资讯和技术突破。关注数字体育发展趋势,展现科技改变运动方式的无限可能。

SLAM技术深度剖析 SLAMTEC-思岚科技带你玩转

日期:2025-03-30 浏览: 

  九游中国体育官方入口九游中国体育官方入口今天要为大家分享的主题内容是关于SLAM技术的,SLAM技术听起来就很高大上,那么SLAM技术到底是什么?以及SLAM技术主要应用在哪些领域呢?下面将为大家全面讲解!

  SLAM,全称叫做 Simultaneous Localization and Ming,含义是“即时定位与地图构建”。啊不行,这么讲下去,这篇文章肯定没有人读,所以我们换一个讲法。假设有一个机器人,它被关进了一间空屋子,里面放满了杂七杂八的东西。机器人感到很害怕,因为这个地方他从来没来过,一点儿也不了解。它需要精准地建立时间和空间的对应关系,并能完美地回答以下一系列问题:我刚才在哪里,现在在哪里?我看到了什么,现在看到的和之前看到的有哪些异同?我过去的行走轨迹是什么?我现在看到的世界是什么样子,和过去相比有怎样的变化? 我还能跟踪到自己的轨迹吗,如果我丢了应该怎么办?我过去建立的对世界的认识还有用吗?我能在已有世界的抽象里快速对我现在的位置进行定位吗?

  笔者认为SLAM技术和别的技术一样:一方面,从研究和开发的角度,技术需要达到一个较高的学术或工业标准;另一方面,技术本身必须落地到真正的产品中去,单纯的技术上要达到100分当然也有它的意义,但一味追求技术或数学上的“美”而完全无视工程实现和产品化要求就很可能误入歧途。在今天SLAM种类如此繁多细微细节如此复杂的情况下,微软、苹果、Google、Facebook等大公司凭借多年各方面积累和各种资源能够负担得起核心算法、软件的研发,但广大中小型公司或是之前没在这方面布局的大公司,在急需这项技术时,需要想好自己的产品规划和具体需求再做决策。

  在室内机器人中,最早应用到SLAM技术要属扫地机器人了,扫地机机器人通过用SLAM算法结合激光雷达或者摄像头的方法,让扫地机可以高效绘制室内地图,但实际上SLAM算法本身只是完成了机器人的定位和地图构建两件事情,和我们说的导航定位还不是完全等价的。这里的导航,其实是SLAM算法做不了的。它在业内叫做运动规划(Motion Planning)。

  运动规划是一个很大的概念,从机械臂的运动、到飞行器的飞行,再到这里我们说的扫地机的清扫路径规划,都是路径规划范畴。我们这里就主要先谈谈针对扫地机这类轮式机器人的运动规划。

  我们一般在完成SLAM后,要进行一个叫做目标点导航的能力。一般说的路径规划,顾名思义其实指的这个。通俗说,就是规划一条A点B点的路径出来,然后让机器人过去。

  要实现这个过程,运动规划会实现至少两个层次的模块,一个叫做全局规划。这个和我们开车导航仪有一点像,就是它需要在地图上预先规划一条线路,也要有当前机器人的位置。这是由我们的SLAM系统提供出来的。行业内一般会用叫做A*的算法来实现这个过程。

  当然,光规划了这个路径还是不够的,现实中会有很多突发情况,比如正巧有个小孩子挡道了。那么原先的路径就要调整。当然,有时候这种调整并不需要重新计算一遍全局路径,机器人可能稍微绕一个弯就可以。此时,我们就需要另一个层次的规划模块,叫做局部规划。它可能并不知道机器人最终要去哪,但是对于机器人怎么绕开眼下障碍物特别在行。

  这两个层次的规划模块一起协同,机器人就可以很好的实现从A到B点的行动了,不过实际工作环境下,上述配置还不够。比如前面提到的A*算法必须要求机器人预先把地图探明后才能展开行动,这在很多时候不够灵活。如果扫地机器人买回家,必须先把屋子都走一遍以后才肯扫地,那用户体验就会很差。

  为此,也会有针对这类算法的改进,比如SLAMTEC-思岚科技公司研发的SLAMWARE定位导航解决方案,采用了改良的D*算法进行路径规划,最大优点是不需要地图预先探明,机器人可以和人一样,即使环境未知,也可以展开行动,随着机器人不断探索,路径也会时刻调整。

  国内大家非常熟悉的大疆精灵四避障用的双目视觉+超声波,一位大疆工程师徐枭涵坦率承认:“P4里面呈现的主动避障功能就是一种非常非常典型的Slam的弱应用,无人机只需要知道障碍物在哪,可以进行 Planning,绕开障碍物。”

  而近期另一个号称刷爆美国朋友圈的hover camera无人机,因为其创始人的的计算机视觉背景,正式把SLAM技术应用进来了,在介绍他们无人机的主要产品技术时,提到了SLAM(即时定位与地图构建):通过感知自身周围环境来构建3D增量式地图,从而实现自主定位和导航。

  VR的本质是让用户通过沉浸式的体验来感受一个完全不同的虚拟世界,而SLAM是对真实世界的感知和理解,如果VR产品需要SLAM,那一定是虚拟世界和真实世界的结合。目前市场上除了三大厂(Oculws、索尼和HTC)有自己的“outside-in tracking”,大部分没有“outside-in tracking”解决方案的VR产品只能通过六轴陀螺仪来跟踪用户的头部转动而不能跟踪用户的位移,但SLAM能解决六个自由度的跟踪问题。另外,对于VR产品是否需要SLAM中的地图(ming)、什么形式什么场景有需要,也有待各方面进一步的思考。

  目前基于SLAM技术开发的代表性产品有微软的Hololens,谷歌的Project Tango以及同样有名的Magic Leap,后者4月20号公布它的新一代水母版demo后,国内的AR公司更加看到了这个趋势,比如进化动力近期就公布了他们的SLAM demo, 用一个小摄像头实现VR头显空间定位。很多VR应用需要用到SLAM技术,定位只是一个feature,路径记录、3D重构、地图构建都可以是SLAM技术的输出。

  因为Google无人驾驶车的科普,很多人都知道了基于激光雷达技术的Lidar Slam。Lidar Slam是指利用激光雷达作为外部传感器,获取地图数据,使机器人实现同步定位与地图构建。虽然成本高昂,但目前为止是最稳定、最可靠、高性能的SLAM方式。

  首先,SLAM对数学专业知识有一定的基本要求,包括矩阵、微积分、数值计算和空间几何等,同时对计算机视觉的基础知识也有一定的要求,包括特征点、地图、multi-view geometry、bundle adjustment、filter和camera model等。这些知识都需要一定的基础和积累,不过也不需要纯数学专业背景。SLAM编程一般使用C++,如果针对某个特殊指令集或平台进行优化,可能需要知道SSE、NEON、GPU的一些知识和经验,需要对系统设计有一定的经验和感觉,需要比较靠谱的动手能力及写代码的能力和意愿。总体而言,门槛就是一定的数学和工科背景、一定的计算机视觉的基础知识、一定的编程基础和经验以及最关键的踏踏实实写代码的意愿。

  其次,SLAM强调实时和准确性。SLAM是一整套的大型系统,实时系统一般是多线程并发执行,资源的分配、读写的协调、地图数据的管理、优化和准确性、一些关键参数和变量的不确定性和高速度高精度的姿态跟踪(比如VR/AR应用必须要至少90fps才有可能解决眩晕和渲染效果)等,都是需要解决的挑战。

  再次,SLAM难在适应硬件,更难在系统整合。SLAM技术的数据来源于传感器,而且越来越多的SLAM种类来源于多个传感器融合,那么传感器的质量对SLAM技术的效果影响很大。举个例子,如果一套SLAM系统用了某款相机,该相机在一动不动而且光照环境完全不变时图像噪点非常多,那么系统对稳定的姿态跟踪影响就非常不好,因为特征点提取会很不一致。另一个很实际的例子,如果用多个传感器(相机或六轴陀螺仪),如果时间戳不一致(至少毫秒级),也会很影响算法。多个传感器的分别校准和互相校准,乃至整个系统几十个上百个参数的调整,都是很实际很花时间的东西。

  此外,在对数学有一定要求的同时,SLAM技术目前还有很多工程方面的问题,需要静下心来一块一块地至少走两遍踩各种坑并一一解决。如果只看已有代码就觉得数学和算法尽在掌握,而动手时要么眼高手低要么根本不去写代码,这对真正要做产品研发的团队而言是非常可怕的。当前多个领域因为硬件系统和产品应用之间差异很大,所以距离所有领域的SLAM都实现产品化还有很多的工作,但相信在不久的未来会有较大的突破。而由于SLAM技术的复杂特性和众多的算法及其产品化仍然需要在SLAM技术的基础上实现,可以预见和SLAM技术相关的产品研发在未来相当长一段时间内仍然需要大量人力和资源。返回搜狐,查看更多