一种机器人关节末端单圈磁编码器的多圈使用方法

文档序号:1239549 发布日期:2020-09-11 浏览:23次 >En<

阅读说明:本技术 一种机器人关节末端单圈磁编码器的多圈使用方法 (Multi-circle using method of robot joint tail end single-circle magnetic encoder ) 是由 康淼淼 骆敏舟 吴海波 辛艳峰 张华东 崔玮心 王永 徐乃瑞 于 2020-05-21 设计创作,主要内容包括:本发明公开了一种机器人关节末端单圈磁编码器的多圈使用方法,属于机器人术领域,建立参数读取模块、位置分析模块、计算模块和存储模块;解决了单圈磁编码器无法进行多圈判断的技术问题,本发明硬件少,易于实现,成本低,精度高。(The invention discloses a multi-circle using method of a robot joint tail end single-circle magnetic encoder, which belongs to the field of robotics and comprises the steps of establishing a parameter reading module, a position analysis module, a calculation module and a storage module; the invention solves the technical problem that a single-circle magnetic encoder cannot perform multi-circle judgment, and has the advantages of less hardware, easy realization, low cost and high precision.)

一种机器人关节末端单圈磁编码器的多圈使用方法

技术领域

本发明属于机器人技术领域,尤其涉及一种机器人关节末端单圈磁编码器的多圈使用方法。

背景技术

目前机器人关节上的使用的均是绝对式磁编码器,用于控制关节位置,但是大多数磁编码器都是单圈(即只可以感知一圈之内的绝对角位置)。而对于某些应用场合,比如转动的角度超过360度时,单圈不能满足要求,而采用多圈磁编码器,其成本会大大增加。

发明内容

本发明的目的是提供一种机器人关节末端单圈磁编码器的多圈使用方法,解决了单圈磁编码器无法进行多圈判断的技术问题。

为实现上述目的,本发明采用如下技术方案:

一种机器人关节末端单圈磁编码器的多圈使用方法,包括如下步骤:

步骤1:建立参数读取模块、位置分析模块、计算模块和存储模块;参数读取模块用于读取单圈磁编码器的位置编码数据Qt,其中Q为位置编码数据,t为时间戳;位置分析模块用于分析位置编码数据Qt;计算模块用于对当前位置编码数据进行圈数计算;

步骤2:参数读取模块按时间顺序读取单圈磁编码器的位置编码数据;

步骤3:位置分析模块根据当前的位置编码数据Qt和前一时刻的位置编码数据Qt-1之差来计算出位置变化参数;

步骤4:位置分析模块设定一个位置变化常量,判断位置变化参数是否大于位置变化常量:是,则执行步骤5;否,则执行步骤6;

步骤5:位置分析模块判定此时单圈磁编码器为反转,记录转动圈数减一,执行步骤7;

步骤6:位置分析模块判定此时单圈磁编码器为正转,记录转动圈数加一,执行步骤7;

步骤7:计算模块根据以下公式计算连续的位置数据Qm

Qm=Nloop×65535+Qt

其中,Nloop为转动圈数,Qt为单圈磁编码器的位置编码数据;

步骤8:将计算出的连续的位置数据Qm作为位置PID的反馈值,参与到机器人关节末端单圈磁编码器的多圈检测计算中;

步骤9:记录转动圈数Nloop,并存储到存储模块中,下次上电后,读取存储模块中的圈数值参与计算模块对连续的位置数据Qm的计算。

优选的,所述存储模块为EEPROM模块。

优选的,在执行步骤4时,所述位置变化常量的值不大于单圈磁编码器输出的最大编码值。

本发明所述的一种机器人关节末端单圈磁编码器的多圈使用方法,解决了单圈磁编码器无法进行多圈判断的技术问题,本发明硬件少,易于实现,成本低,精度高。

附图说明

图1是本发明的流程图。

具体实施方式

如图1所示的一种机器人关节末端单圈磁编码器的多圈使用方法,包括如下步骤:

步骤1:建立参数读取模块、位置分析模块、计算模块和存储模块;参数读取模块用于读取单圈磁编码器的位置编码数据Qt,其中Q为位置编码数据,t为时间戳;位置分析模块用于分析位置编码数据Qt;计算模块用于对当前位置编码数据进行圈数计算;

在本实施例中,参数读取模块、位置分析模块和计算模块均设置在同一个MCU中或PLC控制器中。

读取单圈磁编码器位置,判断其当前值与前一时刻值变化量,根据机器人关节运动速度,设置合适的增量值,以为机器人关节速度一般不会过快,如果位置值突变较大,则可认为关节末端运动到了第二圈,此时可以设置圈数变量,记住圈数。

步骤2:参数读取模块按时间顺序读取单圈磁编码器的位置编码数据;

步骤3:位置分析模块根据当前的位置编码数据Qt和前一时刻的位置编码数据Qt-1之差来计算出位置变化参数;

步骤4:位置分析模块设定一个位置变化常量,判断位置变化参数是否大于位置变化常量:是,则执行步骤5;否,则执行步骤6;

步骤5:位置分析模块判定此时单圈磁编码器为反转,记录转动圈数减一,执行步骤7;

步骤6:位置分析模块判定此时单圈磁编码器为正转,记录转动圈数加一,执行步骤7;

步骤7:计算模块根据以下公式计算连续的位置数据Qm

Qm=Nloop×65535+Qt

其中,Nloop为转动圈数,Qt为单圈磁编码器的位置编码数据;

步骤8:将计算出的连续的位置数据Qm作为位置PID的反馈值,参与到机器人关节末端单圈磁编码器的多圈检测计算中;

步骤9:记录转动圈数Nloop,并存储到存储模块中,下次上电后,读取存储模块中的圈数值参与计算模块对连续的位置数据Qm的计算。

本实施例以16位单圈磁编码器为例说明,16位的单圈磁编码器转动一圈其脉冲值在0~65535内变化,也就是无论转动多少圈,其值均在0~65535内,但实际使用中,如果需要某个关节转动多圈,此时,单纯的使用单圈磁编码器的值已不能满足,且不能判断关节转动了几圈,因此需要采取本发明的方法,使关节转动的实际圈数(及角度)能够正确反映出来:

单圈磁编码器的输出只在0~65535之间切换,正向运动时,如果设定值大于65535,此时不加以处理,位置始终达不到设定值,负向运动同理。因此需要对编码器的输出值进行处理(多圈检测)。

在本实施例中,因无论正转情况下由65535突变到0,还是反转由0突变到65535,其变化率都在±32768之上,因此可选用±32768作为位置变化常量,防止其他情况出现。

正向运动检测到变化率小于-32768后,圈数加1,此时计算位置时,使用当前读取的单圈磁编码器输出的编码值Qt加上圈数Nloop乘以65535,计算得到连续变化的位置数据Qm

正向运动检测到变化率大于32768后,圈数减1,此时计算位置时,使用当前读取的单圈磁编码器输出的编码值Qt加上圈数Nloop乘以65535,计算得到连续变化的位置数据Qm

优选的,所述存储模块为EEPROM模块。

优选的,在执行步骤4时,所述位置变化常量的值不大于单圈磁编码器输出的最大编码值,所述位置变化常量的值由最大转速而定。

本发明所述的一种机器人关节末端单圈磁编码器的多圈使用方法,解决了单圈磁编码器无法进行多圈判断的技术问题,本发明硬件少,易于实现,成本低,精度高。

6页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种铁路货车海关锁检测装置及方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类