机器人的动作控制方法和装置与流程

文档序号:11167800阅读:917来源:国知局
机器人的动作控制方法和装置与制造工艺

本发明涉及机器人技术领域,尤其涉及机器人的动作控制方法和装置。



背景技术:

机器人编程是指为使机器人完成某种任务而设置的动作顺序描述。机器人运动和作业的指令都是由程序进行控制,常见的编制方法有两种:示教编程方法和离线编程方法。其中示教编程方法包括示教、编辑和轨迹再现,可以通过示教盒示教和导引式示教两种途径实现。离线编程方法是利用计算机图形学成果,借助图形处理工具建立几何模型,通过一些规划算法来获取作业规划轨迹。

目前,机器人动作编程一般基于pc平台,编程人员需要比较专业的三维动画知识和技术背景,特别是需要结合人体力学和机器人的关节自由度进行编程,比较难掌握,动作的准确度会受到编程人员技术水平的影响,还容易出现某些动作不自然、不流畅的情况。



技术实现要素:

本发明的目的在于提出机器人的动作控制方法和装置,能够让机器人直接模拟人的动作,不需要对机器人舵机进行编程。

为达此目的,本发明采用以下技术方案:

一方面,本发明提供一种机器人动作的控制方法,包括:

利用深度传感器的三维坐标系,按帧采集人体的骨骼节点的三维坐标;

根据所述三维坐标,通过空间向量算法计算出所述骨骼节点的角度;

将所述角度以指令的形式发送给机器人,使机器人根据所述指令中的所述角度执行相应的动作。

其中,根据所述三维坐标,通过空间向量算法计算出所述骨骼节点的角度,包括:

若所述骨骼节点为第一关节,则取与所述第一关节相邻且远离躯干的骨骼节点为第二关节;

所述第一关节与所述第二关节连接组成第一肢体;

根据所述三维坐标,通过空间向量算法计算所述第一肢体在水平面上的运动角度和在竖直面上的运动角度。

其中,根据所述三维坐标,通过空间向量算法计算所述第一肢体在水平面上的运动角度和在竖直面上的运动角度,包括:

根据所述第一关节的三维坐标和所述第二关节的三维坐标,将所述第一肢体表示为第一向量;

计算所述第一向量与所述三维坐标系的y轴的夹角,作为所述第一肢体在竖直面上的运动角度;

计算所述第一向量与所述三维坐标系的z轴的夹角,作为所述第一肢体在水平面上的运动角度。

进一步的,根据所述三维坐标,通过空间向量算法计算出所述骨骼节点的角度,还包括:

若所述骨骼节点为第二关节,则取与所述第二关节相邻且远离躯干的骨骼节点为第三关节;

所述第二关节与所述第三关节连接组成第二肢体;

根据所述三维坐标,通过空间向量算法计算所述第一肢体与所述第二肢体之间的夹角。

其中,根据所述三维坐标,通过空间向量算法计算所述第一肢体与所述第二肢体之间的夹角,包括:

根据所述第一关节的三维坐标、所述第二关节的三维坐标和所述第三关节的三维坐标,将所述第一肢体表示为第一向量,将所述第二肢体表示为第二向量;

计算所述第一向量与所述第二向量之间的夹角,即为所述第一肢体与所述第二肢体之间的夹角。

进一步的,利用深度传感器按帧采集人体的骨骼节点的三维坐标之后,还包括:

根据所述骨骼关节在一帧中的位移,计算所述骨骼节点的运动速度;

将所述运动速度以指令的形式发送给机器人,使机器人根据所述指令中的所述运动速度执行相应的动作。

其中,根据所述骨骼关节在一帧中的位移,计算所述骨骼节点的运动速度,包括:

以所述骨骼关节在上一帧的三维坐标为初态位置;

以所述骨骼关节在当前帧的三维坐标为末态位置;

所述位移为所述末态位置到所述初态位置的距离;

所述骨骼节点的运动速度=位移/每一帧的时间长度。

第二方面,本发明提供一种机器人动作的控制方法,包括:

按帧接收包括各骨骼节点的角度的指令;

根据所述指令中的所述角度执行相应的动作。

第三方面,本发明提供一种机器人动作的控制装置,包括:

深度传感器,用于按帧采集人体的骨骼节点的三维坐标;

微处理器,用于通过空间向量算法计算出所述骨骼节点的角度;

网络通信设备,用于将所述角度以指令的形式发送给机器人,使机器人根据所述指令中的所述角度执行相应的动作。

第四方面,本发明提供一种机器人动作的控制装置,包括:

指令接收模块,用于按帧接收包括了各骨骼节点的角度的指令;

动作执行模块,用于根据所述指令中的所述角度执行相应的动作。

本发明的有益效果为:

本发明利用深度传感器,按帧采集人体动作过程中的各骨骼节点的三维坐标,通过空间向量算法,可计算出骨骼节点的运动的角度,将这些角度通过指令发送给机器人,机器人舵机就能根据这些角度执行相应的动作,使机器人能够模仿、复制人的动作,不需要编程人员单独对每个舵机进行三维动画编程;并且一秒之内包括了若干帧的指令,机器人的动作更准确、流畅。

附图说明

图1是本发明实施例一中机器人动作的控制方法的流程图。

图2是本发明实施例一中机器人的骨骼节点示意图。

图3是本发明实施例二中机器人动作的控制方法的流程图。

图4是本发明实施例三中机器人动作的控制装置的结构示意图。

图5是本发明实施例四中机器人动作的控制装置的结构示意图。

具体实施方式

为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

实施例一

本实施例提供一种机器人动作的控制方法,用于采集人的动作供机器人模仿、复制,通常由一种机器人动作的控制装置来执行,该装置由软件和/或硬件实现,一般集成于计算机及其辅助设备。

如图1所示,所述机器人动作的控制方法包括如下步骤:

s11,利用深度传感器,按帧采集人体的骨骼节点的三维坐标。

深度传感器一般为cmos红外传感器(红外摄像头),通过红外线成像,将其视野内的图像通过黑白光谱的形式表示,形成一幅景深图像,纯黑代表无穷远,纯白代表无穷近,不同灰度对应了物体到传感器的不同距离。深度传感器捕捉景深图像中移动的人体,将人体与背景分隔开,并分辨出人体不同部位;针对人体进行骨架绑定,追踪各骨骼节点的位置,通过计算后得出各骨骼节点的坐标。深度传感器的三维坐标系中,人面对深度传感器,竖直向上的方向为y轴正方向,水平向右的方向为x轴正方向,水平向后的方向为z轴正方向。

要进行动作采集的人位于深度传感器的红外摄像头前,在其视野范围内,将需要机器人完成的动作示范一遍,深度传感器按帧采集景深图像,追踪并计算出人体的骨骼节点的三维坐标。

s12,根据所述三维坐标,通过空间向量算法计算出所述骨骼节点的角度。

图2是本发明实施例一中机器人的骨骼节点示意图。如图2所示,所述第一关节101为肩关节或髋关节,所述第二关节102为肘关节或膝关节,所述第一肢体111为上臂或大腿;深度传感器的三维坐标系如图2中xyz。

若所述骨骼节点为第一关节101,则取与所述第一关节101相邻且远离躯干的骨骼节点为第二关节102;所述第一关节101与所述第二关节102连接组成第一肢体111;根据所述三维坐标,通过空间向量算法计算所述第一肢体111在水平面上的运动角度β和在竖直面上的运动角度α。

所述第一关节101的三维坐标为a(x1,y1,z1),所述第二关节102的三维坐标为b(x2,y2,z2),则所述第一肢体111表示为向量取y轴的单位向量则可计算得到所述第一肢体111与y轴正方向的夹角α,即所述第一肢体111在竖直面上的运动角度。如图2所示,以机器人的左上臂为例,将表示左上臂的线段平移使左肩关节与坐标原点重合(图中虚线所示),则∠α为左上臂在竖直面上的运动角度。

取z轴的单位向量计算所述第一肢体111与z轴负方向的夹角β,即所述第一肢体111在水平面上的运动角度,如图2所示的∠β。

第一肢体111在水平面上的运动角度和在竖直面上的运动角度决定了第一肢体111在三维空间中的位置。并且可以从所述第二关节102的y坐标的变化得知所述第一肢体111的运动状态,若y坐标值增大,则表示所述第一肢体111为向上抬,若y坐标值减小,则表示所述第一肢体111为向下摆。

或者,将所述第一肢体111投影到yoz平面上,该投影与z轴负方向的夹角为第一肢体111在竖直方向上的运动角度;将所述第一肢体111投影到xoz平面上,该投影与x轴正方向的夹角为第一肢体111在水平方向上的运动角度。

若所述骨骼节点为第二关节102,则取与所述第二关节102相邻且远离躯干的骨骼节点为第三关节103;所述第二关节102与所述第三关节103连接组成第二肢体112;根据所述三维坐标,通过空间向量算法计算所述第一肢体111与所述第二肢体112之间的夹角γ。如图2所示,第三关节103为腕关节或踝关节,第二肢体112为前臂或小腿。

所述第一关节101的三维坐标为a(x1,y1,z1),所述第二关节102的三维坐标为b(x2,y2,z2),所述第三关节103的三维坐标为c(x3,y3,z3),则所述第一肢体111表示为向量所述第二肢体112表示为向量由于a、b、c三点依次连接,计算一个空间平面内向量与向量的夹角γ,即为所述第一肢体111与所述第二肢体112之间的夹角,即肘关节或膝关节处的角度。如图2所示,∠γ为上臂与前臂的夹角,或者大腿与小腿的夹角。

s13,将所述角度以指令的形式发送给机器人,使机器人根据所述指令中的所述角度执行相应的动作。

以帧为单位,将计算出的每一个骨骼节点的角度以指令的形式发送给机器人,或者将指令上传到服务器中保存,在需要机器人动作时,再由服务器发送给机器人。机器人收到指令后,骨骼节点上的机器人舵机会根据所述角度控制相应的机器人肢体运动,使其作出与人的示范动作相同或相似的动作。

深度传感器在采集各骨骼节点的三维坐标时,会先对景深图像进行滤波,再对坐标数据进行筛选,将可信度较低的数据舍弃,仅保留可信度高的数据,这样做的好处是,当一秒内帧数较多时,机器人会因为数据量庞大而出现卡顿,进行一定的数据筛选,可以减轻机器人的数据处理负担,可靠的数据能使机器人在动作时更加流畅和真实。

但是,当深度传感器舍弃的帧数较多时,机器人在完成当前帧的动作之后,不知道下一帧甚至往后几帧如何动作,因此,利用深度传感器按帧采集人体的骨骼节点的三维坐标之后,还包括:

根据所述骨骼关节在一帧中的位移,计算所述骨骼节点的运动速度;将所述运动速度以指令的形式发送给机器人,使机器人根据所述指令中的所述运动速度执行相应的动作。

这样,在下一帧的角度数据缺失时,机器人可以按照当前帧的运动速度继续执行动作,避免了机器人因为没有角度数据可参考而停止动作。

一秒内有几十帧的情况下,一帧的时长很短,一帧内骨骼节点的运动可以视为直线运动,因此,

以所述骨骼关节在上一帧的三维坐标d1(x4,y4,z4)为初态位置;

以所述骨骼关节在当前帧的三维坐标d2(x5,y5,z5)为末态位置;

所述位移为所述末态位置到所述初态位置的距离,即

计算一秒内每一帧的时间长度t,则所述骨骼节点的运动速度=位移/每一帧的时间长度,即

本实施例利用深度传感器,按帧采集人体动作过程中的各骨骼节点的三维坐标,通过空间向量算法,可计算出骨骼节点的运动的角度和运动速度,将这些角度和运动速度通过指令发送给机器人,机器人舵机就能控制机器人的肢体执行相应的动作,使机器人能够模仿、复制人的动作,不需要编程人员单独对每个舵机进行三维动画编程;并且一秒之内包括了若干帧的指令,机器人的动作更准确、流畅。

实施例二

本实施例提供一种机器人动作的控制方法,应用于机器人,通过所述控制方法,机器人能够复制人的动作;所述控制方法由一种机器人的动作控制装置来执行,该装置由软件和/或硬件实现,一般集成于机器人内部。

图3是本发明实施例二中机器人动作的控制方法的流程图。如图3所示,所述控制方法包括如下步骤:

s21,按帧接收包括各骨骼节点的角度的指令。

机器人通过网络接收上述实施例中生成的指令,每一帧一个指令,指令中包括各骨骼节点的角度,必要时还包括骨骼节点的运动速度。

s22,根据所述指令中的所述角度执行相应的动作。

解析所述指令,获得各个骨骼节点的角度,机器人舵机控制相应的关节旋转,使机器人作出所述指令代表的动作。

本实施例中,机器人按帧接收指令后,舵机按照指令中的角度执行即可,不需要编程人员对每个舵机进行单独编程,机器人的执行结果是可预期的。并且指令可以保存和复制,任何需要的时候都能让机器人重复执行。

实施例三

本实施例提供一种机器人动作的控制装置,用于执行实施例一所述的控制方法,解决相同的技术问题,达到同样的技术效果,该装置一般为计算机及其辅助设备。

图4是本发明实施例三中机器人动作的控制装置的结构示意图。如图4所示,所述控制装置包括:

深度传感器31,用于按帧采集人体的骨骼节点的三维坐标.

微处理器32,用于通过空间向量算法计算出所述骨骼节点的角度。

网络通信设备33,用于将所述角度以指令的形式发送给机器人,使机器人根据所述指令中的所述角度执行相应的动作。

本实施例中,深度传感器能够以一秒十几帧甚至几十帧的频率采集人体的骨骼节点的三维坐标,经过微处理器计算后,得到每个骨骼节点的运动角度,再通过网络将这些角度指令发送给机器人,使机器人按照所述角度执行相应的动作,整个过程中不需要编程人员对舵机进行编程,在需要机器人完成任何动作之前,有人进行动作示范并采集即可,方便易用,多编程的依赖度降低。

实施例四

本实施例提供一种机器人动作的控制装置,用于执行实施例二所述的控制方法,该装置设置在机器人上,能使机器人根据人的动作示范作出相同或相似的动作。

图5是本发明实施例四中机器人动作的控制装置的结构示意图。如图5所示,所述控制装置包括:

指令接收模块41,用于按帧接收包括了各骨骼节点的角度的指令;

动作执行模块42,用于根据所述指令中的所述角度执行相应的动作。

本实施例中,机器人按帧接收指令后,动作执行模块(即舵机)按照指令中的角度执行即可,不需要编程人员对每个舵机进行单独编程,机器人的执行结果是可预期的。

以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。

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