SGADC2019丨服务机器人在华为分布式场景下的应用

发布时间:2019-12-11 11:01:00

作者介绍

方洋,浙江重德智能科技有限公司副总经理,多年智慧城市项目咨询建设经验,对物联网、大数据在多场景的应用有深切的体会,近年结合服务机器人应用特点在高校教育、家庭服务、公众服务下推出多款产品。11月19日,在软件绿色联盟开发者大会开源与跨平台开发分论坛上,方洋发表了主题为《服务机器人在华为分布式场景下的应用》的演讲,讲述关于服务机器人在分布式终端场景下的应用设想,现场展示了基于华为终端KIT服务机器人的开发过程及成果,以及对在鸿蒙下ROS移植的畅想,现在一起来回顾演讲的精彩内容。

1、服务机器人的应用场景

机器人一般来说分为工业机器人、服务机器人、特种机器人,平时常见的是工业机器人,如机械臂。今天重点讨论服务机器人,如下图所示,这是一个典型机器人的构造。从上往下,映入眼帘的是头,有高清人脸识别系统,接着是语音对话系统、显示面板,再往下是万向轮,可以理解成腿。细心的用户会注意到机器人没有手的问题,这恰恰是后面要谈的。作为开发者很少有机会去工厂,实际上在很多大型工厂可以看到机械臂的应用。比如一些精细化的领域,机械臂可以快速工作,在一些展会上,机械臂速度快到会产生幻影。

为什么服务机器人很少有手的出现?实际上并不是机械臂技术不成熟,而是人工智能的算法不成熟。机械臂需要去辨识一个物体,找到它,定位它,然后拿取它,这对我们来说是非常困难的。现在市面上能够买到的服务机器人有酒店送餐机器人、物流配送机器人、早教学习机、扫地机器人等。扫地机器人是销量最好的,因为它的人工智能算法和服务机器人本体的结合目前看来是最优的。早在十年前就有扫地机器人了,这并不是一个新兴产品,但当时扫地机器人是盲扫、胡乱扫的状态,一个地方扫十次,别的地方却不扫。现在加了人工智能SLAM算法后,就能像拥有了人的思维一样,科学的去打扫,比如这个地方现在站了一个人,暂时不扫,等他走了之后再扫,这是SLAM可以实现的。

关于机器人技术,大家可能最好奇的是,机器人是如何自主移动的?机器人要想实现机器人自主移动,就必须解决3个问题:1. 我在哪里2. 我周围是什么3.我如何去往目的地这三个问题分别对应定位、建图、自主导航三类技术。在机器人领域,有一个专门的研究:实时定位与地图构建,也就是SLAM。

SLAM(SimultaneousLocalization and Mapping),同步定位与地图构建。机器人从未知环境的未知地点出发,在运动过程中通过重复观测到的环境特征定位自身位置和姿态,再根据自身位置构建周围环境的增量式地图,从而达到同时定位和地图构建的目的。由于SLAM的重要学术价值和应用价值,一直以来都被认为是实现全自主移动机器人的关键技术。ROS提供了一些常用的SLAM算法,例如Gmapping、Karto、Hector、Cartographer等算法。Gmapping的作用是根据激光雷达和里程计(Odometry)的信息,对环境地图进行构建,并且对自身状态进行估计。输入:包括激光雷达和里程计的数据;输出:应当有自身位置和地图。

机器人研究的问题包含许多领域,包括:建图(Mapping)、定位(Localization)和路径规划(Path Planning)。而同步定位与建图(SLAM)问题位于定位和建图的交集部分。SLAM(同步定位与建图)需要机器人在未知的环境中逐步建立起地图,然后根据地区确定自身位置,从而进一步定位。这里通过简单的示例来告诉你SLAM算法包是如何工作的。

这里(视频1)结合华为分布式应用做了一个小动画,场景是我们平时常见的一个工作情况,在华为分布式应用场景里,把大屏幕、电视、音响设备整合到一起,机器人在里面发挥了很大的作用。视频1

2、华为终端与机器人开发

如何让功能更简单,避免开发者在开发时耗费精力,这就需要华为终端分布式能力与机器人开发结合。移植后,终端的手机和平板侧,是我们机器人的显示终端、操控手柄、配置工具。现在很多难以实现的功能都将利用手机来与机器人交互。这里举几个使用前后对比的例子。1.摄像头信息展示传统方式:启动机器人等待WIFI就绪→手机连接机器人自带的无线路由WIFI→打开APP,调用专门开发的服务层摄像头服务接口获取实时图像信息,稳定性和实时性差。应用华为终端分布式能力后:手机接触机器人即可发现并自动连接机器人→手机通过DV 分布式数据传输模块来调用机器人上的虚拟摄像头查看机器人动态图像信息,稳定快速。2.语音控制场景传统方式:机器人通过自带麦克风设备采集外部语音→机器人语音识别成功后执行命令→适合近距离,远距离“听不清”。应用华为终端分布式能力后:机器人通过华为分布式与手机互联,获取手机拾取的语音→机器人语音识别成功后执行命令→远距离语音控制,打破声音传递距离限制。3.SLAM建图传统方式:必须配置ROS主从关系,配置复杂→通过ROSTOPIC通信方式获取实时位置信息,在PC上展示建图效果。应用华为终端分布式能力后:利用华为终端分布式能力,手机触碰机器人,就能够像PC一样展示实时建图效果,简单方便。4.远程控制传统方式:通过APP模拟控制键对机器人进行控制,控制难度大。应用华为终端分布式能力后:游戏手柄设备与手机互通,利用手柄对机器人进行控制,敏捷易用,操作方便。

由此可见,上述四个功能在加持华为终端分布式能力后,开发者可以开启快速便捷的开发模式。

3、ROS生态

ROS缩写来自于robot operating system,直译就叫机器人操作系统。ROS是一个适用于机器人编程的框架,这个框架把原本松散的零部件耦合在了一起,为他们提供了通信架构。ROS虽然叫做操作系统,但并非Windows、Mac那样通常意义的操作系统,它只是连接了操作系统和你开发的ROS应用程序,所以它也算是一个中间件,基于ROS的应用程序之间建立起了沟通的桥梁,所以也是运行在Linux上的运行环境,在这个环境上,机器人的感知、决策、控制算法可以更好的组织和运行。机器人行业脱离不了ROS,特别在服务机器人领域,ROS是服务机器人的温床。在工业机器人领域也在着手和ROS的结合。下面详细讲解下ROS发展史。2000年前,制造机器人是一个浩大的工程,当时要开发机械结构、电子电路、驱动程序、通信架构等,硬件、软件都要一肩挑。2000年时,ROS起源开始,起源来自于斯坦福大学机器人软件系统框架。2007年,ROS正式发布。2010年,ROS1.0正式发布,许多组件和API沿用至今。下图是PR2,这个机器人有摄像头、红外、机械臂、激光雷达,还有一些相关机械设计,和前面提到的机器人也没太大差异。但是大家不要忘记这是在2010年制造出来的机器人,当时的难度系数是很大的。现在看来这是古董级的设备,一个跨时代的产品。

2013、2014、2015年期间各个版本相继推出,随着ROS的发展,ROS逐渐流行,已相继推出十余个版本。机器人产业分工开始走向细致化、多层次化,如今的电机、底盘、激光雷达、摄像头、机械臂等元器件都有不同厂家专门生产。社会分工加速了机器人行业的发展。而各个部件的集成就需要一个统一的软件平台,在机器人领域,这个平台就是机器人操作系统ROS。

下图是服务机器人现有系统架构图,从底层硬件层开始,包括我们激光雷达,电机、云台、喇叭等等,往上是底层驱动,接着是操作系统Linux(Ubuntu)、ROS、人工智能算法,最后到APP应用层。通过十几年的发展,ROS生态已经成形,不管是激光雷达厂家,还是电机厂商,都会针对ROS做SDK,这是真正生态的价值。ROS生态是非常稳固的,有了这个稳固的生态之后,就容易往下发展。真正难点是在于大家如何去用它,如何让大家都在这个基础上去做。

在下图黄色标注这部分,是基于华为终端分布式操作系统,针对机器人与鸿蒙的结合,从应用层,我们的用户除了有更好的体验之外,总体来说不会有太大的改变。核心工作在于OS和ROS层的移植。首先将Ubuntu操作系统替换为鸿蒙操作系统。然后将ROS移植到鸿蒙操作系统上。

2010年为什么推出PR2设备,因为ROS本身是一个操作系统,研究机器人如果没有一个硬件的本体,就无法与真实环境互动。在ROS开源贡献方面,维基官方网站、GitHub的开源代码库、机器人开发社区、MOOC课程、B站都有学习视频,感兴趣的开发者欢迎搜索访问。在GitHub上,ROS中文平台的代码量是最大的,几十万群体里面开发者居多,更多是停留在机器人爱好者层面。当前我们不仅在中国大学MOOC开设视频课程,提供ROS学习平台,并且还延伸出了硬件XBot、服务机器人比赛、老师培训等内容。这是我们人工智能将来想做的事情,不仅仅是软件开发或者硬件设备的智能。人工智能技术作为科技发展的驱动力,催生出了新产品、业态和模式,伴随着科技、制造业等巨头布局的深入,人工智能的应用场景也在不断扩展。后续软件绿色联盟会发布软件绿色联盟开发者大会开源与跨平台开发分论坛议题文章,欢迎持续关注。

分享:
请先后留下您的评论
热门评论
没有更多评论了
合作咨询
申请加入会员
请选择您企业的所属类别