机器人SLAM和交互系统在实现中的思考

来源:互联网 发布:淘宝全球购如何申请 编辑:程序博客网 时间:2024/04/30 15:48
目前SLAM主要分为两个方向来实现,即激光雷达作为主要数据采集的sensor和以视觉摄像头作为数据采集的sensor两个方向。
目前所知的机器人视觉slam,在理论和工程实现都比较不错的是“ORB-SLAM"以及"ORB-SLMA2",这是一个西班牙大学的学生在2015年开始发布的开源系统,工程代码托管在github上面:https://github.com/raulmur/ORB_SLAM),https://github.com/raulmur/ORB_SLAM2
前面一个是采用单目摄像头,而后面一个orb-slam2使用了双目、深度摄像头,即,可以采集环境的深度等信息。
而在激光雷达作为环境数据采集的方案当中,目前市面上已经有很多较为成熟的或者不太稳定的方案出现,之前公司也有几家合作过的包括灵瞄科技,雷神等等,当然目前比较有技术地位的已经有slamtech等企业了。slamtech的相关技术包括硬件和软件的整套方案都比较成熟可靠,而且早已经在自己的产品上面量产使用。
而目前交互类机器人大部分是使用了Android作为其操作系统在运作,Android操作系统的优点不言自明,这些优点已经在移动手机操作系统当中体现了,因此目前的大部分交互类机器人也可以说仅仅是去除了通话功能的手机而已,虽然国内有比如图灵的企业在机器人操作系统上面已经有布局,但其实就是Android的演化版本,不过在机器人相关硬件或者传感器方面使用和控制应该更加方便。作为交互类机器人存在的话,也有很多功能还是比较有意思的,比如语音交互(国内主要是科大讯飞、云知声、思必驰)还是可以玩一会儿。还有就是作为摄像头交互的一类功能,比如基于互联网的远程控制/语音通信/图像拍照等等,但是这些目前来说都没有什么兴趣点了,就是玩一会儿也就过去了。相信要吸引用户的话,还需要继续深究这些方面如何开发。
但是目前如果要设计一个机器人系统,既要包括语音等的交互功能,也要包括基本的视觉建图导航等实现,那岂不是要搭建两个硬件平台,还要考虑到平台间的通信等等问题了!不知道目前这个问题如何解决?或者是不是已经有很好的解决方案了?
因此目前的问题:
1、机器人的SLAM技术如何搭载到低配置的平台上面实现流畅的运行控制和工程应用,要实现流畅运行和控制在目前来说都需要硬件平台性能比较优秀,比如英伟达的TK1 TX1等等,但这都是比较昂贵的,因此对于工程应用来说成本就是个大问题了。
2、如果要将机器人的导航建图和运动控制自主行走等作为一个机器人的“基本素质”和交互系统Android一起作为控制整个机器人的系统,那么如何将两个负责不同功能的部分整合起来呢?在这里的整合其实是对于硬件平台来说的,即:
1)如何将机器人的SLAM整合到Android系统上面来实现?
2)或者是如何将Android系统上面机器人需要的功能整合到原来的SLAM系统上面来实现?
3)或者是如何将SLAM和Android系统上面的交互等功能通过另外一个平台上面来实现?
如果能够做到将这两大部分的必要功能整合在一起,那么就能够节约很大一部分成本和开发难度/周期了。
一方面,针对SLAM技术实现过程的话,在预处理、匹配再到地图融合,这三大环节当中涉及到了很多算法来处理包括激光雷达和编码器等采集的数据,当然就很消耗资源了,而对于Android系统来说,要在上面这样实现可能不合理。另外,如果要在搭载SLAM的平台上面实现语音交互等功能的话,肯定没有在Android平台上面更加方便轻松,并且软件升级方面也不及Android平台方便快捷。
另一方面,Android平台,或者就说目前的Android手机搭载的一些sensor也是机器人开发当中必须要有的,比如距离感应的sensor,陀螺仪的sensor以及最重要的camera sensor,利用这些已经开发或者半开发的驱动接口再去完成机器人的一些开发工作我觉得应该会快很多。
因此,在机器人开发领域,如何利用目前优秀的平台来实现各种必要的功能我觉得需要从硬件和软上面来解决这个问题。一方面优化软件的资源占用,另一方面即是找到成本和性能结合比较好的硬件平台。
以上就是这段时间以来,自己在开发过程当中遇到的问题和疑问,还包括了自己的拙见。欢迎指正,以及针对这些问题提出您的见解,感激之至。