一种基于云平台下多机器人协作的方法、装置及机器人与流程

文档序号:16525294发布日期:2019-01-05 10:17阅读:252来源:国知局
一种基于云平台下多机器人协作的方法、装置及机器人与流程

本发明涉及智能机器人领域,尤其涉及一种基于云平台下多机器人协作的方法及操作系统。



背景技术:

现如今的人工智能技术已经日渐成熟,不过在云计算逐渐深入生活的过程中,发现云技术与人工智能技术有可结合的可能性。因此有人提出了云机器人的概念。云机器人相当于把机器人的大脑进行一个集中,也就是集中到云平台,统一操作多机器人。

将机器人连接到外部计算机的想法出现在20世纪90年代,而东京稻叶大学提出了远程大脑的概念。云机器人的概念进一步深化了这一概念0,并将探索实施更便宜的计算方法并与无处不在的网络互连的方法。云机器人这个概念,最初是由卡耐基梅隆大学得kuffner博士提出的。他提出云机器人的概念后,在机器人业界内引起了广泛的探讨。

类人机器人nao是由aldebaranrobotics公司设计开发的,它具有开源架构,非常适合用于科研教育。如今,nao机器人已经在世界上五百多所大学应用,国内要也有很多大学采购了nao机器人,用来进行学习开发。在一些科技公司也有应用,因为nao机器人是现今世界上最智能的开源机器人。这款机器人非常适合应用于市面上的各种应用,因为它有良好广泛的接口。并且该公司也提供了很全面的编程环境,通过python、c++都可以对他进行编程,公司还推出了choregraphe这一款可视编程软件,适合于大部分人群,简单直观。对于有语音基础的人群,他很好的开源构架也可以进行更深层次的开发。

2005年,nao机器人项目开始启动,发展到2007年就已经取代了索尼公司据说是当时最现今的机器人aibo,参加了世界机器人足球比赛。机器人足球已经发展的非常成熟了,每年世界各地都有很多比赛,他们的标准都是nao机器人,nao机器人已经开始逐渐普及。

现有技术至少存在如下问题:类人型机器人,无法像其他机器人完成合作项目,只能完成简单的操作;与云平台交互少;人们难以对多机器人进行管理、研发。



技术实现要素:

本发明实施例提供一种一种基于云平台下多机器人协作的方法、装置及机器人,该系统通过云平台的搭建,实现多个机器人之间信息的交互,使第一机器人及第二机器人完成双目测距任务后,将距离信息传给第三机器人,第三机器人完成物件抓取任务。

本发明实施例提供一种一种基于云平台下多机器人协作的方法、装置及机器人,所述方法包括:

第一机器人通过自身的第一摄像机对目标物体进行图像采集获得第一图片,并将所述第一图片发送给云平台;第二机器人通过自身的第二摄像机对同一目标物体进行图像采集获得第二图片,并将所述第二图片发送给云平台;其中,第一摄像头与第二摄像头在同一条直线上,并且摄像头相同水平,朝向相同方向;所述云平台根据所述第一图片以及所述第二图片,以及双目测距原理计算得到第三摄像机与所述目标物体的距离,并将所述距离发送给第三机器人;其中,所述第三机器人位于所述第一机器人与所述第二机器人之间;所述第三机器人根据所述距离移动至所述目标物体,以执行对所述目标物体的操作。

优选地,在所述第一机器人通过自身的第一摄像机对目标物体进行图像采集获得第一图片之前,还包括第一机器人对所述第一摄像机进行标定,具体为:第一机器人通过第一摄像机获取标定板的图像;第一机器人通过在现实中设立的三维坐标系,获得所述标定板在现实中的位置,得到外参;第一机器人获得所述标定板在所述摄像机内部坐标系的位置,得到内参;第一机器人根据所述外参和所述内参完成对第一摄像机的标定。

优选地,在第一机器人通过自身的第一摄像机对目标物体进行图像采集获得第一图片之后,还包括:第一机器人对所述第一图片进行预处理;其中,第一机器人对所述第一图片进行预处理,具体为:使用低通滤波器平滑图像,使图像中的高频噪声平滑;降低图像变化率;对图像二值化,用canny算法得出图像轮廓,最后进行轮廓绘制获得预处理后的第一图片。

优选地,所述云平台根据所述第一图片以及所述第二图片以及双目测距原理计算得到第三机器人与所述目标物体的距离,并将所述距离发送给第三机器人,具体为:云平台接收第一图片以及第二图片,其中,所述第一图片以及第二图片为具有重复视角的第一摄像头和第二摄像头在一个时间内拍摄得到;云平台对所述第一图片以及第二图片进行校正和变换,识别出两张图片中的目标物体;云平台获得所述目标物体的对应参数,计算第三机器人和目标物体的距离。

优选地,所述第一机器人、第二机器人以及第三机器人在同一个局域网内,且各有一个独立的ip地址,所述第一机器人、第二机器人以及第三机器人与所述云平台基于tcp/ip连接进行交互。

优选地,所述第一机器人、第二机器人以及第三机器人为nao机器人。

进一步地,本发明实施例还提供了一种基于云平台下多机器人协作的系统,包括:第一机器人、第二机器人、第三机器人以及云平台;

第一机器人,用于对目标物体进行图像采集获得第一图片,并将所述第一图片发送给云平台;

第二机器人,用于对同一目标物体进行图像采集获得第二图片,并将所述第二图片发送给云平台;

所述云平台,用于根据所述第一图片以及所述第二图片,基于双目测距原理计算得到摄像与所述目标物体的距离,并将所述距离发送给第三机器人;其中,所述第三机器人位于所述第一机器人与所述第二机器人之间;

所述第三机器人,用于根据所述距离移动至所述目标物体,以执行对所述目标物体的操作。

优选地,所述第一机器人,还用于对所述第一图片进行预处理;其中,具体为:使用低通滤波器平滑图像,使图像中的高频噪声平滑;降低图像变化率;对图像二值化,用canny算法得出图像轮廓,最后进行轮廓绘制获得预处理后的第一图片。

优选地,所述第一机器人,还用于对所述第一摄像机进行定标;其中,具体为:第一机器人通过第一摄像机获取标定板的图像;第一机器人通过在现实中设立的三维坐标系,获得所述标定板在现实中的位置,得到外参;第一机器人获得所述标定板在所述摄像机内部坐标系的位置,得到内参;第一机器人根据所述外参和所述内参完成对所述第一摄像机的标定。

优选地,所述第一机器人、第二机器人以及第三机器人在同一个局域网内,且各有一个独立的ip地址,所述第一机器人、第二机器人以及第三机器人与所述云平台基于tcp/ip连接进行交互。

本发明的通过云平台的该系统通过云平台的搭建,实现多个机器人之间信息的交互,可以通过云平台将程序指令传给机器人,便于研究。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的流程示意图。

图2是本发明实施例提供的第一机器人、第二机器人以及第三机器人的位置示意图。

图3是本发明实施例提供的拍摄标定用棋盘的示意图。

图4是本发明实施例提供的第一机器人拍摄获得的目标物体的第一图片。

图5是本发明实施例提供的第一图片的低通滤波图。

图6是本发明实施例提供的第一图片canny函数处理图。

图7是本发明实施例提供的第一图片轮廓绘制图。

图8是本发明实施例提供的第二机器人拍摄获得的目标物体的第二图片。

图9是本发明实施例提供的第二图片的低通滤波图。

图10是本发明实施例提供的第二图片canny函数处理图。

图11是本发明实施例提供的第二图片轮廓绘制图。

图12是本发明实施例提供的双目成像原理。

图13是本发明实施例提供的成像平面图。

图14是本发明实施例提供的第三机器人前进至实际物体前示意图。

图15是本发明实施例提供的第三机器人进行实际物体抓取示意图。

图16是本发明实施例提供云平台机器人选择界面示意图。

图17是本发明实施例提供的任务分配流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参阅图1,在本发明第一实施例提供了一种基于云平台下多机器人协作的方法,包括:

s101,第一机器人通过自身的第一摄像机对目标物体进行图像采集获得第一图片,并将所述第一图片发送给云平台;

s102,第二机器人通过自身的第二摄像机对同一目标物体进行图像采集获得第二图片,并将所述第二图片发送给云平台;其中,第一摄像头与第二摄像头在同一条直线上,并且摄像头相同水平,朝向相同方向;

s103,所述云平台根据所述第一图片以及所述第二图片,以及双目测距原理计算得到第三摄像机与所述目标物体的距离,并将所述距离发送给第三机器人;其中,所述第三机器人位于所述第一机器人与所述第二机器人之间;

s104,所述第三机器人根据所述距离移动至所述目标物体,以执行对所述目标物体的操作。

优选地,第一机器人、第二机器人以及第三机器人摆放位置如图2所示,三个机器人朝向一致,且在同一条直线上,其中定义最左机器人为第一机器人,最右机器人为第二机器人,中间的机器人定义为第三机器人。

优选地,在所述第一机器人通过自身的第一摄像机对目标物体进行图像采集获得第一图片之前,还包括对所述第一摄像机进行标定,标定所用的棋盘为8*8的黑白格子棋盘,如图3所示,拍摄之后通过opencv的代码将图像进行处理,获得一个显示角点位置的数组,通过计算角点数据后,得到焦距和原点坐标,即完成对摄像机的定标。

优选地,在所述第一机器人通过自身的第一摄像机对目标物体进行图像采集获得第一图片之后,还包括第一机器人对所述第一图片进行预处理,调用nao机器人视觉api通过alproxy选择相机完成图片拍摄,获得左机器人拍摄图像如图4所示;从机器人视觉中获取图像并调整图像格式,使其格式能适于opencv,使用低通滤泼器平滑图像(9x9内核),使图像中的高频噪声平滑,降低图像变化率,再对图像二值化。梯度图像中所有小于100的像素都被设置为0(黑色),大于100的全部为255(白色),获得低通滤波图像如图5所示;再用canny算法进行边缘检测时使用高斯滤波器对图像进行处理,高斯内核选择(3,3),然后再对平滑处理后的图像用canny算法进行边缘检测,通过另外编写的测试canny函数阈值的程序得出当前环境下的最优阈值,获得canny函数处理图像如图6所示。图像经过处理之后得到一个较为精确的轮廓,检测这个轮廓,将所述轮廓绘制在原图上,所得轮廓原图绘制如图7所示。

优选地,第一机器人执行上述步骤的同时,第二机器人也在执行上述相同步骤。获得拍摄图像如图8所示,获得低通滤波图像如图9所示,获得canny函数处理图像如图10所示。获得轮廓原图绘制如图11所示。

优选地,云平台接收经过预处理后的第一图片以及第二图片,所述第一图片以及第二图片为具有重复视角的第一摄像头和第二摄像头在一个时间内拍摄得到;云平台对所述第一图片以及第二图片进行校正和变换,识别出两张图片中的目标物体;云平台获得所述目标物体的对应参数,计算第三机器人和目标物体的距离。

具体地,云平台接收经过预处理后的第一图片以及第二图片后通过python在opencv下的伪代码进行双目测距算法,获得第三机器人与目标物体的距离;最后将测得的距离通过服务器上的php代码呈现在页面上。

优选地,双目测距算法是两个有重复视角的摄像头在一个时间内拍摄,由于两个摄像头的空间位置不同,因此可以对得到的图片进行校正和变换,识别出两张图片中的指定目标,分别得到对应的参数,最后通过计算出机器人和目标位置的实际距离;双目测距算法的误差比较小,但是他计算难度比较大,而对单个人型机器人nao来说,由于两个摄像头之间的重合面积几乎没有,导致双目测距难度会很大;因此我们多机器人协作就是将两个nao机器人手动放置令摄像头在同一条直线上,并且摄像头相同水平,朝向相同方向进行双目测距的图像获取。

假设两个相同的平行放置的摄像机镜头光心距离为b,相机焦距是f,物体中心点得世界坐标是(x,y,z)相机坐标系的原点o与左相机的o1重合。(x1-y)和(x2-y)是两个成像平面,因为水平轴是相同的,所以y轴是相同的。

若物体中心点在摄像头投影面中的坐标分别为(x1,y),(x2,y),则深度d为:

据此原理,则可推导出2个投影面坐标图,图12为双目成像图,图13为成像平面图。

如果像素坐标u-v以像素为单位,则u-v坐标系中的坐标为o(u0,v0),通常把摄像机轴线和物体所在面的焦点设为像素坐标原点。u轴和v轴是与x轴y轴同向得坐标轴,(u1,v1)为物体中心点在左摄像头拍摄图像中的像素坐标值,(u2,v2)为物体中心点在右摄像头拍摄图像中的像素坐标值;dx为中心点和图像侧边的像素间隔,dy为物体中心点和图像底边的像素间隔。图像坐标系与像素坐标系之间存在如下变换关系:

优选地,第三机器人,用于根据所述距离移动至所述目标物体,以执行对所述目标物体的操作。

在第一机器人及第二机器人的协作下,第三机器人直接引用第一机器人及第二机器人用双目测距获得的第三机器人与物体之间的水平距离,所述水平距离为空间坐标系中的x分量,将得到的距离参数x传给操作机器人前进抓取的代码中,机器人前进相应的距离,如图14所示;通过计算像素点坐标,获得实际物体中心点的坐标,将所得坐标代入所述运动学的变换矩阵中,计算关节角度,将指令传输到手臂的关节,对实际物体进行抓取,如图15所示,抓取过后用代码调整机器人手臂高度来抬高物体。

得到实际物体中心点的坐标后,通过矩阵相乘得到4*4的变换矩阵,其矩阵的组成如下,每个矩阵中的元素在每个位置变换中都有它们各自的用途;

从a到i的九个值表示各个关节的旋转坐标,而l、m和n表示位移。使用变换矩阵的相乘,许多位置的变化都可以用一个变换矩阵来表示。一个三维移动造成的位置改变可以用变换矩阵计算,如下。要计算在笛卡儿坐标系中的坐标(x,y,z)到以l为x-轴,m为y-轴,和n为z-轴的坐标系中,可以通过以下的方程式来得到目标坐标(x',y',z')。

三维旋转会根据不同的旋转轴可以有不同的变换矩阵。下面示范根据x、y,z轴旋转的变换矩阵。

对a来说,只需要得到,θ1,θ2,θ3,θ4,(a1,a2,a3,a4的关节值)就可以计算手的位置。

方式如下:

pos_w=a*pos_s

进一步地,本发明第二实施例提供了一种基于云平台下多机器人协作的系统,包括:第一机器人、第二机器人、第三机器人以及云平台;

优选地,所述机器人为nao机器人。

其中,所述nao机器人是身高57cm的可编程人形机器人,主要内容如下:具有机身25度自由度(dof),电机和执行器的关键部件;一系列传感器:2个摄像头,4个麦克风,1个超声波距离传感器,2个红外发射器和接收器,1个惯性板,9个触觉传感器和8个压力传感器;用于自我表达的设备:语音合成器,led灯和2个高品质扬声器;一个cpu(位于机器人头部),运行linux内核,并支持aldebaran自己的专有中间件(naoqi);第二个cpu(位于机器人躯干内部);一个55瓦的电池,可以提供1.5小时甚至更长时间;nao的视觉技术,使用两个高清摄像头,有效像素高达920万,每秒30帧,其中一台摄像头位于机器人的前额,拍摄了前面的水平屏幕;另一个位于嘴里,用于扫描周围的环境。nao机器人的头部可以左右旋转扫视周边环境,其手臂可以支撑其手以及腕部,并且腕部、手部在空间的方向以及位置也可以改变,它还可以完成平移、升降、旋转等运动。

优选地,所述云平台,通过windows下的开源软件apache+mysql/mariadb+perl/php/python搭建所述云平台;通过路由器搭建局域网,第一机器人、第二机器人以及第三机器人各获得一个独立的ip地址,第一机器人、第二机器人与云平台器建立tcp/ip连接。机器人采集到的图像及本机状态可通过wifi或网线传输至路由器,再由路由器将数据传给服务器,服务器将数据体现在云平台上。机器人发送至云平台的数据直接保存到本地服务器的指定文件夹,当还有数据请求的时候,也直接从文件夹里调用之前保存的数据。

优选地,在云平台上,设有操作界面,可查看当前机器人的连接状态及ip信息,如图16所示,在操作界面设有多机器人协作的按钮,点击进入之后可以进行双机器人的双目测距云操作,其中有选择的机器人,以及机器人将获取到的图像呈现框在机器人获取图像后,图像将直接按顺序呈现出来。执行任务的按钮就是运用php调用python函数,通过python函数对nao机器人进行控制。在任务执行前,需要确定机器人数量,若执行任务的机器人数量不足,页面会有弹框提示,在选择完机器人后,才可以进行下一步,任务分配流程图如图17所示。

本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1