本申请涉及机器控制技术领域,具体涉及一种仿人机械手臂体感控制方法及装置。
背景技术:
体感控制是人机交互领域的热点方向,而机械臂的体感控制是当前机器人学研究中的一个新兴方向。与机械臂的传统控制方式相比,体感控制具有许多优点:直观性,便捷性和易用性。
通常,基于体感设备的控制方法采用可kinect、深度摄像头等设备来采集骨骼信息,这种设备需要大运算力的配合,例如电脑、手机等设备,生产成本大,量产可实现化低。这些方法获取人体骨骼信息后,大多通过视觉结合深度信息来推演人体关节位置,通过复杂运算和模糊性推理射到机器人关节角用于控制机器人,导致了在运算时的运算效率低,进而造成了在对机器进行控制时的时延较高。
技术实现要素:
本申请实施例提供一种仿人机械手臂体感控制方法及装置,能够提一定程度上降低对机械臂进行控制时的时延。
本申请实施例的第一方面提供了一种机械手臂控制方法,应用于仿人机械手臂体感控制系统,所述方法包括:
采集目标用户的第一运动参数;
根据所述第一运动参数,采用预设的算法计算出机械臂的第二运动参数;
根据所述第二运动参数生成运动控制指令,以及将所述控制指令发送到所述机械臂,所述运动控制指令用于指示所述机械臂根据所述第二运动参数进行运动。
结合本申请实施例的第一方面,在第一方面的第一种可能的实现方式中,所述第一运动参数包括脊柱旋转四元数qa、上臂旋转四元数qb和下臂旋转四元数qc。
结合申请实施例的第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述机械臂包括上臂、下臂和运动装置,所述根据所述第一运动参数,采用预设的算法计算出机械臂的第二运动参数,包括:
根据所述脊柱旋转四元数qa,确定出上臂投影平面的第一坐标系,以及根据所述上臂旋转四元数qb,确定出上臂投影平面的第二坐标系;
根据所述上臂旋转四元数qb,在所述第一坐标系中确定出所述上臂的方向向量vu,以及根据所述下臂旋转四元数,在所述第二坐标系中确定出所述下臂的方向向量vd;
获取所述上臂的方向向量vu在所述第一坐标系的x轴方向上的投影b1、所述上臂的方向向量vu在所述第一坐标系的在y轴方向上的投影b2、所述下臂的方向向量vd在所述第二坐标系的x轴方向上的投影b3、以及所述下臂的方向向量vd在所述第二坐标系的在y轴方向上的投影b4;
获取所述机械臂中的运动装置的运动参数;
根据所述b1、b2、b3、b4和所述运动装置的运动参数,确定出所述机械臂的运动参数。
结合申请实施例的第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述获取所述上臂的方向向量vu在所述第一坐标系的x轴方向上的投影b1、所述上臂的方向向量vu在所述第一坐标系的在y轴方向上的投影b2、所述下臂的方向向量vd在所述第二坐标系的x轴方向上的投影b3以及所述下臂的方向向量vd在所述第二坐标系的在y轴方向上的投影b4,包括:
通过预设的公式获取b1、b2、b3和b4,具体如下:
其中,arccos()为反余弦函数,
结合申请实施例的第一方面的第以种可能的实现方式至第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述方法还包括:
获取所述机械臂的目标运动姿势;
若所述目标运动姿势与所述目标用户的参考运动姿势不同,则根据所述目标运动姿势和所述参考运动姿势生成姿势调整参数;
生成姿势调整指令,以及将所述姿势调整指令发送到所述机械臂,所述姿势调整指令携带所述姿势调整参数。
本申请实施例的第二方面提供了机械手臂控制装置,应用于仿人机械手臂体感控制系统,所述装置包括采集单元、计算单元和发送单元,其中,
所述采集单元,用于采集目标用户的第一运动参数;
所述计算单元,用于根据所述第一运动参数,采用预设的算法计算出机械臂的第二运动参数;
所述发送单元,用于根据所述第二运动参数生成运动控制指令,以及将所述控制指令发送到所述机械臂,所述运动控制指令用于指示所述机械臂根据所述第二运动参数进行运动。
结合本申请实施例的第二方面,在第二方面的第一种可能的实现方式中,所述第一运动参数包括脊柱旋转四元数qa、上臂旋转四元数qb和下臂旋转四元数qc。
结合申请实施例的第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述机械臂包括上臂、下臂和运动装置,在所述根据所述第一运动参数,采用预设的算法计算出机械臂的第二运动参数方面,所述计算单元具体用于:
根据所述脊柱旋转四元数qa,确定出上臂投影平面的第一坐标系,以及根据所述上臂旋转四元数qb,确定出上臂投影平面的第二坐标系;
根据所述上臂旋转四元数qb,在所述第一坐标系中确定出所述上臂的方向向量vu,以及根据所述下臂旋转四元数,在所述第二坐标系中确定出所述下臂的方向向量vd;
获取所述上臂的方向向量vu在所述第一坐标系的x轴方向上的投影b1、所述上臂的方向向量vu在所述第一坐标系的在y轴方向上的投影b2、所述下臂的方向向量vd在所述第二坐标系的x轴方向上的投影b3、以及所述下臂的方向向量vd在所述第二坐标系的在y轴方向上的投影b4;
获取所述机械臂中的运动装置的运动参数;
根据所述b1、b2、b3、b4和所述运动装置的运动参数,确定出所述机械臂的运动参数。
结合申请实施例的第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,在所述获取所述上臂的方向向量vu在所述第一坐标系的x轴方向上的投影b1、所述上臂的方向向量vu在所述第一坐标系的在y轴方向上的投影b2、所述下臂的方向向量vd在所述第二坐标系的x轴方向上的投影b3以及所述下臂的方向向量vd在所述第二坐标系的在y轴方向上的投影b4方面,所述计算单元还具体用于:
通过预设的公式获取b1、b2、b3和b4,具体如下:
其中,arccos()为反余弦函数,
结合申请实施例的第二方面的第以种可能的实现方式至第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述仿人机械手臂体感控制装置还用于:
获取所述机械臂的目标运动姿势;
若所述目标运动姿势与所述目标用户的参考运动姿势不同,则根据所述目标运动姿势和所述参考运动姿势生成姿势调整参数;
生成姿势调整指令,以及将所述姿势调整指令发送到所述机械臂,所述姿势调整指令携带所述姿势调整参数。
本申请实施例的第三方面提供一种终端,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如本申请实施例第一方面中的步骤指令。
本申请实施例的第四方面提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。
本申请实施例的第五方面提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
实施本申请实施例,至少具有如下有益效果:
通过本申请实施例,采集目标用户的第一运动参数,根据所述第一运动参数,采用预设的算法计算出机械臂的第二运动参数,根据所述第二运动参数生成运动控制指令,以及将所述控制指令发送到所述机械臂,所述运动控制指令用于指示所述机械臂根据所述第二运动参数进行运动,相对于现有方案中,通过复杂运算和模糊性推理射到机器人关节角用于控制机械臂,能够直接从目标用户的运动参数计算出机械臂的运动参数,因此能够一定程度上减少计算时的计算量,进而能够一定程度上减少对机械臂控制时的时延。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供了一种机械手臂控制方法的示意图;
图2a为本申请实施例提供了一种机械手臂控制方法的流程示意图;
图2b为本申请实施例提供了一种目标用户的关节节点示意图;
图2c为本申请实施例提供了一种坐标系的示意图;
图2d为本申请实施例提供了一种旋转方向示意图;
图3为本申请实施例提供了另一种机械手臂控制方法的流程示意图;
图4为本申请实施例提供了另一种机械手臂控制方法的流程示意图;
图5为本申请实施例提供了一种机械手臂控制装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
本申请实施例所涉及到的电子装置可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(userequipment,ue),移动台(mobilestation,ms),终端设备(terminaldevice)等等。为方便描述,上面提到的设备统称为电子装置。
为了更好的理解本申请实施例提供的一种机械手臂控制方法,下面对机械手臂控制方法进行简要介绍。请参阅图1,图1为本申请实施例提供了一种机械手臂控制方法的示意图。如图1所示,体感检测设备101采集目标用户的第一运动参数,第一运动参数可以为脊柱旋转四元数qa、上臂旋转四元数qb和下臂旋转四元数qc,然后体感检测设备101将第一运动参数发送到处理系统102,处理系统102采用预设的算法计算出机械臂的第二运动参数,预设的算法为计算开销较小的算法,例如可以运行在资源受限设备上的算法,资源受限设备可以理解为运行资源较小的设备,如单片机、soc芯片(英文名:system-on-a-chip)等,处理系统102生成运动控制指令,该指令携带第二运动参数,并将运动控制指令发送给控制设备103,控制设备103根据该指令,对机械臂104进行控制,使得机械臂104按照第二运动参数进行运动,因此,相对于现有方案中,通过复杂运算和模糊性推理射到机器人关节角用于控制机械臂,能够直接从目标用户的运动参数计算出机械臂的运动参数,因此能够一定程度上减少计算时的计算量,进而能够一定程度上减少对机械臂控制时的时延。
请参阅图2a,图2a为本申请实施例提供了一种机械手臂控制方法的流程示意图。如图2a所示,该控制方法应用于仿人机械手臂体感控制系统,该控制方法包括步骤201-203,具体如下:
201、采集目标用户的第一运动参数。
其中,可以通过体感设备对目标用户的第一运动参数进行采集,体感设备例如可以是9轴体感采集设备,9轴体感采集设备包括通过三轴陀螺仪、三轴加速度计和三轴地磁计等。
请参阅图2b,图2b为一种目标用户的关节节点示意图。如图2所示关节节点包括脊柱节点、上臂节点和下臂节点。第一运动参数包括脊柱旋转四元数qa、上臂旋转四元数qb和下臂旋转四元数qc,在对第一运动参数进行采集时,具体可以为,通过三轴陀螺仪、三轴加速度计和三轴地磁计进行采集实时的采集用户的运动信息,然后将运动信息通过imu数据融合算法生成脊柱旋转四元数qa、上臂旋转四元数qb和下臂旋转四元数qc。
202、根据所述第一运动参数,采用预设的算法计算出机械臂的第二运动参数。
可选的,一种可能的根据第一运动参数,采用预设的算法计算出机械臂的敌人运动参数包括步骤a1-a5,具体如下:
a1、根据所述脊柱旋转四元数qa,确定出上臂投影平面的第一坐标系,以及根据所述上臂旋转四元数qb,确定出上臂投影平面的第二坐标系;
请参阅图2c,图2c为本申请实施例提供了一种坐标系的示意图。如图2c所示,将目标用户的竖直站立时的脊柱抽象为一条直线,则该直线位于第一坐标系所在平面,将人体所在的面抽象为一个平面,则第一坐标系的平面与人体所在平面重合。
可选的,一种可能的对第一坐标系和第二坐标系进行表示的方法为:
第一坐标系:
,其中,
第二坐标系:
其中,
a2、根据所述上臂旋转四元数qb,在所述第一坐标系中确定出所述上臂的方向向量vu,以及根据所述下臂旋转四元数,在所述第二坐标系中确定出所述下臂的方向向量vd;
可选的,上臂的方向向量vu可以表示为:
其中,vu为上臂的方向向量vu;
下臂的方向向量vd可以表示为:
其中,vd为下臂的方向向量vd。
a3、获取所述上臂的方向向量vu在所述第一坐标系的x轴方向上的投影b1、所述上臂的方向向量vu在所述第一坐标系的在y轴方向上的投影b2、所述下臂的方向向量vd在所述第二坐标系的x轴方向上的投影b3、以及所述下臂的方向向量vd在所述第二坐标系的在y轴方向上的投影b4;
可选的,通过预设的公式获取b1、b2、b3和b4,具体如下:
其中,arccos()为反余弦函数,
可选的,第一坐标系和第二坐标系,可以由空间直角坐标系投影或转换得到。
a4、获取所述机械臂中的运动装置的运动参数;
其中,机械臂中的运动装置的运动参数可以为,机械臂中的旋转装置的旋转范围。例如,机械臂中的舵机的运动范围。
a5、根据所述b1、b2、b3、b4和所述运动装置的运动参数,确定出所述机械臂的运动参数。
可选的,机械臂的运动参数包括上臂的第一旋转参数ea、上臂的第二旋转参数eb、下臂的第三旋转参数ec和下臂的第四旋转参数ed,
所述第一旋转参数可以通过如下公式得到:
ea=b1*range,
所述第二旋转参数可以通过如下公式得到:
eb=b2*range,
所述第三旋转参数可以通过如下公式得到:
ec=b3*range,
所述第四旋转参数可以通过如下公式得到:
ed=b4*range,
其中,range为所述运动装置的运动参数。
如图2d所示,图2d为一种旋转方向示意图。图中,上臂左右旋转可以理解为机械臂的正面朝向的左右旋转,上臂前后旋转可以理解为机械臂的正面朝向的前后旋转,下臂左右摆动可以理解为机械臂的正面朝向的左右摆动,下臂的前后摆动可以理解为机械臂的正面朝向的前后摆动。
203、根据所述第二运动参数生成运动控制指令,以及将所述控制指令发送到所述机械臂,所述运动控制指令用于指示所述机械臂根据所述第二运动参数进行运动。
一个可能的示例中,由于机械臂在运动的过程中可能会由于误差,而导致运动的运动姿势与目标用户运动的运动姿势出现不同的情况,从而需要对机械臂的运动进行适当的调整,一种可能的对姿势进行调节的方法包括步骤b1-b3,具体如下:
b1、获取所述机械臂的目标运动姿势;
其中,获取机械臂的目标运动姿势的方法可以包括步骤b11-b12,具体如下:
b11、获取机械臂运动时的多张运动图像;
在对机械臂的多张运动图像中的一张运动图像进行采集时,可以采集多个不同波段中的运动图像,从而得到一个包括多个波段下的运动图像的图像序列。多个不同波段可以表示为n个波段,即,第一波段至第n波段,n为正整数,其中,不同波段可以理解为,将一个固定波段均分成多个子波段,从而得到多个不同的波段,例如,400-600微米波段,将该波段均分为10个波段,则可得到10个子波段。
可选的,在采集得到多个波段中的运动图像后,对运动图像进行融合,具体可以为:
可选的,以运动图像的左下角为坐标原点,运动图像的长边所在方向为x轴,运动图像的短边所在方向为y轴建立直角坐标系,从而得到每个像素点的坐标。然后运动图像进行轮廓标记,对运动图像进行轮廓标记的方法,可以根据像素点的灰度值进行标记,当像素点的灰度值处于预设灰度值区间,则将该像素点点标记为机械臂的像素点,预设灰度值区间根据经验值设定或根据历史数据进行设定。
可选的,根据标记结果,对运动图像进行融合的方法可以为:提取相同坐标的像素点的标记结果,若相同像素点的坐标的标记结果为机械臂像素点大于或等于预设个数,则将该点判定为机械臂的像素点,若相同像素点的坐标的标记结果为机械臂素点低于预设个数,则将该点判定为背景图像的像素点;根据机械臂的像素点得到运动图像。预设个数根据经验值设定或根据历史数据进行设定。
通过采集多个波段中的人脸图像,然后对多个波段中的人脸图像进行融合,得到人脸图像,由于不同波段对不同的颜色的事物进行成像的结果不同,则不同波段的成像结果,能够更好反映出人脸的特征,从而采用多波段人脸图像融合的方式得到人脸图像,能够一定程度上提升获取人脸图像时的准确性。
b12、对所述多张运动图像进行识别,得到所述多张运动图像中每张运动图像中机械臂的运动姿势;
可选的,可以对运动图像进行特征提取,并根据体征提取的结果得到机械臂的运动姿势,其中,对运动图像进行特征提取可以采用如下算法中的至少一种进行提取:lbp(localbinarypatterns,局部二值模式)特征提取算法、hog(histogramoforientedgradient,方向梯度直方图)特征提取算法、log(laplacianofgaussian,二阶拉普拉斯-高斯)特征提取算法等等,在此不做限定。可以根据预设的特征点与运动姿势之间的映射关系,得到机械臂的运动姿势,该映射关系可以由系统中预先存储。
b13、根据所述每张运动图像中机械臂的运动姿势,确定出机械臂的目标运动姿势。
可选的,目标运动姿势可以包括一个时间段之内的运动姿势,则可以将每张运动图像中的机械臂的运动姿势按照时间的顺序进行排序,得到目标运动姿势。
b2、若所述目标运动姿势与所述目标用户的参考运动姿势不同,则根据所述目标运动姿势和所述参考运动姿势生成姿势调整参数;
其中,根据目标用户的姿势和参考运动姿势确定出姿势调整参数可以通过神经网络模型进行确定,神经网络模型可以通过如下方式训练得到,对神经网络模型进行训练时可以包括正向训练和反向训练,神经网络模型可以包括n层神经网络,在训练时,可以将样本数据输入到该n层神经网络的第一层,通过第一层进行正向运算后得到第一运算结果,然后将第一运算结果输入到第二层进行正向运算,得到第二结果,以此,直至第n-1结果输入到第n层进行正向运算,得到第n运算结果,在对第n运算结果执行反向训练,以此重复执行正向训练和反向训练,直至神经网络模型训练完成。样本数据为目标运动姿势、参考运动姿势和姿势调整参数。
b3、生成姿势调整指令,以及将所述姿势调整指令发送到所述机械臂,所述姿势调整指令携带所述姿势调整参数。
请参阅图3,图3为本申请实施例提供了另一种机械手臂控制方法的流程示意图。如图3所示,应用于仿人机械手臂体感控制系统,控制方法包括步骤301-307,具体如下:
301、采集目标用户的第一运动参数;
其中,所述第一运动参数包括脊柱旋转四元数qa、上臂旋转四元数qb和下臂旋转四元数qc,机械臂包括上臂、下臂和运动装置
302、根据所述脊柱旋转四元数qa,确定出上臂投影平面的第一坐标系,以及根据所述上臂旋转四元数qb,确定出上臂投影平面的第二坐标系;
303、根据所述上臂旋转四元数qb,在所述第一坐标系中确定出所述上臂的方向向量vu,以及根据所述下臂旋转四元数,在所述第二坐标系中确定出所述下臂的方向向量vd;
304、获取所述上臂的方向向量vu在所述第一坐标系的x轴方向上的投影b1、所述上臂的方向向量vu在所述第一坐标系的在y轴方向上的投影b2、所述下臂的方向向量vd在所述第二坐标系的x轴方向上的投影b3、以及所述下臂的方向向量vd在所述第二坐标系的在y轴方向上的投影b4;
305、获取所述机械臂中的运动装置的运动参数;
306、根据所述b1、b2、b3、b4和所述运动装置的运动参数,确定出所述机械臂的运动参数;
307、根据所述第二运动参数生成运动控制指令,以及将所述控制指令发送到所述机械臂,所述运动控制指令用于指示所述机械臂根据所述第二运动参数进行运动。
本示例中,通过采集目标用户的脊柱旋转四元数qa、上臂旋转四元数qb和下臂旋转四元数qc,并生成对应的方向向量vu和vd,进而得到机械臂的运动参数,未采用复杂的算法以及模糊性推理射到机器人关节角用于控制机械臂,能够直接从目标用户的运动参数计算出机械臂的运动参数,因此能够一定程度上减少计算时的计算量,进而能够一定程度上减少对机械臂控制时的时延。
请参阅图4,图4为本申请实施例提供了另一种机械手臂控制方法的流程示意图。如图4所示,应用于仿人机械手臂体感控制系统,控制方法包括步骤401-406,具体如下:
401、采集目标用户的第一运动参数;
402、根据所述第一运动参数,采用预设的算法计算出机械臂的第二运动参数;
403、根据所述第二运动参数生成运动控制指令,以及将所述控制指令发送到所述机械臂,所述运动控制指令用于指示所述机械臂根据所述第二运动参数进行运动;
404、获取所述机械臂的目标运动姿势;
405、若所述目标运动姿势与所述目标用户的参考运动姿势不同,则根据所述目标运动姿势和所述参考运动姿势生成姿势调整参数;
406、生成姿势调整指令,以及将所述姿势调整指令发送到所述机械臂,所述姿势调整指令携带所述姿势调整参数。
本示例中,在机械臂运动的过程中,可以通过姿势来判别机械臂与目标用户之间的姿势是否一致,若不一致,则对机械臂的运动进行调整,从而能够一定程度上提升机械臂运动时的准确性。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,终端为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对终端进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
与上述一致的,请参阅图5,图5为本申请实施例提供了一种机械手臂控制装置的结构示意图,应用于仿人机械手臂体感控制系统,所述装置包括采集单元501、计算单元502和发送单元503,其中,
所述采集单元501,用于采集目标用户的第一运动参数;
所述计算单元502,用于根据所述第一运动参数,采用预设的算法计算出机械臂的第二运动参数;
所述发送单元503,用于根据所述第二运动参数生成运动控制指令,以及将所述控制指令发送到所述机械臂,所述运动控制指令用于指示所述机械臂根据所述第二运动参数进行运动。
可选的,所述第一运动参数包括脊柱旋转四元数qa、上臂旋转四元数qb和下臂旋转四元数qc。
可选的,所述机械臂包括上臂、下臂和运动装置,在所述根据所述第一运动参数,采用预设的算法计算出机械臂的第二运动参数方面,所述计算单元502具体用于:
根据所述脊柱旋转四元数qa,确定出上臂投影平面的第一坐标系,以及根据所述上臂旋转四元数qb,确定出上臂投影平面的第二坐标系;
根据所述上臂旋转四元数qb,在所述第一坐标系中确定出所述上臂的方向向量vu,以及根据所述下臂旋转四元数,在所述第二坐标系中确定出所述下臂的方向向量vd;
获取所述上臂的方向向量vu在所述第一坐标系的x轴方向上的投影b1、所述上臂的方向向量vu在所述第一坐标系的在y轴方向上的投影b2、所述下臂的方向向量vd在所述第二坐标系的x轴方向上的投影b3、以及所述下臂的方向向量vd在所述第二坐标系的在y轴方向上的投影b4;
获取所述机械臂中的运动装置的运动参数;
根据所述b1、b2、b3、b4和所述运动装置的运动参数,确定出所述机械臂的运动参数。
可选的,在所述获取所述上臂的方向向量vu在所述第一坐标系的x轴方向上的投影b1、所述上臂的方向向量vu在所述第一坐标系的在y轴方向上的投影b2、所述下臂的方向向量vd在所述第二坐标系的x轴方向上的投影b3以及所述下臂的方向向量vd在所述第二坐标系的在y轴方向上的投影b4方面,所述计算单元502还具体用于:
通过预设的公式获取b1、b2、b3和b4,具体如下:
其中,arccos()为反余弦函数,
可选的,其特征在于,所述仿人机械手臂体感控制装置还用于:
获取所述机械臂的目标运动姿势;
若所述目标运动姿势与所述目标用户的参考运动姿势不同,则根据所述目标运动姿势和所述参考运动姿势生成姿势调整参数;
生成姿势调整指令,以及将所述姿势调整指令发送到所述机械臂,所述姿势调整指令携带所述姿势调整参数。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种机械手臂控制方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种机械手臂控制方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在申请明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器、随机存取器、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。