CN103389087B - 一种轮式机器人位姿解算方法 - Google Patents

一种轮式机器人位姿解算方法 Download PDF

Info

Publication number
CN103389087B
CN103389087B CN201310342103.1A CN201310342103A CN103389087B CN 103389087 B CN103389087 B CN 103389087B CN 201310342103 A CN201310342103 A CN 201310342103A CN 103389087 B CN103389087 B CN 103389087B
Authority
CN
China
Prior art keywords
robot
encoder
wheel
doubleleftarrow
wheels
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.)
Expired - Fee Related
Application number
CN201310342103.1A
Other languages
English (en)
Other versions
CN103389087A (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.)
Shanghai Maritime University
Original Assignee
Shanghai Maritime University
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 Shanghai Maritime University filed Critical Shanghai Maritime University
Priority to CN201310342103.1A priority Critical patent/CN103389087B/zh
Publication of CN103389087A publication Critical patent/CN103389087A/zh
Application granted granted Critical
Publication of CN103389087B publication Critical patent/CN103389087B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Abstract

本发明公开了一种轮式机器人位姿解算方法,该方法至少包含以下步骤:步骤1、测量机器人平台的结构参数、求取编码器的特性参数,并确定编码器脉冲输出与嵌入式控制板外部中断之间的连接关系;步骤2、确定四个轮子的转向;步骤3、置位表征四个轮子着地或打滑的状态标志;步骤4、确定左侧和右侧轮子编码器的有效脉冲计数值;步骤5、计算单元求取机器人的相对位移和转角;步骤6、计算单元求取后一时刻机器人相对于全局坐标下的位姿。本发明仅使用轮式机器人轮子上装配的编码器进行机器人的位姿解算,而不需要任何其它的惯性器件辅助,使用编码器能同时解算机器人的两个采样时刻间的位移和转角,增强了机器人的紧凑度和可靠性,节约了成本。

Description

一种轮式机器人位姿解算方法
技术领域
本发明涉及一种轮式机器人位姿解算方法。
背景技术
现有技术中对轮式机器人位姿的解算是使用电机编码器估算机器人在相邻时刻间的位移,还需要基于陀螺仪或电磁罗盘等惯性器件来估算相邻时刻的机器人相对转角。这样不仅增加了机器人平台的复杂度和成本,也使得机器人的故障率上升。
在室外、湿滑等复杂的地面环境中,机器人的轮子常会出现侧滑和空转,现有技术是使用固定在轮子上的编码器作为位姿估算基准,会使在这些复杂地面环境下解算的结果中混入误差,降低定位精度,进一步全局干扰了自治机器人的作业效果;
现有技术中对机器人的控制通常采用了主从机或上位机下位机模式,即,下位机对机器人运动实施控制并将位姿测算结果反馈到上位机。现有技术是将相对运动上发,对机器人全局坐标的解算在上位机部分实现。上位机端对移动机器人位姿的解算是基于航位推算原理,任一采样时刻相对运动数据的缺失都会改变全局的轨迹形状。当下位机到上位机的数据传输链路因干扰出现严重丢包和误码时,会让若干采样时刻的相对运动未能准确传至上位机,基于残缺的相对运动序列所解算的机器人全局位姿会出现关键性错误。
发明内容
本发明的目的在于提供一种轮式机器人位姿解算方法,仅使用轮式机器人轮子上装配的编码器进行机器人的位姿解算,而不需要任何其它的惯性器件辅助,使用编码器能同时解算机器人的两个采样时刻间的位移和转角,增强了机器人的紧凑度和可靠性,节约了成本。
为了达到上述目的,本发明通过以下技术方案实现:一种轮式机器人位姿解算方法,其特点是,位姿解算方法至少包含以下步骤:
步骤1、测量机器人平台的结构参数、求取编码器的特性参数,并确定编码器脉冲输出与嵌入式控制板外部中断之间的连接关系;
上述的机器人平台包含计算单元;
步骤2、计算单元记录一个采样周期内各轮子编码器的脉冲数,确定四个轮子的转向;
步骤3、计算单元根据一个采样周期内各轮子的编码器脉冲计数置位表征四个轮子着地或打滑的状态标志;
步骤4、计算单元根据一个采样周期内各轮子的编码器脉冲计数的原始数据确定左侧轮子编码器的有效脉冲计数值和右侧轮子编码器的有效脉冲计数值;
步骤5、计算单元求取机器人一个采样周期内前一时刻t-1和后一时刻t的相对位移和转角;
步骤6、计算单元根据前一时刻t-1机器人在全局坐标下的位姿、前一时刻t-1和后一时刻t下机器人的相对位移和转角,求取后一时刻t机器人相对于全局坐标下的位姿。
上述的步骤1中的机器人平台的结构参数包含机器人左右轮之间的轮距B、同侧前后轮的轮距L、机器人轮子的周长C、机器人减速电机的减速比m:1;
上述的编码器的特性参数包含编码器的分辨率n、用来读取编码器的微控制器的中断编程系数ω。
上述的步骤2中确定各轮子的转向还包含以下步骤:
步骤2.1、计算单元记录编码器中断发生时刻,并记录中断发生后编码器a路输出的电平值和b路输出的电平值;
步骤2.2、计算单元计算编码器a路输出电平值和b路输出电平值的相异或值;
步骤2.3、计算单元根据编码器a路输出电平值和b路输出电平值的相异或值判断四个轮子的转向。
上述的步骤3还包含以下步骤:
步骤3.1、设定阀度Md,判断轮子转数之间的差值是否在阀度Md内;
步骤3.2、计算单元分别求取编码器同侧轮子脉冲计数的绝对值的差值;
步骤3.3、计算单元判断同侧轮子脉冲计数的绝对值的差值是否大于阀度Md;
步骤3.4、计算单元根据不同侧轮子脉冲计数的绝对值的差值否大于阀度Md,确定四个轮子着地或打滑的状态标志Λ。
上述的步骤3.4中的状态标志Λ:
当左前轮和右前轮完全着地,左后轮和右后轮打滑,状态标志Λ=0x11;
当左后轮和右后轮完全着地,左前轮和右前轮打滑,状态标志Λ=0x00;
当左后轮和右前轮完全着地,左前轮和右后轮打滑,状态标志Λ=0x01;
当左前轮和右后轮完全着地,左后轮和右前轮打滑,状态标志Λ=0x10;
当左前轮、右前轮和右后轮完全着地,左后轮打滑,状态标志Λ=0x11;
当左后轮、右前轮和右后轮完全着地,左前轮打滑,状态标志Λ=0x00;
当左前轮、左后轮和右前轮完全着地,右后轮打滑,状态标志Λ=0x11;
当左前轮、左后轮和右后轮完全着地,右前轮打滑,状态标志Λ=0x00;
当四个轮子都完全着地,状态标志Λ=0x11。
上述的步骤5还包含以下步骤:
步骤5.1、计算单元计算编码器的测量系数λ,公式为λ=mnω,
式中m为机器人减速电机的减速比,
n为编码器的分辨率,
ω为用来读取编码器的微控制器的中断编程系数;
步骤5.2、当左前轮和右前轮为有效轮时,即状态标志Λ=0x11,计算单元求出相对位移St和相对转角Φt如下:
Φ t ⇐ C ( N right - N left ) λB ,
S t ⇐ C ( N right + N left ) 2 λ ,
式中λ为编码器的测量系数,
Nleft为左侧轮子编码器的有效脉冲计数值,
Nright为右侧轮子编码器的有效脉冲计数值,
C为机器人轮子的周长;
步骤5.3、当左后轮和右后轮为有效轮时,即状态标志Λ=0x00,计算单元求出相对位移St和相对转角Φt如下:
Φ t ⇐ C ( N rigbt - N Ieft ) λB ,
S t ⇐ Φ t ( R left + B 2 ) 2 + L 2 ,
式中λ为编码器的测量系数,
Nleft为左侧轮子编码器的有效脉冲计数值,
Nright为右侧轮子编码器的有效脉冲计数值,
Rleft为左轮距转弯圆心的半径,
C为机器人轮子的周长,
B为机器人左右轮之间的轮距,
L为同侧前后轮的轮距;
步骤5.4、当左后轮和右前轮为有效轮时,即状态标志Λ=0x01时,计算单元求出相对位移St和相对转角Φt如下:
Φ t ⇐ C ( N right - N left ) λξ ,
R left ⇐ N left ξ N right - N left ,
η ⇐ L ( ξ + R left ) ξ ,
δ ⇐ B ( ξ + R left ) ξ - B 2 ,
S t ⇐ Φ t η 2 + δ 2 ,
式中λ为编码器的测量系数,
Nleft为左侧轮子编码器的有效脉冲计数值,
Nright为右侧轮子编码器的有效脉冲计数值,
Rleft为左轮距转弯圆心的半径,
C为机器人轮子的周长,
B为机器人左右轮之间的轮距,
L为同侧前后轮的轮距;
步骤5.5、当左前轮和右后轮为有效轮时,即状态标志Λ=0x10时,此时计算单元求出相对位移St和相对转角Φt如下:
ξ ⇐ B 2 + L 2 ,
Φ t ⇐ C ( N right - N left ) λξ ,
R left ⇐ N left ξ N right - N left ,
η ⇐ B ( ξ 2 + R left ) ξ ,
δ ⇐ L ( ξ 2 + R left ) ξ - L 2 ,
S t ⇐ Φ t η 2 + δ 2 ,
式中λ为编码器的测量系数,
Nleft为左侧轮子编码器的有效脉冲计数值,
Nright为右侧轮子编码器的有效脉冲计数值,
Rleft为左轮距转弯圆心的半径,
C为机器人轮子的周长,
B为机器人左右轮之间的轮距,
L为同侧前后轮的轮距。
上述的步骤6还包含以下步骤:
步骤6.1、计算单元求取机器人在全局坐标系下后一时刻t,机器人位姿的横坐标公式为: x w t ⇐ S t cos ( Φ t ) cos ( θ w t - 1 ) - S t sin ( Φ t ) sin ( θ w t - 1 ) + x w t - 1 ,
式中:为航向角,
St为位移,
为前一时刻t-1计算机器人在全局坐标系下位姿的横坐标
Φt为相对转角;
步骤6.2、计算单元求取机器人在全局坐标系下后一时刻t,机器人位姿的纵坐标公式为: y w t ⇐ S t cos ( Φ t ) sin ( θ w t - 1 ) + S t sin ( Φ t ) cos ( θ w t - 1 ) + y w t - 1 ,
式中:为前一时刻t-1计算机器人在全局坐标系下位姿的航向角,
St为位移,
为前一时刻t-1计算机器人在全局坐标系下位姿的横坐标;
Φt为相对转角;
步骤6.3、计算单元求取机器人在全局坐标系下后一时刻t,机器人位姿的航向角公式为: θ w t ⇐ θ w t - 1 + Φ t ,
式中:为前一时刻t-1计算机器人在全局坐标系下位姿的航向角,
Φt为相对转角;
步骤6.4、将后一时刻t航向角限定在定义域(-π,π]中。
上述的步骤6.4还包含以下步骤:
步骤6.4.1、将除以2π得到余数e;
步骤6.4.2、判断e是否小于π,若否,则若是,则
若e在(-π,π]之间,则
本发明一种轮式机器人位姿解算方法与现有技术相比具有以下优点:本发明仅使用轮式机器人轮子上装配的编码器进行机器人的位姿解算,而不需要任何其它的惯性器件辅助,使用编码器能同时解算机器人的两个采样时刻间的位移和转角,增强了机器人的紧凑度和可靠性,节约了成本。
本发明同时利用四驱轮式机器人的四个轮子上的四个编码器的脉冲输出数据,针对不同的路况,通过实时判断空转或打滑程度大于所设定的阈值的轮子,灵活配置状态机的状态,并根据状态机取值切换不同的运动模型,完成相邻采样时刻间机器人的位移和转角的解算,有效提高了对于不同路况的适应性和位姿解算精度。
本发明对机器人全局位姿的解算在下位机完成,同时依据不同机器人中心坐标系的空间映射关系,将所有时刻机器人的位姿映射到初始时刻的机器人中心坐标系中。下位机仅向上位机传送该全局笛卡尔坐标而并不上传相对运动,即使在下位机和上位机通信过程中由于误码造成某采样时刻的相对运动数据丢失,也不会损伤上位机端全局航位推算的精度,而仅反应为该时刻机器人位姿在全局路径中的丢失,这在长时间大范围的移动机器人作业应用中是可以忽略的。
附图说明
图1为本发明一种轮式机器人位姿解算方法的流程图。
图2为实施例中机器人平台的左右轮距和前后轮距的示意图。
图3为实施例中一个周期内编码器的两项输出的脉冲时序示意图。
图4为本发明机器人轮子着地或打滑状态标志的置位流程示意图。
图5a为实施例中构建的左前轮和右前轮完全着地时的相对运动模型等效示意图。
图5b为实施例中构建的左前轮和右前轮完全着地时的相对运动模型计算示意图。
图6a为实施例中构建的左后轮和右后轮完全着地时的相对运动模型等效示意图。
图6b为实施例中构建的左后轮和右后轮完全着地时的相对运动模型计算示意图。
图7a为实施例中构建的左前轮和右后轮完全着地时的相对运动模型等效示意图。
图7b为实施例中构建的左前轮和右后轮完全着地时的相对运动模型计算示意图。
图8a为实施例中构建的左后轮和右前轮完全着地时的相对运动模型等效示意图。
图8b为实施例中构建的左后轮和右前轮完全着地时的相对运动模型计算示意图。
具体实施方式
以下结合附图,通过详细说明一个较佳的具体实施例,对本发明做进一步阐述。
如图1所示,步骤1、测量机器人平台的结构参数、求取编码器的特性参数,并确定编码器脉冲输出与嵌入式控制板外部中断之间的连接关系。
机器人平台包含计算单元及驱动电机;计算单元包含上位机、下位机,上位机为计算机,用于处理数据;下位机中设有嵌入式控制板;嵌入式控制板上设有微控制器;微控制器包含多路外部中断;驱动电机上设有编码器;编码器包含多个a路输出和多个b路输出;编码器的多个a路输出和多个b路输出分别与微控制器的多路外部中断连接;机器人平台的结构参数包含机器人左右轮之间的轮距B、同侧前后轮的轮距L、机器人轮子的周长C、机器人减速电机的减速比m:1;编码器的特性参数包含编码器的分辨率n、用来读取编码器的微控制器的中断编程系数ω。
如图2所示,机器人包含四个驱动轮,左右轮之间的轮距B、同侧前后轮的轮距L。如果微控制器编程中使用了单沿中断触发时,ω取值为1,如果微控制器编程中使用了双沿中断触发时,ω取值为2。
在本实施例中,B为29cm,C为40cm,L为18cm,m为43.7,n为16,ω为2。本实施例中机器人编码器包含的a路输出和b路输出,它们的时序错开半个周期,两相及其组合求异或的时序示于图2。本实施例中的嵌入式控制板包含6路外部中断,分别通过微控制板的4路外部中断读取4个轮子编码器的A路输出,其计数值分别记为Nfrontleft、Nrearleft、Nfrontright、Nrearright;其余的2路外部中断分别与左侧任一个轮子和右侧的任一个轮子的B路相连,在本实施例中,上述2路外部中断分别与左前轮和右前轮的编码器的B路相连。
如图3和表1所示,步骤2、上位机记录一个采样周期内各轮子编码器的脉冲数,确定四个轮子的转向,即确定4个轮子编码器的A路输出计数值Nfrontleft、Nrearleft、Nfrontright、Nrearright的正负号。
表1通过编码器两路信号输出电平判断轮子的正反转
在A相外部中断操作中判断 在B相外部中断操作中判断
正转 pinA⊕pinB=1 pinA⊕pinB=0
反转 pinA⊕pinB=0 pinA⊕pinB=1
步骤2.1、微控制器记录编码器中断发生位置,并记录中断发生后编码器a路输出的电平值和b路输出的电平值;
步骤2.2、上位机求取编码器a路输出电平值和b路输出电平值的相异或值;
步骤2.3、上位机根据编码器a路输出电平值和b路输出电平值的相异或值判断四个轮子的转向。
本实施例以判断右后轮的转向为例:
记录中断发生于A路还是B路,在每一次编码器脉冲中断发生后分别记录右后轮编码器的A路电平和B路电平
若A路发生中断则计算相异或的结果,如果为1则正转,Nfrontright和Nrearright符号为正;如果为0则反转,Nfrontright和Nrearright符号为负;
若B路发生中断则计算相异或的结果,如果为1则反转,Nfrontright和Nrearright符号为负;如果为0则正转,Nfrontright和Nrearright符号为正。
步骤3、上位机根据一个采样周期内各轮子的编码器脉冲计数置位表征各轮子着地或打滑的状态。
本实施例通过一个十六进制的状态标志Λ表征机器人四个轮子的着地或打滑状态。在湿滑的路况下,可能出现如表2所示的轮子着地与打滑状态的9种组合。
表1车轮着地情况与状态标志间的映射关系
轮子着地和打滑状态 状态标志Λ取值
左前轮和右前轮完全着地,左后轮和右后轮打滑 0x11
左后轮和右后轮完全着地,左前轮和右前轮打滑 0x00
左后轮和右前轮完全着地,左前轮和右后轮打滑 0x01
左前轮和右后轮完全着地,左后轮和右前轮打滑 0x10
左前轮、右前轮和右后轮完全着地,左后轮打滑 0x11
左后轮、右前轮和右后轮完全着地,左前轮打滑 0x00
左前轮、左后轮和右前轮完全着地,右后轮打滑 0x11
左前轮、左后轮和右后轮完全着地,右前轮打滑 0x00
四个轮子都完全着地 0x11
如图4所示,对状态标志Λ的置位过程详述于下列步骤:
步骤3.1、设定阀度Md,判断轮子转数之间的差值是否在阀度Md内;
步骤3.2、上位机计算编码器测得右前轮和右后轮的脉冲计数的绝对值的差值,即ΔNright=|Nfrontright|-|Nrearright|,求取编码器测得左前轮和左后轮的脉冲计数的绝对值的差值,即ΔNleft=|Nfrontleft|-|Nrearleft|;
步骤3.3、判断门限Md与ΔNright的大小关系,门限Md与ΔNleft的大小关系;
步骤3.4、若ΔNright大于门限Md,则状态标志Λ=0x00;
若ΔNright小于门限-Md,则设置Λ=0x01;
若ΔNright处于-Md和Md之间,则设置Λ=0x02;
步骤3.5、若ΔNleft大于门限Md,则基于步骤3.4所设置状态标志Λ的值执行下述操作:若Λ=0x02,则设置Λ=0x00;
若Λ不等于0x02,则设置Λ=Λ+0x00;
步骤3.6、若ΔNleft小于门限-Md,则基于步骤3.4所设置状态标志Λ的值执行下述操作:如果Λ=0x02,则设置Λ=0x11;
如果Λ不等于0x02,则设置Λ=Λ+0x10;
步骤3.7、若ΔNleft处于-Md和Md之间,则基于步骤3.4所设置状态标志Λ的值执行下述操作:如果Λ=0x02,则设置Λ=0x11;
如果Λ不等于0x02,则设置Λ为Λ与步骤3.4得到的Λ左移8位后的和。
步骤4、上位机根据一个采样周期内各轮子的编码器脉冲计数的原始数据确定左侧和右侧轮子编码器的有效脉冲计数值。
根据状态标志Λ和编码器脉冲计数Nfrontleft、Nrearleft、Nfrontright、Nrearright确定有效的编码器计数值Nleft和Nright,具体的步骤如下:
步骤4.1、若状态标志Λ与0x0F按位取与的结果等于0x01,则设置Nright=Nfrontright;
若不是,设置Nright=Nrearright;
步骤4.1、若状态标志Λ与0xF0按位取与的结果等于0x10,则设置Nleft=Nfrontleft;
若不是,设置Nleft=Nrearleft
步骤5、上位机求取一个采样周期内前一时刻t-1和后一时刻t下机器人的相对位移St和转角Φt
本实施例中两个采样时刻相隔为0.2s。具体步骤描述如下:
步骤5.1、上位机计算编码器的测量系数λ,公式为λ=mnω,
式中m为机器人减速电机的减速比,
n为编码器的分辨率,
ω为用来读取编码器的微控制器的中断编程系数;
步骤5.2、当左前轮和右前轮为有效轮时,即状态标志Λ=0x11,上位机求出相对位移St和相对转角Φt如下:
Φ t ⇐ C ( N right - N left ) λB ,
此时的模型示意如图5a和图5b所示,
式中λ为编码器的测量系数,
Nleft为左侧轮子编码器的有效脉冲计数值,
Nright为右侧轮子编码器的有效脉冲计数值,
C为机器人轮子的周长;
步骤5.3、当左后轮和右后轮为有效轮时,即状态标志Λ=0x00,上位机求出相对位移St和相对转角Φt如下:
Φ t ⇐ C ( N right - N left ) λB ,
此时的模型示意如图6a和图6b所示,
式中λ为编码器的测量系数,
Nleft为左侧轮子编码器的有效脉冲计数值,
Nright为右侧轮子编码器的有效脉冲计数值,
Rleft为左轮距转弯圆心的半径,
C为机器人轮子的周长,
B为机器人左右轮之间的轮距,
L为同侧前后轮的轮距;
步骤5.4、当左后轮和右前轮为有效轮时,即状态标志Λ=0x01时,上位机求出相对位移St和相对转角Φt如下:
Φ t ⇐ C ( N right - N left ) λξ ,
R left ⇐ N left ξ N right - N left ,
η ⇐ L ( ξ + R left ) ξ ,
δ ⇐ B ( ξ + R left ) ξ - B 2 ,
此时的模型示意如图7a和图7b所示,
式中λ为编码器的测量系数,
Nleft为左侧轮子编码器的有效脉冲计数值,
Nright为右侧轮子编码器的有效脉冲计数值,
Rleft为左轮距转弯圆心的半径,
C为机器人轮子的周长,
B为机器人左右轮之间的轮距,
L为同侧前后轮的轮距;
步骤5.5、当左前轮和右后轮为有效轮时,即状态标志Λ=0x10时,此时上位机求出相对位移St和相对转角Φt如下:
ξ ⇐ B 2 + L 2 ,
Φ t ⇐ C ( N right - N left ) λξ ,
R left ⇐ N left ξ N right - N left ,
η ⇐ B ( ξ 2 + R left ) ξ ,
δ ⇐ L ( ξ 2 + R left ) ξ - L 2 ,
此时的模型示意如图8a和图8b所示,
式中λ为编码器的测量系数,
Nleft为左侧轮子编码器的有效脉冲计数值,
Nright为右侧轮子编码器的有效脉冲计数值,
Rleft为左轮距转弯圆心的半径,
C为机器人轮子的周长,
B为机器人左右轮之间的轮距,
L为同侧前后轮的轮距。
步骤6、上位机根据前一时刻t-1机器人在全局坐标下的位姿、前一时刻t-1和后一时刻t下机器人的相对位移和转角,求取后一时刻t机器人相对于全局坐标下的位姿。
上位机利用步骤5求得的t时刻相对于t-1时刻机器人的相对位移St和相对转角Φt,及t-1时刻机器人处于全局坐标系w下的笛卡尔坐标解算t时刻机器人在全局坐标系w下的笛卡尔坐标即t时刻机器人的全局位姿,具体步骤为:
步骤6.1、上位机求取机器人在全局坐标系下后一时刻t,机器人位姿的横坐标公式为: x w t ⇐ S t cos ( Φ t ) cos ( θ w t - 1 ) - S t sin ( Φ t ) sin ( θ w t - 1 ) + x w t - 1 ,
式中:为航向角,
St为位移,
为前一时刻t-1计算机器人在全局坐标系下位姿的横坐标
Φt为相对转角;
步骤6.2、上位机求取机器人在全局坐标系下后一时刻t,机器人位姿的纵坐标公式为: y w t ⇐ S t cos ( Φ t ) sin ( θ w t - 1 ) + S t sin ( Φ t ) cos ( θ w t - 1 ) + y w t - 1 ,
式中:为前一时刻t-1计算机器人在全局坐标系下位姿的航向角,
St为位移,
为前一时刻t-1计算机器人在全局坐标系下位姿的横坐标;
Φt为相对转角;
步骤6.3、上位机求取机器人在全局坐标系下后一时刻t,机器人位姿的航向角公式为: θ w t ⇐ θ w t - 1 + Φ t ,
式中:为前一时刻t-1计算机器人在全局坐标系下位姿的航向角,
Φt为相对转角;
步骤6.4、将后一时刻t航向角限定在定义域(-π,π]中;
步骤6.4.1、将除以2π得到余数e;
步骤6.4.2、判断e是否小于π,若否,则若是,则
若e在(-π,π]之间,则
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

Claims (3)

1.一种轮式机器人位姿解算方法,其特征在于,位姿解算方法至少包含以下步骤:
步骤1、测量机器人平台的结构参数、求取编码器的特性参数,并确定编码器脉冲输出与嵌入式控制板外部中断之间的连接关系;
所述的机器人平台包含计算单元;
步骤2、计算单元记录一个采样周期内四个轮子编码器的脉冲数,得到四个轮子的转向;
步骤2.1、计算单元记录编码器中断发生的时刻,并记录中断发生后编码器a路输出的电平值和b路输出的电平值;
步骤2.2、计算单元计算编码器a路输出电平值和b路输出电平值的相异或值;
步骤2.3、上位机根据编码器a路输出电平值和b路输出电平值的相异或值判断四个轮子的转向;
步骤3、计算单元根据一个采样周期内各轮子的编码器脉冲计数置位表征四个轮子着地或打滑的状态标志;
步骤3.1、设定阀度Md,判断轮子转数之间的差值是否在阀度Md内;
步骤3.2、计算单元分别求取编码器同侧轮子脉冲计数的绝对值的差值;
步骤3.3、计算单元判断同侧轮子脉冲计数的绝对值的差值是否大于阀度Md
步骤3.4、计算单元根据不同侧轮子脉冲计数的绝对值的差值否大于阀度Md,确定各轮子着地或打滑的状态标志Λ;
步骤4、计算单元根据一个采样周期内四个轮子的编码器脉冲计数的原始数据确定左侧轮子编码器的有效脉冲计数值和右侧轮子编码器的有效脉冲计数值;
步骤5、计算单元求取机器人一个采样周期内前一时刻t-1和后一时刻t的相对位移和转角;
步骤5.1、计算单元计算编码器的测量系数λ,公式为λ=mnω,
式中m为机器人减速电机的减速比,
n为编码器的分辨率,
ω为用来读取编码器的微控制器的中断编程系数;
步骤5.2、当左前轮和右前轮为有效轮时,即状态标志Λ=0x11,计算单元求出相对位移st和相对转角Φt如下:
Φ t ⇐ C ( N r i g h t - N l e f t ) λ B ,
s t ⇐ C ( N r i g h t + N l e f t ) 2 λ ,
式中:λ为编码器的测量系数,
Nleft为左侧轮子编码器的有效脉冲计数值,
Nright为右侧轮子编码器的有效脉冲计数值,
B为机器人左右轮之间的轮距,
C为机器人轮子的周长;
步骤5.3、当左后轮和右后轮为有效轮时,即状态标志Λ=0x00,计算单元求出相对位移st和相对转角Φt如下:
Φ t ⇐ C ( N r i g h t - N l e f t ) λ B ,
s t ⇐ Φ t ( R l e f t + B 2 ) 2 + L 2 ,
式中:λ为编码器的测量系数,
Nleft为左侧轮子编码器的有效脉冲计数值,
Nright为右侧轮子编码器的有效脉冲计数值,
Rleft为左轮距转弯圆心的半径,
C为机器人轮子的周长,
B为机器人左右轮之间的轮距,
L为同侧前后轮的轮距;
步骤5.4、当左后轮和右前轮为有效轮时,即状态标志Λ=0x01时,计算单元求出相对位移st和相对转角Φt如下:
ξ ⇐ B 2 + L 2 ,
Φ t ⇐ C ( N r i g h t - N l e f t ) λ ξ ,
R l e f t ⇐ N l e f t ξ N r i g h t - N l e f t ,
η ⇐ L ( ξ + R l e f t ) ξ ,
δ ⇐ B ( ξ + R l e f t ) ξ - B 2 ,
S t ⇐ Φ t η 2 + δ 2 ,
式中:λ为编码器的测量系数,
Nleft为左侧轮子编码器的有效脉冲计数值,
Nright为右侧轮子编码器的有效脉冲计数值,
Rleft为左轮距转弯圆心的半径,
C为机器人轮子的周长,
B为机器人左右轮之间的轮距,
L为同侧前后轮的轮距;
步骤5.5、当左前轮和右后轮为有效轮时,即状态标志Λ=0x10时,此时计算单元求出相对位移st和相对转角Φt如下:
ξ ⇐ B 2 + L 2 ,
Φ t ⇐ C ( N r i g h t - N l e f t ) λ ξ ,
R l e f t ⇐ N l e f t ξ N r i g h t - N l e f t ,
η ⇐ B ( ξ 2 + R l e f t ) ξ ,
δ ⇐ L ( ξ 2 + R l e f t ) ξ - L 2 ,
S t ⇐ Φ t η 2 + δ 2 ,
式中:λ为编码器的测量系数,
Nleft为左侧轮子编码器的有效脉冲计数值,
Nright为右侧轮子编码器的有效脉冲计数值,
Rleft为左轮距转弯圆心的半径,
C为机器人轮子的周长,
B为机器人左右轮之间的轮距,
L为同侧前后轮的轮距;
步骤6、计算单元根据前一时刻t-1机器人在全局坐标下的位姿、前一时刻t-1和后一时刻t下机器人的相对位移和转角,求取后一时刻t机器人相对于全局坐标下的位姿;
步骤6.1、计算单元求取机器人在全局坐标系下后一时刻t,机器人位姿的横坐标公式为:
x w t ⇐ S t cos ( Φ t ) cos ( θ w t - 1 ) - S t sin ( Φ t ) sin ( θ w t - 1 ) + x w t - 1 ,
式中:为航向角,
st为位移,
为前一时刻t-1计算机器人在全局坐标系下位姿的横坐标
Φt为相对转角;
步骤6.2、计算单元求取机器人在全局坐标系下后一时刻t,机器人位姿的纵坐标公式为:
y w t ⇐ S t cos ( Φ t ) sin ( θ w t - 1 ) + S t sin ( Φ t ) cos ( θ w t - 1 ) + y w t - 1 ,
式中:为前一时刻t-1计算机器人在全局坐标系下位姿的航向角,
st为位移,
为前一时刻t-1计算机器人在全局坐标系下位姿的横坐标;
Φt为相对转角;
步骤6.3、计算单元求取机器人在全局坐标系下后一时刻t,机器人位姿的航向角公式为:
θ w t ⇐ θ w t - 1 + Φ t ,
式中:为前一时刻t-1计算机器人在全局坐标系下位姿的航向角,
Φt为相对转角;
步骤6.4、将后一时刻t航向角限定在定义域(-π,π]中。
2.如权利要求1所述的轮式机器人位姿解算方法,其特征在于,所述的步骤3.4中的状态标志Λ:
当左前轮和右前轮完全着地,左后轮和右后轮打滑,状态标志Λ=0x11;
当左后轮和右后轮完全着地,左前轮和右前轮打滑,状态标志Λ=0x00;
当左后轮和右前轮完全着地,左前轮和右后轮打滑,状态标志Λ=0x01;
当左前轮和右后轮完全着地,左后轮和右前轮打滑,状态标志Λ=0x10;
当左前轮、右前轮和右后轮完全着地,左后轮打滑,状态标志Λ=0x11;
当左后轮、右前轮和右后轮完全着地,左前轮打滑,状态标志Λ=0x00;
当左前轮、左后轮和右前轮完全着地,右后轮打滑,状态标志Λ=0x11;
当左前轮、左后轮和右后轮完全着地,右前轮打滑,状态标志Λ=0x00;
当四个轮子都完全着地,状态标志Λ=0x11。
3.如权利要求1所述的轮式机器人位姿解算方法,其特征在于,所述的步骤6.4还包含以下步骤:
步骤6.4.1、将除以2π得到余数e;
步骤6.4.2、判断e是否小于π,若否,则若是,则
若e在(-π,π]之间,则
CN201310342103.1A 2013-08-07 2013-08-07 一种轮式机器人位姿解算方法 Expired - Fee Related CN103389087B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310342103.1A CN103389087B (zh) 2013-08-07 2013-08-07 一种轮式机器人位姿解算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310342103.1A CN103389087B (zh) 2013-08-07 2013-08-07 一种轮式机器人位姿解算方法

Publications (2)

Publication Number Publication Date
CN103389087A CN103389087A (zh) 2013-11-13
CN103389087B true CN103389087B (zh) 2016-06-15

Family

ID=49533432

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310342103.1A Expired - Fee Related CN103389087B (zh) 2013-08-07 2013-08-07 一种轮式机器人位姿解算方法

Country Status (1)

Country Link
CN (1) CN103389087B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104931045B (zh) * 2015-05-18 2018-04-17 哈尔滨工程大学 全方位移动机器人基于定位码盘的定位方法
CN104848856B (zh) * 2015-05-29 2017-09-22 山东鲁能智能技术有限公司 一种基于轮间差速的变电站巡检机器人航迹推算方法与装置
CN106352879B (zh) * 2016-09-28 2019-08-13 深圳市普渡科技有限公司 一种基于图优化的uwb定位与编码器融合的位姿估计方法
CN107422737A (zh) * 2017-08-08 2017-12-01 珠海市微半导体有限公司 机器人是否碰到障碍物的检测方法和系统及芯片
CN109669350B (zh) * 2017-10-13 2021-07-20 电子科技大学中山学院 一种三轮全向移动机器人车轮滑动定量估计方法
CN108036792A (zh) * 2017-12-11 2018-05-15 苏州中德睿博智能科技有限公司 一种用于移动机器人的里程计与测量位姿的数据融合方法
CN109916403B (zh) * 2017-12-13 2023-12-05 华中科技大学 一种用于agv小车的短时精确定位的装置及方法
CN109085835A (zh) * 2018-08-28 2018-12-25 扬州方棱机械有限公司 一种生成割草工作区域虚拟边界的方法
CN109676602B (zh) * 2018-09-25 2020-11-24 上海肇观电子科技有限公司 行走机器人的自适应标定方法、系统、设备及存储介质
CN111417069A (zh) * 2020-03-27 2020-07-14 安徽理工大学 轮式里程计和uwb融合的煤矿井下运输机器人定位装置及方法
CN112141303B (zh) * 2020-10-09 2021-11-02 西北工业大学 水下机器人攀爬模态下的防滑调头控制方法及水下机器人
CN112389538A (zh) * 2020-12-08 2021-02-23 航天科技控股集团股份有限公司 一种映射对应方式转向控制系统及方法
CN112857393B (zh) * 2021-01-30 2022-05-17 厦门攸信信息技术有限公司 一种麦克纳姆轮平台的平面定位及里程计量方法
CN114911225B (zh) * 2021-02-23 2023-08-15 北京盈迪曼德科技有限公司 一种双轮差速机器人打滑判定方法及装置
CN113070658B (zh) * 2021-04-21 2022-03-25 上海海事大学 汽轮机叶盘叶片定位装配系统及方法
CN114305222B (zh) * 2021-12-23 2022-12-06 湖南格兰博智能科技有限责任公司 一种扫地机器人的偏航角检测方法及扫地机器人

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436261A (zh) * 2011-12-05 2012-05-02 北京航空航天大学 基于单目摄像头和led的机器人对接定位和导航策略
CN102591344A (zh) * 2012-03-05 2012-07-18 中国人民解放军国防科学技术大学 四足仿生机器人的时位控制方法
CN202975807U (zh) * 2012-12-14 2013-06-05 武汉大学 一种轮式机器人运动控制系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436261A (zh) * 2011-12-05 2012-05-02 北京航空航天大学 基于单目摄像头和led的机器人对接定位和导航策略
CN102591344A (zh) * 2012-03-05 2012-07-18 中国人民解放军国防科学技术大学 四足仿生机器人的时位控制方法
CN202975807U (zh) * 2012-12-14 2013-06-05 武汉大学 一种轮式机器人运动控制系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《农用轮式移动机器人相对位姿的求解方法》;周俊等;《中国图象图形学报》;20050331;第10卷(第3期);310-314 *

Also Published As

Publication number Publication date
CN103389087A (zh) 2013-11-13

Similar Documents

Publication Publication Date Title
CN103389087B (zh) 一种轮式机器人位姿解算方法
CN105620473B (zh) 一种泊车轨迹校正方法
CN103777220B (zh) 基于光纤陀螺、速度传感器和gps的实时精确位姿估计方法
CN104537829B (zh) 一种智能交通物理仿真平台及用于该智能交通物理仿真平台的定位方法
US10352829B2 (en) Automatic calibration method of an angle sensor for an automatic drive control system of a farm machine
CN102372000B (zh) 获取泊车位参数的装置和系统
CN108748135A (zh) 一种机器人驱动轮打滑位姿矫正方法以及一种机器人
CN111907516A (zh) 一种全自动泊车方法和系统
CN112212887B (zh) 一种基于阿克曼转向模型的自动泊车定位参数标定方法
CN104180821B (zh) 一种基于同步测量与定位计算的里程计标定方法
CN103543289B (zh) 一种获取终端运动方向的方法及装置
CN103119398A (zh) 具有完整性检查的机器导航系统
CN104197935B (zh) 一种基于移动智能终端的室内定位方法
CN103714563B (zh) 一种曲线形农田作业区域边界建模方法
CN110234957A (zh) 行驶记录的存储方法、行驶轨迹模型的生成方法、自身位置推定方法及行驶记录的存储装置
CN106950953A (zh) 一种自动泊车路径跟踪及车辆控制系统和方法
CN106840152A (zh) 一种面向室内移动机器人的高精度组合导航系统及方法
CN100403197C (zh) 基于差分gps技术轮胎吊自动驾驶及箱位管理系统
CN104613968A (zh) 一种航迹仪边界智能标绘控制方法
CN103542864B (zh) 一种惯性导航中计步的方法及装置
CN207440617U (zh) 一种小车全向移动控制系统
TWI426241B (zh) Self - propelled device for the tracking system
CN109101019B (zh) 一种基于信息融合的确定智能割草机行走位置的方法
CN113465940B (zh) 一种机器人打滑检测方法、装置以及机器人
CN115342830A (zh) 用于定位装置和里程计的标定方法、程序产品和标定装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160615

Termination date: 20190807

CF01 Termination of patent right due to non-payment of annual fee