CN114536351A - 冗余双臂机器人示教方法、装置、电子设备及系统 - Google Patents

冗余双臂机器人示教方法、装置、电子设备及系统 Download PDF

Info

Publication number
CN114536351A
CN114536351A CN202210452683.9A CN202210452683A CN114536351A CN 114536351 A CN114536351 A CN 114536351A CN 202210452683 A CN202210452683 A CN 202210452683A CN 114536351 A CN114536351 A CN 114536351A
Authority
CN
China
Prior art keywords
data
motion
joint
track
arm robot
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.)
Granted
Application number
CN202210452683.9A
Other languages
English (en)
Other versions
CN114536351B (zh
Inventor
王豪
杨鹏
刘振
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ji Hua Laboratory
Original Assignee
Ji Hua Laboratory
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ji Hua Laboratory filed Critical Ji Hua Laboratory
Priority to CN202210452683.9A priority Critical patent/CN114536351B/zh
Publication of CN114536351A publication Critical patent/CN114536351A/zh
Application granted granted Critical
Publication of CN114536351B publication Critical patent/CN114536351B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0081Programme-controlled manipulators with master teach-in means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

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)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

本申请属于机器人控制技术领域,公开了一种冗余双臂机器人示教方法、装置、电子设备及系统,通过获取示范人员的腕关节的第一轨迹数据和腰关节的第一转动角度数据、冗余双臂机器人的运动约束参数和动力约束参数以及待处理工件的位姿数据;把第一轨迹数据分切为多个轨迹子片段数据,并提取各轨迹子片段数据对应的腰关节角度数据;把运动约束参数、动力约束参数、待处理工件的位姿数据、多个轨迹子片段数据和对应的腰关节角度数据输入分层学习神经网络模型以得到运动策略数据集;根据运动策略数据集获取各关节的动作数据序列;根据冗余双臂机器人各关节的动作数据序列控制各关节运动;从而,可方便快捷地实现对冗余双臂机器人的示教。

Description

冗余双臂机器人示教方法、装置、电子设备及系统
技术领域
本申请涉及机器人控制技术领域,具体而言,涉及一种冗余双臂机器人示教方法、装置、电子设备及系统。
背景技术
冗余双臂机器人具有两个冗余自由度的机械臂(例如七轴机械臂),通常需要通过两个机械臂协同作业,由于冗余双臂机器人的结构复杂,传统的示教器编程、离线编程、虚拟示教编程等示教方法耗时长,示教效率低且对示教人员的专业技术能力要求较高,难以实现对冗余双臂机器人的方便快捷的示教,使冗余双臂机器难以快速适应各种复杂的新任务要求。
发明内容
本申请的目的在于提供一种冗余双臂机器人示教方法、装置、电子设备及系统,可方便快捷地实现对冗余双臂机器人的示教。
第一方面,本申请提供了一种冗余双臂机器人示教方法,用于对冗余双臂机器人进行示教,所述冗余双臂机器人包括基座、通过腰部关节转动设置在所述基座顶部的转台以及两个对称地设置在所述转台两侧的机械臂,所述机械臂为七轴机械臂,包括步骤:
A1.获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据、所述冗余双臂机器人的运动约束参数和动力约束参数、以及待处理工件的位姿数据;
A2.把所述第一轨迹数据分切为多个轨迹子片段数据,并根据所述第一转动角度数据提取各所述轨迹子片段数据对应的腰关节角度数据;
A3.把所述运动约束参数、所述动力约束参数、所述待处理工件的位姿数据、所述多个轨迹子片段数据和对应的所述腰关节角度数据输入预先训练好的分层学习神经网络模型中,得到运动策略数据集;
A4.根据所述运动策略数据集获取所述冗余双臂机器人各关节的动作数据序列;所述动作数据序列包括多个动作数据,所述动作数据包括对应关节的转动角度和转动角速度;
A5.根据所述冗余双臂机器人各关节的动作数据序列控制各所述关节运动。
该冗余双臂机器人示教方法,通过获取示范人员的示范动作的腕关节的第一轨迹数据和腰关节的第一转动角度数据,并对该第一轨迹数据进行片段分切,结合冗余双臂机器人的运动约束参数和动力约束参数和待处理工件的位姿数据,用分层学习神经网络模型得到运动策略数据集,进而从中提取出各关节的动作数据序列,并用以控制冗余双臂机器人运动,实现了在运动约束和动力约束条件下对示范人员作业过程的模仿,可方便快捷地实现对冗余双臂机器人的示教,使冗余双臂机器人能够快速适应各种复杂的新任务要求。
优选地,步骤A4之后和步骤A5之前,还包括步骤:
A6.根据各关节的所述动作数据序列对所述冗余双臂机器人进行仿真碰撞检测;
A7.根据仿真碰撞检测结果,对存在碰撞情况的关节的局部运动进行重规划,以调整对应的动作数据序列。
在对冗余双臂机器人运动进行控制前,先通过仿真检测碰撞情况,并在检测到存在碰撞情况时对相关关节的局部运动进行重规划,防止由于分层学习神经网络模型输出的运动策略数据不合理而使得机器人受损。
优选地,步骤A1包括:
通过图像识别方法获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据。
通过图像识别方法得到第一轨迹数据和第一转动角度数据,方便快捷,实时性好。
可选地,步骤A2包括:
根据示范人员的腕关节的运动时间把所述第一轨迹数据分切为多个轨迹子片段数据。
可选地,步骤A2包括:
根据示范人员的腕关节的轨迹长度把所述第一轨迹数据分切为多个轨迹子片段数据。
可选地,骤A2包括:
根据示范人员的腕关节的速度变化情况把所述第一轨迹数据分切为多个轨迹子片段数据。
优选地,所述运动策略数据集包括与每个所述轨迹子片段数据对应的动作向量序列;所述动作向量序列包括多个动作向量,每个所述动作向量包含所述冗余双臂机器人各关节的动作数据;
步骤A4包括:
从所述运动策略数据集中,提取各关节的动作数据,分别形成各关节的初始的动作数据序列;
采用三次多项式插值方法对各关节的所述初始的动作数据序列进行插值,得到各关节的最终的动作数据序列。
第二方面,本申请提供了一种冗余双臂机器人示教装置,用于对冗余双臂机器人进行示教,所述冗余双臂机器人包括基座、通过腰部关节转动设置在所述基座顶部的转台以及两个对称地设置在所述转台两侧的机械臂,所述机械臂为七轴机械臂,包括:
第一获取模块,用于获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据、所述冗余双臂机器人的运动约束参数和动力约束参数、以及待处理工件的位姿数据;
数据预处理模块,用于把所述第一轨迹数据分切为多个轨迹子片段数据,并根据所述第一转动角度数据提取各所述轨迹子片段数据对应的腰关节角度数据;
运动策略生成模块,用于把所述运动约束参数、所述动力约束参数、所述待处理工件的位姿数据、所述多个轨迹子片段数据和对应的所述腰关节角度数据输入预先训练好的分层学习神经网络模型中,得到运动策略数据集;
关节数据获取模块,用于根据所述运动策略数据集获取所述冗余双臂机器人各关节的动作数据序列;所述动作数据序列包括多个动作数据,所述动作数据包括对应关节的转动角度和转动角速度;
控制模块,用于根据所述冗余双臂机器人各关节的动作数据序列控制各所述关节运动。
该冗余双臂机器人示教装置,通过获取示范人员的示范动作的腕关节的第一轨迹数据和腰关节的第一转动角度数据,并对该第一轨迹数据进行片段分切,结合冗余双臂机器人的运动约束参数和动力约束参数和待处理工件的位姿数据,用分层学习神经网络模型得到运动策略数据集,进而从中提取出各关节的动作数据序列,并用以控制冗余双臂机器人运动,实现了在运动约束和动力约束条件下对示范人员作业过程的模仿,可方便快捷地实现对冗余双臂机器人的示教,使冗余双臂机器人能够快速适应各种复杂的新任务要求。
第三方面,本申请提供了一种电子设备,包括处理器和存储器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时,运行如前文所述冗余双臂机器人示教方法中的步骤。
第四方面,本申请提供了一种冗余双臂机器人示教系统,包括冗余双臂机器人、运动数据采集装置和上位机;
所述冗余双臂机器人包括基座、通过腰部关节转动设置在所述基座顶部的转台以及两个对称地设置在所述转台两侧的机械臂,所述机械臂为七轴机械臂;
所述运动数据采集装置包括多个围绕示范工位设置的立体相机;所述运动数据采集装置用于获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据,以及待处理工件的位姿数据,并上传至所述上位机;
所述上位机用于获取所述冗余双臂机器人的运动约束参数和动力约束参数;把所述第一轨迹数据分切为多个轨迹子片段数据,并根据所述第一转动角度数据提取各所述轨迹子片段数据对应的腰关节角度数据;把所述运动约束参数、所述动力约束参数、所述待处理工件的位姿数据、所述多个轨迹子片段数据和对应的所述腰关节角度数据输入预先训练好的分层学习神经网络模型中,得到运动策略数据集;根据所述运动策略数据集获取所述冗余双臂机器人各关节的动作数据序列;所述动作数据序列包括多个动作数据,所述动作数据包括对应关节的转动角度和转动角速度;根据所述冗余双臂机器人各关节的动作数据序列控制各所述关节运动。
该冗余双臂机器人示教系统,通过获取示范人员的示范动作的腕关节的第一轨迹数据和腰关节的第一转动角度数据,并对该第一轨迹数据进行片段分切,结合冗余双臂机器人的运动约束参数和动力约束参数和待处理工件的位姿数据,用分层学习神经网络模型得到运动策略数据集,进而从中提取出各关节的动作数据序列,并用以控制冗余双臂机器人运动,实现了在运动约束和动力约束条件下对示范人员作业过程的模仿,可方便快捷地实现对冗余双臂机器人的示教,使冗余双臂机器人能够快速适应各种复杂的新任务要求。
有益效果:
本申请提供的冗余双臂机器人示教方法、装置、电子设备及系统,通过获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据、所述冗余双臂机器人的运动约束参数和动力约束参数、以及待处理工件的位姿数据;把所述第一轨迹数据分切为多个轨迹子片段数据,并根据所述第一转动角度数据提取各所述轨迹子片段数据对应的腰关节角度数据;把所述运动约束参数、所述动力约束参数、所述待处理工件的位姿数据、所述多个轨迹子片段数据和对应的所述腰关节角度数据输入预先训练好的分层学习神经网络模型中,得到运动策略数据集;根据所述运动策略数据集获取所述冗余双臂机器人各关节的动作数据序列;所述动作数据序列包括多个动作数据,所述动作数据包括对应关节的转动角度和转动角速度;根据所述冗余双臂机器人各关节的动作数据序列控制各所述关节运动;从而,可方便快捷地实现对冗余双臂机器人的示教。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请了解。
附图说明
图1为本申请实施例提供的冗余双臂机器人示教方法的流程图。
图2为本申请实施例提供的冗余双臂机器人示教装置的结构示意图。
图3为本申请实施例提供的电子设备的结构示意图。
图4为本申请实施例提供的冗余双臂机器人示教系统的结构示意图。
图5为本申请实施例提供的冗余双臂机器人示教系统的俯视状态的半剖视图。
图6为本申请实施例提供的冗余双臂机器人的结构示意图。
标号说明:1、第一获取模块;2、数据预处理模块;3、运动策略生成模块;4、关节数据获取模块;5、控制模块;301、处理器;302、存储器;303、通信总线;400、冗余双臂机器人;401、基座;402、腰部关节;403、转台;404、立体视觉装置;405、机械臂;406、电动夹爪;407、肩关节;408、肘关节;409、腕关节;410、后臂杆;411、前臂杆;500、运动数据采集装置;501、立体相机;502、遮光板;503、铝合金骨架;600、示范工位。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1是本申请一些实施例中的一种冗余双臂机器人示教方法,用于对冗余双臂机器人进行示教,冗余双臂机器人包括基座、通过腰部关节转动设置在基座顶部的转台以及两个对称地设置在转台两侧的机械臂,该机械臂为七轴机械臂,包括步骤:
A1.获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据、冗余双臂机器人的运动约束参数和动力约束参数、以及待处理工件的位姿数据;
A2.把第一轨迹数据分切为多个轨迹子片段数据,并根据第一转动角度数据提取各轨迹子片段数据对应的腰关节角度数据;
A3.把运动约束参数、动力约束参数、待处理工件的位姿数据、多个轨迹子片段数据和对应的腰关节角度数据输入预先训练好的分层学习神经网络模型中,得到运动策略数据集;
A4.根据运动策略数据集获取冗余双臂机器人各关节的动作数据序列;动作数据序列包括多个动作数据,动作数据包括对应关节的转动角度和转动角速度;
A5.根据冗余双臂机器人各关节的动作数据序列控制各关节运动。
该冗余双臂机器人示教方法,通过获取示范人员的示范动作的腕关节的第一轨迹数据和腰关节的第一转动角度数据,并对该第一轨迹数据进行片段分切,结合冗余双臂机器人的运动约束参数和动力约束参数和待处理工件的位姿数据,用分层学习神经网络模型得到运动策略数据集,进而从中提取出各关节的动作数据序列,并用以控制冗余双臂机器人运动,实现了在运动约束和动力约束条件下对示范人员作业过程的模仿,可方便快捷地实现对冗余双臂机器人的示教,使冗余双臂机器人能够快速适应各种复杂的新任务要求。
其中,该冗余双臂机器人示教方法可用于对图6所示的冗余双臂机器人400进行示教,该冗余双臂机器人400包括基座401、通过腰部关节402转动设置在基座401顶部的转台403、设置在转台403顶部的立体视觉装置404、两个对称地设置在转台403两侧的机械臂405、以及两个分别设置在两个机械臂405末端的电动夹爪406;机械臂405为七轴机械臂,包括七个关节,其中三个关节组成具有三个自由度的肩关节407,另外的一个关节组成具有一个自由度的肘关节408,剩余的三个关节组成具有三个自由度的腕关节409;其中,肩关节407与肘关节408之间连接有后臂杆410,肘关节408与腕关节409连接有前臂杆411。该冗余双臂机器人400的腰部关节402可模拟人体的腰部转动,其机械臂405的结构与人体的手臂结构类似,因此能够较好地模仿人的动作,降低无法复现示范人员的动作的几率。
优选地,步骤A4之后和步骤A5之前,还包括步骤:
A6.根据各关节的动作数据序列对冗余双臂机器人进行仿真碰撞检测;
A7.根据仿真碰撞检测结果,对存在碰撞情况的关节的局部运动进行重规划,以调整对应的动作数据序列。
在对冗余双臂机器人运动进行控制前,先通过仿真检测碰撞情况,并在检测到存在碰撞情况时对相关关节的局部运动进行重规划,防止由于分层学习神经网络模型输出的运动策略数据不合理而使得机器人受损。
其中,可采用现有的仿真程序进行仿真碰撞检测。其中,仿真碰撞检测的过程包括:
加载冗余双臂机器人和冗余双臂机器人周围的障碍物的三维模型;
根据冗余双臂机器人各关节和连杆(臂杆)的外形,定义各关节和两杆的包围盒形状(可选用球形、圆柱、正六面体、斜方六面体等形状包围盒)和尺寸;
按时序依次根据各关节的动作数据改变冗余双臂机器人的三维模型的位姿,并检测任意两个包围盒分别在三维方向上的投影是否均存在重叠部分,若是,则判定存在碰撞情况,否则,判定不存在碰撞情况。
其中,投影存在重叠部分的两个包围盒中,若包括关节的包围盒,则该包围盒所属的关节为存在碰撞情况的关节,若包括连杆的包围盒,则该包围盒所属的连杆的驱动关节为存在碰撞情况的关节。
其中,可采用现有的局部避障路径规划方法对关节的局部运动进行重规划,此处不对具体的规划方法进行限定。若不存在碰撞情况,则无需进行重规划。
在一些实施方式中,步骤A1包括:
通过图像识别方法获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据。
通过图像识别方法得到第一轨迹数据和第一转动角度数据,方便快捷,实时性好。
其中腕关节的第一轨迹数据,包括腕关节的在多个采集时刻的位置和速度。腰关节的第一转动角度数据,包括腰关节在多个采集时刻的转动角度数据。
例如,可通过kinect SDK算法提取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据。通过kinect SDK算法提取示范人员在进行动作示范时的腕关节的第一轨迹数据腰关节的第一转动角度数据的过程为现有技术,此处不对其进行详述。
由于直接提取得到的第一轨迹数据和第一转动角度数据一般包含噪声和抖动,因此,步骤A1还可包括:
对获取的第一轨迹数据和第一转动角度数据进行滤波处理(如卡尔曼滤波处理,但不限于此),以消除噪声和抖动。
通过滤波处理,可提高第一轨迹数据的可靠性。
在一些优选实施方式中,可采用图4中的运动数据采集装置500进行第一轨迹数据和第一转动角度数据的采集,该运动数据采集装置500包括多个围绕示范工位600(即示范人员在进行示范操作时所处的工位)设置的立体相机501。这些立体相机501预先进行了同步处理和外参标定,工作时,同时拍摄示范人员的视频数据,最后综合各立体相机501的视频数据获取第一轨迹数据和第一转动角度数据。从而,通过图像识别方法获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据的步骤包括:
通过图像识别方法,分别从各立体相机采集的视频数据中提取对应的初始第一轨迹数据(即腕关节的初始轨迹数据)和初始第一转动角度数据(即腰关节的初始转动角度数据);
根据各立体相机之间的外参标定矩阵对各初始第一轨迹数据和各初始第一转动角度数据进行融合,得到最终的第一轨迹数据和最终的第一转动角度数据。
其中,在进行融合时,先根据各立体相机之间的外参标定矩阵把各初始第一轨迹数据和初始第一转动角度数据转换为参考相机坐标系(参考相机坐标系为其中一个立体相机501的相机坐标系,一般地,由于位于示范工位正上方的立体相机501具有良好的视野,因此会把该立体相机501选为参考相机,其相机坐标系为参考相机坐标系,但不限于此)下的数据,然后,针对同一腕关节点(示范人员的腕关节有两个,对应的第一轨迹数据有两个),计算该腕关节点在同一时刻的所有初始第一轨迹数据(指包含该腕关节点的位置数据信息的初始第一轨迹数据)中的位置数据的平均值或加权平均值,作为该关节点在该时刻的位置数据;计算腰关节在同一时刻的所有初始第一转动角度数据的平均值或加权平均值,作为腰关节在该时刻的转动角度数据。
其中,运动约束参数主要包括冗余双臂机器人各关节的转动角度范围和最大转动角速度,还包括冗余双臂机器人的机械臂的可达空间;动力约束参数主要包括冗余双臂机器人各关节的最大输出力矩;但不限于此。这些运动约束参数和动力约束参数与冗余双臂机器人的结构和性能有关,可实事先测得。
在一些优选实施方式中,在获取冗余双臂机器人的运动约束参数和动力约束参数后,可先对这些约束参数进行归一化处理,例如通过以下公式进行归一化处理:
Figure 824724DEST_PATH_IMAGE001
其中,
Figure 928946DEST_PATH_IMAGE002
为归一化处理后的约束参数矢量,
Figure 85121DEST_PATH_IMAGE003
为归一化处理前的约束参数矢量,
Figure 944493DEST_PATH_IMAGE004
为各关节约束参数最小值组成的矢量,
Figure 553329DEST_PATH_IMAGE005
为各关节约束参数最大值组成的矢量。
数据归一化处理是将约束参数矢量数据按比例缩放,使其元素均落入一个小的特定区间。一般地,可将数据统一映射到[0,1]区间上,去除了不同类型参数的数据单位量纲限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。系统的输入特征矢量元素被映射到[0,1]区间上,缩小相同类别特征值域范围,便于样本比较和加权计算,有利于提高训练收敛速度。
其中,待处理工件是指示范人员进行动作示范时进行处理的工件。在一些实施方式中,可通过图4中的运动数据采集装置500获取待处理工件的位姿数据。
由于直接获取得到的位姿数据一般包含噪声和抖动,因此,步骤A1之后还可包括:
对获取的待处理工件的位姿数据进行滤波处理(如卡尔曼滤波处理,但不限于此),以消除噪声和抖动。
其中,把第一轨迹数据分切为多个轨迹子片段数据,是为了使各轨迹子片段足够短,从而每个轨迹子片段的运动状态可用一个或有限的几个状态特征来表征,以便于分层学习神经网络模型进行处理。轨迹子片段数据的具体分切方式可根据实际需要设置。
例如,在一些实施方式中,步骤A2包括:
根据示范人员的腕关节的运动时间把第一轨迹数据分切为多个轨迹子片段数据。
具体地,可把第一轨迹数据按对应关节点的运动总时间平分为P(P为预设的正整数,可根据实际需要设置)个轨迹子片段数据,使每个轨迹子片段数据的时间长度相等。
或者,先通过以下公式计算第一分切份数,然后根据该第一分切份数,按对应关节点的运动总时间把第一轨迹数据进行平分;
Figure 726821DEST_PATH_IMAGE006
Figure 799819DEST_PATH_IMAGE007
为第一分切份数,
Figure 767775DEST_PATH_IMAGE008
为关节点的运动总时间,
Figure 863907DEST_PATH_IMAGE009
为预设的时长阈值(可根据实际需要设置),
Figure 372249DEST_PATH_IMAGE010
为向下取整函数;
平分后每个轨迹子片段数据的时间长度为
Figure 503016DEST_PATH_IMAGE011
,从而可使每个轨迹子片段 数据的时间长度不超过
Figure 641873DEST_PATH_IMAGE009
,以保证在各个轨迹子片段中,关节的运动状态变化较小, 从而保证每个轨迹子片段的运动状态可用一个或有限的几个状态特征来表征。
又例如,在一些实施方式中,步骤A2包括:
根据示范人员的腕关节的轨迹长度把第一轨迹数据分切为多个轨迹子片段数据。
具体地,可把第一轨迹数据按对应关节点的运动轨迹总长度平分为Q(Q为预设的正整数,可根据实际需要设置)个轨迹子片段数据,使每个轨迹子片段数据的轨迹长度相等。
或者,先通过以下公式计算第二分切份数,然后根据该第二分切份数,按对应关节点的运动轨迹总长度把第一轨迹数据进行平分;
Figure 786153DEST_PATH_IMAGE012
Figure 35869DEST_PATH_IMAGE013
为第二分切份数,
Figure 21143DEST_PATH_IMAGE014
为关节点的运动轨迹总长度,
Figure 330901DEST_PATH_IMAGE015
为预设的长度阈值(可根据实际需要设置),
Figure 463942DEST_PATH_IMAGE010
为向下取整函数;
平分后每个轨迹子片段数据的轨迹长度为
Figure 517349DEST_PATH_IMAGE016
,从而可使每个轨迹子片段 数据的轨迹长度不超过
Figure 357129DEST_PATH_IMAGE015
,以保证在各个轨迹子片段中,关节的运动状态变化较小,从 而保证每个轨迹子片段的运动状态可用一个或有限的几个状态特征来表征。
或例如,在一些实施方式中,步骤A2包括:
根据示范人员的腕关节的速度变化情况把第一轨迹数据分切为多个轨迹子片段数据。
具体地,以第一轨迹数据对应的轨迹的起始点作为第一个轨迹子片段的起始点,搜索离该起始点最接近且与该起始点的速度偏差(为绝对值)等于预设偏差阈值(可根据实际需要设置)的轨迹点为第一个轨迹子片段的终点,以该起始点和该终点之间的第一轨迹数据段为第一个轨迹子片段数据;然后依次以上一个轨迹子片段的终点为下一个轨迹子片段的起始点,搜索离该起始点最接近且与该起始点的速度偏差(为绝对值)等于预设偏差阈值的轨迹点为该下一个轨迹子片段的终点,若搜索不到该终点,则以第一轨迹数据对应的轨迹的终点为该下一个轨迹子片段的终点(并结束搜索),以该起始点和该终点之间的第一轨迹数据段为下一个轨迹子片段数据。其中,若某一个轨迹子片段数据的轨迹长度或时间长度过大(即大于预设的轨迹长度阈值或时间长度阈值),则按轨迹长度或时间长度把该轨迹子片段数据平分。
在一些优选实施方式中,为了简化轨迹子片段数据,以便于分层学习神经网络模型进行处理,步骤A2还包括:
保留各个轨迹子片段数据中的状态特征点的运动状态数据,并删除其它轨迹点的运动状态数据。
例如,状态特征点包括对应的轨迹子片段的起始点、中间点(时间中点或轨迹中点)和终点,运动状态数据包括位置数据、速度数据和加速度数据。实际上,状态特征点不限于此,例如也可以仅包括起始点、中间点、终点中的一部分,或者包括更多轨迹点。
在本实施例中,根据第一转动角度数据提取各轨迹子片段数据对应的腰关节角度数据的步骤包括:
在第一转动角度数据中提取与轨迹子片段数据的状态特征点在时间上对应的腰关节的转动角度数据,得到与该轨迹子片段数据对应的腰关节角度数据。
例如,某个轨迹子片段数据的状态特征点包括对应的轨迹子片段的起始点、中间点(时间中点或轨迹中点)和终点,起始点的时间为Time1,中间点的时间为Time2,终点的时间为Time3,则从第一转动角度数据中提取腰关节在Time1、Time2和Time3时刻的腰关节的转动角度数据,得到与该轨迹子片段数据对应的腰关节角度数据。
在本实施例中,运动策略数据集包括与每个轨迹子片段数据对应的动作向量序列;动作向量序列包括多个动作向量,每个动作向量包含冗余双臂机器人各关节的动作数据;
步骤A4包括:
从运动策略数据集中,提取各关节的动作数据,分别形成各关节的初始的动作数据序列;
采用三次多项式插值方法对各关节的初始的动作数据序列进行插值,得到各关节的最终的动作数据序列。
其中,采用三次多项式插值方法对各关节的初始的动作数据序列进行插值,得到各关节的最终的动作数据序列的步骤包括:
分别以初始的动作数据序列中相邻的两个动作数据为插值起始动作数据和插值终点动作数据;
根据该插值起始动作数据和插值终点动作数据之间的时间间隔确定插入该插值起始动作数据和插值终点动作数据之间的新增动作数据的数量,和各新增动作数据与插值起始动作数据之间的时间间隔(例如把插值起始动作数据和插值终点动作数据之间的时间间隔均分为多段,划分的段数可根据实际需要设置,并在每个分段的时间节点处插入一个新增动作数据,从而确定新增动作数据的数量和各新增动作数据与插值起始动作数据之间的时间间隔);
采用以下公式计算各新增动作数据:
Figure 900106DEST_PATH_IMAGE017
Figure 192547DEST_PATH_IMAGE018
Figure 49644DEST_PATH_IMAGE019
其中,
Figure 806248DEST_PATH_IMAGE020
为第
Figure 457809DEST_PATH_IMAGE021
个新增动作数据,
Figure 503125DEST_PATH_IMAGE022
为插值起始动作数据对应的时间,
Figure 462116DEST_PATH_IMAGE023
为插值终点动作数据对应的时间,
Figure 10909DEST_PATH_IMAGE024
为第
Figure 98951DEST_PATH_IMAGE021
个新增动作数据与插值起始动作数据之间 的时间间隔,
Figure 428301DEST_PATH_IMAGE025
Figure 361622DEST_PATH_IMAGE026
分别为第
Figure 30501DEST_PATH_IMAGE021
个新增动作数据的转动角度和转动角速 度,
Figure 351761DEST_PATH_IMAGE027
Figure 840511DEST_PATH_IMAGE028
Figure 843102DEST_PATH_IMAGE029
Figure 428804DEST_PATH_IMAGE030
为插值系数,
Figure 153921DEST_PATH_IMAGE031
Figure 395547DEST_PATH_IMAGE032
分别为插值终点动作数据的转动角度和转动 角速度,
Figure 998567DEST_PATH_IMAGE033
Figure 376458DEST_PATH_IMAGE034
分别为插值起点动作数据的转动角度和转动角速度。其中,对于任一 关节均可采用以上公式进行新增动作数据的计算,从而
Figure 39521DEST_PATH_IMAGE020
为对应关节的新增 动作数据;
在该插值起始动作数据和插值终点动作数据之间插入计算得到的新增动作数据。
对于一个初始的动作数据序列,根据上述步骤遍历各相邻的两个动作数据,从而得到最终的动作数据序列。
通过插值处理,可使各关节在转动时不产生速度和加速度的突变,使运动过程更加平滑,降低工作过程中产生的振动。
在本实施例中,根据输入的轨迹子片段数据,该分层学习神经网络模型通过以下模型对机械臂末端的运动轨迹进行编码和离散:
Figure 502863DEST_PATH_IMAGE035
(1);
Figure 847257DEST_PATH_IMAGE036
(2);
Figure 407551DEST_PATH_IMAGE037
Figure 913619DEST_PATH_IMAGE038
(3);
其中,
Figure 129837DEST_PATH_IMAGE039
为大于0的预设常数,
Figure 576124DEST_PATH_IMAGE040
为输入的轨迹子片段数据的轨迹子片段时长(等 于轨迹子片段数据的最后一个数据和第一个数据之间的时间间隔),
Figure 928608DEST_PATH_IMAGE041
为相位变量,公式 (1)用于把时间信号转换成相位信号;
其中,
Figure 605577DEST_PATH_IMAGE042
Figure 105828DEST_PATH_IMAGE043
Figure 792024DEST_PATH_IMAGE044
分别为机械臂(左机械臂或右机械臂,对于两个机械臂 均适用上述模型)末端在t时刻的位置、速度和加速度,
Figure 999015DEST_PATH_IMAGE045
为腰关节在t时刻的转动角度,
Figure 174781DEST_PATH_IMAGE046
为预设的机器人刚度矩阵,
Figure 100012DEST_PATH_IMAGE047
为预设的机器人阻尼矩阵,
Figure 324320DEST_PATH_IMAGE048
为关节转动调整 项,
Figure 713713DEST_PATH_IMAGE049
为机械臂末端的目标状态(目标状态包括目标位置和目标速度,为了保证机械臂 末端运动的连续性,该目标状态取相邻的下一个轨迹子片段数据的起始点的状态,即目标 位置和目标速度分别为相邻的下一个轨迹子片段数据的起始点的位置和速度),
Figure 998064DEST_PATH_IMAGE050
为腰关 节的期望姿态(期望姿态包括目标转动角度数据,为保证机器人腰关节转动的连续性,该期 望姿态取相邻的下一个轨迹子片段数据的起始点对应的腰关节角度数据);
其中,
Figure 705863DEST_PATH_IMAGE051
Figure 733862DEST_PATH_IMAGE052
Figure 915445DEST_PATH_IMAGE048
的第
Figure 433014DEST_PATH_IMAGE053
个关节转动分量,
Figure 332837DEST_PATH_IMAGE054
Figure 898947DEST_PATH_IMAGE048
的分量的个数(等于两个机械臂的关节以及腰关节的关节数量总和,对于机 械臂为七轴机械臂的情况,
Figure 997353DEST_PATH_IMAGE054
等于15;第
Figure 623507DEST_PATH_IMAGE053
个关节转动分量对应的是这些关节中的第
Figure 807363DEST_PATH_IMAGE053
个关 节的关节转动分量),
Figure 177165DEST_PATH_IMAGE055
为第
Figure 333340DEST_PATH_IMAGE057
个基函数,
Figure 694176DEST_PATH_IMAGE058
Figure 303012DEST_PATH_IMAGE059
均为
Figure 210925DEST_PATH_IMAGE055
对应的预设常数,且
Figure 283923DEST_PATH_IMAGE060
Figure 251879DEST_PATH_IMAGE061
Figure 348011DEST_PATH_IMAGE062
Figure 121932DEST_PATH_IMAGE052
的第
Figure 252699DEST_PATH_IMAGE063
个基函数的权重系数,
Figure 391557DEST_PATH_IMAGE064
为拟合
Figure 771722DEST_PATH_IMAGE052
所需的基 函数的个数,
Figure 287017DEST_PATH_IMAGE065
Figure 856580DEST_PATH_IMAGE049
的第
Figure 166339DEST_PATH_IMAGE053
个分量,
Figure 971484DEST_PATH_IMAGE066
Figure 87208DEST_PATH_IMAGE042
的第
Figure 926988DEST_PATH_IMAGE053
个分量,
Figure 407647DEST_PATH_IMAGE067
Figure 27985DEST_PATH_IMAGE050
的第
Figure 619503DEST_PATH_IMAGE053
个 分量,
Figure 579369DEST_PATH_IMAGE068
Figure 230930DEST_PATH_IMAGE045
的第
Figure 72984DEST_PATH_IMAGE053
个分量。
该分层学习神经网络模型针对输入的每个轨迹子片段数据,会输出对应的运动策 略数据,多个运动策略数据的集合即为运动策略数据集。其中,每个运动策略数据包括多个 策略元组
Figure 468193DEST_PATH_IMAGE069
Figure 846347DEST_PATH_IMAGE070
为机器人在t时刻的状态量向量,
Figure 668810DEST_PATH_IMAGE071
为机器人在t时刻的动作向 量(对应同一个轨迹子片段数据的各动作向量组成的序列即为动作向量序列),
Figure 935843DEST_PATH_IMAGE072
为第
Figure 134743DEST_PATH_IMAGE073
个轨迹子片段数据对应的策略参数矩阵。
其中,
Figure 865939DEST_PATH_IMAGE074
Figure 859303DEST_PATH_IMAGE075
Figure 675949DEST_PATH_IMAGE076
Figure 678540DEST_PATH_IMAGE077
Figure 201925DEST_PATH_IMAGE070
的第一分量,
Figure 366190DEST_PATH_IMAGE078
Figure 670133DEST_PATH_IMAGE070
的第二分量,
Figure 210835DEST_PATH_IMAGE079
Figure 149579DEST_PATH_IMAGE080
Figure 750325DEST_PATH_IMAGE081
分别为与
Figure 213667DEST_PATH_IMAGE073
个轨迹子片 段数据对应的第机器人左机械臂末端在t时刻的位置、速度和加速度,
Figure 620378DEST_PATH_IMAGE082
Figure 852776DEST_PATH_IMAGE083
Figure 624423DEST_PATH_IMAGE084
分别为 与
Figure 637378DEST_PATH_IMAGE073
个轨迹子片段数据对应的第机器人右机械臂末端在t时刻的位置、速度和加速度,
Figure 519884DEST_PATH_IMAGE085
为与
Figure 872368DEST_PATH_IMAGE073
个轨迹子片段数据对应的机器人腰关节在t时刻的动作数据,
Figure 877233DEST_PATH_IMAGE086
为与
Figure 315167DEST_PATH_IMAGE073
个轨迹子片段数据对应的机器人左机械臂各关节在t时刻的动作数据,
Figure 1364DEST_PATH_IMAGE087
为与
Figure 772136DEST_PATH_IMAGE073
个轨迹子片段数据对应的机器人右机械臂各关节在t时刻的动作数据。
其中,
Figure 885585DEST_PATH_IMAGE088
其中,
Figure 810816DEST_PATH_IMAGE089
Figure 97441DEST_PATH_IMAGE054
Figure 424517DEST_PATH_IMAGE048
的分量的个数。
该分层学习神经网络模型包括策略记忆库,该策略记忆库用于存储训练过程中产生的策略元组。
该分层学习神经网络模型通过以下步骤训练得到:
S1. 网络参数及训练样本初始化。
获取示范人员在进行动作示范时的腕关节的第二轨迹数据(为了与实际使用时采集的第一轨迹数据做区分,把此时的腕关节的轨迹数据称为第二轨迹数据)和腰关节的第二转动角度数据(为了与实际使用时采集的第一转动角度数据做区分,把此时的腰关节的转动角度数据称为第二转动角度数据),并把第二轨迹数据分切为多个轨迹子片段样本数据,并根据第二转动角度数据提取各轨迹子片段样本数据对应的腰关节角度样本数据(具体过程参考前文的步骤A2)。
初始化策略记忆库。
使用随机策略参数矩阵
Figure 443288DEST_PATH_IMAGE090
,初始化回报值函数
Figure 918132DEST_PATH_IMAGE091
,其中,回报值函数由 关节转动调整项的各个转动关节分量定义,即
Figure 946131DEST_PATH_IMAGE092
Figure 127714DEST_PATH_IMAGE093
为机器 人的状态量向量,
Figure 645283DEST_PATH_IMAGE094
Figure 279526DEST_PATH_IMAGE093
的第
Figure 845637DEST_PATH_IMAGE053
个分量,
Figure 708157DEST_PATH_IMAGE096
为机器人的动作向量,
Figure 334311DEST_PATH_IMAGE097
Figure 455850DEST_PATH_IMAGE096
的第
Figure 825652DEST_PATH_IMAGE053
个分量,
Figure 44144DEST_PATH_IMAGE090
为 高维的策略参数矩阵,
Figure 841198DEST_PATH_IMAGE098
Figure 450034DEST_PATH_IMAGE090
的第
Figure 420264DEST_PATH_IMAGE053
个列向量(即
Figure 430946DEST_PATH_IMAGE090
中对应第
Figure 398902DEST_PATH_IMAGE053
个关节运动的列数据组成 的向量);
Figure 557350DEST_PATH_IMAGE099
Figure 268955DEST_PATH_IMAGE091
的第
Figure 134142DEST_PATH_IMAGE053
个分量(即第
Figure 273000DEST_PATH_IMAGE053
个关节运动的回报值函数分 量),其中,
Figure 420209DEST_PATH_IMAGE100
,即
Figure 935504DEST_PATH_IMAGE101
(后续通过训练使回报值函数最大 化,实际是使每个关节对应的
Figure 655199DEST_PATH_IMAGE052
最小化,使得
Figure 27274DEST_PATH_IMAGE102
最大化)。
初始化冗余双臂机器人的运动约束参数和动力约束参数。
S2. 迭代训练神经网络参数。
根据各轨迹子片段样本数据的时间顺序,依次针对各个轨迹子片段样本数据,执行以下操作:
1)初始化机器人的状态量向量;如果当前的轨迹子片段样本数据是首个轨迹子片段样本数据,则把机器人的状态量向量初始化为该轨迹子片段样本数据的起始点的示范人员腕关节的状态量向量(即,初始化后的机器人的左机械臂末端的位置、速度和加速度等于该轨迹子片段样本数据的起始点处的示范人员左腕关节的位置、速度和加速度,初始化后的机器人的右机械臂末端的位置、速度和加速度等于该轨迹子片段样本数据的起始点处的示范人员右腕关节的位置、速度和加速度,其中,示范人员腕关节的加速度可以通过对速度进行求导得到);如果当前的轨迹子片段样本数据不是首个轨迹子片段样本数据,则把机器人的状态量向量初始化为上一个轨迹子片段样本数据训练结束时的机器人的实际状态量向量。
2)设定学习步长
Figure 97998DEST_PATH_IMAGE103
,该学习步长
Figure 151405DEST_PATH_IMAGE103
为从轨迹子片段样本数据的起始点到终点,机 械臂单次学习运动步长的最大值。该学习步长
Figure 991185DEST_PATH_IMAGE103
可根据实际需要设置,或者通过以下公式 计算得到:
Figure 534162DEST_PATH_IMAGE104
Figure 92182DEST_PATH_IMAGE105
为第
Figure 683701DEST_PATH_IMAGE106
个轨迹子片段样本数据(即当前的轨迹子片段样本数据)对应的轨迹片 段的长度,
Figure 440304DEST_PATH_IMAGE107
为预设的比例系数(可根据实际需要设置)。
3)由迭代数iteration=1时刻开始训练,通过对当前状态前馈,预测当前时刻的动 作向量
Figure 357444DEST_PATH_IMAGE071
对应的回报值函数。
根据步骤S1中初始化得到的冗余双臂机器人的运动约束参数和动力约束参数,对 每个关节的转角区间进行均分得到16个角度值,用各关节的这些角度值随机组合出x(x可 根据实际需要设置)个动作向量输入至神经网络,分别计算得到对应的回报值函数,选取这 些回报值函数的最大值对应的动作向量输入值为相应时刻的动作向量
Figure 137182DEST_PATH_IMAGE071
。通过该方式选取 得到各时刻的动作向量
Figure 93243DEST_PATH_IMAGE071
和对应的回报值函数,可大大提升训练稳定性和训练效率。
4)计算动作向量
Figure 907615DEST_PATH_IMAGE071
对应的奖励值
Figure 730078DEST_PATH_IMAGE108
。奖励值
Figure 59428DEST_PATH_IMAGE108
可定义为离散化的机器人当前位姿 与示教轨迹片段点重合程度的度量,即由机器人的动作向量
Figure 258328DEST_PATH_IMAGE071
和运动学正解算法计算得到 的机器人的机械臂末端位姿与示教轨迹片段点的平均偏差回报。
5)由当前时刻的动作向量
Figure 927207DEST_PATH_IMAGE071
和当前时刻的策略参数矩阵
Figure 982887DEST_PATH_IMAGE090
所对应的机器人的状 态量向量
Figure 737217DEST_PATH_IMAGE093
,生成策略元组
Figure 536546DEST_PATH_IMAGE109
6)在该策略元组
Figure 59931DEST_PATH_IMAGE109
满足预设条件时,把该策略元组
Figure 489775DEST_PATH_IMAGE109
加入 至策略记忆库。其中,预设条件可根据实际需要设置,例如,预设条件为该策略元组与策略 记忆库中的至少一个已有的策略元组的相关性(如欧式距离或皮尔逊系数等)达到预设阈 值,但不限于此。反之,如果该策略元组
Figure 295182DEST_PATH_IMAGE109
不满足预设条件,则不加入存储策略 记忆库。
以当前进行状态前馈,对下一时刻的状态量向量
Figure 570306DEST_PATH_IMAGE110
进行赋值,其中下一时刻的策 略参数矩阵由当前
Figure 213777DEST_PATH_IMAGE090
赋初始值,即下一时刻的参数初始值
Figure 611260DEST_PATH_IMAGE111
,下一时刻的状态量向 量
Figure 340182DEST_PATH_IMAGE112
从步骤3)中组合得到的x个动作向量中随机抽取一个运动矢量作为下一时刻的动 作向量
Figure 481313DEST_PATH_IMAGE113
接续训练;当记忆库存储的策略元组数量达到预设数量阈值时,可从策略记忆库 中随机抽取一小批batch样本动作向量用于新的策略元组的训练,历史经验都可以被多次 用到,用以更新权重,数据利用效率更高。
7)根据步骤6)计算得到的下一时刻的动作向量
Figure 979290DEST_PATH_IMAGE114
和下一时刻的状态量向量
Figure 750937DEST_PATH_IMAGE110
,计 算最大化的回报值函数,即
Figure 701576DEST_PATH_IMAGE115
;计算损失函数
Figure 646398DEST_PATH_IMAGE116
Figure 998882DEST_PATH_IMAGE117
为损失函数,
Figure 502282DEST_PATH_IMAGE118
为探索系 数;使用
Figure 940217DEST_PATH_IMAGE118
探索机制,用系数
Figure 360834DEST_PATH_IMAGE118
来选择是继续探索,还是直接根据经验做出决策,一般地,系 统里
Figure 833404DEST_PATH_IMAGE118
是从1逐渐减少到0.1 ,使得训练初期,尽可能多的对下一时刻的状态量向量
Figure 9170DEST_PATH_IMAGE110
探索 更大的区域,随后再逐渐偏向于上一时刻的状态量向量
Figure 934401DEST_PATH_IMAGE093
的经验。训练初期通过广泛试错找 准一个方向,然后沿着该方向一路试探下去直到达到奖励值最大和运动策略最优。
8)通过神经网络反向传播使用梯度下降的方法来更新策略参数矩阵
Figure 221025DEST_PATH_IMAGE090
S3.针对多个不同的动作示范过程重复上述步骤S1和S2。
步骤A3之后,还包括步骤:在得到的运动策略数据集的策略元组满足预设条件时,把对应的策略元组加入至策略记忆库。
需要说明的是,策略记忆库中还记录有各策略元组对应的输入数据(轨迹子片段数据或轨迹子片段样本数据、对应的腰关节角度数据或腰关节角度样本数据、运动约束参数和动力约束参数、以及待处理工件的位姿数据)。
该冗余双臂机器人示教方法还包括步骤:对分层学习神经网络模型进行强化训练。具体地,从策略记忆库中随机抽取若干样本(输入数据)进行训练,训练过程参考前文,而且在训练时用样本对应的策略元组进行初始化。由于从策略记忆库中随机抽取样本进行强化学习,打乱数据相关性,避免受样本分布的影响,且用样本对应的策略元组进行初始化,可提高训练效率。
由上可知,该冗余双臂机器人示教方法,通过获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据、冗余双臂机器人的运动约束参数和动力约束参数、以及待处理工件的位姿数据;把第一轨迹数据分切为多个轨迹子片段数据,并根据第一转动角度数据提取各轨迹子片段数据对应的腰关节角度数据;把运动约束参数、动力约束参数、待处理工件的位姿数据、多个轨迹子片段数据和对应的腰关节角度数据输入预先训练好的分层学习神经网络模型中,得到运动策略数据集;根据运动策略数据集获取冗余双臂机器人各关节的动作数据序列;动作数据序列包括多个动作数据,动作数据包括对应关节的转动角度和转动角速度;根据冗余双臂机器人各关节的动作数据序列控制各关节运动;从而,可方便快捷地实现对冗余双臂机器人的示教。而且在模型在计算时不仅考虑了示范人员腕关节轨迹的位姿信息,还综合考虑了手臂各关节和部的转动姿态信息,并将机器人的运动学和动力学参数当做约束条件,作为输入参数,使机械臂的运动满足关节转角范围、机械臂可达空间、关节最大转动角速度和关节最大输出力矩等约束条件,使得机械臂动作和轨迹在原有示范者的演示基础上,泛化为机器人所能适用的双臂协同运动,在提高机器人作业的环境适应能力同时,避免了机械臂在运动时的奇异构型和相互碰撞。
请参考图2,本申请提供了一种冗余双臂机器人示教装置,用于对冗余双臂机器人进行示教,冗余双臂机器人包括基座、通过腰部关节转动设置在基座顶部的转台以及两个对称地设置在转台两侧的机械臂,该机械臂为七轴机械臂,包括:
第一获取模块1,用于获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据、冗余双臂机器人的运动约束参数和动力约束参数、以及待处理工件的位姿数据;
数据预处理模块2,用于把第一轨迹数据分切为多个轨迹子片段数据,并根据第一转动角度数据提取各轨迹子片段数据对应的腰关节角度数据;
运动策略生成模块3,用于把运动约束参数、动力约束参数、待处理工件的位姿数据、多个轨迹子片段数据和对应的腰关节角度数据输入预先训练好的分层学习神经网络模型中,得到运动策略数据集;
关节数据获取模块4,用于根据运动策略数据集获取冗余双臂机器人各关节的动作数据序列;动作数据序列包括多个动作数据,动作数据包括对应关节的转动角度和转动角速度;
控制模块5,用于根据冗余双臂机器人各关节的动作数据序列控制各关节运动。
该冗余双臂机器人示教装置,通过获取示范人员的示范动作的腕关节的第一轨迹数据和腰关节的第一转动角度数据,并对该第一轨迹数据进行片段分切,结合冗余双臂机器人的运动约束参数和动力约束参数和待处理工件的位姿数据,用分层学习神经网络模型得到运动策略数据集,进而从中提取出各关节的动作数据序列,并用以控制冗余双臂机器人运动,实现了在运动约束和动力约束条件下对示范人员作业过程的模仿,可方便快捷地实现对冗余双臂机器人的示教,使冗余双臂机器人能够快速适应各种复杂的新任务要求。
其中,该冗余双臂机器人示教装置可用于对图6所示的冗余双臂机器人400进行示教,该冗余双臂机器人400包括基座401、通过腰部关节402转动设置在基座401顶部的转台403、设置在转台403顶部的立体视觉装置404、两个对称地设置在转台403两侧的机械臂405、以及两个分别设置在两个机械臂405末端的电动夹爪406;机械臂405为七轴机械臂,包括七个关节,其中三个关节组成具有三个自由度的肩关节407,另外的一个关节组成具有一个自由度的肘关节408,剩余的三个关节组成具有三个自由度的腕关节409;其中,肩关节407与肘关节408之间连接有后臂杆410,肘关节408与腕关节409连接有前臂杆411。该冗余双臂机器人400的腰部关节402可模拟人体的腰部转动,其机械臂405的结构与人体的手臂结构类似,因此能够较好地模仿人的动作,降低无法复现示范人员的动作的几率。
优选地,该冗余双臂机器人示教装置还包括:
碰撞检测模块,用于根据各关节的动作数据序列对冗余双臂机器人进行仿真碰撞检测;
运动调整模块,用于根据仿真碰撞检测结果,对存在碰撞情况的关节的局部运动进行重规划,以调整对应的动作数据序列。
在对冗余双臂机器人运动进行控制前,先通过仿真检测碰撞情况,并在检测到存在碰撞情况时对相关关节的局部运动进行重规划,防止由于分层学习神经网络模型输出的运动策略数据不合理而使得机器人受损。
其中,可采用现有的仿真程序进行仿真碰撞检测。其中,仿真碰撞检测的过程包括:
加载冗余双臂机器人和冗余双臂机器人周围的障碍物的三维模型;
根据冗余双臂机器人各关节和连杆(臂杆)的外形,定义各关节和两杆的包围盒形状(可选用球形、圆柱、正六面体、斜方六面体等形状包围盒)和尺寸;
按时序依次根据各关节的动作数据改变冗余双臂机器人的三维模型的位姿,并检测任意两个包围盒分别在三维方向上的投影是否均存在重叠部分,若是,则判定存在碰撞情况,否则,判定不存在碰撞情况。
其中,投影存在重叠部分的两个包围盒中,若包括关节的包围盒,则该包围盒所属的关节为存在碰撞情况的关节,若包括连杆的包围盒,则该包围盒所属的连杆的驱动关节为存在碰撞情况的关节。
其中,可采用现有的局部避障路径规划方法对关节的局部运动进行重规划,此处不对具体的规划方法进行限定。若不存在碰撞情况,则无需进行重规划。
在一些实施方式中,第一获取模块1用于在获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据的时候,执行:
通过图像识别方法获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据。
通过图像识别方法得到第一轨迹数据和第一转动角度数据,方便快捷,实时性好。
其中腕关节的第一轨迹数据,包括腕关节的在多个采集时刻的位置和速度。腰关节的第一转动角度数据,包括腰关节在多个采集时刻的转动角度数据。
例如,可通过kinect SDK算法提取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据。通过kinect SDK算法提取示范人员在进行动作示范时的腕关节的第一轨迹数据腰关节的第一转动角度数据的过程为现有技术,此处不对其进行详述。
由于直接提取得到的第一轨迹数据和第一转动角度数据一般包含噪声和抖动,因此,第一获取模块1用于在获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据的时候,还执行:
对获取的第一轨迹数据和第一转动角度数据进行滤波处理(如卡尔曼滤波处理,但不限于此),以消除噪声和抖动。
通过滤波处理,可提高第一轨迹数据的可靠性。
在一些优选实施方式中,可采用图4中的运动数据采集装置500进行第一轨迹数据和第一转动角度数据的采集,该运动数据采集装置500包括多个围绕示范工位600(即示范人员在进行示范操作时所处的工位)设置的立体相机501。这些立体相机501预先进行了同步处理和外参标定,工作时,同时拍摄示范人员的视频数据,最后综合各立体相机501的视频数据获取第一轨迹数据和第一转动角度数据。从而,通过图像识别方法获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据,具体包括:
通过图像识别方法,分别从各立体相机采集的视频数据中提取对应的初始第一轨迹数据(即腕关节的初始轨迹数据)和初始第一转动角度数据(即腰关节的初始转动角度数据);
根据各立体相机之间的外参标定矩阵对各初始第一轨迹数据和各初始第一转动角度数据进行融合,得到最终的第一轨迹数据和最终的第一转动角度数据。
其中,在进行融合时,先根据各立体相机之间的外参标定矩阵把各初始第一轨迹数据和初始第一转动角度数据转换为参考相机坐标系(参考相机坐标系为其中一个立体相机501的相机坐标系,一般地,由于位于示范工位正上方的立体相机501具有良好的视野,因此会把该立体相机501选为参考相机,其相机坐标系为参考相机坐标系,但不限于此)下的数据,然后,针对同一腕关节点(示范人员的腕关节有两个,对应的第一轨迹数据有两个),计算该腕关节点在同一时刻的所有初始第一轨迹数据(指包含该腕关节点的位置数据信息的初始第一轨迹数据)中的位置数据的平均值或加权平均值,作为该关节点在该时刻的位置数据;计算腰关节在同一时刻的所有初始第一转动角度数据的平均值或加权平均值,作为腰关节在该时刻的转动角度数据。
其中,运动约束参数主要包括冗余双臂机器人各关节的转动角度范围和最大转动角速度,还包括冗余双臂机器人的机械臂的可达空间;动力约束参数主要包括冗余双臂机器人各关节的最大输出力矩;但不限于此。这些运动约束参数和动力约束参数与冗余双臂机器人的结构和性能有关,可实事先测得。
在一些优选实施方式中,在获取冗余双臂机器人的运动约束参数和动力约束参数后,可先对这些约束参数进行归一化处理,例如通过以下公式进行归一化处理:
Figure 282522DEST_PATH_IMAGE001
其中,
Figure 566873DEST_PATH_IMAGE002
为归一化处理后的约束参数矢量,
Figure 41717DEST_PATH_IMAGE003
为归一化处理前的约束参数矢量,
Figure 69716DEST_PATH_IMAGE004
为各关节约束参数最小值组成的矢量,
Figure 815080DEST_PATH_IMAGE005
为各关节约束参数最大值组成的矢量。
数据归一化处理是将约束参数矢量数据按比例缩放,使其元素均落入一个小的特定区间。一般地,可将数据统一映射到[0,1]区间上,去除了不同类型参数的数据单位量纲限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。系统的输入特征矢量元素被映射到[0,1]区间上,缩小相同类别特征值域范围,便于样本比较和加权计算,有利于提高训练收敛速度。
其中,待处理工件是指示范人员进行动作示范时进行处理的工件。在一些实施方式中,可通过图4中的运动数据采集装置500获取待处理工件的位姿数据。
由于直接获取得到的位姿数据一般包含噪声和抖动,因此,该冗余双臂机器人示教装置还包括:
滤波模块,用于对获取的待处理工件的位姿数据进行滤波处理(如卡尔曼滤波处理,但不限于此),以消除噪声和抖动。
其中,把第一轨迹数据分切为多个轨迹子片段数据,是为了使各轨迹子片段足够短,从而每个轨迹子片段的运动状态可用一个或有限的几个状态特征来表征,以便于分层学习神经网络模型进行处理。轨迹子片段数据的具体分切方式可根据实际需要设置。
例如,在一些实施方式中,数据预处理模块2在把第一轨迹数据分切为多个轨迹子片段数据的时候,执行:
根据示范人员的腕关节的运动时间把第一轨迹数据分切为多个轨迹子片段数据。
具体地,可把第一轨迹数据按对应关节点的运动总时间平分为P(P为预设的正整数,可根据实际需要设置)个轨迹子片段数据,使每个轨迹子片段数据的时间长度相等。
或者,先通过以下公式计算第一分切份数,然后根据该第一分切份数,按对应关节点的运动总时间把第一轨迹数据进行平分;
Figure 4753DEST_PATH_IMAGE006
Figure 904576DEST_PATH_IMAGE007
为第一分切份数,
Figure 533003DEST_PATH_IMAGE008
为关节点的运动总时间,
Figure 834672DEST_PATH_IMAGE009
为预设的时长阈值(可根据实际需要设置),
Figure 257563DEST_PATH_IMAGE010
为向下取整函数;
平分后每个轨迹子片段数据的时间长度为
Figure 644682DEST_PATH_IMAGE011
,从而可使每个轨迹子片段 数据的时间长度不超过
Figure 14483DEST_PATH_IMAGE009
,以保证在各个轨迹子片段中,关节的运动状态变化较小, 从而保证每个轨迹子片段的运动状态可用一个或有限的几个状态特征来表征。
又例如,在一些实施方式中,数据预处理模块2在把第一轨迹数据分切为多个轨迹子片段数据的时候,执行:
根据示范人员的腕关节的轨迹长度把第一轨迹数据分切为多个轨迹子片段数据。
具体地,可把第一轨迹数据按对应关节点的运动轨迹总长度平分为Q(Q为预设的正整数,可根据实际需要设置)个轨迹子片段数据,使每个轨迹子片段数据的轨迹长度相等。
或者,先通过以下公式计算第二分切份数,然后根据该第二分切份数,按对应关节点的运动轨迹总长度把第一轨迹数据进行平分;
Figure 967396DEST_PATH_IMAGE012
Figure 764450DEST_PATH_IMAGE013
为第二分切份数,
Figure 373286DEST_PATH_IMAGE014
为关节点的运动轨迹总长度,
Figure 107631DEST_PATH_IMAGE015
为预设的长度阈值(可根据实际需要设置),
Figure 118312DEST_PATH_IMAGE010
为向下取整函数;
平分后每个轨迹子片段数据的轨迹长度为
Figure 86268DEST_PATH_IMAGE016
,从而可使每个轨迹子片段 数据的轨迹长度不超过
Figure 244717DEST_PATH_IMAGE015
,以保证在各个轨迹子片段中,关节的运动状态变化较小,从 而保证每个轨迹子片段的运动状态可用一个或有限的几个状态特征来表征。
或例如,在一些实施方式中,数据预处理模块2在把第一轨迹数据分切为多个轨迹子片段数据的时候,执行:
根据示范人员的腕关节的速度变化情况把第一轨迹数据分切为多个轨迹子片段数据。
具体地,以第一轨迹数据对应的轨迹的起始点第一个轨迹子片段的起始点,搜索离该起始点最接近且与该起始点的速度偏差(为绝对值)等于预设偏差阈值(可根据实际需要设置)的轨迹点为第一个轨迹子片段的终点,以该起始点和该终点之间的第一轨迹数据段为第一个轨迹子片段数据;然后依次以上一个轨迹子片段的终点为下一个轨迹子片段的起始点,搜索离该起始点最接近且与该起始点的速度偏差(为绝对值)等于预设偏差阈值的轨迹点为该下一个轨迹子片段的终点,若搜索不到该终点,则以第一轨迹数据对应的轨迹的终点为该下一个轨迹子片段的终点(并结束搜索),以该起始点和该终点之间的第一轨迹数据段为下一个轨迹子片段数据。其中,若某一个轨迹子片段数据的轨迹长度或时间长度过大(即大于预设的轨迹长度阈值或时间长度阈值),则按轨迹长度或时间长度把该轨迹子片段数据平分。
在一些优选实施方式中,为了简化轨迹子片段数据,以便于分层学习神经网络模型进行处理,数据预处理模块2在把第一轨迹数据分切为多个轨迹子片段数据的时候,还执行:
保留各个轨迹子片段数据中的状态特征点的运动状态数据,并删除其它轨迹点的运动状态数据。
例如,状态特征点包括对应的轨迹子片段的起始点、中间点(时间中点或轨迹中点)和终点,运动状态数据包括位置数据、速度数据和加速度数据。实际上,状态特征点不限于此,例如也可以仅包括起始点、中间点、终点中的一部分,或者包括更多轨迹点。
在本实施例中,数据预处理模块2在根据第一转动角度数据提取各轨迹子片段数据对应的腰关节角度数据的时候,执行:
在第一转动角度数据中提取与轨迹子片段数据的状态特征点在时间上对应的腰关节的转动角度数据,得到与该轨迹子片段数据对应的腰关节角度数据。
例如,某个轨迹子片段数据的状态特征点包括对应的轨迹子片段的起始点、中间点(时间中点或轨迹中点)和终点,起始点的时间为Time1,中间点的时间为Time2,终点的时间为Time3,则从第一转动角度数据中提取腰关节在Time1、Time2和Time3时刻的腰关节的转动角度数据,得到与该轨迹子片段数据对应的腰关节角度数据。
在本实施例中,运动策略数据集包括与每个轨迹子片段数据对应的动作向量序列;动作向量序列包括多个动作向量,每个动作向量包含冗余双臂机器人各关节的动作数据;
关节数据获取模块4用于在根据运动策略数据集获取冗余双臂机器人各关节的动作数据序列的时候,执行:
从运动策略数据集中,提取各关节的动作数据,分别形成各关节的初始的动作数据序列;
采用三次多项式插值方法对各关节的初始的动作数据序列进行插值,得到各关节的最终的动作数据序列。
其中,采用三次多项式插值方法对各关节的初始的动作数据序列进行插值,得到各关节的最终的动作数据序列,具体包括:
分别以初始的动作数据序列中相邻的两个动作数据为插值起始动作数据和插值终点动作数据;
根据该插值起始动作数据和插值终点动作数据之间的时间间隔确定插入该插值起始动作数据和插值终点动作数据之间的新增动作数据的数量,和各新增动作数据与插值起始动作数据之间的时间间隔(例如把插值起始动作数据和插值终点动作数据之间的时间间隔均分为多段,划分的段数可根据实际需要设置,并在每个分段的时间节点处插入一个新增动作数据,从而确定新增动作数据的数量和各新增动作数据与插值起始动作数据之间的时间间隔);
采用以下公式计算各新增动作数据:
Figure 956321DEST_PATH_IMAGE017
Figure 821509DEST_PATH_IMAGE018
Figure 22683DEST_PATH_IMAGE119
其中,
Figure 606111DEST_PATH_IMAGE020
为第
Figure 855827DEST_PATH_IMAGE021
个新增动作数据,
Figure 903417DEST_PATH_IMAGE022
为插值起始动作数据对应的时间,
Figure 213176DEST_PATH_IMAGE023
为插值终点动作数据对应的时间,
Figure 283900DEST_PATH_IMAGE024
为第
Figure 337307DEST_PATH_IMAGE021
个新增动作数据与插值起始动作数据之间 的时间间隔,
Figure 740869DEST_PATH_IMAGE025
Figure 221528DEST_PATH_IMAGE026
分别为第
Figure 513969DEST_PATH_IMAGE021
个新增动作数据的转动角度和转动角速 度,
Figure 433384DEST_PATH_IMAGE027
Figure 127670DEST_PATH_IMAGE028
Figure 779232DEST_PATH_IMAGE029
Figure 886865DEST_PATH_IMAGE030
为插值系数,
Figure 282074DEST_PATH_IMAGE031
Figure 830867DEST_PATH_IMAGE032
分别为插值终点动作数据的转动角度和转动 角速度,
Figure 981226DEST_PATH_IMAGE033
Figure 248259DEST_PATH_IMAGE034
分别为插值起点动作数据的转动角度和转动角速度。其中,对于任一 关节均可采用以上公式进行新增动作数据的计算,从而
Figure 447159DEST_PATH_IMAGE020
为对应关节的新增 动作数据;
在该插值起始动作数据和插值终点动作数据之间插入计算得到的新增动作数据。
对于一个初始的动作数据序列,根据上述步骤遍历各相邻的两个动作数据,从而得到最终的动作数据序列。
通过插值处理,可使各关节在转动时不产生速度和加速度的突变,使运动过程更加平滑,降低工作过程中产生的振动。
在本实施例中,根据输入的轨迹子片段数据,该分层学习神经网络模型通过以下模型对机械臂末端的运动轨迹进行编码和离散:
Figure 850459DEST_PATH_IMAGE035
(1);
Figure 670254DEST_PATH_IMAGE036
(2);
Figure 424583DEST_PATH_IMAGE120
Figure 161595DEST_PATH_IMAGE038
(3);
其中,
Figure 747297DEST_PATH_IMAGE039
为大于0的预设常数,
Figure 177142DEST_PATH_IMAGE040
为输入的轨迹子片段数据的轨迹子片段时长(等 于轨迹子片段数据的最后一个数据和第一个数据之间的时间间隔),
Figure 153188DEST_PATH_IMAGE041
为相位变量,公式 (1)用于把时间信号转换成相位信号;
其中,
Figure 693891DEST_PATH_IMAGE042
Figure 399678DEST_PATH_IMAGE043
Figure 734845DEST_PATH_IMAGE044
分别为机械臂(左机械臂或右机械臂,对于两个机械臂 均适用上述模型)末端在t时刻的位置、速度和加速度,
Figure 463766DEST_PATH_IMAGE045
为腰关节在t时刻的转动角度,
Figure 604898DEST_PATH_IMAGE046
为预设的机器人刚度矩阵,
Figure 102875DEST_PATH_IMAGE047
为预设的机器人阻尼矩阵,
Figure 608943DEST_PATH_IMAGE048
为关节转动调整 项,
Figure 388942DEST_PATH_IMAGE049
为机械臂末端的目标状态(目标状态包括目标位置和目标速度,为了保证机械臂 末端运动的连续性,该目标状态取相邻的下一个轨迹子片段数据的起始点的状态,即目标 位置和目标速度分别为相邻的下一个轨迹子片段数据的起始点的位置和速度),
Figure 271448DEST_PATH_IMAGE050
为腰关 节的期望姿态(期望姿态包括目标转动角度数据,为保证机器人腰关节转动的连续性,该期 望姿态取相邻的下一个轨迹子片段数据的起始点对应的腰关节角度数据);
其中,
Figure 623932DEST_PATH_IMAGE051
Figure 566480DEST_PATH_IMAGE052
Figure 66731DEST_PATH_IMAGE048
的第
Figure 487348DEST_PATH_IMAGE053
个关节转动分量,
Figure 959918DEST_PATH_IMAGE054
Figure 870105DEST_PATH_IMAGE048
的分量的个数(等于两个机械臂的关节以及腰关节的关节数量总和,对于机 械臂为七轴机械臂的情况,
Figure 795336DEST_PATH_IMAGE054
等于15;第
Figure 19644DEST_PATH_IMAGE053
个关节转动分量对应的是这些关节中的第
Figure 346720DEST_PATH_IMAGE053
个关 节的关节转动分量),
Figure 693388DEST_PATH_IMAGE055
为第
Figure 105914DEST_PATH_IMAGE057
个基函数,
Figure 868334DEST_PATH_IMAGE058
Figure 49917DEST_PATH_IMAGE059
均为
Figure 66021DEST_PATH_IMAGE055
对应的预设常数,且
Figure 965844DEST_PATH_IMAGE060
Figure 531954DEST_PATH_IMAGE061
Figure 630360DEST_PATH_IMAGE062
Figure 256514DEST_PATH_IMAGE052
的第
Figure 643633DEST_PATH_IMAGE063
个基函数的权重系数,
Figure 747855DEST_PATH_IMAGE064
为拟合
Figure 966347DEST_PATH_IMAGE052
所需的基 函数的个数,
Figure 763401DEST_PATH_IMAGE065
Figure 372237DEST_PATH_IMAGE049
的第
Figure 608047DEST_PATH_IMAGE053
个分量,
Figure 618728DEST_PATH_IMAGE066
Figure 586684DEST_PATH_IMAGE042
的第
Figure 246598DEST_PATH_IMAGE053
个分量,
Figure 692622DEST_PATH_IMAGE067
Figure 885706DEST_PATH_IMAGE050
的第
Figure 24564DEST_PATH_IMAGE053
个 分量,
Figure 670309DEST_PATH_IMAGE068
Figure 920024DEST_PATH_IMAGE045
的第
Figure 905298DEST_PATH_IMAGE053
个分量。
该分层学习神经网络模型针对输入的每个轨迹子片段数据,会输出对应的运动策 略数据,多个运动策略数据的集合即为运动策略数据集。其中,每个运动策略数据包括多个 策略元组
Figure 277373DEST_PATH_IMAGE069
Figure 348098DEST_PATH_IMAGE070
为机器人在t时刻的状态量向量,
Figure 401504DEST_PATH_IMAGE071
为机器人在t时刻的动作向 量(对应同一个轨迹子片段数据的各动作向量组成的序列即为动作向量序列),
Figure 825574DEST_PATH_IMAGE072
为第
Figure 306234DEST_PATH_IMAGE073
个轨迹子片段数据对应的策略参数矩阵。
其中,
Figure 660992DEST_PATH_IMAGE074
Figure 518089DEST_PATH_IMAGE075
Figure 212376DEST_PATH_IMAGE076
Figure 926254DEST_PATH_IMAGE077
Figure 971570DEST_PATH_IMAGE070
的第一分量,
Figure 366780DEST_PATH_IMAGE078
Figure 977889DEST_PATH_IMAGE070
的第二分量,
Figure 65931DEST_PATH_IMAGE079
Figure 332964DEST_PATH_IMAGE080
Figure 830067DEST_PATH_IMAGE081
分别为与
Figure 498946DEST_PATH_IMAGE073
个轨迹子片 段数据对应的第机器人左机械臂末端在t时刻的位置、速度和加速度,
Figure 757889DEST_PATH_IMAGE082
Figure 308956DEST_PATH_IMAGE083
Figure 311547DEST_PATH_IMAGE084
分别为 与
Figure 834932DEST_PATH_IMAGE073
个轨迹子片段数据对应的第机器人右机械臂末端在t时刻的位置、速度和加速度,
Figure 61514DEST_PATH_IMAGE085
为与
Figure 303140DEST_PATH_IMAGE073
个轨迹子片段数据对应的机器人腰关节在t时刻的动作数据,
Figure 843843DEST_PATH_IMAGE086
为与
Figure 284051DEST_PATH_IMAGE073
个轨迹子片段数据对应的机器人左机械臂各关节在t时刻的动作数据,
Figure 884797DEST_PATH_IMAGE087
为与
Figure 348139DEST_PATH_IMAGE073
个轨迹子片段数据对应的机器人右机械臂各关节在t时刻的动作数据。
其中,
Figure 692533DEST_PATH_IMAGE088
其中,
Figure 751362DEST_PATH_IMAGE089
Figure 257430DEST_PATH_IMAGE054
Figure 473648DEST_PATH_IMAGE048
的分量的个数。
该分层学习神经网络模型包括策略记忆库,该策略记忆库用于存储训练过程中产生的策略元组。
该分层学习神经网络模型通过以下步骤训练得到:
S1. 网络参数及训练样本初始化。
获取示范人员在进行动作示范时的腕关节的第二轨迹数据(为了与实际使用时采集的第一轨迹数据做区分,把此时的腕关节的轨迹数据称为第二轨迹数据)和腰关节的第二转动角度数据(为了与实际使用时采集的第一转动角度数据做区分,把此时的腰关节的转动角度数据称为第二转动角度数据),并把第二轨迹数据分切为多个轨迹子片段样本数据,并根据第二转动角度数据提取各轨迹子片段样本数据对应的腰关节角度样本数据(具体过程参考前文的步骤A2)。
初始化策略记忆库。
使用随机策略参数矩阵
Figure 418470DEST_PATH_IMAGE090
,初始化回报值函数
Figure 770954DEST_PATH_IMAGE091
,其中,回报值函数由 关节转动调整项的各个转动关节分量定义,即
Figure 447923DEST_PATH_IMAGE092
Figure 948174DEST_PATH_IMAGE093
为机器 人的状态量向量,
Figure 634371DEST_PATH_IMAGE094
Figure 841361DEST_PATH_IMAGE093
的第
Figure 17127DEST_PATH_IMAGE053
个分量,
Figure 942358DEST_PATH_IMAGE096
为机器人的动作向量,
Figure 166666DEST_PATH_IMAGE097
Figure 57524DEST_PATH_IMAGE096
的第
Figure 341875DEST_PATH_IMAGE053
个分量,
Figure 488822DEST_PATH_IMAGE090
为 高维的策略参数矩阵,
Figure 579138DEST_PATH_IMAGE098
Figure 760721DEST_PATH_IMAGE090
的第
Figure 215973DEST_PATH_IMAGE053
个列向量(即
Figure 178113DEST_PATH_IMAGE090
中对应第
Figure 744223DEST_PATH_IMAGE053
个关节运动的列数据组成 的向量);
Figure 780312DEST_PATH_IMAGE099
Figure 468783DEST_PATH_IMAGE091
的第
Figure 590322DEST_PATH_IMAGE053
个分量(即第
Figure 960124DEST_PATH_IMAGE053
个关节运动的回报值函数分 量),其中,
Figure 116299DEST_PATH_IMAGE100
,即
Figure 474205DEST_PATH_IMAGE101
(后续通过训练使回报值函数最大 化,实际是使每个关节对应的
Figure 83041DEST_PATH_IMAGE052
最小化,使得
Figure 990954DEST_PATH_IMAGE102
最大化)。
初始化冗余双臂机器人的运动约束参数和动力约束参数。
S2. 迭代训练神经网络参数。
根据各轨迹子片段样本数据的时间顺序,依次针对各个轨迹子片段样本数据,执行以下操作:
1)初始化机器人的状态量向量;如果当前的轨迹子片段样本数据是首个轨迹子片段样本数据,则把机器人的状态量向量初始化为该轨迹子片段样本数据的起始点的示范人员腕关节的状态量向量(即,初始化后的机器人的左机械臂末端的位置、速度和加速度等于该轨迹子片段样本数据的起始点处的示范人员左腕关节的位置、速度和加速度,初始化后的机器人的右机械臂末端的位置、速度和加速度等于该轨迹子片段样本数据的起始点处的示范人员右腕关节的位置、速度和加速度,其中,示范人员腕关节的加速度可以通过对速度进行求导得到);如果当前的轨迹子片段样本数据不是首个轨迹子片段样本数据,则把机器人的状态量向量初始化为上一个轨迹子片段样本数据训练结束时的机器人的实际状态量向量。
2)设定学习步长
Figure 63953DEST_PATH_IMAGE103
,该学习步长
Figure 31909DEST_PATH_IMAGE103
为从轨迹子片段样本数据的起始点到终点,机 械臂单次学习运动步长的最大值。该学习步长
Figure 128041DEST_PATH_IMAGE103
可根据实际需要设置,或者通过以下公式 计算得到:
Figure 901962DEST_PATH_IMAGE104
Figure 32729DEST_PATH_IMAGE105
为第
Figure 171586DEST_PATH_IMAGE106
个轨迹子片段样本数据(即当前的轨迹子片段样本数据)对应的轨迹片 段的长度,
Figure 551752DEST_PATH_IMAGE107
为预设的比例系数(可根据实际需要设置)。
3)由迭代数iteration=1时刻开始训练,通过对当前状态前馈,预测当前时刻的动 作向量
Figure 67047DEST_PATH_IMAGE071
对应的回报值函数。
根据步骤S1中初始化得到的冗余双臂机器人的运动约束参数和动力约束参数,对 每个关节的转角区间进行均分得到16个角度值,用各关节的这些角度值随机组合出x(x可 根据实际需要设置)个动作向量输入至神经网络,分别计算得到对应的回报值函数,选取这 些回报值函数的最大值对应的动作向量输入值为相应时刻的动作向量
Figure 52320DEST_PATH_IMAGE071
。通过该方式选取 得到各时刻的动作向量
Figure 925861DEST_PATH_IMAGE071
和对应的回报值函数,可大大提升训练稳定性和训练效率。
4)计算动作向量
Figure 731005DEST_PATH_IMAGE071
对应的奖励值
Figure 784412DEST_PATH_IMAGE108
。奖励值
Figure 686509DEST_PATH_IMAGE108
可定义为离散化的机器人当前位姿 与示教轨迹片段点重合程度的度量,即由机器人的动作向量
Figure 167169DEST_PATH_IMAGE071
和运动学正解算法计算得到 的机器人的机械臂末端位姿与示教轨迹片段点的平均偏差回报。
5)由当前时刻的动作向量
Figure 725189DEST_PATH_IMAGE071
和当前时刻的策略参数矩阵
Figure 316708DEST_PATH_IMAGE090
所对应的机器人的状 态量向量
Figure 338890DEST_PATH_IMAGE093
,生成策略元组
Figure 990451DEST_PATH_IMAGE109
6)在该策略元组
Figure 770189DEST_PATH_IMAGE109
满足预设条件时,把该策略元组
Figure 227715DEST_PATH_IMAGE109
加入 至策略记忆库。其中,预设条件可根据实际需要设置,例如,预设条件为该策略元组与策略 记忆库中的至少一个已有的策略元组的相关性(如欧式距离或皮尔逊系数等)达到预设阈 值,但不限于此。反之,如果该策略元组
Figure 42087DEST_PATH_IMAGE109
不满足预设条件,则不加入存储策略 记忆库。
以当前进行状态前馈,对下一时刻的状态量向量
Figure 864550DEST_PATH_IMAGE110
进行赋值,其中下一时刻的策 略参数矩阵由当前
Figure 692435DEST_PATH_IMAGE090
赋初始值,即下一时刻的参数初始值
Figure 891335DEST_PATH_IMAGE111
,下一时刻的状态量向 量
Figure 560214DEST_PATH_IMAGE112
从步骤3)中组合得到的x个动作向量中随机抽取一个运动矢量作为下一时刻的动 作向量
Figure 615894DEST_PATH_IMAGE113
接续训练;当记忆库存储的策略元组数量达到预设数量阈值时,可从策略记忆库 中随机抽取一小批batch样本动作向量用于新的策略元组的训练,历史经验都可以被多次 用到,用以更新权重,数据利用效率更高。
7)根据步骤6)计算得到的下一时刻的动作向量
Figure 370224DEST_PATH_IMAGE114
和下一时刻的状态量向量
Figure 372815DEST_PATH_IMAGE110
,计 算最大化的回报值函数,即
Figure 958517DEST_PATH_IMAGE115
;计算损失函数
Figure 122782DEST_PATH_IMAGE121
Figure 364408DEST_PATH_IMAGE117
为损失函数,
Figure 967427DEST_PATH_IMAGE118
为探索系 数;使用
Figure 345319DEST_PATH_IMAGE118
探索机制,用系数
Figure 946065DEST_PATH_IMAGE118
来选择是继续探索,还是直接根据经验做出决策,一般地,系 统里
Figure 973189DEST_PATH_IMAGE118
是从1逐渐减少到0.1 ,使得训练初期,尽可能多的对下一时刻的状态量向量
Figure 317582DEST_PATH_IMAGE110
探索 更大的区域,随后再逐渐偏向于上一时刻的状态量向量
Figure 549981DEST_PATH_IMAGE093
的经验。训练初期通过广泛试错找 准一个方向,然后沿着该方向一路试探下去直到达到奖励值最大和运动策略最优。
8)通过神经网络反向传播使用梯度下降的方法来更新策略参数矩阵
Figure 118365DEST_PATH_IMAGE090
S3.针对多个不同的动作示范过程重复上述步骤S1和S2。
步骤A3之后,还包括步骤:在得到的运动策略数据集的策略元组满足预设条件时,把对应的策略元组加入至策略记忆库。
需要说明的是, 策略记忆库中还记录有各策略元组对应的输入数据(轨迹子片段数据或轨迹子片段样本数据、对应的腰关节角度数据或腰关节角度样本数据、运动约束参数和动力约束参数、以及待处理工件的位姿数据)。
该冗余双臂机器人示教装置还包括:
强化训练模块,用于对分层学习神经网络模型进行强化训练。具体地,从策略记忆库中随机抽取若干样本(输入数据)进行训练,训练过程参考前文,而且在训练时用样本对应的策略元组进行初始化。由于从策略记忆库中随机抽取样本进行强化学习,打乱数据相关性,避免受样本分布的影响,且用样本对应的策略元组进行初始化,可提高训练效率。
由上可知,该冗余双臂机器人示教装置,通过获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据、冗余双臂机器人的运动约束参数和动力约束参数、以及待处理工件的位姿数据;把第一轨迹数据分切为多个轨迹子片段数据,并根据第一转动角度数据提取各轨迹子片段数据对应的腰关节角度数据;把运动约束参数、动力约束参数、待处理工件的位姿数据、多个轨迹子片段数据和对应的腰关节角度数据输入预先训练好的分层学习神经网络模型中,得到运动策略数据集;根据运动策略数据集获取冗余双臂机器人各关节的动作数据序列;动作数据序列包括多个动作数据,动作数据包括对应关节的转动角度和转动角速度;根据冗余双臂机器人各关节的动作数据序列控制各关节运动;从而,可方便快捷地实现对冗余双臂机器人的示教。而且在模型在计算时不仅考虑了示范人员腕关节轨迹的位姿信息,还综合考虑了手臂各关节和部的转动姿态信息,并将机器人的运动学和动力学参数当做约束条件,作为输入参数,使机械臂的运动满足关节转角范围、机械臂可达空间、关节最大转动角速度和关节最大输出力矩等约束条件,使得机械臂动作和轨迹在原有示范者的演示基础上,泛化为机器人所能适用的双臂协同运动,在提高机器人作业的环境适应能力同时,避免了机械臂在运动时的奇异构型和相互碰撞。
请参照图3,图3为本申请实施例提供的一种电子设备的结构示意图,本申请提供一种电子设备,包括:处理器301和存储器302,处理器301和存储器302通过通信总线303和/或其他形式的连接机构(未标出)互连并相互通讯,存储器302存储有处理器301可执行的计算机程序,当电子设备运行时,处理器301执行该计算机程序,以执行上述实施例的任一可选的实现方式中的冗余双臂机器人示教方法,以实现以下功能:获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据、冗余双臂机器人的运动约束参数和动力约束参数、以及待处理工件的位姿数据;把第一轨迹数据分切为多个轨迹子片段数据,并根据第一转动角度数据提取各轨迹子片段数据对应的腰关节角度数据;把运动约束参数、动力约束参数、待处理工件的位姿数据、多个轨迹子片段数据和对应的腰关节角度数据输入预先训练好的分层学习神经网络模型中,得到运动策略数据集;根据运动策略数据集获取冗余双臂机器人各关节的动作数据序列;动作数据序列包括多个动作数据,动作数据包括对应关节的转动角度和转动角速度;根据冗余双臂机器人各关节的动作数据序列控制各关节运动。
请参照图4-图6,本申请提供了一种冗余双臂机器人示教系统,包括冗余双臂机器人400、运动数据采集装置500和上位机(图中没画);
冗余双臂机器人400包括基座401、通过腰部关节402转动设置在基座顶部的转台403以及两个对称地设置在转台403两侧的机械臂405,该机械臂405为七轴机械臂;
运动数据采集装置500包括多个围绕示范工位600设置的立体相机501;运动数据采集装置500用于获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据,以及待处理工件的位姿数据,并上传至上位机(具体过程参考前文的冗余双臂机器人示教方法的步骤);
上位机用于获取冗余双臂机器人400的运动约束参数和动力约束参数;把第一轨迹数据分切为多个轨迹子片段数据,并根据第一转动角度数据提取各轨迹子片段数据对应的腰关节角度数据;把运动约束参数、动力约束参数、待处理工件的位姿数据、多个轨迹子片段数据和对应的腰关节角度数据输入预先训练好的分层学习神经网络模型中,得到运动策略数据集;根据运动策略数据集获取冗余双臂机器人各关节的动作数据序列;动作数据序列包括多个动作数据,动作数据包括对应关节的转动角度和转动角速度;根据冗余双臂机器人400各关节的动作数据序列控制各关节运动(具体过程参考前文的冗余双臂机器人示教方法的步骤)。
该冗余双臂机器人示教系统,通过获取示范人员的示范动作的腕关节的第一轨迹数据和腰关节的第一转动角度数据,并对该第一轨迹数据进行片段分切,结合冗余双臂机器人的运动约束参数和动力约束参数和待处理工件的位姿数据,用分层学习神经网络模型得到运动策略数据集,进而从中提取出各关节的动作数据序列,并用以控制冗余双臂机器人运动,实现了在运动约束和动力约束条件下对示范人员作业过程的模仿,可方便快捷地实现对冗余双臂机器人的示教,使冗余双臂机器人能够快速适应各种复杂的新任务要求。
在一些实施方式中,该冗余双臂机器人400包括基座401、通过腰部关节402转动设置在基座401顶部的转台403、设置在转台403顶部的立体视觉装置404、两个对称地设置在转台403两侧的机械臂405、以及两个分别设置在两个机械臂405末端的电动夹爪406;机械臂405为七轴机械臂,包括七个关节,其中三个关节组成具有三个自由度的肩关节407,另外的一个关节组成具有一个自由度的肘关节408,剩余的三个关节组成具有三个自由度的腕关节409;其中,肩关节407与肘关节408之间连接有后臂杆410,肘关节408与腕关节409连接有前臂杆411。该冗余双臂机器人400的腰部关节402可模拟人体的腰部转动,其机械臂405的结构与人体的手臂结构类似,因此能够较好地模仿人的动作,降低无法复现示范人员的动作的几率。
其中,冗余双臂机器人400的工作工位处的环境布置与示范工位600处的环境布置相同(主要是指工作台、工件上料区和工具放置区之间的相对位姿相同)。
在本实施例中,见图4,运动数据采集装置500还包括多个遮光板502和铝合金骨架503,多个遮光板502通过铝合金骨架503围成一个3/4球形内腔,示范工位600设置在3/4球形内腔的球心处,每个遮光板502上设置有一个立体相机501,且各立体相机501与该球心的距离相等;其中一个立体相机501设置在示范工位600的正上方。通过遮光板502的遮光作用,可避免外部光线影响图像识别的精度。把示范工位600设置在球形内腔的球心处,作业示范人员作业过程中的双手双臂及腰部运动均在各个立体相机501的重叠视场中,并且立体相机501均安装在球心距相等的位置上,保证了不同角度的立体相机501的数据采集距离一致性,进一步保证了数据采集的准确性和可靠性。
该冗余双臂机器人示教系统具有以下优点:
1. 冗余双臂机器人的采用机械臂和腰部协同化运动机制,在满足类似人员作业时的腰部与手臂协同作业要求的前提下,每个机械臂的7个转动轴,关节分布合理、结构紧凑轻巧、运动灵活、协同工作空间大,与单机械臂机器人相比,作业更稳定的特点,作业更灵活,适用范围更广;
2.可实现在运动约束和动力约束条件下对示范人员作业过程的模仿,可方便快捷地实现对冗余双臂机器人的示教,使冗余双臂机器人能够快速适应各种复杂的新任务要求;
3.使用的分层学习神经网络模型,不仅考虑了示范人员手腕关节轨迹的位姿信息,并将双臂机器人的运动学和动力学参数当做约束条件,使机械臂的运动满足关节转角范围、机械臂可达空间、关节最大转动角速度和关节最大输出力矩等约束条件;从而使得输出轨迹在原有示范者的演示示范基础上,泛化成为双臂机器人所能适用的双臂协同运动参数指令,避免了机械臂在运动时的奇异构型和相互碰撞;
4. 将多个立体相机采集模块(立体相机和对应的遮光板)搭建为总体外形呈球3/4球形,示范工位600设置在3/4球形内腔的球心处,作业示范人员作业过程中的双手双臂及腰部运动均在各个相机的重叠视场中,并且相机均安装在球心距相等的位置上,保证了不同角度相机的数据采集距离一致性,进一步保证了数据采集的准确性和可靠性。可解决在实际作业过程中,由于人体腰部转动或者双臂协同运动带来的关节点遮挡而引起的数据采集异常问题。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种冗余双臂机器人示教方法,用于对冗余双臂机器人进行示教,所述冗余双臂机器人包括基座、通过腰部关节转动设置在所述基座顶部的转台以及两个对称地设置在所述转台两侧的机械臂,所述机械臂为七轴机械臂,其特征在于,包括步骤:
A1.获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据、所述冗余双臂机器人的运动约束参数和动力约束参数、以及待处理工件的位姿数据;
A2.把所述第一轨迹数据分切为多个轨迹子片段数据,并根据所述第一转动角度数据提取各所述轨迹子片段数据对应的腰关节角度数据;
A3.把所述运动约束参数、所述动力约束参数、所述待处理工件的位姿数据、所述多个轨迹子片段数据和对应的所述腰关节角度数据输入预先训练好的分层学习神经网络模型中,得到运动策略数据集;
A4.根据所述运动策略数据集获取所述冗余双臂机器人各关节的动作数据序列;所述动作数据序列包括多个动作数据,所述动作数据包括对应关节的转动角度和转动角速度;
A5.根据所述冗余双臂机器人各关节的动作数据序列控制各所述关节运动。
2.根据权利要求1所述的冗余双臂机器人示教方法,其特征在于,步骤A4之后和步骤A5之前,还包括步骤:
A6.根据各关节的所述动作数据序列对所述冗余双臂机器人进行仿真碰撞检测;
A7.根据仿真碰撞检测结果,对存在碰撞情况的关节的局部运动进行重规划,以调整对应的动作数据序列。
3.根据权利要求1所述的冗余双臂机器人示教方法,其特征在于,步骤A1包括:
通过图像识别方法获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据。
4.根据权利要求1所述的冗余双臂机器人示教方法,其特征在于,步骤A2包括:
根据示范人员的腕关节的运动时间把所述第一轨迹数据分切为多个轨迹子片段数据。
5.根据权利要求1所述的冗余双臂机器人示教方法,其特征在于,步骤A2包括:
根据示范人员的腕关节的轨迹长度把所述第一轨迹数据分切为多个轨迹子片段数据。
6.根据权利要求1所述的冗余双臂机器人示教方法,其特征在于,骤A2包括:
根据示范人员的腕关节的速度变化情况把所述第一轨迹数据分切为多个轨迹子片段数据。
7.根据权利要求1所述的冗余双臂机器人示教方法,其特征在于,所述运动策略数据集包括与每个所述轨迹子片段数据对应的动作向量序列;所述动作向量序列包括多个动作向量,每个所述动作向量包含所述冗余双臂机器人各关节的动作数据;
步骤A4包括:
从所述运动策略数据集中,提取各关节的动作数据,分别形成各关节的初始的动作数据序列;
采用三次多项式插值方法对各关节的所述初始的动作数据序列进行插值,得到各关节的最终的动作数据序列。
8.一种冗余双臂机器人示教装置,用于对冗余双臂机器人进行示教,所述冗余双臂机器人包括基座、通过腰部关节转动设置在所述基座顶部的转台以及两个对称地设置在所述转台两侧的机械臂,所述机械臂为七轴机械臂,其特征在于,包括:
第一获取模块,用于获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据、所述冗余双臂机器人的运动约束参数和动力约束参数、以及待处理工件的位姿数据;
数据预处理模块,用于把所述第一轨迹数据分切为多个轨迹子片段数据,并根据所述第一转动角度数据提取各所述轨迹子片段数据对应的腰关节角度数据;
运动策略生成模块,用于把所述运动约束参数、所述动力约束参数、所述待处理工件的位姿数据、所述多个轨迹子片段数据和对应的所述腰关节角度数据输入预先训练好的分层学习神经网络模型中,得到运动策略数据集;
关节数据获取模块,用于根据所述运动策略数据集获取所述冗余双臂机器人各关节的动作数据序列;所述动作数据序列包括多个动作数据,所述动作数据包括对应关节的转动角度和转动角速度;
控制模块,用于根据所述冗余双臂机器人各关节的动作数据序列控制各所述关节运动。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时,运行如权利要求1-7任一项所述冗余双臂机器人示教方法中的步骤。
10.一种冗余双臂机器人示教系统,其特征在于,包括冗余双臂机器人、运动数据采集装置和上位机;
所述冗余双臂机器人包括基座、通过腰部关节转动设置在所述基座顶部的转台以及两个对称地设置在所述转台两侧的机械臂,所述机械臂为七轴机械臂;
所述运动数据采集装置包括多个围绕示范工位设置的立体相机;所述运动数据采集装置用于获取示范人员在进行动作示范时的腕关节的第一轨迹数据和腰关节的第一转动角度数据,以及待处理工件的位姿数据,并上传至所述上位机;
所述上位机用于获取所述冗余双臂机器人的运动约束参数和动力约束参数;把所述第一轨迹数据分切为多个轨迹子片段数据,并根据所述第一转动角度数据提取各所述轨迹子片段数据对应的腰关节角度数据;把所述运动约束参数、所述动力约束参数、所述待处理工件的位姿数据、所述多个轨迹子片段数据和对应的所述腰关节角度数据输入预先训练好的分层学习神经网络模型中,得到运动策略数据集;根据所述运动策略数据集获取所述冗余双臂机器人各关节的动作数据序列;所述动作数据序列包括多个动作数据,所述动作数据包括对应关节的转动角度和转动角速度;根据所述冗余双臂机器人各关节的动作数据序列控制各所述关节运动。
CN202210452683.9A 2022-04-27 2022-04-27 冗余双臂机器人示教方法、装置、电子设备及系统 Active CN114536351B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210452683.9A CN114536351B (zh) 2022-04-27 2022-04-27 冗余双臂机器人示教方法、装置、电子设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210452683.9A CN114536351B (zh) 2022-04-27 2022-04-27 冗余双臂机器人示教方法、装置、电子设备及系统

Publications (2)

Publication Number Publication Date
CN114536351A true CN114536351A (zh) 2022-05-27
CN114536351B CN114536351B (zh) 2022-07-15

Family

ID=81667282

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210452683.9A Active CN114536351B (zh) 2022-04-27 2022-04-27 冗余双臂机器人示教方法、装置、电子设备及系统

Country Status (1)

Country Link
CN (1) CN114536351B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115256400A (zh) * 2022-08-26 2022-11-01 北京理工大学 机器人三自由度电驱动耦合关节的运动可行范围线性界定方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107107342A (zh) * 2014-12-26 2017-08-29 川崎重工业株式会社 双臂机械手的示教系统及双臂机械手的示教方法
CN108284436A (zh) * 2018-03-17 2018-07-17 北京工业大学 具有模仿学习机制的远程机械双臂系统及方法
KR20190048589A (ko) * 2017-10-31 2019-05-09 충남대학교산학협력단 가상 현실 기반 양팔로봇 교시 장치 및 방법
CN112207835A (zh) * 2020-09-18 2021-01-12 浙江大学 一种基于示教学习实现双臂协同作业任务的方法
CN112959330A (zh) * 2021-02-02 2021-06-15 浙江大学 基于主从动态运动基元的机器人双臂运动人机对应装置及方法
US20220080581A1 (en) * 2020-09-11 2022-03-17 Fanuc Corporation Dual arm robot teaching from dual hand human demonstration

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107107342A (zh) * 2014-12-26 2017-08-29 川崎重工业株式会社 双臂机械手的示教系统及双臂机械手的示教方法
KR20190048589A (ko) * 2017-10-31 2019-05-09 충남대학교산학협력단 가상 현실 기반 양팔로봇 교시 장치 및 방법
CN108284436A (zh) * 2018-03-17 2018-07-17 北京工业大学 具有模仿学习机制的远程机械双臂系统及方法
US20220080581A1 (en) * 2020-09-11 2022-03-17 Fanuc Corporation Dual arm robot teaching from dual hand human demonstration
CN112207835A (zh) * 2020-09-18 2021-01-12 浙江大学 一种基于示教学习实现双臂协同作业任务的方法
CN112959330A (zh) * 2021-02-02 2021-06-15 浙江大学 基于主从动态运动基元的机器人双臂运动人机对应装置及方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115256400A (zh) * 2022-08-26 2022-11-01 北京理工大学 机器人三自由度电驱动耦合关节的运动可行范围线性界定方法
CN115256400B (zh) * 2022-08-26 2024-05-28 北京理工大学 机器人三自由度电驱动耦合关节的运动可行范围线性界定方法

Also Published As

Publication number Publication date
CN114536351B (zh) 2022-07-15

Similar Documents

Publication Publication Date Title
Jiang et al. State-of-the-Art control strategies for robotic PiH assembly
CN111538949B (zh) 冗余机器人逆运动学求解方法、装置和冗余机器人
Gong et al. Analytical inverse kinematics and self-motion application for 7-DOF redundant manipulator
CN113967911B (zh) 基于末端工作空间的仿人机械臂的跟随控制方法及系统
Aleotti et al. Grasp recognition in virtual reality for robot pregrasp planning by demonstration
JP5210884B2 (ja) 物理的多関節システムの姿勢を制御するコンピュータを用いた方法および多関節システムを位置決めするシステム
CN111260649B (zh) 一种近距离机械臂感知与校准方法
CN109079794B (zh) 一种基于人体姿态跟随的机器人控制与示教方法
CN113319857B (zh) 机械臂力位混合控制方法、装置、电子设备及存储介质
CN104298244B (zh) 一种工业机器人三维实时高精度定位装置的定位方法
CN109571481A (zh) 一种关节奇异点处理方法、装置、设备和存储介质
CN115469576B (zh) 一种基于人-机械臂异构运动空间混合映射的遥操作系统
CN113043278B (zh) 一种基于改进型鲸鱼搜索方法的机械臂轨迹规划方法
CN115179294A (zh) 机器人控制方法、系统、计算机设备、存储介质
CN114536351B (zh) 冗余双臂机器人示教方法、装置、电子设备及系统
CN111152220A (zh) 一种基于人机融合的机械臂控制方法
CN111300408A (zh) 一种结合形似与神似的仿人双臂机器人运动规划控制方法
CN112684709A (zh) 一种集群跟踪运动学建模方法、系统、设备及存储介质
CN114932549A (zh) 空间冗余机械臂的运动规划方法与装置
CN111482969A (zh) 一种基于bas算法的六自由度偏置机器人逆解方法
Zhuang et al. Obstacle avoidance path planning for apple picking robotic arm incorporating artificial potential field and a* algorithm
Ramer et al. A robot motion planner for 6-DOF industrial robots based on the cell decomposition of the workspace
Ren et al. Knowledge database-based multiobjective trajectory planning of 7-DOF manipulator with rapid and continuous response to uncertain fast-flying objects
Ishida et al. Human motion imitation using optimal control with time-varying weights
CN109531578A (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