一种基于网页的机械臂虚拟拖动方法技术

技术编号:24835216 阅读:27 留言:0更新日期:2020-07-10 18:51
本发明专利技术是一种基于网页的机械臂虚拟拖动方法。所述方法为建立七自由度机械臂模型,并搭建网页3D虚拟场景,确定虚拟拖动的实现方式和流程,基于机械臂臂角参数法对机械臂进行运动学建模,并基于关节权重的距离变化最小原则确定最优解;根据网页模块化编程实现异步加载,进行拖动目标、模型、显示和运算的分层设计;基于网页单向数据流架构和状态管理的鼠标交互方法,进行示教数据记录和动画复现;基于websocket通信协议发送示教数据,实现控制真实机械臂。本发明专利技术改善机械臂人机交互的性能,提高虚拟示教软件的跨平台性和可扩展性。

【技术实现步骤摘要】
一种基于网页的机械臂虚拟拖动方法
本专利技术涉及机械臂虚拟拖动
,是一种基于网页的机械臂虚拟拖动方法。
技术介绍
随着机器人技术的快速发展,机械臂的应用也越来越广泛。一方面,从家居服务、工厂作业到农用军事、潜海航天,机械臂所承担的任务日趋复杂,得益于三维仿真技术和硬件能力的迅速提高,使基于虚拟现实的机械臂交互成为一种有效的操控方式;另一方面,原则上对于大多数的机械臂操作任务,操作者都可以通过示教再现方式来控制机械臂工作,从而提高机械臂执行任务的稳定性、准确性和工作效率。现阶段最常用的机器人示教编程方式包括由人工导引机器人末端执行器(安装于机器人关节结构末端的夹持器、工具、焊枪、喷枪等),或用示教盒(一种与机械臂控制系统相连接的手持装置,用以对机器人进行编程或使之运动)完成程序的编制,来控制机器人完成预期的动作。但是,这类示教方式通常要在离线方式下进行,并且对操作人员的专业性和熟练程度有较高的要求;同时,对于极端环境下作业的机器人来说,操作者无法通过人工导引等方式进行示教。然而,通过虚拟模型示教操作,能够很好地实现任务仿真和在线控制。因此,研究机械臂虚拟示教技术,不仅能够提高机械臂的易用性,还能在特殊工作场景下进行遥操作,对于机械臂的推广应用具有至关重要的意义。传统的机械臂虚拟现实技术多采用OpenGL或OpenInventor等进行编程来实现虚拟场景的构建和人机交互。然而,OpenGL编程难度较大,开发周期较长;而OpenInventor并非开源,开发成本较高。此外,一些机器人企业的相关成熟软件专用性比较强,不适合扩展研究。近年来,随着互联网技术的飞速进步,Web功能日渐强大,新一代浏览器在二维和三维图形显示方面的能力得到巨大提升,WebGL也因此成为了当前在网页上进行三维游戏场景构建的标准。同时,JavaScript编程语言的功能也逐渐完善,形成了一个封装了底层WebGL的Three.js三维图形工具包,对于网页三维图形开发提供了良好的接口。网页可以在任何具有现代浏览器的操作系统上打开,轻量便捷。
技术实现思路
本专利技术为改善机械臂人机交互的性能,提高虚拟示教软件的跨平台性和可扩展性,本专利技术提供了一种基于网页的机械臂虚拟拖动方法,本专利技术提供了以下技术方案:一种基于网页的机械臂虚拟拖动方法,包括以下步骤:步骤1:建立七自由度机械臂模型,并搭建网页3D虚拟场景,所述网页3D虚拟场景基于Web图形工具Three.js实现;步骤2:确定虚拟拖动的实现方式和流程,所述虚拟拖动的实现方式包括鼠标拖动虚拟模型末端和鼠标拖动对应关节角度的交互滑条,设计了末端拖动交互标记;步骤3:基于机械臂臂角参数法对机械臂进行运动学建模,并基于关节权重的距离变化最小原则确定最优解;步骤4:根据网页模块化编程实现异步加载,进行拖动目标、模型、显示和运算的分层设计;步骤5:基于网页单向数据流架构和状态管理的鼠标交互方法,进行示教数据记录和动画复现;步骤6:基于websocket通信协议发送示教数据,实现控制真实机械臂。优选地,所述鼠标拖动对应关节角度的交互滑条具体为:通过Three.js提供的dat.Gui.js设计具有关节限位的滑块,用鼠标拖动滑块来实现。优选地,鼠标拖动虚拟模型末端具体为:将鼠标在虚拟三维空间中的位姿作为机械臂逆解程序的输入量,通过Three.js的TransformControls.js解析鼠标拖动的目标点的位姿,实时输入给逆解程序;逆解程序输出机械臂在末端位姿下的各个关节的绝对角度位置;通过Three.js提供的dat.Gui.js切换鼠标拖动机械臂末端的控制模式,移动控制模式下,姿态值默认原值不变,旋转控制模式下,位置值默认原值不变;姿态旋转通过欧拉角RPY表示。优选地,确定鼠标输入的末端目标点位姿是否在机械臂的可达工作空间内,当在机械臂的可达工作空间内则进行逆解,输出末端位姿和关节角度值;当不在机械臂的可达工作空间内,则将有解值再一次赋给关节变量,防止无解时JavaScript在无解时而导致虚拟图形无法正常显示,通过单向数据流数据状态管理记录每一次的运算值,实现示教点的记录。优选地,所述步骤3具体为:步骤3.1:基于机械臂臂角参数法对机械臂进行运动学建模,对于所采用7自由度拟人机械臂,给定相对于基系{0}的目标位姿其中:0lbs=[0,0,-dbs]T,3lse=[0,dse,0]T,4lew=[0,0,-dew]T,7lwt=[0,0,-dwt]T;求基坐标{0}中手腕w点相对于肩部s点的向量0xsw上述0lbs为肩关节s相对于基座b的位置向量在坐标系{0}中的表示,3lse为肘关节e相对于肩关节s的位置向量在坐标系{3}中的表示,4lew为腕关节w相对于肘关节e的位置向量在坐标系{4}中的表示,7lwt为末端执行器t相对于腕关节w的位置向量在坐标系{7}中的表示;dbs、dse、dew和dwt分别为基座与肩关节、肩关节与肘关节、肘关节与腕关节、腕关节与末端执行器之间的距离;其中,0lbs和7lwt已知。令0usw为0xsw的单位向量:0usw=0xsw/||0xsw||;令[0usw×]为0usw的反对称矩阵,通过下式表示[0usw×]:根据肘关节角θ4与臂角无关,利用余弦定理求解3R4,通过下式进行求解:当θ4为实数时,表示非奇异;当θ4为虚数时,则为不可达;当目标位姿位于工作空间边界上,即sew在同一直线上,为虚数,添加了一个阈值,保证计算稳定性,即将求得的角度转化成与实际坐标系对应的关节角;步骤3.2:根据式(1)中所计算的0xsw,3xsw=3lse+3R44lew,展开后z方向上为0,则令3xsw=[p3,q3,0]T,又令0xsw=[p0,q0,r0]T,带入公式左右两边对应项相等:先解关节2角度θ2,进而计算出关节1角度θ1;当c2p3-s2q3=0时,向量0xsw与关节1轴线重合,自运动时,只有关节1发生变化。根据可得关节3角度θ3=0时即臂处于参考平面时坐标系3在基系中的姿态矩阵:进一步引入臂角:其中:则则,可根据下列两式求出机械臂各个关节角[[θ1,θ2,θ3],θ4,[θ5,θ6,θ7]]的解:当奇异情况为|θ2|<ε或|θ6|<ε时,此时sin|θ2|=0,0R3退化,通过下式表示退化后的0R3:得到θ1+θ3=arctan(0R3(2,1),0R3(1,1)),按运动距离比例分配可得到θ1和θ3,θ5和θ7同理;采用JavaScript编写运动学正逆解类classkinematic,以1°为步长,计算定义的臂角从-π到+π所有的逆解,保存下来,基于权重分配的距离最小原则,选择一组最优解作为示教路径点,通过下式表示最优解:其中,D为路径最小解的总距离,ωi表示第i个关节的权重因子,θnow表示计算的关节角度,θthe本文档来自技高网
...

【技术保护点】
1.一种基于网页的机械臂虚拟拖动方法,其特征是:包括以下步骤:/n步骤1:建立七自由度机械臂模型,并搭建网页3D虚拟场景,所述网页3D虚拟场景基于Web图形工具Three.js实现;/n步骤2:确定虚拟拖动的实现方式和流程,所述虚拟拖动的实现方式包括鼠标拖动虚拟模型末端和鼠标拖动对应关节角度的交互滑条,开发了末端拖动交互标记;/n步骤3:基于机械臂臂角参数法对机械臂进行运动学建模,并基于关节权重的距离变化最小原则确定最优解;/n步骤4:根据网页模块化编程实现异步加载,进行拖动目标、模型、显示和运算的分层设计;/n步骤5:基于网页单向数据流架构和状态管理的鼠标交互方法,进行示教数据记录和动画复现;/n步骤6:基于websocket通信协议发送示教数据,实现控制真实机械臂。/n

【技术特征摘要】
1.一种基于网页的机械臂虚拟拖动方法,其特征是:包括以下步骤:
步骤1:建立七自由度机械臂模型,并搭建网页3D虚拟场景,所述网页3D虚拟场景基于Web图形工具Three.js实现;
步骤2:确定虚拟拖动的实现方式和流程,所述虚拟拖动的实现方式包括鼠标拖动虚拟模型末端和鼠标拖动对应关节角度的交互滑条,开发了末端拖动交互标记;
步骤3:基于机械臂臂角参数法对机械臂进行运动学建模,并基于关节权重的距离变化最小原则确定最优解;
步骤4:根据网页模块化编程实现异步加载,进行拖动目标、模型、显示和运算的分层设计;
步骤5:基于网页单向数据流架构和状态管理的鼠标交互方法,进行示教数据记录和动画复现;
步骤6:基于websocket通信协议发送示教数据,实现控制真实机械臂。


2.根据权利要求1所述的一种基于网页的机械臂虚拟拖动方法,其特征是:所述鼠标拖动对应关节角度的交互滑条具体为:通过Three.js提供的dat.Gui.js设计具有关节限位的滑块,用鼠标拖动滑块来实现。


3.根据权利要求1所述的一种基于网页的机械臂虚拟拖动方法,其特征是:鼠标拖动虚拟模型末端具体为:将鼠标在虚拟三维空间中的位姿作为机械臂逆解程序的输入量,通过Three.js的TransformControls.js解析鼠标拖动的目标点的位姿,实时输入给逆解程序;逆解程序输出机械臂在末端位姿下的各个关节的绝对角度位置;通过Three.js提供的dat.Gui.js切换鼠标拖动机械臂末端的控制模式,移动控制模式下,姿态值默认原值不变,旋转控制模式下,位置值默认原值不变;姿态旋转通过欧拉角表示。


4.根据权利要求1所述的一种基于网页的机械臂虚拟拖动方法,其特征是:确定鼠标输入的末端目标点位姿是否在机械臂的可达工作空间内,当在机械臂的可达工作空间内则进行逆解,输出末端位姿和关节角度值;当不在机械臂的可达工作空间内,则将有解值再一次赋给关节变量,防止无解时JavaScript在无解时而导致虚拟图形无法正常显示,通过单向数据流数据状态管理记录每一次的运算值,实现示教点的记录。


5.根据权利要求4所述的一种基于网页的机械臂虚拟拖动方法,其特征是:所述步骤3具体为:
步骤3.1:基于机械臂臂角参数法对机械臂进行运动学建模,对于所采用七自由度拟人机械臂,给定相对于基系{0}的目标位姿
其中:0lbs=[0,0,-dbs]T,3lse=[0,dse,0]T,4lew=[0,0,-dew]T,7lbswt=[0,0,-dwt]T;求基坐标{0}中手腕w点相对于肩部s点的向量:



其中,0lbs为肩关节s相对于基座b的位置向量在坐标系{0}中的表示,3lse为肘关节e相对于肩关节s的位置向量在坐标系{3}中的表示,4lew为腕关节w相对于肘关节e的位置向量在坐标系{4}中的表示,7lwt为末端执行器t相对于腕关节w的位置向量在坐标系{7}中的表示;dbs、dse、dew和dwt分别为基座与肩关节、肩关节与肘关节、肘关节与腕关节、腕关节与末端执行器之间的距离;
令0usw为0xsw的单位向量:0usw=0xsw/||0xsw||,[0usw×]为0usw的反对称矩阵,通过下式表示[0usw×],:



根据θ4与臂角无关,利用余弦定理求解3R4,通过下式进行求解:



当θ4为实数时,表示非奇异;当θ4为为虚数时,则为不可达;当目标位姿位于工作空间边界上,即sew在同一直线上,为虚数,添加了一个阈值,保证计算稳定性,即将求得的角度转化成与实际坐标系对应的关节角;
步骤3.2:根据式(1)中所计算的0xsw,3xsw=3lse+3R44lew,展开后z方向上为0,则令3xsw=[p3,q3,0]T,又令0xsw=[p0,q0,r0]T,带入公式



左右两边对应项相等:先解关节2角度θ2,进而计算出关节1角度θ1;
当c2p3-s2q3=0时,向量0xsw与关节1轴线重合,自运动时,只有...

【专利技术属性】
技术研发人员:蒋再男刘大翔倪风雷刘宏
申请(专利权)人:哈尔滨工业大学
类型:发明
国别省市:黑龙;23

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1