弹琴机器人的连续弹琴动作规划方法、系统、设备及介质与流程
未命名
09-17
阅读:152
评论:0
1.本发明属于弹琴机器人技术领域,尤其涉及一种弹琴机器人的连续弹琴动作规划方法、系统、设备及介质。
背景技术:
2.音乐机器人是音乐与科技交叉领域的顶层应用学科,越来越多的音乐演奏机器人进入人们的生活中,钢琴演奏机器人便是其中的一种。
3.现有的钢琴演奏机器人由左右手臂以及左右手爪构成。然而存在如下技术问题:现有的钢琴演奏机器人大多不具备灵巧的仿人结构,通过规划左右手臂以及左右手爪的动作来完成音乐演奏,然而左右手臂以及左右手爪的动作规划缺乏连续。
4.因此,亟需提出一种连续弹琴动作规划方法。
技术实现要素:
5.针对现有技术不足, 本发明提供了一种弹琴机器人的连续弹琴动作规划方法、系统、设备及介质。
6.根据本发明实施例的第一方面,提供了一种弹琴机器人的连续弹琴动作规划方法,所述方法包括:
7.解析乐谱获取演奏信息;
8.获取弹琴机器人的左/右机械臂末端的移动范围,将左/右机械臂末端的移动范围与琴键位置的交集作为弹琴机器人的左/右机械臂末端在琴键上的覆盖范围;
9.根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,对琴键进行分区,基于分区分配每个音符对应的执行手臂,得到左/右机械臂分别对应的琴键编号执行序列;
10.根据左/右机械臂分别对应的琴键编号执行序列,以机械臂末端的移动距离总和最小为优化目标,确定每个音符对应的执行手指以及机械臂位置对应的琴键编号,得到左/右机械臂上每个手指对应的手指动作序列;
11.根据左/右机械臂上每个手指对应的手指动作序列和手指的活动范围,得到每个音符起止时刻的左/右机械臂末端演奏序列;
12.将每个音符起止时刻的左/右机械臂末端演奏序列在时间上进行连续插值,获得整个演奏序列的左/右机机械臂末端的移动轨迹和手指动作轨迹序列。
13.根据本发明实施例的第二方面,提供了一种弹琴机器人的连续弹琴动作规划系统,所述系统包括:
14.演奏信息获取单元,用于解析乐谱获取演奏信息;
15.执行手臂规划单元,通过获取弹琴机器人的左/右机械臂末端的移动范围,将左/右机械臂末端的移动范围与琴键位置的交集作为弹琴机器人的左/右机械臂末端在琴键上的覆盖范围;根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,对琴键进行分区,基于分区分配每个音符对应的执行手臂,得到左/右机械臂分别对应的琴键编号执行序列;
16.执行手指规划单元,根据左/右机械臂分别对应的琴键编号执行序列,以机械臂末端的移动距离总和最小为优化目标,确定每个音符对应的执行手指以及机械臂位置对应的琴键编号,得到左/右机械臂上每个手指对应的手指动作序列;
17.移动轨迹规划单元,根据左/右机械臂上每个手指对应的手指动作序列和手指的活动范围,得到每个音符起止时刻的左/右机械臂末端演奏序列;将每个音符起止时刻的左/右机械臂末端演奏序列在时间上进行连续插值,获得整个演奏序列的左/右机机械臂末端的移动轨迹和手指动作轨迹序列。
18.根据本发明实施例的第三方面,提供了一种电子设备,包括存储器和处理器,所述存储器与所述处理器耦接;其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现上述的弹琴机器人的连续弹琴动作规划方法。
19.根据本发明实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述的弹琴机器人的连续弹琴动作规划方法。
20.本发明的有益效果为:本发明提供了一种弹琴机器人的连续弹琴动作规划方法,通过获取左/右机械臂分别对应的琴键编号执行序列,确定每个音符对应的执行手指以及机械臂位置对应的琴键编号,得到左/右机械臂上每个手指对应的手指动作序列,再根据手指的活动范围,得到每个音符起止时刻的左/右机械臂末端演奏序列;将每个音符起止时刻的左/右机械臂末端演奏序列在时间上进行连续插值,获得整个演奏序列的左/右机机械臂末端的移动轨迹和手指动作轨迹序列。本发明通过将每个音符起止时刻的左/右机械臂末端演奏序列在时间上进行连续插值,规划出连续的左右手臂以及左右手爪的动作。
附图说明
21.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
22.图1为本发明实施例提供的弹琴机器人的连续弹琴动作规划方法的流程图;
23.图2为本发明实施例提供的左/右机械臂分别对应的琴键编号执行序列的流程图;
24.图3为本发明实施例提供的左/右机械臂上每个手指对应的手指动作序列的流程图;
25.图4为本发明实施例提供的弹琴机器人的连续弹琴动作规划系统的示意图;
26.图5为本发明实施例提供的一种电子设备的示意图。
具体实施方式
27.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
28.需要说明的是,在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。
29.如图1所示,本发明实施例提供了一种弹琴机器人的连续弹琴动作规划方法,所述方法包括以下步骤:
30.步骤s1,解析乐谱获取演奏信息。
31.在本实例中,所述钢琴曲目通过midi格式进行存储,midi(musical instrument digital interface)是一种数字音乐接口标准,用于在电子乐器、计算机和其他音乐设备之间传输音乐数据。midi文件由两部分构成:首部块header chunk(mthd)和音轨块track chunk(mtrk)。
32.其中,mthd是midi格式文件的文件头,包含了midi文件的格式和属性等基本信息,这些数据包括:格式类型(format type)、乐器轨道数(number of tracks)和分辨率(time division)。mtrk是midi格式文件的中的音轨信息,包括时间差、按下或抬起动作、执行音符、力度。
33.进一步地,根据midi格式的乐谱存储规则,提取乐谱的音符信息,获取每个音符的起始演奏时间戳和持续时长。
34.步骤s2,获取弹琴机器人的左/右机械臂末端的移动范围,将左/右机械臂末端的移动范围与琴键位置的交集作为弹琴机器人的左/右机械臂末端在琴键上的覆盖范围。
35.其中,获取弹琴机器人的左/右机械臂末端的移动范围,包括:
36.获取左/右机械臂中第一个关节相对于基坐标系下的坐标变换矩阵,利用坐标系变换进行左/右机械臂正运动学建模,以关节旋转范围为约束,遍历左/右机械臂中所有关节,得到弹琴机器人的左/右机械臂末端的移动范围。
37.示例性地,根据机械臂正运动学,采用dh参数表对机械臂的尺寸结构进行描述,利用从坐标系i到坐标系i-1的通用变换矩阵公式进行正运动学建模,最终获得七自由度机械臂末端的正运动学变化矩阵即七自由度机械臂末端相对基坐标系的位姿关系,表达式如下:
38.t=t0×
t1×
t2×
t3×
t4×
t5×
t639.式中,t0为第一个关节相对基坐标系下的坐标变换矩阵,t1为第二个关节相对第一个关节的局部坐标系的坐标变换矩阵,t2为第三个关节相对第二个关节的局部坐标系的坐标变换矩阵,t3为第四个关节相对第三个关节的局部坐标系的坐标变换矩阵,t4为第五个关节相对第四个关节的局部坐标系的坐标变换矩阵,t5为第六个关节相对第五个关节的局部坐标系的坐标变换矩阵,t6为第七个关节相对第六个关节的局部坐标系的坐标变换矩阵。通过对所有关节在旋转范围内遍历并进行正运动学计算,可得到该机械臂末端的移动范围。
40.需要说明的是,弹琴机器人的左/右机械臂末端的移动范围为左/右机械臂末端在空间中的立体的移动范围,通过将左/右机械臂末端的移动范围与琴键位置取交集,得到左/右机械臂末端在琴键平面上的移动范围。
41.步骤s3,根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,对琴键进行分区,基于分区分配每个音符对应的执行手臂,得到左/右机械臂分别对应的琴键编号执行序列。
42.具体地,如图2所示,所述步骤s3包括以下子步骤:
43.步骤s301,根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,由左向右将
琴键分为左臂演奏区、双臂重叠区和右臂演奏区。
44.其中,左臂演奏区为只有机械臂末可以覆盖的琴键区域,右臂演奏区为只有机械臂末可覆盖的琴键区域,双臂重叠区为左/右机械臂可同时覆盖的琴键区域。
45.步骤s302,对位于左臂演奏区的琴键,将左机械臂作为执行手臂;对位于右臂演奏区的琴键,将右机械臂作为执行手臂;对位于双臂重叠区的琴键,计算当前音符对应的琴键分别与左/右机械臂当前演奏琴键位置的距离,根据距离最近原则分配执行手臂。得到左/右机械臂分别对应的琴键编号执行序列。
46.对位于双臂重叠区的琴键,计算当前音符对应的琴键分别与左/右机械臂当前演奏琴键位置的距离,根据距离最近原则分配执行手臂,包括:
47.l
l
=|p
l-p
t |
48.lr=|p
r-p
t |
49.式中,p
l
为当前左机械臂演奏琴键的位置,pr为当前右机械臂演奏琴键的位置,p
t
为当前音符对应的琴键的位置。l
l
为左臂机械当前的演奏琴键与当前音符对应的琴键间的距离,lr为右机械当前的演奏琴键与当前音符对应的琴键间的距离。
50.通过比较l
l
与lr之间的大小,选择距离小的机械臂作为执行手臂来演奏当前音符对应的琴键。
51.步骤s4,根据左/右机械臂分别对应的琴键编号执行序列,以机械臂末端的移动距离总和最小为优化目标,规划每个音符对应的执行手指,确定每个音符对应的执行手指以及机械臂位置对应的琴键编号,得到左/右机械臂上每个手指对应的手指动作序列。
52.具体地,在本实例中,根据步骤s3获得的左/右机械臂分别对应的音符序列,以机械臂末端的移动距离总和最小为优化目标,采用动态规划算法确定每个音符对应的执行手指以及机械臂位置对应的琴键编号。
53.需要说明的是,机械臂位置对应的琴键编号与其中指对应的琴键编号一致。设定执行手指分配系数j,以右手为例,当执行手指为食指时,j=-1;当执行手指为无名指时,j=1,其他手指同理;以左手为例,当执行手指为食指时,j=1;当执行手指为无名指时,j=-1,其他手指同理。每个音符左/右机械臂分别对应的琴键编号执行序列与机械臂位置对应的琴键编号与执行手指分配系数j之和一致。
54.其中,手指动作序列包括每个手指要弹奏的琴键k_i、琴键的空间位置kp_i、琴键的开始演奏时间kts_i以及琴键结束演奏时间kte_i。
55.步骤s5,根据步骤s4获取的左/右机械臂上每个手指对应的手指动作序列,并根据手指的活动范围,获得每个音符开始演奏时间的左/右机械臂末端位置,以及每个音符结束演奏时间的左/右机械臂末端位置;按演奏时序进行拼接,得到每个音符起止时刻的左/右机械臂末端演奏序列。
56.具体地,如图3所示,所述步骤s5具体包括以下子步骤:
57.将手指的左右活动范围记为 finger_p ∈[-finger_l,finger_l]。
[0058]
步骤s501,以手指居中位置即finger_p=0,计算演奏每个音符所对应的手臂末端位置,获得手臂末端位置序列hand_pose_list_mid。
[0059]
步骤s502,以手臂单次移动距离最小原则,根据手指的左右活动范围调整步骤s501得到的手臂末端位置序列hand_pose_list_mid,获得每个音符开始演奏时间的左/右
机械臂末端位置序列hand_pose_list_start。
[0060]
步骤s503,以手臂单次移动距离最小原则,根据手指的左右活动范围调整步骤s502得到的每个音符开始演奏时刻的手臂末端位置序列hand_pose_list_start,获得每个音符结束演奏时间的左/右机械臂末端位置hand_pose_list_end。
[0061]
步骤s504,将每个音符开始演奏时间的的左/右机械臂末端位置序列hand_pose_list_start与每个音符结束演奏时间的左/右机械臂末端位置hand_pose_list_end按演奏时序进行拼接,获得每个音符起止时刻的左/右机械臂末端演奏序列hand_pose_list。
[0062]
步骤s6,对步骤s5获取的每个音符起止时刻的左/右机械臂末端演奏序列hand_pose_list在时间上进行连续插值,获得整个演奏序列的左/右机机械臂末端的移动轨迹hand_pose_list_play。根据左/右机机械臂末端的移动轨迹hand_pose_list_play和左/右机械臂分别对应的琴键编号执行序列,计算每一音符对应的机械手指的动作指令,获得手指动作轨迹序列finger_pose_list_play。
[0063]
所述方法还包括:
[0064]
步骤s7,将左/右机机械臂末端的移动轨迹hand_pose_list_play和手指动作轨迹序列finger_pose_list_play发送至控制器,控制器分别求解左/右机械臂与机械爪的各关节运动学逆解,并按照时序控制左/右机机械臂和手指同步运动,最终完成弹琴机器人连续的演奏过程。
[0065]
实施例1
[0066]
本实施例1中,以欢乐颂为实施曲目对本发明提供的一种弹琴机器人的连续弹琴动作规划方法的实施过程进行进一步详细描述。
[0067]
步骤s1、解析乐谱获取演奏信息。
[0068]
根据midi格式的乐谱存储规则,提取《欢乐颂》乐谱的音符信息,获取每个音符的起始演奏时间戳和持续时长。
[0069]
《欢乐颂》的部分音轨信息如表1所示:
[0070]
表1:欢乐颂部分音轨信息表
[0071]
步骤s2、根据机械臂的正运动学获取弹琴机器人的左/右机械臂末端的移动范围,将左/右机械臂末端的移动范围与琴键位置的交集作为弹琴机器人的左/右机械臂末端在琴键上的覆盖范围。
[0072]
在本实施例中,左机械臂、右机械臂及琴键的水平方向范围如表2所示。
[0073]
表2:覆盖范围表
[0074]
进一步地,钢琴白键的宽度为23.5mm,琴键编号为1~52。由上表2,对左/右机械臂末端的移动范围与琴键位置取交集,左机械臂的琴键编号覆盖范围为1~34,右机械臂的琴键编号覆盖范围为18~52。
[0075]
步骤s3、根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,对琴键进行分区,基于分区分配每个音符对应的执行手臂,得到左/右机械臂分别对应的琴键编号执行序列。
[0076]
具体地,所述步骤s3包括以下子步骤:
[0077]
步骤s301,根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,由左向右将琴键分为左臂演奏区、双臂重叠区和右臂演奏区。
[0078]
在本实例中,琴键编号1~17号的琴键为左臂演奏区,琴键编号35~52号的琴键为右臂演奏区,琴键编号18~34号的琴键为双臂重叠区。
[0079]
步骤s302,对位于左臂演奏区的琴键,将左机械臂作为执行手臂;对位于右臂演奏区的琴键,将右机械臂作为执行手臂;对位于双臂重叠区的琴键,计算当前音符对应的琴键分别与左/右机械臂当前演奏琴键位置的距离,根据距离最近原则分配执行手臂。得到左/右机械臂分别对应的音符序列。
[0080]
在本实例中,琴键编号1~17号的琴键直接由左臂进行演奏,琴键编号35~52号的琴键直接由右臂进行演奏。
[0081]
本实施例中,左/右机械臂需演奏的琴键如表3所示:
[0082]
表3:演奏琴键内容表
[0083]
步骤s4、根据步骤s3获得的左/右机械臂分别对应的琴键编号执行序列,以机械臂末端的移动距离总和最小为优化目标,采用动态规划算法为每个音符分配一个对应的执行手指,确定每个音符对应的执行手指以及机械臂位置对应的琴键编号,得到左/右机械臂上每个手指对应的手指动作序列。
[0084]
本实施例中,通过规划后得到的结果如表4所示:
[0085]
表4:臂爪规划的结果表
[0086]
需要说明的是,在本实例中,以机械臂位置对应的琴键编号与中指对应的琴键编号一致。
[0087]
其中,手指动作序列包括每个手指要弹奏的琴键k_i、琴键的空间位置kp_i、琴键的开始演奏时间kts_i以及琴键结束演奏的时间kte_i。
[0088]
步骤s5、根据步骤s4获取的左/右机械臂上每个手指对应的手指动作序列,并根据手指的活动范围,获得每个音符开始演奏时间的左/右机械臂末端位置,以及每个音符结束演奏时间的左/右机械臂末端位置;按演奏时序进行拼接,得到每个音符起止时刻的左/右机械臂末端演奏序列。
[0089]
本实施例中手指的左右活动范围 finger_l=7mm。
[0090]
具体地,所述步骤s5具体包括以下子步骤:
[0091]
s501,以手指居中位置即finger_p=0计算演奏每个音符所对应的手臂末端位置,获得手指居中位置时的左/右机械臂末端位置序列hand_pose_list_mid。本实施例中:
[0092]
表5:左/右机械臂末端位置序列hand_pose_list_mid
[0093]
s502,以手臂单次移动距离最小原则,根据手指的左右活动范围调整步骤s501得到的手指居中位置时的左/右机械臂末端位置序列表hand_pose_list_mid,获得每个音符开始演奏时间的左/右机械臂末端位置序列hand_pose_list_start。
[0094]
表6:左/右机械臂末端位置序列hand_pose_list_start
[0095]
s503,以手臂单次移动距离最小原则,根据手指的左右活动范围调整步骤s502得到的每个音符开始演奏时刻的手臂末端位置序列hand_pose_list_start,获得每个音符结束演奏时间的左/右机械臂末端位置hand_pose_list_end。
[0096]
表7:左/右机械臂末端位置hand_pose_list_end
[0097]
步骤s504,将每个音符开始演奏时间的的左/右机械臂末端位置序列hand_pose_list_start与每个音符结束演奏时间的左/右机械臂末端位置hand_pose_list_end按演奏时序进行拼接,获得每个音符起止时刻的左/右机械臂末端演奏序列hand_pose_list。
[0098]
表8:左/右机械臂末端演奏序列hand_pose_list
memory,eeprom)等。
[0110]
处理器102可以是一种集成电路芯片,具有信号处理能力。该处理器102可以是通用处理器102,包括中央处理器102(central processing unit,cpu)、网络处理器102(network processor,np)等;还可以是数字信号处理器102(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0111]
在本技术所提供的实施例中,应该理解到,所揭露的方法及系统,也可以通过其它的方式实现。以上所描述的方法及系统实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的方法及系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0112]
另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0113]
另一方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器102执行时实现如上述第一方面中任一项的方法。所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器101(rom,read-only memory)、随机存取存储器101(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0114]
以上实施例仅用于说明本发明的设计思想和特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,本发明的保护范围不限于上述实施例。所以,凡依据本发明所揭示的原理、设计思路所作的等同变化或修饰,均在本发明的保护范围之内。
技术特征:
1.一种弹琴机器人的连续弹琴动作规划方法,其特征在于,所述方法包括:解析乐谱获取演奏信息;获取弹琴机器人的左/右机械臂末端的移动范围,将左/右机械臂末端的移动范围与琴键位置的交集作为弹琴机器人的左/右机械臂末端在琴键上的覆盖范围;根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,对琴键进行分区,基于分区分配每个音符对应的执行手臂,得到左/右机械臂分别对应的琴键编号执行序列;根据左/右机械臂分别对应的琴键编号执行序列,以机械臂末端的移动距离总和最小为优化目标,确定每个音符对应的执行手指以及机械臂位置对应的琴键编号,得到左/右机械臂上每个手指对应的手指动作序列;根据左/右机械臂上每个手指对应的手指动作序列和手指的活动范围,得到每个音符起止时刻的左/右机械臂末端演奏序列;将每个音符起止时刻的左/右机械臂末端演奏序列在时间上进行连续插值,获得整个演奏序列的左/右机机械臂末端的移动轨迹和手指动作轨迹序列。2.根据权利要求1所述的弹琴机器人的连续弹琴动作规划方法,其特征在于,解析乐谱获取演奏信息,包括:根据midi格式的乐谱存储规则,提取乐谱的音符信息,获取每个音符的起始演奏时间、结束演奏时间和持续时长。3.根据权利要求1所述的弹琴机器人的连续弹琴动作规划方法,其特征在于,获取弹琴机器人的左/右机械臂末端的移动范围,包括:获取左/右机械臂中第一个关节相对于基坐标系下的坐标变换矩阵,利用坐标系变换进行左/右机械臂正运动学建模,以关节旋转范围为约束,遍历左/右机械臂中所有关节,得到弹琴机器人的左/右机械臂末端的移动范围。4.根据权利要求1所述的弹琴机器人的连续弹琴动作规划方法,其特征在于,根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,对琴键进行分区,基于分区分配每个音符对应的执行手臂,包括:根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,由左向右将琴键分为左臂演奏区、双臂重叠区和右臂演奏区;对位于左臂演奏区的琴键,将左机械臂作为执行手臂;对位于右臂演奏区的琴键,将右机械臂作为执行手臂;对位于双臂重叠区的琴键,计算当前音符对应的琴键分别与左/右机械臂当前演奏琴键位置的距离,根据距离最近原则分配执行手臂;得到左/右机械臂分别对应的琴键编号执行序列。5.根据权利要求1所述的弹琴机器人的连续弹琴动作规划方法,其特征在于,根据左/右机械臂分别对应的琴键编号执行序列,以机械臂末端的移动距离总和最小为优化目标,确定每个音符对应的执行手指以及机械臂位置对应的琴键编号,包括:机械臂位置对应的琴键编号与其中指对应的琴键编号相同;设定执行手指分配系数,每个音符对应的执行琴键编号等于机械臂位置对应的琴键编号与执行手指分配系数之和。6.根据权利要求1所述的弹琴机器人的连续弹琴动作规划方法,其特征在于,根据手指
的动作序列和手指的活动范围,得到每个音符起止时刻的左/右机械臂末端演奏序列,包括:获取手指居中位置时的左/右机械臂末端位置序列;以手臂单次移动距离最小原则,根据手指的左右活动范围调整手指居中位置时的左/右机械臂末端位置序列,获得每个音符开始演奏时间的的左/右机械臂末端位置序列;以手臂单次移动距离最小原则,根据手指的左右活动范围调整每个音符开始演奏时间的的左/右机械臂末端位置序列,获得每个音符结束演奏时间的左/右机械臂末端位置;将每个音符开始演奏时间的的左/右机械臂末端位置序列与每个音符结束演奏时间的左/右机械臂末端位置按演奏时序进行拼接,获得每个音符起止时刻的左/右机械臂末端演奏序列。7.根据权利要求1所述的弹琴机器人的连续弹琴动作规划方法,其特征在于,所述方法还包括:将左/右机机械臂末端的移动轨迹和手指动作轨迹序列发送至控制器,控制器分别求解左/右机械臂与机械爪的各关节运动学逆解,并按照时序控制左/右机机械臂和手指同步运动,完成弹琴机器人的连续演奏。8.一种弹琴机器人的连续弹琴动作规划系统,其特征在于,所述系统包括:演奏信息获取单元,用于解析乐谱获取演奏信息;执行手臂规划单元,通过获取弹琴机器人的左/右机械臂末端的移动范围,将左/右机械臂末端的移动范围与琴键位置的交集作为弹琴机器人的左/右机械臂末端在琴键上的覆盖范围;根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,对琴键进行分区,基于分区分配每个音符对应的执行手臂,得到左/右机械臂分别对应的琴键编号执行序列;执行手指规划单元,根据左/右机械臂分别对应的琴键编号执行序列,以机械臂末端的移动距离总和最小为优化目标,确定每个音符对应的执行手指以及机械臂位置对应的琴键编号,得到左/右机械臂上每个手指对应的手指动作序列;移动轨迹规划单元,根据左/右机械臂上每个手指对应的手指动作序列和手指的活动范围,得到每个音符起止时刻的左/右机械臂末端演奏序列;将每个音符起止时刻的左/右机械臂末端演奏序列在时间上进行连续插值,获得整个演奏序列的左/右机机械臂末端的移动轨迹和手指动作轨迹序列。9.一种电子设备,包括存储器和处理器,其特征在于,所述存储器与所述处理器耦接;其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现上述权利要求1-7任一项所述的弹琴机器人的连续弹琴动作规划方法。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的弹琴机器人的连续弹琴动作规划方法。
技术总结
本发明公开了一种弹琴机器人的连续弹琴动作规划方法、系统、设备及介质,包括:解析乐谱获取演奏信息;获取弹琴机器人的左/右机械臂末端在琴键上的覆盖范围;对琴键进行分区,基于分区分配每个音符对应的执行手臂;根据左/右机械臂分别对应的音符序列,以机械臂末端的移动距离总和最小为优化目标,规划每个音符对应的执行手指,得到左/右机械臂上每个手指对应的手指动作序列;根据手指的动作序列和手指的活动范围,得到每个音符起止时刻的左/右机械臂末端演奏序列;将每个音符起止时刻的左/右机械臂末端演奏序列在时间上进行连续插值,获得整个演奏序列的左/右机机械臂末端的移动轨迹和手指动作轨迹序列。移动轨迹和手指动作轨迹序列。移动轨迹和手指动作轨迹序列。
技术研发人员:高广 钟灵 张璞 宛敏红 顾建军
受保护的技术使用者:之江实验室
技术研发日:2023.08.09
技术公布日:2023/9/14
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
