CN116728419B - 弹琴机器人的连续弹琴动作规划方法、系统、设备及介质 - Google Patents
弹琴机器人的连续弹琴动作规划方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN116728419B CN116728419B CN202310996252.3A CN202310996252A CN116728419B CN 116728419 B CN116728419 B CN 116728419B CN 202310996252 A CN202310996252 A CN 202310996252A CN 116728419 B CN116728419 B CN 116728419B
- Authority
- CN
- China
- Prior art keywords
- playing
- mechanical arm
- finger
- right mechanical
- arm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000010391 action planning Effects 0.000 title claims abstract description 25
- 230000033001 locomotion Effects 0.000 claims abstract description 40
- 230000009471 action Effects 0.000 claims abstract description 37
- 238000000638 solvent extraction Methods 0.000 claims abstract description 11
- 238000005457 optimization Methods 0.000 claims abstract description 9
- 230000009466 transformation Effects 0.000 claims description 12
- 239000011159 matrix material Substances 0.000 claims description 11
- 238000003860 storage Methods 0.000 claims description 9
- 238000005192 partition Methods 0.000 claims description 7
- 210000000078 claw Anatomy 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000005057 finger movement Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J11/00—Manipulators not otherwise provided for
- B25J11/003—Manipulators for entertainment
- B25J11/004—Playing a music instrument
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1682—Dual arm manipulator; Coordination of several manipulators
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Manipulator (AREA)
Abstract
本发明公开了一种弹琴机器人的连续弹琴动作规划方法、系统、设备及介质,包括:解析乐谱获取演奏信息;获取弹琴机器人的左/右机械臂末端在琴键上的覆盖范围;对琴键进行分区,基于分区分配每个音符对应的执行手臂;根据左/右机械臂分别对应的音符序列,以机械臂末端的移动距离总和最小为优化目标,规划每个音符对应的执行手指,得到左/右机械臂上每个手指对应的手指动作序列;根据手指的动作序列和手指的活动范围,得到每个音符起止时刻的左/右机械臂末端演奏序列;将每个音符起止时刻的左/右机械臂末端演奏序列在时间上进行连续插值,获得整个演奏序列的左/右机机械臂末端的移动轨迹和手指动作轨迹序列。
Description
技术领域
本发明属于弹琴机器人技术领域,尤其涉及一种弹琴机器人的连续弹琴动作规划方法、系统、设备及介质。
背景技术
音乐机器人是音乐与科技交叉领域的顶层应用学科,越来越多的音乐演奏机器人进入人们的生活中,钢琴演奏机器人便是其中的一种。
现有的钢琴演奏机器人由左右手臂以及左右手爪构成。然而存在如下技术问题:现有的钢琴演奏机器人大多不具备灵巧的仿人结构,通过规划左右手臂以及左右手爪的动作来完成音乐演奏,然而左右手臂以及左右手爪的动作规划缺乏连续。
因此,亟需提出一种连续弹琴动作规划方法。
发明内容
针对现有技术不足, 本发明提供了一种弹琴机器人的连续弹琴动作规划方法、系统、设备及介质。
根据本发明实施例的第一方面,提供了一种弹琴机器人的连续弹琴动作规划方法,所述方法包括:
解析乐谱获取演奏信息;
获取弹琴机器人的左/右机械臂末端的移动范围,将左/右机械臂末端的移动范围与琴键位置的交集作为弹琴机器人的左/右机械臂末端在琴键上的覆盖范围;
根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,对琴键进行分区,基于分区分配每个音符对应的执行手臂,得到左/右机械臂分别对应的琴键编号执行序列;
根据左/右机械臂分别对应的琴键编号执行序列,以机械臂末端的移动距离总和最小为优化目标,确定每个音符对应的执行手指以及机械臂位置对应的琴键编号,得到左/右机械臂上每个手指对应的手指动作序列;
根据左/右机械臂上每个手指对应的手指动作序列和手指的活动范围,得到每个音符起止时刻的左/右机械臂末端演奏序列;
将每个音符起止时刻的左/右机械臂末端演奏序列在时间上进行连续插值,获得整个演奏序列的左/右机机械臂末端的移动轨迹和手指动作轨迹序列。
根据本发明实施例的第二方面,提供了一种弹琴机器人的连续弹琴动作规划系统,所述系统包括:
演奏信息获取单元,用于解析乐谱获取演奏信息;
执行手臂规划单元,通过获取弹琴机器人的左/右机械臂末端的移动范围,将左/右机械臂末端的移动范围与琴键位置的交集作为弹琴机器人的左/右机械臂末端在琴键上的覆盖范围;根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,对琴键进行分区,基于分区分配每个音符对应的执行手臂,得到左/右机械臂分别对应的琴键编号执行序列;
执行手指规划单元,根据左/右机械臂分别对应的琴键编号执行序列,以机械臂末端的移动距离总和最小为优化目标,确定每个音符对应的执行手指以及机械臂位置对应的琴键编号,得到左/右机械臂上每个手指对应的手指动作序列;
移动轨迹规划单元,根据左/右机械臂上每个手指对应的手指动作序列和手指的活动范围,得到每个音符起止时刻的左/右机械臂末端演奏序列;将每个音符起止时刻的左/右机械臂末端演奏序列在时间上进行连续插值,获得整个演奏序列的左/右机机械臂末端的移动轨迹和手指动作轨迹序列。
根据本发明实施例的第三方面,提供了一种电子设备,包括存储器和处理器,所述存储器与所述处理器耦接;其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现上述的弹琴机器人的连续弹琴动作规划方法。
根据本发明实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述的弹琴机器人的连续弹琴动作规划方法。
本发明的有益效果为:本发明提供了一种弹琴机器人的连续弹琴动作规划方法,通过获取左/右机械臂分别对应的琴键编号执行序列,确定每个音符对应的执行手指以及机械臂位置对应的琴键编号,得到左/右机械臂上每个手指对应的手指动作序列,再根据手指的活动范围,得到每个音符起止时刻的左/右机械臂末端演奏序列;将每个音符起止时刻的左/右机械臂末端演奏序列在时间上进行连续插值,获得整个演奏序列的左/右机机械臂末端的移动轨迹和手指动作轨迹序列。本发明通过将每个音符起止时刻的左/右机械臂末端演奏序列在时间上进行连续插值,规划出连续的左右手臂以及左右手爪的动作。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的弹琴机器人的连续弹琴动作规划方法的流程图;
图2为本发明实施例提供的左/右机械臂分别对应的琴键编号执行序列的流程图;
图3为本发明实施例提供的左/右机械臂上每个手指对应的手指动作序列的流程图;
图4为本发明实施例提供的弹琴机器人的连续弹琴动作规划系统的示意图;
图5为本发明实施例提供的一种电子设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。
如图1所示,本发明实施例提供了一种弹琴机器人的连续弹琴动作规划方法,所述方法包括以下步骤:
步骤S1,解析乐谱获取演奏信息。
在本实例中,所述钢琴曲目通过MIDI格式进行存储,MIDI(Musical InstrumentDigital Interface)是一种数字音乐接口标准,用于在电子乐器、计算机和其他音乐设备之间传输音乐数据。MIDI文件由两部分构成:首部块Header Chunk(MThd)和音轨块TrackChunk(MTrk)。
其中,MThd是MIDI格式文件的文件头,包含了MIDI文件的格式和属性等基本信息,这些数据包括:格式类型(Format Type)、乐器轨道数(Number of Tracks)和分辨率(TimeDivision)。MTrk是MIDI格式文件的中的音轨信息,包括时间差、按下或抬起动作、执行音符、力度。
进一步地,根据MIDI格式的乐谱存储规则,提取乐谱的音符信息,获取每个音符的起始演奏时间戳和持续时长。
步骤S2,获取弹琴机器人的左/右机械臂末端的移动范围,将左/右机械臂末端的移动范围与琴键位置的交集作为弹琴机器人的左/右机械臂末端在琴键上的覆盖范围。
其中,获取弹琴机器人的左/右机械臂末端的移动范围,包括:
获取左/右机械臂中第一个关节相对于基坐标系下的坐标变换矩阵,利用坐标系变换进行左/右机械臂正运动学建模,以关节旋转范围为约束,遍历左/右机械臂中所有关节,得到弹琴机器人的左/右机械臂末端的移动范围。
示例性地,根据机械臂正运动学,采用DH参数表对机械臂的尺寸结构进行描述,利用从坐标系i到坐标系i-1的通用变换矩阵公式进行正运动学建模,最终获得七自由度机械臂末端的正运动学变化矩阵即七自由度机械臂末端相对基坐标系的位姿关系,表达式如下:
T=T0×T1×T2×T3×T4×T5×T6
式中,T0为第一个关节相对基坐标系下的坐标变换矩阵,T1为第二个关节相对第一个关节的局部坐标系的坐标变换矩阵,T2为第三个关节相对第二个关节的局部坐标系的坐标变换矩阵,T3为第四个关节相对第三个关节的局部坐标系的坐标变换矩阵,T4为第五个关节相对第四个关节的局部坐标系的坐标变换矩阵,T5为第六个关节相对第五个关节的局部坐标系的坐标变换矩阵,T6为第七个关节相对第六个关节的局部坐标系的坐标变换矩阵。通过对所有关节在旋转范围内遍历并进行正运动学计算,可得到该机械臂末端的移动范围。
需要说明的是,弹琴机器人的左/右机械臂末端的移动范围为左/右机械臂末端在空间中的立体的移动范围,通过将左/右机械臂末端的移动范围与琴键位置取交集,得到左/右机械臂末端在琴键平面上的移动范围。
步骤S3,根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,对琴键进行分区,基于分区分配每个音符对应的执行手臂,得到左/右机械臂分别对应的琴键编号执行序列。
具体地,如图2所示,所述步骤S3包括以下子步骤:
步骤S301,根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,由左向右将琴键分为左臂演奏区、双臂重叠区和右臂演奏区。
其中,左臂演奏区为只有机械臂末可以覆盖的琴键区域,右臂演奏区为只有机械臂末可覆盖的琴键区域,双臂重叠区为左/右机械臂可同时覆盖的琴键区域。
步骤S302,对位于左臂演奏区的琴键,将左机械臂作为执行手臂;对位于右臂演奏区的琴键,将右机械臂作为执行手臂;对位于双臂重叠区的琴键,计算当前音符对应的琴键分别与左/右机械臂当前演奏琴键位置的距离,根据距离最近原则分配执行手臂。得到左/右机械臂分别对应的琴键编号执行序列。
对位于双臂重叠区的琴键,计算当前音符对应的琴键分别与左/右机械臂当前演奏琴键位置的距离,根据距离最近原则分配执行手臂,包括:
Ll=|Pl-Pt |
Lr=|Pr-Pt |
式中,Pl为当前左机械臂演奏琴键的位置,Pr为当前右机械臂演奏琴键的位置,Pt为当前音符对应的琴键的位置。Ll为左臂机械当前的演奏琴键与当前音符对应的琴键间的距离,Lr为右机械当前的演奏琴键与当前音符对应的琴键间的距离。
通过比较Ll与Lr之间的大小,选择距离小的机械臂作为执行手臂来演奏当前音符对应的琴键。
步骤S4,根据左/右机械臂分别对应的琴键编号执行序列,以机械臂末端的移动距离总和最小为优化目标,规划每个音符对应的执行手指,确定每个音符对应的执行手指以及机械臂位置对应的琴键编号,得到左/右机械臂上每个手指对应的手指动作序列。
具体地,在本实例中,根据步骤S3获得的左/右机械臂分别对应的音符序列,以机械臂末端的移动距离总和最小为优化目标,采用动态规划算法确定每个音符对应的执行手指以及机械臂位置对应的琴键编号。
需要说明的是,机械臂位置对应的琴键编号与其中指对应的琴键编号一致。设定执行手指分配系数j,以右手为例,当执行手指为食指时,j=-1;当执行手指为无名指时,j=1,其他手指同理;以左手为例,当执行手指为食指时,j=1;当执行手指为无名指时,j=-1,其他手指同理。每个音符左/右机械臂分别对应的琴键编号执行序列与机械臂位置对应的琴键编号与执行手指分配系数j之和一致。
其中,手指动作序列包括每个手指要弹奏的琴键K_i、琴键的空间位置Kp_i、琴键的开始演奏时间KTs_i以及琴键结束演奏时间KTe_i。
步骤S5,根据步骤S4获取的左/右机械臂上每个手指对应的手指动作序列,并根据手指的活动范围,获得每个音符开始演奏时间的左/右机械臂末端位置,以及每个音符结束演奏时间的左/右机械臂末端位置;按演奏时序进行拼接,得到每个音符起止时刻的左/右机械臂末端演奏序列。
具体地,如图3所示,所述步骤S5具体包括以下子步骤:
将手指的左右活动范围记为 Finger_p ∈[-Finger_l,Finger_l]。
步骤S501,以手指居中位置即Finger_p=0,计算演奏每个音符所对应的手臂末端位置,获得手臂末端位置序列Hand_pose_list_mid。
步骤S502,以手臂单次移动距离最小原则,根据手指的左右活动范围调整步骤S501得到的手臂末端位置序列Hand_pose_list_mid,获得每个音符开始演奏时间的左/右机械臂末端位置序列Hand_pose_list_start。
步骤S503,以手臂单次移动距离最小原则,根据手指的左右活动范围调整步骤S502得到的每个音符开始演奏时刻的手臂末端位置序列Hand_pose_list_start,获得每个音符结束演奏时间的左/右机械臂末端位置Hand_pose_list_end。
步骤S504,将每个音符开始演奏时间的的左/右机械臂末端位置序列Hand_pose_list_start与每个音符结束演奏时间的左/右机械臂末端位置Hand_pose_list_end按演奏时序进行拼接,获得每个音符起止时刻的左/右机械臂末端演奏序列Hand_pose_list。
步骤S6,对步骤S5获取的每个音符起止时刻的左/右机械臂末端演奏序列Hand_pose_list在时间上进行连续插值,获得整个演奏序列的左/右机机械臂末端的移动轨迹Hand_pose_list_play。根据左/右机机械臂末端的移动轨迹Hand_pose_list_play和左/右机械臂分别对应的琴键编号执行序列,计算每一音符对应的机械手指的动作指令,获得手指动作轨迹序列Finger_pose_list_play。
所述方法还包括:
步骤S7,将左/右机机械臂末端的移动轨迹Hand_pose_list_play和手指动作轨迹序列Finger_pose_list_play发送至控制器,控制器分别求解左/右机械臂与机械爪的各关节运动学逆解,并按照时序控制左/右机机械臂和手指同步运动,最终完成弹琴机器人连续的演奏过程。
实施例1
本实施例1中,以欢乐颂为实施曲目对本发明提供的一种弹琴机器人的连续弹琴动作规划方法的实施过程进行进一步详细描述。
步骤S1、解析乐谱获取演奏信息。
根据MIDI格式的乐谱存储规则,提取《欢乐颂》乐谱的音符信息,获取每个音符的起始演奏时间戳和持续时长。
《欢乐颂》的部分音轨信息如表1所示:
表1:欢乐颂部分音轨信息表
步骤S2、根据机械臂的正运动学获取弹琴机器人的左/右机械臂末端的移动范围,将左/右机械臂末端的移动范围与琴键位置的交集作为弹琴机器人的左/右机械臂末端在琴键上的覆盖范围。
在本实施例中,左机械臂、右机械臂及琴键的水平方向范围如表2所示。
表2:覆盖范围表
进一步地,钢琴白键的宽度为23.5mm,琴键编号为1~52。由上表2,对左/右机械臂末端的移动范围与琴键位置取交集,左机械臂的琴键编号覆盖范围为1~34,右机械臂的琴键编号覆盖范围为18~52。
步骤S3、根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,对琴键进行分区,基于分区分配每个音符对应的执行手臂,得到左/右机械臂分别对应的琴键编号执行序列。
具体地,所述步骤S3包括以下子步骤:
步骤S301,根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,由左向右将琴键分为左臂演奏区、双臂重叠区和右臂演奏区。
在本实例中,琴键编号1~17号的琴键为左臂演奏区,琴键编号35~52号的琴键为右臂演奏区,琴键编号18~34号的琴键为双臂重叠区。
步骤S302,对位于左臂演奏区的琴键,将左机械臂作为执行手臂;对位于右臂演奏区的琴键,将右机械臂作为执行手臂;对位于双臂重叠区的琴键,计算当前音符对应的琴键分别与左/右机械臂当前演奏琴键位置的距离,根据距离最近原则分配执行手臂。得到左/右机械臂分别对应的音符序列。
在本实例中,琴键编号1~17号的琴键直接由左臂进行演奏,琴键编号35~52号的琴键直接由右臂进行演奏。
本实施例中,左/右机械臂需演奏的琴键如表3所示:
表3:演奏琴键内容表
步骤S4、根据步骤S3获得的左/右机械臂分别对应的琴键编号执行序列,以机械臂末端的移动距离总和最小为优化目标,采用动态规划算法为每个音符分配一个对应的执行手指,确定每个音符对应的执行手指以及机械臂位置对应的琴键编号,得到左/右机械臂上每个手指对应的手指动作序列。
本实施例中,通过规划后得到的结果如表4所示:
表4:臂爪规划的结果表
需要说明的是,在本实例中,以机械臂位置对应的琴键编号与中指对应的琴键编号一致。
其中,手指动作序列包括每个手指要弹奏的琴键K_i、琴键的空间位置Kp_i、琴键的开始演奏时间KTs_i以及琴键结束演奏的时间KTe_i。
步骤S5、根据步骤S4获取的左/右机械臂上每个手指对应的手指动作序列,并根据手指的活动范围,获得每个音符开始演奏时间的左/右机械臂末端位置,以及每个音符结束演奏时间的左/右机械臂末端位置;按演奏时序进行拼接,得到每个音符起止时刻的左/右机械臂末端演奏序列。
本实施例中手指的左右活动范围 Finger_l=7mm。
具体地,所述步骤S5具体包括以下子步骤:
S501,以手指居中位置即Finger_p=0计算演奏每个音符所对应的手臂末端位置,获得手指居中位置时的左/右机械臂末端位置序列Hand_pose_list_mid。本实施例中:
表5:左/右机械臂末端位置序列Hand_pose_list_mid
S502,以手臂单次移动距离最小原则,根据手指的左右活动范围调整步骤S501得到的手指居中位置时的左/右机械臂末端位置序列表Hand_pose_list_mid,获得每个音符开始演奏时间的左/右机械臂末端位置序列Hand_pose_list_start。
表6:左/右机械臂末端位置序列Hand_pose_list_start
S503,以手臂单次移动距离最小原则,根据手指的左右活动范围调整步骤S502得到的每个音符开始演奏时刻的手臂末端位置序列Hand_pose_list_start,获得每个音符结束演奏时间的左/右机械臂末端位置Hand_pose_list_end。
表7:左/右机械臂末端位置Hand_pose_list_end
步骤S504,将每个音符开始演奏时间的的左/右机械臂末端位置序列Hand_pose_list_start与每个音符结束演奏时间的左/右机械臂末端位置Hand_pose_list_end按演奏时序进行拼接,获得每个音符起止时刻的左/右机械臂末端演奏序列Hand_pose_list。
表8:左/右机械臂末端演奏序列Hand_pose_list
步骤S6,对步骤S5获取的每个音符起止时刻的左/右机械臂末端演奏序列Hand_pose_list在时间上进行连续插值,获得整个演奏序列的左/右机机械臂末端的移动轨迹Hand_pose_list_play。根据左/右机机械臂末端的移动轨迹Hand_pose_list_play和手指的音符演奏需求,计算每一时刻机械手指的动作指令,获得手指动作轨迹序列Finger_pose_list_play。
所述方法还包括:
步骤S7,将左/右机机械臂末端的移动轨迹Hand_pose_list_play和手指动作轨迹序列Finger_pose_list_play发送至控制器,控制器分别求解左/右机械臂与机械爪的各关节运动学逆解,并按照时序控制左/右机机械臂和手指同步运动,最终完成弹琴机器人连续的演奏过程。
如图4所示,本发明实施例还提供了一种弹琴机器人的连续弹琴动作规划系统,所述系统包括:
演奏信息获取单元,用于解析乐谱获取演奏信息;
执行手臂规划单元,通过获取弹琴机器人的左/右机械臂末端的移动范围,将左/右机械臂末端的移动范围与琴键位置的交集作为弹琴机器人的左/右机械臂末端在琴键上的覆盖范围;根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,对琴键进行分区,基于分区分配每个音符对应的执行手臂,得到左/右机械臂分别对应的琴键编号执行序列;
执行手指规划单元,根据左/右机械臂分别对应的琴键编号执行序列,以机械臂末端的移动距离总和最小为优化目标,确定每个音符对应的执行手指以及机械臂位置对应的琴键编号,得到左/右机械臂上每个手指对应的手指动作序列;
移动轨迹规划单元,根据左/右机械臂上每个手指对应的手指动作序列和手指的活动范围,得到每个音符起止时刻的左/右机械臂末端演奏序列;将每个音符起止时刻的左/右机械臂末端演奏序列在时间上进行连续插值,获得整个演奏序列的左/右机机械臂末端的移动轨迹和手指动作轨迹序列。
如图5所示,本申请实施例提供一种电子设备,其包括存储器101,用于存储一个或多个程序;处理器102。当一个或多个程序被处理器102执行时,实现如上述第一方面中任一项的方法。
还包括通信接口103,该存储器101、处理器102和通信接口103相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器101可用于存储软件程序及模块,处理器102通过执行存储在存储器101内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口103可用于与其他节点设备进行信令或数据的通信。
其中,存储器101可以是但不限于,随机存取存储器101(Random Access Memory,RAM),只读存储器101(Read Only Memory,ROM),可编程只读存储器101(ProgrammableRead-Only Memory,PROM),可擦除只读存储器101(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器101(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。
处理器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)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请所提供的实施例中,应该理解到,所揭露的方法及系统,也可以通过其它的方式实现。以上所描述的方法及系统实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的方法及系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
另一方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器102执行时实现如上述第一方面中任一项的方法。所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器101(ROM,Read-Only Memory)、随机存取存储器101(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施例仅用于说明本发明的设计思想和特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,本发明的保护范围不限于上述实施例。所以,凡依据本发明所揭示的原理、设计思路所作的等同变化或修饰,均在本发明的保护范围之内。
Claims (9)
1.一种弹琴机器人的连续弹琴动作规划方法,其特征在于,所述方法包括:
解析乐谱获取演奏信息;
获取弹琴机器人的左/右机械臂末端的移动范围,将左/右机械臂末端的移动范围与琴键位置的交集作为弹琴机器人的左/右机械臂末端在琴键上的覆盖范围;
根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,对琴键进行分区,基于分区分配每个音符对应的执行手臂,得到左/右机械臂分别对应的琴键编号执行序列;所述执行手臂为左机械臂或右机械臂;
根据左/右机械臂分别对应的琴键编号执行序列,以机械臂末端的移动距离总和最小为优化目标,确定每个音符对应的执行手指以及机械臂位置对应的琴键编号,得到左/右机械臂上每个手指对应的手指动作序列;包括:机械臂位置对应的琴键编号与其中指对应的琴键编号相同;设定执行手指分配系数,每个音符对应的执行琴键编号等于机械臂位置对应的琴键编号与执行手指分配系数之和;
根据左/右机械臂上每个手指对应的手指动作序列和手指的活动范围,得到每个音符起止时刻的左/右机械臂末端演奏序列;
将每个音符起止时刻的左/右机械臂末端演奏序列在时间上进行连续插值,获得整个演奏序列的左/右机械臂末端的移动轨迹和手指动作轨迹序列。
2.根据权利要求1所述的弹琴机器人的连续弹琴动作规划方法,其特征在于,解析乐谱获取演奏信息,包括:
根据MIDI格式的乐谱存储规则,提取乐谱的音符信息,获取每个音符的起始演奏时间、结束演奏时间和持续时长。
3.根据权利要求1所述的弹琴机器人的连续弹琴动作规划方法,其特征在于,获取弹琴机器人的左/右机械臂末端的移动范围,包括:
获取左/右机械臂中第一个关节相对于基坐标系下的坐标变换矩阵,利用坐标系变换进行左/右机械臂正运动学建模,以关节旋转范围为约束,遍历左/右机械臂中所有关节,得到弹琴机器人的左/右机械臂末端的移动范围。
4.根据权利要求1所述的弹琴机器人的连续弹琴动作规划方法,其特征在于,根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,对琴键进行分区,基于分区分配每个音符对应的执行手臂,包括:
根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,由左向右将琴键分为左臂演奏区、双臂重叠区和右臂演奏区;
对位于左臂演奏区的琴键,将左机械臂作为执行手臂;
对位于右臂演奏区的琴键,将右机械臂作为执行手臂;
对位于双臂重叠区的琴键,计算当前音符对应的琴键分别与左/右机械臂当前演奏琴键位置的距离,根据距离最近原则分配执行手臂;
得到左/右机械臂分别对应的琴键编号执行序列。
5.根据权利要求1所述的弹琴机器人的连续弹琴动作规划方法,其特征在于,根据手指的动作序列和手指的活动范围,得到每个音符起止时刻的左/右机械臂末端演奏序列,包括:
获取手指居中位置时的左/右机械臂末端位置序列;
以手臂单次移动距离最小原则,根据手指的左右活动范围调整手指居中位置时的左/右机械臂末端位置序列,获得每个音符开始演奏时间的左/右机械臂末端位置序列;
以手臂单次移动距离最小原则,根据手指的左右活动范围调整每个音符开始演奏时间的左/右机械臂末端位置序列,获得每个音符结束演奏时间的左/右机械臂末端位置;
将每个音符开始演奏时间的左/右机械臂末端位置序列与每个音符结束演奏时间的左/右机械臂末端位置按演奏时序进行拼接,获得每个音符起止时刻的左/右机械臂末端演奏序列。
6.根据权利要求1所述的弹琴机器人的连续弹琴动作规划方法,其特征在于,所述方法还包括:
将左/右机机械臂末端的移动轨迹和手指动作轨迹序列发送至控制器,控制器分别求解左/右机械臂与机械爪的各关节运动学逆解,并按照时序控制左/右机机械臂和手指同步运动,完成弹琴机器人的连续演奏。
7.一种弹琴机器人的连续弹琴动作规划系统,其特征在于,所述系统包括:
演奏信息获取单元,用于解析乐谱获取演奏信息;
执行手臂规划单元,通过获取弹琴机器人的左/右机械臂末端的移动范围,将左/右机械臂末端的移动范围与琴键位置的交集作为弹琴机器人的左/右机械臂末端在琴键上的覆盖范围;根据弹琴机器人的左/右机械臂末端在琴键上的覆盖范围,对琴键进行分区,基于分区分配每个音符对应的执行手臂,得到左/右机械臂分别对应的琴键编号执行序列;所述执行手臂为左机械臂或右机械臂;
执行手指规划单元,根据左/右机械臂分别对应的琴键编号执行序列,以机械臂末端的移动距离总和最小为优化目标,确定每个音符对应的执行手指以及机械臂位置对应的琴键编号,得到左/右机械臂上每个手指对应的手指动作序列;包括:机械臂位置对应的琴键编号与其中指对应的琴键编号相同;设定执行手指分配系数,每个音符对应的执行琴键编号等于机械臂位置对应的琴键编号与执行手指分配系数之和;
移动轨迹规划单元,根据左/右机械臂上每个手指对应的手指动作序列和手指的活动范围,得到每个音符起止时刻的左/右机械臂末端演奏序列;将每个音符起止时刻的左/右机械臂末端演奏序列在时间上进行连续插值,获得整个演奏序列的左/右机机械臂末端的移动轨迹和手指动作轨迹序列。
8.一种电子设备,包括存储器和处理器,其特征在于,所述存储器与所述处理器耦接;其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现上述权利要求1-6任一项所述的弹琴机器人的连续弹琴动作规划方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的弹琴机器人的连续弹琴动作规划方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310996252.3A CN116728419B (zh) | 2023-08-09 | 2023-08-09 | 弹琴机器人的连续弹琴动作规划方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310996252.3A CN116728419B (zh) | 2023-08-09 | 2023-08-09 | 弹琴机器人的连续弹琴动作规划方法、系统、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116728419A CN116728419A (zh) | 2023-09-12 |
CN116728419B true CN116728419B (zh) | 2023-12-22 |
Family
ID=87918929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310996252.3A Active CN116728419B (zh) | 2023-08-09 | 2023-08-09 | 弹琴机器人的连续弹琴动作规划方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116728419B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117207204B (zh) * | 2023-11-09 | 2024-01-30 | 之江实验室 | 一种弹琴机器人的控制方法及控制装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH081562A (ja) * | 1994-06-16 | 1996-01-09 | Hiroshi Ota | 少数鍵盤電子ピアノでのロボット指打演奏装置 |
JP2009145431A (ja) * | 2007-12-11 | 2009-07-02 | Kawai Musical Instr Mfg Co Ltd | 電子鍵盤楽器 |
KR20130076394A (ko) * | 2011-12-28 | 2013-07-08 | 한국기술교육대학교 산학협력단 | 피아노 로봇 제어 방법 및 장치 |
KR20160112202A (ko) * | 2015-03-18 | 2016-09-28 | 코이안(주) | 악기 연주 로봇 통합 제어 장치 |
CN107263504A (zh) * | 2017-07-26 | 2017-10-20 | 东北大学 | 一种演奏钢琴的机械装置 |
CN108202334A (zh) * | 2018-03-22 | 2018-06-26 | 东华大学 | 一种能够识别音乐节拍和风格的舞蹈机器人 |
CN110216677A (zh) * | 2019-06-21 | 2019-09-10 | 浙江大学 | 一种机械灵巧手弹琴动作序列的生成及其优化方法 |
CN110861086A (zh) * | 2019-11-20 | 2020-03-06 | 珠海格力智能装备有限公司 | 机器人弹奏钢琴的控制方法、装置、存储介质和机器人 |
CN114347070A (zh) * | 2022-03-18 | 2022-04-15 | 之江实验室 | 基于仿人臂爪机器人的弹琴动作控制方法、系统及装置 |
CN116135487A (zh) * | 2021-11-17 | 2023-05-19 | 陈应亚 | 乐器演奏机器人的控制方法和乐器演奏机器人 |
CN116394277A (zh) * | 2023-06-08 | 2023-07-07 | 之江实验室 | 一种仿人钢琴演奏机器人 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4501725B2 (ja) * | 2005-03-04 | 2010-07-14 | ヤマハ株式会社 | 鍵盤楽器 |
-
2023
- 2023-08-09 CN CN202310996252.3A patent/CN116728419B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH081562A (ja) * | 1994-06-16 | 1996-01-09 | Hiroshi Ota | 少数鍵盤電子ピアノでのロボット指打演奏装置 |
JP2009145431A (ja) * | 2007-12-11 | 2009-07-02 | Kawai Musical Instr Mfg Co Ltd | 電子鍵盤楽器 |
KR20130076394A (ko) * | 2011-12-28 | 2013-07-08 | 한국기술교육대학교 산학협력단 | 피아노 로봇 제어 방법 및 장치 |
KR20160112202A (ko) * | 2015-03-18 | 2016-09-28 | 코이안(주) | 악기 연주 로봇 통합 제어 장치 |
CN107263504A (zh) * | 2017-07-26 | 2017-10-20 | 东北大学 | 一种演奏钢琴的机械装置 |
CN108202334A (zh) * | 2018-03-22 | 2018-06-26 | 东华大学 | 一种能够识别音乐节拍和风格的舞蹈机器人 |
CN110216677A (zh) * | 2019-06-21 | 2019-09-10 | 浙江大学 | 一种机械灵巧手弹琴动作序列的生成及其优化方法 |
CN110861086A (zh) * | 2019-11-20 | 2020-03-06 | 珠海格力智能装备有限公司 | 机器人弹奏钢琴的控制方法、装置、存储介质和机器人 |
CN116135487A (zh) * | 2021-11-17 | 2023-05-19 | 陈应亚 | 乐器演奏机器人的控制方法和乐器演奏机器人 |
CN114347070A (zh) * | 2022-03-18 | 2022-04-15 | 之江实验室 | 基于仿人臂爪机器人的弹琴动作控制方法、系统及装置 |
CN116394277A (zh) * | 2023-06-08 | 2023-07-07 | 之江实验室 | 一种仿人钢琴演奏机器人 |
Also Published As
Publication number | Publication date |
---|---|
CN116728419A (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100485669C (zh) | 加强项目收敛(即数据收敛)的冲突判决传播系统和方法 | |
CN116728419B (zh) | 弹琴机器人的连续弹琴动作规划方法、系统、设备及介质 | |
EP1262844A1 (en) | Method for controlling a man-machine-interface unit | |
CN114241100B (zh) | 虚拟对象的蒙皮处理方法、装置、设备、介质及程序产品 | |
CN112580582B (zh) | 动作学习方法、装置、介质及电子设备 | |
CN111095170A (zh) | 虚拟现实场景及其交互方法、终端设备 | |
CN113642243A (zh) | 多机器人的深度强化学习系统、训练方法、设备及介质 | |
CN112190938A (zh) | 基于数据分析和动态渲染的游戏画面处理方法及游戏平台 | |
CN114347070B (zh) | 基于仿人臂爪机器人的弹琴动作控制方法、系统及装置 | |
CN116310143A (zh) | 一种三维模型构建方法、装置、设备和存储介质 | |
CN113826160A (zh) | 在机器人与人的通信中的降噪 | |
CN114419205A (zh) | 虚拟数字人的驱动方法及位姿获取模型的训练方法 | |
JP6182790B2 (ja) | ゲームシステム及びそれに用いるコンピュータプログラム | |
CN111739134A (zh) | 虚拟角色的模型处理方法、装置及可读存储介质 | |
CN111739135B (zh) | 虚拟角色的模型处理方法、装置及可读存储介质 | |
CN114756706A (zh) | 一种资源合成方法、装置、设备及存储介质 | |
CN111130569B (zh) | 一种空间信息数据自适应容错处理方法及系统 | |
CN112560507A (zh) | 用户模拟器构建方法、装置、电子设备及存储介质 | |
CN111429949A (zh) | 音高线生成方法、装置、设备及存储介质 | |
WO2022097302A1 (ja) | 生成プログラム、生成方法および情報処理装置 | |
CN114571463B (zh) | 动作检测方法、装置、可读存储介质及电子设备 | |
CN114781642B (zh) | 一种跨媒体对应知识的生成方法和装置 | |
CN113130082B (zh) | 一种基台定位器的构建方法、装置、存储介质及终端 | |
CN108073599A (zh) | 图片读取方法及装置 | |
CN109035417B (zh) | 含有机构的虚拟场景建模方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |