传感器标定及数据测量方法、装置、设备、存储介质与流程

文档序号:20833513发布日期:2020-05-22 16:35阅读:414来源:国知局
传感器标定及数据测量方法、装置、设备、存储介质与流程

本申请实施例涉及数据测量领域,涉及但不限于一种传感器标定及数据测量方法、装置、设备、存储介质。



背景技术:

六维力传感器是机械臂智能化的重要部件之一,其广泛应用在航空航天领域的空间站舱体的对接、风力发电装置力和力矩测试、汽车行业的碰撞检测等领域,同时在医疗、军事等行业、工件打磨、抛光、装配等工业应用领域,以及力反馈遥操作领域等均有着越来越多的应用。

目前,使用六维力传感器的场合,在进行力传感器标定时,均是直接对力传感器进行清零操作。

但是,力传感器在实际使用过程中会受到自身重量以及负载重量等多种因素的影响,从而使得其在不同姿态下的测量数值不尽相同。因此,目前对力传感器进行标定的方法,不能使力传感器准确的检测外部作用力和力矩。



技术实现要素:

本申请实施例提供一种传感器标定及数据测量方法、装置、设备、存储介质,能够对传感器进行准确的标定,从而使得传感器能够实现在不同姿态下均可准确且直接的检测外部作用力和力矩。

本申请实施例的技术方案是这样实现的:

本申请实施例提供一种传感器标定方法,包括:

获取传感器自身的重力和所述传感器处于静止状态且无外力作用时所测量得到的静态力;

对所述重力和所述静态力进行等效标定处理,得到标定后的静态力;

获取所述传感器处于运动状态且无外力作用时所测量得到的动态力;

根据所述标定后的静态力对所述动态力进行零漂处理,得到标定后的动态力;

将所述标定后的动态力,作为所述传感器进行外部作用力测量时用于进行标定的标定参数,以得到具有所述标定参数的标定后的传感器。

本申请实施例提供一种数据测量方法,应用于上述所提供的传感器标定方法进行传感器标定,得到标定后的传感器;

采用所述标定后的传感器进行数据测量。

本申请实施例提供一种传感器标定装置,包括:

第一获取模块,用于获取传感器自身的重力和所述传感器处于静止状态且无外力作用时所测量得到的静态力;

等效标定处理模块,用于对所述重力和所述静态力进行等效标定处理,得到标定后的静态力;

第二获取模块,用于获取所述传感器处于运动状态且无外力作用时所测量得到的动态力;

零漂处理模块,用于根据所述标定后的静态力对所述动态力进行零漂处理,得到标定后的动态力;

处理模块,用于将所述标定后的动态力,作为所述传感器进行外部作用力测量时用于进行标定的标定参数,以得到具有所述标定参数的标定后的传感器。

本申请实施例提供一种传感器标定设备,包括:

存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现上述的方法。

本申请实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现上述的方法。

本申请实施例具有以下有益效果:

由于分别获取传感器在静止状态下且无外力作用时的静态力和运动状态下且无外力作用时的动态力,并对重力和静态力进行等效标定处理,得到标定后的静态力,然后基于标定后的静态力对动态力进行零漂处理。如此,对传感器处于静止状态和运动状态的力均进行标定,实现了对传感器不同姿态下力的标定处理,从而能够对传感器进行准确的标定,使得传感器能够实现在不同姿态下均可准确且直接的检测外部作用力和力矩。

附图说明

图1是本申请实施例提供的传感器标定系统的一个可选的架构示意图;

图2是本申请实施例提供的服务器的结构示意图;

图3是本申请实施例提供的传感器标定方法的一个可选的流程示意图;

图4是本申请实施例提供的传感器标定方法的一个可选的流程示意图;

图5是本申请实施例提供的传感器处于第一位置姿态的结构示意图;

图6是本申请实施例提供的传感器标定方法的一个可选的流程示意图;

图7是本申请实施例提供的传感器标定方法的一个可选的流程示意图;

图8是本申请实施例提供的传感器标定方法的一个可选的流程示意图;

图9是本申请实施例提供的传感器标定方法的一个可选的流程示意图;

图10是本申请实施例提供的六维力传感器的受力图;

图11是本申请实施例提供的数据测量方法的一个可选的流程示意图;

图12是本申请实施例提供的数据测量系统的结构示意图;

图13是本申请实施例提供的终端显示测量结果的界面图;

图14是本申请实施例标定过程中等效负载施加的重力分解示意图;

图15是本申请实施例提供的六维力传感器的标定方法的实现过程示意图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。除非另有定义,本申请实施例所使用的所有的技术和科学术语与属于本申请实施例的技术领域的技术人员通常理解的含义相同。本申请实施例所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

为了更好地理解本申请实施例中提供的传感器标定方法和数据测量方法,首先对相关技术中的传感器标定方法进行说明,需要说明的是,本申请实施例的传感器标定方法和数据测量方法可以应用于任意一种力传感器中,为了方便理解,本申请一些实施例中以六维力传感器为例进行说明:

力感知是机器人抓握和操作的重要条件,在工业机器人领域,通常采用六维力传感器,将六维力传感器安装在机器人末端,用于测量机器人工作过程中的末端受力信息。其中机械臂末端六维力传感器是机械臂感知外部力的重要组成部分,其主要安装在机械臂的末端或者基座上,用于检测机械臂末端接触力,从而导引机械臂的运动。目前六维力传感器在工业机器人以及轻型协作臂上应用较多。

六维力传感器是机械臂智能化的重要部件之一,其广泛应用在航空航天领域的空间站舱体的对接、风力发电装置力和力矩测试、汽车行业的碰撞检测等领域,同时,在医疗、军事等行业也有重要的应用价值。近年来,六维力传感器在工件打磨、抛光、装配等工业应用领域,以及力反馈遥操作领域也有着越来越多的应用。

安装在机械臂末端的六维力传感器可以有效检测出机械臂与外部作用的力与力矩,从而为机械臂的柔顺控制以及控制决策提供必要的“力感”。基于六维力传感器的阻抗控制可以有效克服机械臂参考位置不准确引起的碰撞问题。按照六维力传感器的测量原理,可以将六维力传感器分为应变式、电容式以及光电式等多种六维力传感器。

机械臂末端安装末端六维力传感器,使得机械臂末端与六维传感器的一端连接,六维力传感器的另一端安装有末端执行器,在此基础上对一些物体实施抓取与操作。力传感器需要在去除自身重量以及末端执行器重量的基础上给出末端接触力的或者被抓取物体的重量。在目标捕获领域,机械臂末端携有六维力传感器、捕获工具以及手眼相机,机械臂在相机的引导下跟随目标物体的运动,并且在此基础上实施柔顺控制策略,对目标物体进行抓捕,由于整个过程中,机械臂的位置和姿态会发生较大改变,六维力传感器需要在整个力测量过程中将其负载端的重量以及偏置等过滤掉。此外,在力反馈遥操作中,力传感器需要有效地感知所抓取目标物体的重量。因此,需要对六维力传感器进行准确的标定,以去除六维力传感器自身重量以及不同姿态下运动时所产生的力对最终测量结果的影响。那么,就有必要给出力矩传感器在不同应用场合应用时的标定方案,从而使得六维力传感器可以被更加方便的使用,以及有效检测外部作用力和力矩等。

相关技术中,大部分使用六维力传感器的场合均是直接对力传感器进行清零操作。即在特定的工作姿态下,将末端六维力传感器进行清零操作。

然而力传感器在实际使用过程中会受到自身重量以及负载重量等影响,从而使得其在不同姿态下的测量结果不尽相同。因此,相关技术中直接清零操作的方式使得机械臂无法在整个工作空间内全姿态方位的连续运动。对于全姿态方位下连续运动时去除自身偏置、负载重量、自身重量以及零漂等的有效检测力或力矩的方法,目前尚没有具体的方案。

基于相关技术中所存在的上述至少一个问题,本申请实施例提供一种传感器标定方法和数据测量方法,该方法将传感器的标定分为静态标定以及动态标定两部分,通过分别获取到的传感器在静止状态下且无外力作用时的静态力、和运动状态下且无外力作用时的动态力,并对重力和静态力进行等效标定处理,得到标定后的静态力,然后基于标定后的静态力对动态力进行零漂处理。如此,对传感器处于静止状态和运动状态的力均进行标定,实现了静态标定以及动态标定两部分标定,能够对传感器不同姿态下的力进行标定处理,从而能够对传感器进行准确的标定,使得传感器能够实现在不同姿态下均可准确且直接的检测外部作用力和力矩。本申请实施例的方法,静态标定能够有效过滤出不同姿态下的自身偏置、负载重量、自身重量等,动态标定则能够有效过滤传感器零漂等。

下面说明本申请实施例提供的传感器标定设备的示例性应用,本申请实施例提供的传感器标定设备可以实施为工业机器人、笔记本电脑,平板电脑,台式计算机,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端,也可以实施为服务器。下面,将说明传感器标定设备实施为服务器时的示例性应用。

参见图1,图1是本申请实施例提供的传感器标定系统10的一个可选的架构示意图。传感器标定系统10包括传感器100、网络200、服务器300和终端400。传感器100用于测量自身处于静止状态且无外力作用时的静态力、和自身处于运动状态且无外力作用时的动态力,并将静态力和动态力通过网络200发送给服务器300;服务器300还获取传感器自身的重力,并根据重力对静态力进行等效标定处理,得到标定后的静态力,然后根据标定后的静态力对动态力进行零漂处理,得到标定后的动态力,最后,将标定后的动态力,作为传感器100进行外部作用力测量时用于进行标定的标定参数,并将标定参数通过网络200发送给终端400。终端400的当前界面400-1上可以显示传感器100测量得到的静态力和动态力,也可以显示传感器100进行外部作用力测量时的输出值。本申请实施例中,网络200可以是广域网或者局域网,又或者是二者的组合。

参见图2,图2是本申请实施例提供的服务器300的结构示意图,图2所示的服务器300包括:至少一个处理器310、存储器350、至少一个网络接口320和用户接口330。服务器300中的各个组件通过总线系统340耦合在一起。可理解,总线系统340用于实现这些组件之间的连接通信。总线系统340除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统340。

处理器310可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digitalsignalprocessor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。

用户接口330包括使得能够呈现媒体内容的一个或多个输出装置331,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口330还包括一个或多个输入装置332,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。

存储器350可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器350可选地包括在物理位置上远离处理器310的一个或多个存储设备。存储器350包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,readonlymemory),易失性存储器可以是随机存取存储器(ram,randomaccessmemory)。本申请实施例描述的存储器350旨在包括任意适合类型的存储器。在一些实施例中,存储器350能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。

操作系统351,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;

网络通信模块352,用于经由一个或多个(有线或无线)网络接口320到达其他计算设备,示例性的网络接口320包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universalserialbus)等;

输入处理模块353,用于对一个或多个来自一个或多个输入装置332之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。

在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器350中的一种传感器标定装置354,该传感器标定装置354可以是服务器300中的传感器标定装置,其可以是程序和插件等形式的软件,包括以下软件模块:第一获取模块3541、等效标定处理模块3542、第二获取模块3543、零漂处理模块3544和处理模块3545,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。

在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的传感器标定方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(asic,applicationspecificintegratedcircuit)、dsp、可编程逻辑器件(pld,programmablelogicdevice)、复杂可编程逻辑器件(cpld,complexprogrammablelogicdevice)、现场可编程门阵列(fpga,field-programmablegatearray)或其他电子元件。

需要说明的是,本申请实施例提供的传感器标定方法和数据测量方法可以应用于人工智能领域,例如,可以应用于基于人工智能技术的机器人的机械臂末端六维力传感器的标定,通过对机械臂末端六维力传感器进行准确的标定,可以使得机器人准确的获取六维力传感器所采集的力,从而机器人可以根据所采集的力,采用人工智能技术对机器人的下一步动作进行准确的确定和控制。

这里,人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。

人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

计算机视觉技术(cv,computervision)是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、光学字符识别(ocr,opticalcharacterrecognition)、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3d技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。

语音技术(speechtechnology)的关键技术有自动语音识别技术(asr,automaticspeechrecognition)和语音合成技术(tts,text-to-speech)以及声纹识别技术。让计算机能听、能看、能说、能感觉,是未来人机交互的发展方向,其中语音成为未来最被看好的人机交互方式之一。

自然语言处理(nlp,naturelanguageprocessing)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系。自然语言处理技术通常包括文本处理、语义理解、机器翻译、机器人问答、知识图谱等技术。

机器学习(ml,machinelearning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。

自动驾驶技术通常包括高精地图、环境感知、行为决策、路径规划、运动控制等技术,自定驾驶技术有着广泛的应用前景,

随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。

本申请实施例提供的方案涉及人工智能的机器人领域,主要涉及机器人的机械臂末端六维力传感器的标定,具体通过如下实施例进行说明:

下面将结合本申请实施例提供的服务器300的示例性应用和实施,说明本申请实施例提供的传感器标定方法。参见图3,图3是本申请实施例提供的传感器标定方法的一个可选的流程示意图,将结合图3示出的步骤进行说明。

步骤s301,获取传感器自身的重力和传感器处于静止状态且无外力作用时所测量得到的静态力。

这里,传感器自身的重力包括传感器本体的重量和与传感器连接的末端执行器本体的重量共同形成的重力,即传感器自身的重力是传感器本体的重量和末端执行器本体的重量的等效重力。

传感器可以是基于人工智能技术的机器人机械臂上所安装的力传感器,例如,可以是机器人的机械臂末端安装的六维力传感器。

静态力是指传感器处于静止状态且传感器没有检测到外力时的力,静止状态是指安装传感器的机械臂未发生运动,此时传感器可以处于竖直向上或竖直向下或与水平面具有一定的夹角。本申请实施例中,当传感器处于静止状态且无外力作用时记录传感器的读数,该读数即为静态力。静态力包括传感器自身的重力引起的力和力矩,还可以包括传感器偏置力和偏置力矩。

步骤s302,对重力和静态力进行等效标定处理,得到标定后的静态力。

这里,等效标定处理是指将传感器自身的重力等效成静态力的形式,也就是说,采用所测量得到的静态力等效重力,这样在进行重力标定时,可以将重力采用静态力来等效表示,以实现按照所测量的静态力对传感器自身的重力进行标定。本申请实施例中,在等效标定处理之后,通过所测量的静态力对重力进行标定,从而得到标定后的静态力。

步骤s303,获取传感器处于运动状态且无外力作用时所测量得到的动态力。

静态力是指传感器处于运动状态且传感器没有检测到外力时的力,运动状态是指安装传感器的机械臂发生匀速运动或者加速运动,此时传感器可以处于三维立体空间内的任意位置。本申请实施例中,当传感器处于运动状态且无外力作用时记录传感器的读数,该读数即为动态力。动态力包括传感器噪声引起的力和力矩、传感器运动过程中的惯性力、传感器零漂等。

步骤s304,根据标定后的静态力对动态力进行零漂处理,得到标定后的动态力。

这里,由于传感器应用于机器人上时,机器人的机械臂运动为机械臂常规速度下的运动,因此没有明显的加减速,所以传感器运动过程中的惯性力基本为零,可以不做考虑。对于传感器噪声引起的力和力矩以及传感器零漂,可以采用本申请实施例中的零漂处理进行标定。

本申请实施例中,对动态力进行标定是在完成静态力标定之后进行的,因为此时由于已经进行了静态力的标定,传感器自身重力和传感器的偏置等均为零。因此,在传感器运动过程中,重力和偏置力不会对传感器进行动态力的测量产生影响,所以,此时测量得到的动态力是仅包括传感器噪声引起的力和力矩以及传感器零漂。

步骤s305,将标定后的动态力,作为传感器进行外部作用力测量时用于进行标定的标定参数,以得到具有标定参数的标定后的传感器。

本申请实施例中,在标定动态力之后,将标定后的动态力作为传感器的标定参数,这样,在后续的测量过程中,传感器可以自动根据标定参数和测量值得到所测量的外部力的实际值。在实现的过程中,可以将传感器所测量得到的测量值减去标定参数,从而得到外部力的实际值。

本申请实施例提供的传感器标定方法,由于分别获取传感器在静止状态下且无外力作用时的静态力和运动状态下且无外力作用时的动态力,并对重力和静态力进行等效标定处理,得到标定后的静态力,然后基于标定后的静态力对动态力进行零漂处理。如此,对传感器处于静止状态和运动状态的力均进行标定,实现了对传感器不同姿态下力的标定,从而能够对传感器进行准确的标定,使得传感器能够实现在不同姿态下均可准确且直接的检测外部作用力和力矩。

在一些实施例中,传感器标定系统中包括传感器和服务器,传感器将测量的数值发送给服务器,通过服务器实现本申请实施例的传感器标定方法。图4是本申请实施例提供的传感器标定方法的一个可选的流程示意图,如图4所示,方法包括以下步骤:

步骤s401,传感器测量自身处于静止状态且无外力作用时的静态力。

步骤s402,传感器将所测量得到的静态力发送给服务器。

这里,静态力包括传感器自身的重力引起的重力分量和传感器的偏置力。

步骤s403,服务器获取传感器自身的重力。

步骤s404,服务器对传感器的偏置力进行清零标定处理。

在一些实施例中,在对传感器的偏置力进行标定时,可以直接减去所测量得到的偏置力。在实现的过程中,传感器的偏置力可以是常数偏置,也就是传感器被安装到机械臂上之后,即使不挂负载(这里的负载包括末端执行器和末端执行器所抓取的力),只是将传感器静置在当前位置,传感器的读数也不是零,也就是说即使没有传感器零漂,传感器的读数也不是零,那么,此时的读数就是传感器的偏置力。举例来说,当传感器不挂负载且静置于当前位置时,传感器的读数是10n,那么就可以认为传感器的偏置力为10n,因此,在对传感器的偏置力进行标定时,可以直接减去10n的力即可。

在另一些实施例中,还可以通过传感器在三维坐标系中的位置进行传感器偏置力的标定。在实现的过程中,可以先确定出传感器的x轴、y轴和z轴,然后分别使得传感器的x轴、y轴和z轴分别竖直向上或竖直向下,且对每一位置下传感器的读数进行获取,这样可以通过读数判断出传感器的常数偏置是多少,进而根据所确定出的常数偏置进行偏置力的标定。

步骤s405,服务器对所述重力和所述重力分量进行等效标定处理,得到标定后的静态力。

传感器的重力分量是由于传感器挂载了一定重量的负载,例如,与传感器连接的末端执行器的重力和传感器自身的重量引起的负载,传感器的重力分量与传感器机前的姿态有关,传感器机前的姿态可以包括传感器末端所装上的负载、螺钉以及传感器自身的负载,这些负载构成了一个统一的负载整体,相当于将传感器末端所装的负载、螺钉和传感器自身的负载等效成一个质量体,那么就可以通过传感器竖直向上或竖直向下,即可判断出重力g等效的是多少,从而可以得到重力g在三维坐标系下的重力分量。

本申请实施例中,重力g是已知的,根据传感器机前的姿态就可以计算得到。当标定出重力g之后,可以根据机前的实时姿态将重力g减去就可以实现对传感器重力的标定。

步骤s406,传感器测量自身处于运动状态且无外力作用时的动态力。

步骤s407,传感器将动态力发送给服务器。

步骤s408,服务器根据标定后的静态力对动态力进行零漂处理,得到标定后的动态力。

步骤s409,服务器将标定后的动态力,作为传感器进行外部作用力测量时用于进行标定的标定参数,以得到具有标定参数的标定后的传感器。

本申请实施例提供的传感器标定方法,传感器在静止状态下分别测量传感器自身的重力引起的重力分量和传感器的偏置力,使得服务器可以依次对偏置力和重力分量进行标定,得到标定后的静态力,并且,传感器在运动状态下测量动态力,使得服务器可以根据标定后的静态力对动态力进行零漂处理,得到标定后的动态力。如此,服务器对传感器处于静止状态下的偏置力和重力分量,以及运动状态下的动态力均进行标定,实现了对传感器不同姿态下力的标定处理,从而能够对传感器进行准确的标定,使得传感器能够实现在不同姿态下均可准确且直接的检测外部作用力和力矩。

在一些实施例中,当传感器处于静止状态时,传感器包括处于三维坐标系下的第一位置姿态和处于三维坐标系下的第二位置姿态,其中,第一位置姿态可以是传感器竖直向下的位置姿态,第二位置姿态可以是传感器竖直向上的位置姿态。

如图5所示,是本申请实施例提供的传感器处于第一位置姿态的结构示意图,传感器501被安装在机器人的机械臂502的末端,传感器501通过机械臂末端的法兰503实现传感器501的一端与机械臂502的连接,传感器501的另一端与末端执行器504连接,末端执行器504用于实现机器人的抓取等操作,其中,机器人可以是基于人工智能技术实现智能操作或智能控制的智能机器人或工业机器人。

如图5所示,传感器501处于竖直向下的位置姿态,此时,传感器的自身重力包括传感器501本体的重量和末端执行器504本体的重量共同形成的重力,即传感器的自身重力是传感器501本体的重量和末端执行器504本体的重量的等效重力。当传感器501处于竖直向下的位置姿态时,此时传感器501在三维坐标系下,仅在竖直方向的y轴有重力分量,在x轴和z轴的重力分量均为0。

图5仅示出了传感器501处于第一位置姿态的情况,当然,传感器501还可以处于第二位置姿态,第二位置姿态是传感器竖直向上的位置姿态。

基于图3的方法和图5中的第一位置姿态和第二位置姿态,如图6所示,是本申请实施例提供的传感器标定方法的一个可选的流程示意图,步骤s301可以通过以下步骤实现:

步骤s601,获取传感器自身的重力。

步骤s602,获取传感器处于第一位置姿态下的第一静态力和处于第二位置姿态下的第二静态力。

这里,分别再第一位置姿态下测量得到第一静态力,在第二位置姿态下测量得到第二静态力。

步骤s603,将第一静态力与第二静态力的均值,确定为静态力。

在一些实施例中,可以根据预设数量的静态力来对传感器进行标定,如图7所示,是本申请实施例提供的传感器标定方法的一个可选的流程示意图,方法包括以下步骤:

步骤s701,确定互不相同的预设数量的位置。

这里,预设数量可以根据计算的需要进行确定,例如,可以将预设数量确定为6,那么可以选择6个不同的位置。

步骤s702,分别获取传感器在预设数量的位置下,处于静止状态且无外部作用力作用时所测量得到的静态力。

这里,分别获取传感器处于每一位置时的静态力。

步骤s703,对重力和预设数量的静态力进行等效标定处理,得到标定后的静态力。

这里,在获取到预设数量的静态力之后,根据重力和预设数量的静态力进行等效标定处理,即对重力与全部静态力进行等效标定处理,得到标定后的静态力。其中,步骤s703可以通过以下步骤实现:

s7031,对重力和预设数量的静态力进行数据变换处理,得到准则函数。

s7032,采用最小二乘法对准则函数进行极小化处理,得到标定后的静态力。

步骤s704,获取传感器处于运动状态且无外力作用时所测量得到的动态力。

步骤s705,根据标定后的静态力对动态力进行零漂处理,得到标定后的动态力。

步骤s706,将标定后的动态力,作为传感器进行外部作用力测量时用于进行标定的标定参数,以得到具有标定参数的标定后的传感器。

本申请实施例提供的传感器标定方法,获取预设数量的静态力进行传感器的标定,如此,能够更加准确的得到标定后的静态力以及标定后的动态力,从而得到更加准确的标定参数,实现对传感器的准确标定。

图8是本申请实施例提供的传感器标定方法的一个可选的流程示意图,如图8所示,上述步骤s7031可以通过以下步骤实现:

步骤s801,根据重力和预设数量的静态力,确定每一静态力在至少三个维度上对应的输出矩阵。

步骤s802,对输出矩阵进行力分解处理,得到分解后的与静态力对应的测量矩阵和待估计参数。

步骤s803,根据预设数量的静态力中的每一静态力对应的输出矩阵、测量矩阵和待估计参数,确定所述准则函数。

请继续参照图8,上述步骤s7032可以通过以下步骤实现:

步骤s804,采用最小二乘法对准则函数进行极小化处理,得到待估计参数对应的估计值。

步骤s805,将估计值确定为标定后的静态力。

在一些实施例中,动态力包括传感器零漂值,因此,在进行动态力的标定时,需要对传感器零漂值进行标定,如图9所示,是本申请实施例提供的传感器标定方法的一个可选的流程示意图,方法包括以下步骤:

步骤s901,获取传感器自身的重力和传感器处于静止状态且无外力作用时所测量得到的静态力。

这里,传感器可以是六维力传感器;那么,静态力包括在三维坐标方向上的三个静态力分量和在三维坐标方向上的三个静态力矩分量;动态力包括在三维坐标方向上的三个动态力分量和在三维坐标方向上的三个动态力矩分量。

图10是本申请实施例提供的六维力传感器的受力图,如图10所示,六维传感器1000的静态力包括x轴、y轴和z轴三个方向上的三个力分量fx、fy和fz,以及x轴、y轴和z轴三个方向上的三个力矩分量tx、ty和tz。当六维力传感器处于静止状态时,三个力分量则是三个静态力分量,三个力矩分量则是三个静态力矩分量;当六维力传感器处于运动状态时,三个力分量则是三个动态力分量,三个力矩分量则是三个动态力矩分量。

步骤s902,对重力和静态力进行等效标定处理,得到标定后的静态力。

步骤s903,获取传感器处于运动状态且无外力作用时所测量得到的传感器零漂值。

步骤s904,确定所述标定后的静态力与所述传感器零漂值之间的差值。

这里,对传感器的零漂值进行标定是在静态力的标定之后进行的,即在比较短的时间之内,先把静态力中的几个固定的力(例如,传感器偏置和传感器重力等)先标定好。那么在静态力标定好之后,理论上就可以默认在当前的标定过程中是没有零漂值的,此时,如果传感器能够检测到零漂值的话,就说明还需要对零漂值进行标定。

举例来说,在静态力标定好之后,传感器放置于当前位置的输出读数应该是0n,但是实际上输出的读数的10n,那么此时就可以认为读数10n是零漂值,则可以将10n减掉,完成对传感器零漂值的标定。

步骤s905,将所述差值确定为标定后的动态力。

在一些实施例中,动态力还可以包括噪声干扰引起的力,那么方法还包括:

步骤s906,获取传感器由于噪声干扰引起的力。

步骤s907,采用均值滤波的方式对所述噪声干扰引起的力进行去除,得到标定后的动态力。

均值滤波也称为线性滤波,其采用的主要方法为邻域平均法,均值滤波的基本原理是用均值代替原数据中的各个数据,本申请实施例中可以通过计算一段时间内噪声引起的力的均值,然后将均值作为标定后的动态力。

步骤s908,将标定后的动态力,作为传感器进行外部作用力测量时用于进行标定的标定参数,以得到具有标定参数的标定后的传感器。

基于前述的传感器标定方法,本申请实施例提供一种数据测量方法,图11是本申请实施例提供的数据测量方法的一个可选的流程示意图,该方法应用于上述的传感器标定方法,在一些实施例中,用于实现数据测量方法的数据测量系统中包括传感器、服务器和终端,如图12所示,是本申请实施例提供的数据测量系统的结构示意图,数据测量系统1200包括传感器1201、服务器1202和终端1203,服务器1202分别与传感器1201和终端1203连接,传感器1201用于进行数据测量,服务器1202实现了对传感器1201的标定,终端1203用于显示传感器1201的测量结果。如图11所示,方法包括以下步骤:

步骤s1101,传感器测量自身处于静止状态且无外力作用时的静态力。

步骤s1102,传感器将所测量得到的静态力发送给服务器。

步骤s1103,服务器获取传感器自身的重力。

步骤s1104,服务器对重力和静态力进行等效标定处理,得到标定后的静态力。

步骤s1105,传感器测量自身处于运动状态且无外力作用时的动态力。

步骤s1106,传感器将动态力发送给服务器。

步骤s1107,服务器根据标定后的静态力对动态力进行零漂处理,得到标定后的动态力。

步骤s1108,服务器将标定后的动态力,作为传感器进行外部作用力测量时用于进行标定的标定参数。

步骤s1109,传感器进行数据测量,采集外部作用力。

步骤s1110,传感器将所采集的采集力发送给服务器。

步骤s1111,服务器根据标定参数对采集力进行处理,得到外部实际作用力。

步骤s1112,服务器将外部实际作用力发送给终端。

步骤s1113,终端将外部作用力作为测量结果显示在当前界面上。

在一些实施例中,传感器自身可以具有显示单元,服务器在计算得到外部实际作用力之后,可以将外部实际作用力发送给传感器,以实现在传感器自身的显示单元上显示测量结果。

在另一些实施例中,服务器在得到标定参数之后,将标定参数发送给传感器,对传感器进行干扰力标定,以使得传感器处于标定状态。这样,传感器在后期对外部作用力进行采集时,可以在标定状态下进行数据采集,从而实现传感器自身可以直接采集到真正的外部作用力的值。

图13是本申请实施例提供的终端显示测量结果的界面图,如图13所示,在当前界面1301上,分别显示有外部作用力在三维坐标系中的x轴、y轴和z轴三个方向上的三个力fx、fy和fz,和外部作用力在三维坐标系中的x轴、y轴和z轴三个方向上的三个力矩tx、ty和tz。

在其他实施例中,还提供一种机器人,所述机器人包括机械臂和安装于机械臂末端的传感器,该传感器可以采用上述任一实施例提供的传感器标定方法进行传感器标定。在对传感器标定好之后,采用标定后的传感器进行数据测量,得到机器人在实现目标物体抓取时或操作时的作用力,以导引机械臂和机器人的运动。

下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。

本申请实施例提供一种机械臂末端六维力传感器标定算法(即传感器标定方法),使得末端六维力传感器在机械臂的不同姿态下均可以有效且直接地检测外部作用力和力矩,从而不受自身检测偏置、自身重量、末端执行器重量和温度零漂等影响。本申请实施例可以有效克服相关技术中无法直接给出机械臂在不同姿态下的所受到的外部作用力和力矩的不足,将传感器的标定分为静态标定以及动态标定两部分,静态标定可以有效过滤出不同姿态下的自身偏置、负载重量、自身重量等,动态标定则可以有效过滤传感器零漂。

本申请实施例提供的标定方法能够保证传感器在检测外部作用力和力矩时不会受到自身检测偏置、自身重量、末端执行器重量和温度零漂等影响。传感器可以直接给出在不同姿态下,机械臂末端所受到的外部作用力与力矩,进而为机械臂基于任务的全程阻抗控制以及重力感知等提供依据。

下面对本申请实施例的标定方法进行详细说明。

六维力传感器检测外部力和力矩的表达式如以下公式(1-1)所示:

fs=fb+fg+fc+fn+fv+fd+fnon(1-1);

这里,fs表示力传感器的原始数据,fb表示力传感器偏置力,fg表示力传感器负载端重力引起的力和力矩分量,fc表示力传感器受到的外部作用力和力矩,fn表示力传感器噪音,fv表示力传感器运动过程中的惯性力,fd表示力传感器零漂,fnon表示力传感器其他非线性干扰力。

力传感器返回的原始数据是fs,原始数据受到很多其他力源的影响,以至于无法直接给用户有效的外部作用力和力矩值fc。且本申请考虑的机械臂运动为机械臂常规速度下的运动,没有明显的加减速,因此fv=0。且在一般的应用场合,力传感器的其他非线性干扰视为在合理范围内,fnon不做考虑。因而上述公式(1-1)可以转化为以下公式(1-2):

fs=fb+fg+fc+fn+fd(1-2);

为了使力传感器可以在不同姿态下直接给出外部作用力和力矩,有必要对上述公式(1-2)中的干扰项进行逐一标定与说明。其中,fn和fd属于动态力的范畴,而fb和fg是可以通过静态标定得到其实际数值,因此,可以首先对fb和fg进行标定。

在对fb和fg标定过程中,fb在三维坐标方向上的力的力矩可以通过以下公式(1-3)表示:

这里,fb是力传感器的常数偏置,是fb在x轴的分力;是fb在y轴的分力;是fb在z轴的分力;是fb在x轴的力矩;是fb在y轴的力矩;是fb在z轴的力矩。fb可以通过传感器在特定方位下的数值来标定。

六维力传感器测量端有安装法兰和末端执行工具,一般来说其测量值也会受到自身部分重量的影响,某种程度上无法有效对各个部分进行标定,因为可以将法兰、末端执行工具以及传感器自身重量视为同一的等效质量。因而对整个影响有效作用力和力矩测量的末端负载视为等效负载(包括等效重力以及等效重力矩)来标定。图14是本申请实施例标定过程中等效负载施加的重力分解示意图,如图14所示,等效负载a(即重力g)可以分解为x轴、y轴和z轴三个方向上的力,其中,重力g与x轴的夹角为α、重力g与y轴的夹角为β、重力g与z轴的夹角为γ。

在实际的标定过程中,可以通过末端执行器的旋转矩阵将重力g分解成三个方向量。

标定过程中由于等效负载施加的作用力和力矩可以通过以下公式(1-4)表示:

这里,和gx均表示重力g在x轴的分力;和gy均表示重力g在y轴的分力;和gz均表示重力g在z轴的分力;表示重力g在x轴的力矩;表示重力g在y轴的力矩;表示重力g在z轴的力矩;表示旋转矩阵的转置;δx表示x轴方向上的重力矩;δy表示y轴方向上的重力矩;δz表示z轴方向上的重力矩。

基于上述公式(1-4),那么对于参数的标定,需要机械臂提供n(n≥6)个典型测量位置进行数据读取与标定,这样可以更加准确的得到相关数据。因而,有如下公式(1-5)的测量过程:

这里,表示第n个fs在x轴的分力;表示第n个fs在y轴的分力;表示第n个fs在z轴的分力;表示第n个fs在x轴的分力;表示第n个fs在y轴的分力;表示第n个fs在z轴的分力;gxn表示第n个重力g在x轴的分力;gyn表示第n个重力g在y轴的分力;gzn表示第n个重力g在z轴的分力。

上述公式(1-5)的模型可以表示成以下公式(1-6)的模型:

z(n)≈ht(n)ψ(1-6);

这里,z(n)表示输出矩阵,z(n)可以通过以下公式(1-7)表示;ht(n)表示测量矩阵,ht(n)可以通过以下公式(1-8)表示:

此时,可以引入z(n)和ht(n)之间的误差项e(n),则有以下公式(1-9):

z(n)=ht(n)ψ+e(n)(1-9);

这里,z(n)和ht(n)均是可观测数据,ψ是待估计参数,则可以取如下(1-10)的准则函数j(n):

这里,zl是输出观测矩阵,zl可以通过以下公式(1-11)表示;hl是输入观测矩阵,hl可以通过以下公式(1-12)表示。

zl=]z(1)z(2)…z(n)]t(1-11);

hl=[h(1)th(2)t…h(n)t]t(1-12)。

在得到准则函数j(n)之后,采用最小二乘法极小化j(n),可以求解出参数ψ的估计值。

这里,可以假设参数使得则有以下公式(1-13);

由此得到以下正则方程(1-14):

是正则矩阵时,则有以下公式(1-15)的估计值:

上述公式(1-15)得到的参数估计值保证了j(n)取值最小,即j(n)=min,且j(n)是唯一的。

通过上述过程标定之后,理论上力矩传感器的读数(fs)cal如下公式(1-16)所示:

(fs)cal=fc+(fd)k(1-16);

这里,(fs)cal表示力传感器的读数;(fd)k表示k时刻的零漂值。

上述过程即是对fb和fg标定过程,此外,在对fb和fg标定完成后,还需要对其他力进行标定。

本申请实施例中,对于fn的标定,可以采用均值滤波的方式处理噪声引起的力和力矩值的不稳定性。零漂引起的干扰力fd则可以通过标定其他选项后,根据实际情况去除。

举例来说,对于fd的标定,可以先在比较短的时间之内,把其他几个固定的力(例如,fb和fg)先标定好,标定好之后,就默认在标定的过程中是没有零漂的。那么,如果在标定完其他几个固定的力之后传感器检测到有零飘的话,比如说标定好之后传感器静止时理论上的输出应该是0,但是实际输出的是10,那输出的10就是零漂值,则将该零漂值减掉。

图15是本申请实施例提供的六维力传感器的标定方法的实现过程示意图,如图15所示,标定方法包括以下步骤:

步骤s1501,机械臂末端六维力传感器的姿态竖直向上与竖直向下。

这里,可以使力传感器z轴分别竖直向上与数值向下进行数据测量,测量得到重力g。

步骤s1502,对重力g进行估计。

这里,机械臂携带力传感器沿z轴竖直向上以及竖直向下,读数分别为其中,表示力传感器沿z轴竖直向上时的测量数据,可以通过以下公式(1-17)表示;表示力传感器沿z轴竖直向下时的测量数据,可以通过以下公式(1-18)表示:

因而可以通过以下公式(1-19)计算等效重力g为:

这里,abs表示绝对值函数。

步骤s1503,在当前测量位置进行力测量。

步骤s1504,对传感器的姿态与重力分量进行计算。

步骤s1505,将计算得到的原始力进行记录。

需要说明的是,步骤s1503至步骤s1505对应上述公式(1-3)至(1-4)中获取和计算原始力fb和fg的过程,本申请实施例不再赘述。

步骤s1506,判断当前所记录的原始力的数量是否大于预设测量次数n。

如果判断结果为是,则执行步骤s1507;如果判断结果为否,则修改测量位置,并返回继续执行步骤s1503。本申请实施例中,n的取值可以是n≥6。

步骤s1507,根据所记录的n个原始力,采用最小二乘法进行参数估计。

需要说明的是,步骤s1507对应上述公式(1-5)至(1-15)中进行参数估计的过程。

本申请实施例中,采用最小二乘法对fb和fg的标定,标定后,力矩传感器的度数通过以上公式(1-16)表示为:(fs)cal=fc+(fd)k。

步骤s1508,判断所检测到的零漂是否大于阈值。

如果判断结果为是,则执行步骤s1509;如果判断结果为否,则执行步骤s1510。

步骤s1509,对零漂进行标定处理。

这里,针对某一时刻k的温度零漂值(fd)k,力传感器的零漂处理可以通过以下公式(1-20)来实现:

(fs)final=(fs)cal-(fd)k(1-20);

这里,(fs)final表示进行零漂处理后的有效作用力和力矩。

步骤s1510,输出有效作用力和力矩。

本申请实施例提供的机械臂末端六维力传感器的标定方法,使得末端六维力传感器经过标定后,可以直接向用户给出六维力传感器负载端受到的外部作用力和作用力矩,从而使得机械臂可以实现在整个工作空间内全姿态方位的阻抗控制,且在应用于基于力反馈的遥操作应用场合中,控制端可以有效地进行重力感知。

下面继续说明本申请实施例提供的传感器标定装置354实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器350的传感器标定装置354中的软件模块可以是服务器300中的传感器标定装置,包括:

第一获取模块3541,用于获取传感器自身的重力和所述传感器处于静止状态且无外力作用时所测量得到的静态力;

等效标定处理模块3542,用于对所述重力和所述静态力进行等效标定处理,得到标定后的静态力;

第二获取模块3543,用于获取所述传感器处于运动状态且无外力作用时所测量得到的动态力;

零漂处理模块3544,用于根据所述标定后的静态力对所述动态力进行零漂处理,得到标定后的动态力;

处理模块3545,用于将所述标定后的动态力,作为所述传感器进行外部作用力测量时用于进行标定的标定参数,以得到具有所述标定参数的标定后的传感器。

在一些实施例中,所述静态力包括所述传感器自身的重力引起的重力分量和所述传感器的偏置力;所述等效标定处理模块还用于:对所述传感器的偏置力进行清零标定处理,并对所述重力对所述重力分量进行所述等效标定处理,得到所述标定后的静态力。

在一些实施例中,当所述传感器处于所述静止状态时,所述传感器包括处于三维坐标系下的第一位置姿态和处于三维坐标系下的第二位置姿态;对应地,第一获取模块还用于:获取所述传感器处于所述第一位置姿态下的第一静态力和处于所述第二位置姿态下的第二静态力;将所述第一静态力与所述第二静态力的均值,确定为所述静态力。

在一些实施例中,所述装置还包括:确定模块,用于确定互不相同的预设数量的位置;第三获取模块,用于分别获取所述传感器在所述预设数量的位置下,处于静止状态且无外部作用力作用时所测量得到的静态力;对应地,等效标定处理模块,还用于对所述重力和所述预设数量的静态力进行等效标定处理,得到标定后的静态力。

在一些实施例中,所述等效标定处理模块还用于:对所述重力和所述预设数量的静态力进行数据变换处理,得到准则函数;采用最小二乘法对所述准则函数进行极小化处理,得到所述标定后的静态力。

在一些实施例中,所述等效标定处理模块还用于:根据所述重力和所述预设数量的静态力,确定每一静态力在至少三个维度上对应的输出矩阵;对所述输出矩阵进行力分解处理,得到分解后的与所述静态力对应的测量矩阵和待估计参数;根据所述预设数量的静态力中的每一静态力对应的所述输出矩阵、所述测量矩阵和所述待估计参数,确定所述准则函数。

在一些实施例中,所述等效标定处理模块还用于:采用最小二乘法对所述准则函数进行极小化处理,得到所述待估计参数对应的估计值;将所述估计值确定为所述标定后的静态力。

在一些实施例中,所述动态力包括传感器零漂值;对应地,所述零漂处理模块还用于:确定所述标定后的静态力与所述传感器零漂值之间的差值;将所述差值确定为标定后的动态力。

在一些实施例中,所述动态力包括噪声干扰引起的力;所述装置还包括:去除模块,用于采用均值滤波的方式对所述噪声干扰引起的力进行去除。

在一些实施例中,所述传感器包括六维力传感器;所述静态力包括在三维坐标方向上的三个静态力分量和在三维坐标方向上的三个静态力矩分量;所述动态力包括在三维坐标方向上的三个动态力分量和在三维坐标方向上的三个动态力矩分量。

需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图3示出的方法。

在一些实施例中,存储介质可以是铁电存储器(fram,ferromagneticrandomaccessmemory)、只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmablereadonlymemory)、可擦除可编程只读存储器(eprom,erasableprogrammablereadonlymemory)、带电可擦可编程只读存储器(eeprom,electricallyerasableprogrammablereadonlymemory)、闪存、磁表面存储器、光盘、或光盘只读存储器(cd-rom,compactdisk-readonlymemory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备。

在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。

作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hypertextmarkuplanguage)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。

以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1