首页 / 技术领域 / 动作捕捉 / 格斗机器人控制器关节动作捕捉方法、装置、设备及介质

格斗机器人控制器关节动作捕捉方法、装置、设备及介质

热词 上肢 关节 极值 格斗 动作 机器人 采样 转动 姿态 捕捉
专利类型 发明公开 法律事件 公开; 实质审查; 授权;
专利有效性 有效专利 当前状态 授权
申请号 CN202211533774.1 申请日 2022-12-02
公开(公告)号 CN115674138A 公开(公告)日 2023-02-03
申请人 深圳市工匠社科技有限公司; 申请人类型 企业
发明人 邓朝阳; 陈东东; 王陈正志; 招俊健; 关健泳; 第一发明人 邓朝阳
权利人 深圳市工匠社科技有限公司 权利人类型 企业
当前权利人 深圳市工匠社科技有限公司 当前权利人类型 企业
省份 当前专利权人所在省份:广东省 城市 当前专利权人所在城市:广东省深圳市
具体地址 当前专利权人所在详细地址:广东省深圳市光明区凤凰街道塘尾社区恒泰裕大厦3栋3B-1701 邮编 当前专利权人邮编:518000
主IPC国际分类 B25J3/00 所有IPC国际分类 B25J3/00B25J9/16B25J11/00B25J13/00
专利引用数量 3 专利被引用数量 0
专利权利要求数量 10 专利文献类型 A
专利代理机构 成都恪睿信专利代理事务所 专利代理人 陈兴强; 张竞;
摘要 本 发明 属于关节 动作捕捉 技术领域,尤其涉及一种格斗 机器人 控制器 关节动作捕捉方法、装置、设备及介质。本发明的格斗机器人控制器关节动作捕捉方法,用可穿戴式动作捕捉设备识别人体的关节动作,可穿戴式动作捕捉设备包括穿戴件和上肢组件,另一端设置有用于在外 力 作用下带动上肢组件动作的操控部,上肢组件包括若干个依次连接的上肢部件,相邻两个上肢部件之间以可转动连接的方式形成关节,所述方法包括以下步骤:获取所述上肢组件中各相邻两关节之间的距离;获取上肢组件中各个关节转动的 角 位置 ;根据各个关节之间的距离和各个关节转动的角位置获取上肢组件的位置和 姿态 ;根据上肢组件的位置和姿态获取人体的关节动作。本发明可快速准确的获得人体关节动作。
权利要求

1.格斗机器人控制器关节动作捕捉方法,其特征在于,用可穿戴式动作捕捉设备捕捉人体的关节动作,所述可穿戴式动作捕捉设备包括穿戴件和上肢组件,所述上肢组件一端与所述穿戴件可转动连接,另一端设置有用于在外作用下带动上肢组件动作的操控部,所述上肢组件包括若干个依次连接的上肢部件,相邻两个所述上肢部件之间以可转动连接的方式形成关节,所述方法包括以下步骤:
获取所述上肢组件中各相邻两关节之间的距离;
获取所述上肢组件中各个关节转动的位置
根据各个关节之间的距离和各个关节转动的角位置获取所述上肢组件的位置和姿态
根据所述上肢组件的位置和姿态获取人体的关节动作。
2.根据权利要求1所述的格斗机器人控制器关节动作捕捉方法,其特征在于,采用磁编码器对各个关节转动的角位置进行采样检测,所述获取所述上肢组件中各个关节转动的角位置还包括以下步骤:
获取各个关节转动角位置的第一极值和第二极值;
判断采样检测过程中是否存在过零;
根据判断结果、第一极值、第二极值和采样检测所检测到的当前采样值获取各个关节转动的角位置。
3.根据权利要求2所述的格斗机器人控制器关节动作捕捉方法,其特征在于,在根据判断结果、第一极值、第二极值和采样检测所检测到的当前采样值获取各个关节转动的角位置之前还包括:
对采样检测所检测到的当前采样值进行滤波消抖。
4.根据权利要求2所述的格斗机器人控制器关节动作捕捉方法,其特征在于,所述根据判断结果、第一极值、第二极值和采样检测所检测到的当前采样值获取各个关节转动的角位置还包括以下步骤:
选择第一极值和第二极值中的一个作为起始值;
根据所述判断结果和所选择的起始值以及当前采样值与第一极值和第二极值之间的大小关系确定目标采样值;
根据目标采样值和起始值确定各个关节转动的角位置。
5.根据权利要求1所述的格斗机器人控制器关节动作捕捉方法,其特征在于,所述根据各个关节之间的距离和各个关节转动的角位置获取所述上肢组件的位置和姿态还包括以下步骤:
以穿戴件所在坐标系作为定系,选取上肢组件中的一个上肢部件作为末端执行器
根据各个关节之间的距离和各个关节转动的角位置获取由末端执行器到穿戴件的变换矩阵;
根据由穿戴件到末端执行器的变换矩阵得到所选取的上肢部件在定系中的位置和姿态;
重复前述步骤直到获取所有上肢部件在定系中的位置和姿态。
6.根据权利要求1所述的格斗机器人控制器关节动作捕捉方法,其特征在于,所述方法还包括以下步骤:
检测上肢组件末端的实际位置和姿态;
根据上肢组件末端的实际位置和姿态对上肢组件的位置和姿态进行修正。
7.根据权利要求1至6中任一项所述的格斗机器人控制器关节动作捕捉方法,其特征在于,各个所述关节设置有阻力装置,所述阻力装置用于施加阻碍关节转动的阻力,所述方法还包括以下步骤:
获取机器人受到击打后所产生的击打信号
根据所述击打信号确定用于施加阻力的目标阻力装置;
根据所述击打信号控制所述目标阻力装置施加阻碍关节转动的阻力。
8.格斗机器人控制器关节动作捕捉装置,用可穿戴式动作捕捉设备识别人体的关节动作,所述可穿戴式动作捕捉设备包括穿戴件和上肢组件,所述上肢组件一端与所述穿戴件可转动连接,另一端设置有用于在外力作用下带动上肢组件动作的操控部,所述上肢组件包括若干个依次连接的上肢部件,相邻两个所述上肢部件之间以可转动连接的方式形成关节,所述装置包括:
关节间距离获取模,所述关节间距离获取模块用于获取所述上肢组件中各相邻两关节之间的距离;
关节转动角位置获取模块,所述关节转动角位置获取模块用于获取所述上肢组件中各个关节转动的角位置;
上肢组件位姿获取模块,所述上肢组件位姿获取模块用于根据各个关节之间的距离和各个关节转动的角位置获取所述上肢组件的位置和姿态;
人体关节动作获取模块,所述人体关节动作获取模块用于根据所述上肢组件的位置和姿态获取人体的关节动作。
9.格斗机器人控制器关节动作捕捉设备,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求1‑7中任一项所述的方法。
10.一种存储介质,其上存储有计算机程序指令,其特征在于,当所述计算机程序指令被处理器执行时实现如权利要求1‑7中任一项所述的方法。

说明书全文

格斗机器人控制器关节动作捕捉方法、装置、设备及介质

技术领域

[0001] 本发明涉及关节动作捕捉技术领域,尤其涉及一种格斗机器人控制器关节动作捕捉方法、装置、设备及介质。

背景技术

[0002] 关节动作捕捉技术在很多领域都有着重要应用,例如在电视互动游戏中,玩家可以通过关节动作来控制游戏中色的动作。对此,相关游戏设备需要快速准确地识别出游戏参与者的关节动作来。又例如在对机器人的控制中,多采用按键的操控方式。但是按键操控的动作与机器人实际执行的动作之间差别很大,两种动作之间的对应关系很弱,因此操作起来十分不方便。对于格斗竞技机器人来说,操控动作和机器人实际执行动作之间差别过大容易降低用户的体验感,使用户无法沉浸在机器人格斗竞技比赛中。因此人们提出了采用手势控制的方式,机器人执行与操作者关节动作相同或者相近的动作。由于机器人执行的动作与操作者的手势一致,因此操作者对机器人的控制就像在控制自己的身体一样自然,这样就使用户的操作体验得到极大的提升,使用户可以完全沉浸在机器人格斗竞技比赛中。为了实现通过操作者的关节动作来控制机器人,需要准确地识别出操作者的关节动作,对此公开号为CN112405530A的专利提出了使用可穿戴摄像头来捕捉操作员手势的图像信息,然后结合模式识别方法分析手势的种类,并根据手势种类信息实现对机器人行为的控制。采用前述专利中的技术方案,需要采集包含操作手势的图像,并对图像进行分析处理后识别出操作员的手势,但是手势图像容易受到外界环境的干扰,因此关节动作捕捉的准确度较差。此外图像识别所需处理的数据量大,数据采集和处理的速度慢,并且图像处理的运算过程复杂,因此难以快速准确地获取到操作者的关节动作。

发明内容

[0003] 有鉴于此,本发明实施例提供了一种格斗机器人控制器关节动作捕捉方法、装置、设备及介质,用于解决现有技术受环境干扰无法快速准确获取人体关节动作的技术问题。
[0004] 本发明采用的技术方案是:第一方面,本发明提供了一种格斗机器人控制器关节动作捕捉方法,用可穿戴式
动作捕捉设备识别人体的关节动作,所述可穿戴式动作捕捉设备包括穿戴件和上肢组件,所述上肢组件一端与所述穿戴件可转动连接,另一端设置有用于在外作用下带动上肢组件动作的操控部,所述上肢组件包括若干个依次连接的上肢部件,所述相邻两个上肢部件之间以可转动连接的方式形成关节,所述方法包括以下步骤:
获取所述上肢组件中各相邻两关节之间的距离;
获取所述上肢组件中各个关节转动的角位置
根据各个关节之间的距离和各个关节转动的角位置获取所述上肢组件的位置和
姿态
根据所述上肢组件的位置和姿态获取人体的关节动作。
[0005] 优选地,所述采用磁编码器对各个关节转动的角位置进行采样检测,所述获取所述上肢组件中各个关节转动的角位置还包括以下步骤:获取各个关节转动角位置的第一极值和第二极值;
判断采样检测过程中是否存在过零;
根据判断结果、第一极值、第二极值和采样检测所检测到的当前采样值获取各个
关节转动的角位置。
[0006] 优选地,在所述根据判断结果、第一极值、第二极值和采样检测所检测到的当前采样值获取各个关节转动的角位置之前还包括:对采样检测所检测到的当前采样值进行滤波消抖。
[0007] 优选地,所述根据判断结果、第一极值、第二极值和样检测所检测到的当前采样值获取各个关节转动的角位置还包括以下步骤:选择第一极值和第二极值中的一个作为起始值;
根据所述判断结果和所选择的起始值以及当前采样值与第一极值和第二极值之
间的大小关系确定目标采样值;
根据目标采样值和起始值确定各个关节转动的角位置。
[0008] 优选地,所述根据各个关节之间的距离和各个关节转动的角位置获取所述上肢组件的位置和姿态还包括以下步骤:以穿戴件所在坐标系作为定系,选取上肢组件中的一个上肢部件作为末端执行
器;
根据各个关节之间的距离和各个关节转动的角位置获取由末端执行器到穿戴件
的变换矩阵;
根据由穿戴件到末端执行器的变换矩阵得到所选取的上肢部件在定系中的位置
和姿态;
重复前述步骤直到获取所有上肢部件在定系中的位置和姿态。
[0009] 优选地,所述方法包括以下步骤:检测上肢组件末端的实际位置和姿态;
根据上肢组件末端的实际位置和姿态对上肢组件的位置和姿态进行修正。
[0010] 优选地,各个所述关节设置有阻力装置,所述阻力装置用于施加阻碍关节转动的阻力,所述方法还包括以下步骤;获取机器人受到击打后所产生的击打信号
根据所述击打信号确定用于施加阻力的目标阻力装置;
根据所述击打信号控制所述目标阻力装置施加阻碍关节转动的阻力。
[0011] 第二方面本发明还提供了一种格斗机器人控制器关节动作捕捉装置,用可穿戴式动作捕捉设备识别人体的关节动作,所述可穿戴式动作捕捉设备包括穿戴件和上肢组件,所述上肢组件一端与所述穿戴件可转动连接,另一端设置有用于在外力作用下带动上肢组件动作的操控部,所述上肢组件包括若干个依次连接的上肢部件,所述相邻两个上肢部件之间以可转动连接的方式形成关节,所述装置包括:关节间距离获取模,所述关节间距离获取模块用于获取所述上肢组件中各相邻
两关节之间的距离;
关节转动角位置获取模块,所述关节转动角位置获取模块用于获取所述上肢组件
中各个关节转动的角位置;
上肢组件位姿获取模块,所述上肢组件位姿获取模块用于根据各个关节之间的距
离和各个关节转动的角位置获取所述上肢组件的位置和姿态;
人体关节动作获取模块,所述人体关节动作获取模块用于根据所述上肢组件的位
置和姿态获取人体的关节动作。
[0012] 第三方面,本发明还提供了一种格斗机器人控制器关节动作捕捉设备,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现第一方面所述的方法。
[0013] 第四方面,本发明还提供了一种存储介质,其上存储有计算机程序指令,当所述计算机程序指令被处理器执行时实现第一方面所述的方法。
[0014] 有益效果:本发明的格斗机器人控制器关节动作捕捉方法、装置、设备及介质通过获取可穿戴式动作捕捉设备的上肢组件中各个关节转动的角位置和各个关节之间的距离来获取上肢组件的位置和姿态,由于上肢组件随操作者的上肢一起运动,因此通过上肢组件的位置和姿态可以获得操作上肢的关节动作。由于上肢组件各个关节之间的距离不会改变,因此本方法只需要实时检测上肢组件上各个关节转动的角度数据,就可以获取到操作者上肢的运动情况,其所需要实时采集的数据量很小,数据传输快,数据处理量小。并且前述检测操作者肢体运动的方式来不会受到外界环境的影响,也不会因为障碍物的遮挡而造成无法获取到操作者上肢关节动作的情况。
附图说明
[0015] 为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,这些均在本发明的保护范围内。
[0016] 图1为本发明的关节动作捕捉方法的流程图示意图;图2为本发明获取各个关节转动角位置的方法的流程图示意图;
图3为本发明对采样值进行滤波消抖的方法的流程图示意图;
图4为本发明根据第一极值、第二极值和当前采样值获取转动关节的角位置的方
法的流程图示意图;
图5为本发明获取上肢组件的位姿的方法的流程图示意图;
图6为本发明利用上肢组件末端实际位姿对上肢组件位姿进行修正的方法的流程
示意图;
图7为本发明根据机器人所受到的击打来施加对关节阻力的方法的流程示意图;
图8为本发明关节动作捕捉装置的结构示意图;
图9为本发明关节动作捕捉设备的结构示意图;
图10为本发明的可穿戴式动作捕捉设备的三维结构图;
图11为本发明的上肢组件的三维结构示意图;
图12为本发明的格斗机器人控制器控制格斗机器人的示意图。
[0017] 图中零件部及其编号:穿戴件1、上肢组件2、肩部部件21、第一大臂部件22、第二大臂部件23、小臂部件
24、手部部件25。

具体实施方式

[0018] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
在本发明的描述中,需要理解的是,术语“中心”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。
[0019] 实施例1如图1所示,本实施例提供了一种格斗机器人控制器关节动作捕捉方法,该方法用
可穿戴式动作捕捉设备识别人体的关节动作,所述可穿戴式动作捕捉设备包括穿戴件和上肢组件,所述上肢组件一端与所述穿戴件可转动连接,另一端设置有用于在外力作用下带动上肢组件动作的操控部,所述上肢组件包括若干个依次连接的上肢部件,所述相邻两个上肢部件之间以可转动连接的方式形成关节,所述方法包括以下步骤:
S1:获取所述上肢组件中各相邻两关节之间的距离;
例如上肢组件中包括有五个关节,分别是第一关节、第二关节、第三关节、第四关
节和第五关节。则本步骤获取相邻两个关节之间的距离,包括第一关节到第二关节之间的距离为L12,第二关节到第三关节之间的距离为L23,第三关节到第四关节之间的距离为L34,第四关节到第五关节之间的距离为L45。
[0020] S2:获取所述上肢组件中各个关节转动的角位置;当操作者穿戴上前述可穿戴式控制设备后,用手握着操控部,当操作者的上肢带
动操作者的手部运动时,操控部带动上肢组件中的各个关节转动,以使上肢跟随操作者的上肢同步运动。这时上肢组件中各个关节转动的角度与操作者上肢的各个人体关节的转动角度一致。因此本步骤可以通过获取上肢组件中各个关节当前的角位置来检测出操作者的各个人体关节转动的角度。
[0021] S3:根据各个关节之间的距离和各个关节转动的角位置获取所述上肢组件的位置和姿态;在知道各个关节之间的距离和各个关节转动的角位置后,本步骤可以计算得到上
肢组件的位置和姿态,其中上肢组件的位置和姿态可以用组成上肢组件的所用上肢部件在同一参考系中的位置和姿态的集合来表示。
[0022] 如图5所示,作为一种可选但有利的实施方式,在本实施例中所述S3:根据各个关节之间的距离和各个关节转动的角位置获取所述上肢组件的位置和姿态还包括以下步骤:;
S31:以穿戴件所在坐标系作为定系,选取上肢组件中的一个上肢部件作为末端执
行器;
以穿戴件所在坐标系作为定系是指将穿戴件看作是固定不动的,那么穿戴件所在
坐标系也是固定不动的。这样可以以上肢组件在定系中的位置和姿态来表示上肢组件的位姿。当穿戴件穿戴在用户身上后与用户的上半身保持固定,将穿戴件所在坐标系作为定系后可以通过上肢部件的位置和姿态准确识别出用户上肢相对于用户上半身的位置和姿态。
[0023] 由于组成上肢组件的上肢部件往往有多个,因此本步骤从上肢组件中选取一个上肢部件,以便后续步骤计算出该上肢组件的位置和姿态。
[0024] S32:根据各个关节之间的距离和各个关节转动的角位置获取由末端执行器到穿戴件的变换矩阵;
其中末端执行器到穿戴件的变换矩阵是指将用末端执行器所在坐标系转换到用
穿戴件所在坐标系的矩阵。在上肢组件中各个关节之间的距离和各个关节转动的角位置均已知的情况下可以根据机器人正运动学得到前述变换矩阵,其中根据各个关节之间的距离和各个关节转动的角位置计算变换矩阵的方法可以采用现有技术,这里不做赘述。
[0025] S33:根据由穿戴件到末端执行器的变换矩阵得到所选取的上肢部件在定系中的位置和姿态;
由于在前述步骤中选取了其中的一个上肢部件作为末端执行器,因此所计算出的
由末端执行器到穿戴件的变换矩阵即为该上肢部件在穿戴件所在坐标系中的位置和姿态。
[0026] S34:重复前述步骤直到获取所有上肢部件在定系中的位置和姿态。
[0027] 在依照前述步骤获取了其中一个上肢部件在定系中的位置和姿态后,又从剩下的上肢部件中选取一个来计算其在定系中的位置和姿态,这样不断重复直到获取了所有的上肢部件在定系中的位置和姿态。
[0028] 由于在识别过程中,上肢组件可能随操作者上肢的运行而处于不断的运动中,因此在计算上肢部件在定系中的位置和姿态时所检测到的角位置数据需要不断的更新,为了在保持识别精度的情况下,减少数据传输和数据处理的时间,对此在进行数据更新时还包括以下步骤:S034:获取上肢组件中各个关节的数据更新的优选级顺序;
在对人体上肢运动进行实时识别的过程中,上肢组件中各个转动关节角度数据更
新的优先程度有所不同。例如肩部部件和第一大臂部件上的转动关节的角度对整个上肢组件的位置和姿态影响较大,因此这些部件的角度更新的优先级较高,而小臂部件和手部部件上的转动关节的角度整个上肢组件的位置和姿态影响相对较小,因此这些转动关节的角度更新的优先级较低。
[0029] S034:根据数据更新的优选级顺序,先对优先级高的关节的数据进行更新,再对优先级低的关节的数据进行更新;本实施例根据数据更新的优选级顺序先对优先级高的关节的数据进行更新,后对
优先级低的关节的数据进行更新,这样可以保证更重要的关节的角度先得到更新,从而进一步提高关节动作捕捉地实时精度。
[0030] S4:根据所述上肢组件的位置和姿态获取人体的关节动作。
[0031] 当获得了所有上肢部件在定系中的位置和姿态后,可以将所有上肢部件在定系中的位置和姿态的集合作为上肢组件的位置和姿态。由于上肢组件中的每个关节和人体上肢的关节是一一对应的关系,因此人体的关节动作可以用上肢组件中所有上肢部件在定系中的位置和姿态来表示。
[0032] 为了可以快速准确的检测出各个关节转动的角位置,本实施例采用磁编码器对各个关节转动的角位置进行采样检测。设磁编码器输出的数值范围为0至N,其中数值0对应角位置为0度,数值N对应角位置为359度,而360度与0度所表示的角位置重合。上肢组件制造完成后,关节可以转动的角位置范围也确定,在关节可以转动的角位置范围内,磁编码器输出的数值的最大值和最小值作为两个极值,即第一极值和第二极值。
[0033] 如图2所示,在上述情况下,所述S2:获取所述上肢组件中各个关节转动的角位置还包括以下步骤:S21:获取各个关节转动角位置的第一极值和第二极值;
各个关节转动的位置范围可以根据需要进行设计,按照设计将上肢组件制造好
后,各个关节可以转动的角位置范围也确定。将各个关节可以转动的角位置范围内编码器所输出数值的最大值和最小值作为各个关节转动角位置的两个极值,分别为第一极值和第二极值。
[0034] S22:判断采样检测过程中是否存在过零;由于人体上肢各个关节转动的范围小于180度,因此如果上肢组件中关节的转动
角位置范围大于180的时候就出现过零的情况,即磁编码器输出的数值会从N跳变为0,或者从0跳变为N。
[0035] 其中S22:判断采样检测过程中是否存在过零还包括以下步骤:设第一极值为Lim1第二极值为Lim2
S221:获取第一极值和第二极值的差a,其中a=Lim1‑Lim2,或者a=Lim2‑Lim1;
S223:比较a和N‑a的大小;
S224:如果a<N‑a则采样检测过程中存在过零,否则采样检测过程中是不存在过
零。
[0036] S23:根据判断结果、第一极值、第二极值和采样检测所检测到的当前采样值获取各个关节转动的角位置。
[0037] 本步骤结合是否存在过零以及当前采样值、第一极值、第二极值来确定各个关节转动的角位置。如图4所示,具体实施时可以采用以下步骤:S231:选择第一极值和第二极值中的一个作为起始值;
如果选择第一极值和第二极值中的较小值作为起始值,则磁编码器随关节从输出
第一极值的角位置转动到输出第二极值的角位置的过程中,关节的角位置逐渐增大,如果选择第一极值和第二极值中的较大值作为起始值,则磁编码器随关节从输出第一极值的角位置转动到输出第二极值的角位置的过程中,关节的角位置逐渐减小。
[0038] S232:根据所述判断结果和所选择的起始值以及当前采样值与第一极值和第二极值之间的大小关系确定目标采样值,具体包括以下步骤:S23211:如果不存在过零,且起始值为第一极值和第二极值中的较大值,且当前采
样值大于起始值,则目标采样值为起始值;
S23212:如果不存在过零,且起始值为第一极值和第二极值中的较大值,且当前采
样值小于第一极值和第二极值中的较小值,则目标采样值为第一极值和第二极值中的较小值;
S23213:如果不存在过零,且起始值为第一极值和第二极值中的较大值,且当前采
样值小于等于起始值并大于等于第一极值和第二极值中的较小值,则目标采样值为当前采样值;
S23214:如果不存在过零,且起始值为第一极值和第二极值中的较小值,且当前采
样值小于起始值,则目标采样值为起始值;
S23215:如果不存在过零,且起始值为第一极值和第二极值中的较小值,且当前采
样值大于第一极值和第二极值中的较大值,则目标采样值为第一极值和第二极值中的较大值;
S23216:如果不存在过零,且起始值为第一极值和第二极值中的较小值,且当前采
样值大于等于起始值并小于等于第一极值和第二极值中的较大值,则目标采样值为当前采样值;
S23221:如果存在过零,且起始值为第一极值和第二极值中的较大值,且当前采样
值小于起始值并大于等于(N+1)/2,则目标采样值为起始值;
S23222:如果存在过零,且起始值为第一极值和第二极值中的较大值,且当前采样
值大于第一极值和第二极值中的较小值并小于(N+1)/2,则目标采样值为第一极值和第二极值中的较小值。
[0039] S23223:如果存在过零,且起始值为第一极值和第二极值中的较小值,且当前采样值大于起始值并小于等于(N+1)/2,则目标采样值为起始值;S23224:如果存在过零,且起始值为第一极值和第二极值中的较小值,且当前采样
值小于第一极值和第二极值中的较大值并大于(N+1)/2,则目标采样值为第一极值和第二极值中的较大值。
[0040] 如图3所示,作为一种可选但有利的方式,在S23:根据判断结果、第一极值、第二极值和采样检测所检测到的当前采样值获取各个关节转动的角位置之前还包括S230:对采样检测所检测到的当前采样值进行滤波消抖,从而减小因为采样数值抖动对关节动作捕捉造成的影响。
[0041] S233:根据目标采样值和起始值确定各个关节转动的角位置,具体包括以下步骤:S23311:如果不存在过零,且起始值为第一极值和第二极值中的较大值则关节转
动的角位置的对应的目标数值为起始值‑目标采样值。
[0042] S23312:如果不存在过零,且起始值为第一极值和第二极值中的较小值,则关节转动的角位置的对应的目标数值为目标采样值‑起始值。
[0043] S23321:如果存在过零,且起始值为第一极值和第二极值中的较大值,且当前采样值大于等于起始值并且小于等于N,则关节转动的角位置的对应的目标数值为目标采样值‑起始值。
[0044] S23322:如果存在过零,且起始值为第一极值和第二极值中的较大值,且当前采样值大于等于0并且小于等于第一极值和第二极值中的较小值,则关节转动的角位置的对应的目标数值为N‑起始值+1+目标采样值。
[0045] S23323:如果存在过零,且起始值为第一极值和第二极值中的较小值,且当前采样值大于等于0并且小于等于起始值,则关节转动的角位置的对应的目标数值为N起始值‑目标采样值。
[0046] S23324:如果存在过零,且起始值为第一极值和第二极值中的较小值,且当前采样值大于等于第一极值和第二极值中的较大值并且小于等于N,则关节转动的角位置的对应的目标数值为N‑目标采样值+1+起始值。
[0047] 设最终所获得的目标数值为n,则对应的关节转动的角位置为360×n/(N+1)。本实施例通过前述方法可以利用磁编码器的输出值来实现关节行程的连续检测,数据不会出现跳变,以使后续可以快速准确的识别出操作中的关节动作。
[0048] 如图6所示,作为一种可选但有利的实施方式,在本实施例中,所述方法还包括以下步骤:S5:检测上肢组件末端的实际位置和姿态;
S6:根据上肢组件末端的实际位置和姿态对上肢组件的位置和姿态进行修正。
[0049] 本实施例可以通过上肢组件末端的实际位置和姿态来和识别出的上肢组件末端的位置和姿态进行比较,并将比较结果作为反馈来对上肢组件的位置和姿态进行修正。这样可以避免误差积累,从而进一步提高关节动作捕捉的准确性。如图12所示,本实施例可以通过捕捉的动作来控制格斗机器人。
[0050] 在机器人竞技格斗中,参与竞技比赛的机器人往往会受到其它机器人或者道具的击打,为了让玩家可以身临其境地体验激烈的竞技格斗比赛,可以在机器人上安装可以检测击打的检测装置,这样当机器人受到击打时检测装置就可以产生击打信号。对此,作为一种可选但有利的实施方式,在本实施例中,上肢组件的各个所述关节设置有阻力装置,所述阻力装置用于施加阻碍关节转动的阻力,如图7所示,所述方法还包括以下步骤;S7:获取机器人受到击打后所产生的击打信号;
当设置在机器人身上的检测装置检测到击打信号后,将击打信号发送给可穿戴式
动作捕捉设备。
[0051] S8:根据所述击打信号确定用于施加阻力的目标阻力装置;由于机器人所受到击打的部位可能不同,因此可以根据机器人所受到击打的部位
来确定施加阻力的阻力装置,并将该阻力装置作为目标阻力装置。例如当机器人的小臂受到击打,可以将上肢组件中小臂和第二大臂之间的关节所设置的阻力装置作为目标阻力装置。相应地可以在机器人的不同部位都安装检测装置,某个或某些部位受到击打后这些部位的检测装置会产生击打信号,然后根据产生击打信号的机器人的部位选择识别设备上相应关节的阻力装置作为目标阻力装置。
[0052] S9:根据所述击打信号控制所述目标阻力装置施加阻碍关节转动的阻力。
[0053] 本步骤可以根据机器人受到击打的位置和/或力度来控制上肢组件相应位置的阻力装置施加阻碍上肢组件运动的阻力,这样在机器人受到击打后操作者就不能像机器人没有受到击打时那样灵活的进行肢体运动,从而真实地让操作者感受到竞技格斗中受到攻击后动作迟钝的情况。
[0054] 实施例2请参阅图8,本实施例提供了一种格斗机器人控制器关节动作捕捉装置,用可穿戴
式动作捕捉设备识别人体的关节动作,所述可穿戴式动作捕捉设备包括穿戴件和上肢组
件,所述上肢组件一端与所述穿戴件可转动连接,另一端设置有用于在外力作用下带动上肢组件动作的操控部,所述上肢组件包括若干个依次连接的上肢部件,所述相邻两个上肢部件之间以可转动连接的方式形成关节,所述装置包括:
关节间距离获取模块,所述关节间距离获取模块用于获取所述上肢组件中各相邻
两关节之间的距离;
关节转动角位置获取模块,所述关节转动角位置获取模块用于获取所述上肢组件
中各个关节转动的角位置;
上肢组件位姿获取模块,所述上肢组件位姿获取模块用于根据各个关节之间的距
离和各个关节转动的角位置获取所述上肢组件的位置和姿态;
人体关节动作获取模块,所述人体关节动作获取模块用于根据所述上肢组件的位
置和姿态获取人体的关节动作。
[0055] 所述关节转动角位置获取模块还包括,极值获取子模块,所述极值获取子模块用于获取各个关节转动角位置的第一极值
和第二极值;
过零判断子模块,所述过零判断子模块用于判断采样检测过程中是否存在过零;
角位置获取子模块,所述角位置获取子模块用于根据判断结果、第一极值、第二极
值和采样检测所检测到的当前采样值获取各个关节转动的角位置。
[0056] 实施例3另外,结合图9描述的本发明中前述实施例的格斗机器人控制器关节动作捕捉方
法可以由本实施例的格斗机器人控制器关节动作捕捉设备来实现。图9示出了本发明实施例提供的格斗机器人控制器关节动作捕捉设备的硬件结构示意图。
[0057] 本实施例的格斗机器人控制器关节动作捕捉设备可以包括处理器401以及存储有计算机程序指令的存储器402。
[0058] 具体地,上述处理器401可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路。
[0059] 存储器402可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器402可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器402可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器402可在数据处理装置的内部或外部。在特定实施例中,存储器402是非易失性固态存储器。在特定实施例中,存储器402包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
[0060] 处理器401通过读取并执行存储器402中存储的计算机程序指令,以实现上述实施例中的任意一种区域随机格斗机器人控制器关节动作捕捉的数据寻址方法。
[0061] 在一个示例中本实施例的格斗机器人控制器关节动作捕捉设备还可包括通信接口403和总线410。其中,如图6所示,处理器401、存储器402、通信接口403通过总线410连接并完成相互间的通信。
[0062] 通信接口403,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。
[0063] 总线410包括硬件、软件或两者,将用于小数倍墨量输出的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI‑Express(PCI‑X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线410可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
[0064] 实施例4另外,结合上述实施例中的格斗机器人控制器关节动作捕捉方法,本发明实施例
可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指
令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种格斗机器人控制器关节动作捕捉方法。
[0065] 以上是对本发明实施例提供的格斗机器人控制器关节动作捕捉方法、装置、设备及存储介质的详细介绍。
[0066] 需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
[0067] 以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD‑ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。实施例5
为了便于理解,本实施例对可以应用与前述实施例的识别方法的可穿戴式动作捕
捉设备的结构做进一步的介绍,如图10所示,上肢组件2包括若干个依次连接的上肢部件和角度检测装置,所述相邻两个上肢部件之间以可转动连接的方式形成关节。前述实施例中的控制方法可以利用角度检测装置来检测各个关节转动的角度。其中角度检测装置可以采用磁编码器。
[0068] 前述控制设备利用相邻两个上肢部件之间的转动来模拟人体上肢的关节中相邻两个部位之间的转动关系。当操作者穿戴好本实施例中的控制设备后,操作者的手握持住上肢组件2末端的操控部,操作者通过上肢的运动带动操作者的手运动,操作者的手通过操控部带动上肢组件2运动。上肢组件2在运动的过程中,各个上肢部件相对转动,正好模拟了操作者上肢关节两端相关部位的相互运动,从而使上肢部件可以自然地跟随操作者的上肢同步运动。
[0069] 如图11所示,其中上肢部件包括肩部部件21、第一大臂部件22、第二大臂部件23、小臂部件24和手部部件25,所述肩部部件21的一端与所述穿戴件1形成第一关节,相对的另一端与所述第一大臂部件22形成第二关节,所述第一大臂部件22远离肩部部件21的一端与所述第二大臂部件23形成可转动的第三关节,所述第二大臂部件23远离所述第一大臂部件22的一端与所述小臂部件24形成可转动的第四关节,所述小臂部件24远离所述第二大臂的一端与所述手部部件25形成第五关节,所述操控部设置在所述手部部件25远离所述小臂部件24的一端。
[0070] 此外还可以在上肢组件的各个关节位置设置阻力装置,阻力装置可以采用力矩电机,力矩电机的外壳与形成所述关节的其中一个上肢部件连接,力矩电机的输出端则和形成所述关节的另一个上肢部件连接。
[0071] 还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
[0072] 以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
QQ群二维码
意见反馈