CN104570738B - 基于Skinner操作条件反射自动机的机器人轨迹跟踪方法 - Google Patents
基于Skinner操作条件反射自动机的机器人轨迹跟踪方法 Download PDFInfo
- Publication number
- CN104570738B CN104570738B CN201410844504.1A CN201410844504A CN104570738B CN 104570738 B CN104570738 B CN 104570738B CN 201410844504 A CN201410844504 A CN 201410844504A CN 104570738 B CN104570738 B CN 104570738B
- Authority
- CN
- China
- Prior art keywords
- msub
- mrow
- robot
- state
- probability
- 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.)
- Active
Links
Landscapes
- Feedback Control In General (AREA)
- Manipulator (AREA)
Abstract
本发明公开了一种基于Skinner操作条件反射自动机的机器人轨迹跟踪方法,涉及移动机器人轨迹跟踪领域,具体涉及一种基于Skinner操作条件反射自动机的机器人轨迹跟踪方法。本发明首先建立机器人的操作和状态集合,并建立相应的状态到操作的概率集合,并令其符合均匀分布;然后,随机选择一个操作,计算相应的位置变化,进而根据距离目标轨迹的距离计算取向函数,根据取向函数值按照操作条件反射理论调整动作概率分布,计算系统熵;当系统熵趋于最小值时,学习结束。此时概率矩阵为最优。本发明能够很好地模拟人及动物的操作条件反射行为,提高机器人智能水平,是其具备较强的自学习、自组织、自适应能力,自主条件参数,成功进行轨迹跟踪。
Description
技术领域
本发明涉及移动机器人轨迹跟踪领域,具体涉及一种基于Skinner(斯金纳)操作条件反射自动机的机器人轨迹跟踪方法。
背景技术
随着自主移动机器人技术的发展,自主移动机器人的应用领域越来越广泛。它可以取代人类到达许多人类无法到达或有危险的环境,如火灾、地震搜救机器人;还可以代替人类做一些服务类工作,如博物馆导游等。移动机器人的轨迹跟踪运动控制不但可直接用于跟踪目标、机器人编队等领域,而且,循迹追线是对环境信息的一种简化,有利于开发出更有效的算法应用于复杂环境下的自主移动机器人上。
经典控制方法和现代控制方法是常用的移动机器人轨迹跟踪控制方法,虽然应用地比较成熟,但其不能自主调整参数,对于同一算法运用在不同机器人、不同环境中需要人工调整参数。本发明所采用的Skinner操作条件反射自动机的轨迹跟踪方法来源于1938年美国著名心理学家斯金纳(B.F.Skinner)在其著作《The Behavior of Organisms:anexperimental analysis》中提出的操作条件反射(Operant Conditioning)的理论。通过刺激产生反应,反应影响刺激出现的概率,是斯金纳操作条件反射理论的核心。它体现了人或动物自学习能力,反映了智能体对环境的自适应性。如果能将斯金纳提出的操作条件反射原理应用于机器人轨迹跟踪方面,将会提高轨迹跟踪的智能化程度。
发明内容
本发明提出一种基于Skinner操作条件反射自动机的轨迹跟踪方法,对每个状态对应的操作赋予概率权值,权值的变化随抽样结果的反馈进行更新,从而使其抽样概率发生变化。本发明使机器人能够在没有导师信号的情况下,依靠环境对机器人的奖励与惩罚,建立操作条件反射,使机器人自主完成轨迹跟踪的学习。
基于Skinner操作条件反射自动机的机器人轨迹跟踪方法,其特征在于包括以下步骤:
步骤1:确定Skinner操作条件反射机的数学模型,SKCOA;
SKCOA自动机是离散的一个七元组,SKCOA=<S,A,f,δ,P,L,H>,S为离散状态组合集合,A为自动机可选择动作操作集合,f为状态转移函数,δ是取向函数,P为每一状态下选择操作的概率集合,令初始概率分布为均匀分布,L为自动机的操作条件反射学习机制,H为自动机操作行为熵;
步骤2:确定SKCOA自动机可选择的操作集合A;
操作集合A={vk,ωj|k=1,2,...,na1,j=1,2,...,na2},vk为机器人前进的速度,ωj为机器人转过的角速度,na1,na2分别为速度和角速度的操作集大小,na=na1*na2,na为操作集大小;
步骤3:获得机器人在t的时刻的状态集合S={ei|i=1,2,...,ns};
机器人t时刻在环境地图中的坐标位置,记作si|t=(xi,yi,θi);xi,yi分别为机器人t时刻所在的横纵坐标,θi为机器人与横轴夹角;期望轨迹坐标点为soi|t=(xoi,yoi,θoi),xoi,yoi分别为机器人期望轨迹在t时刻的横纵坐标,θoi为期望位姿与横轴夹角;机器人在t的时刻的状态集合为S1={ei|i=1,2,...,ns}=soi-si=(xoi-xi,yoi-yi,θoi-θi),ns为状态集合大小;将坐标转换为以机器人为坐标原点的坐标系中,S=T·S1,T为旋转矩阵;
步骤4:根据概率集合,从动作集中选择一组动作,即选择前行的速度vk和角速度ωk;
步骤5:计算状态转移,方法如下:
式中,xn、yn、θn分别代表动作选择后机器人新的横纵坐标以及机器人的朝向角度,xo、yo、θo分别代表动作选择前机器人新的横纵坐标以及机器人的朝向角度,ts为机器人传感器的采样时间;
步骤6:计算能量函数eng的值;
能量函数用于表示机器人当前位置与轨迹的距离关系,记作eng=eng(S)={eng(Si)|i=1,2,...,ns}∈R,距离越近,eng越小,反之,eng越大,方法如下:
步骤7:计算取向函数δ值;
取向函数δ=δ(S,A)={δik|i=1,2,...,ns;k=1,2,...,na},模拟了自然界中生物的取向性,方法如下:
δik=eng(Si)-eng(Si+1) (3)
其中δik表示si∈S执行动作(vk,ωk)∈A后系统性能的变化;δ<0时,为负取向,说明系统性能趋向变差;δ=0时,为零取向,说明系统性能趋向不变;δ>0时,为正取向,说明系统性能趋向变好;
步骤8:根据Skinner操作条件反射原理调整动作集概率分布P;
动作集概率分布的规则为:正强化时,动作概率增加;负强化时,动作概率减少;设t时刻状态sm,选择操作ak执行,通过状态转移到sn;
当δ>0时,
当δ<0时,
式中,η1>0,η2>0;α1(t),α2(t)为学习速率函数,0<α1(t)<1,0<α2(t)<1;pmk(t)为t时刻机器人在状态sm下选择动作ak的概率;pmk'(t)为t时刻机器人在状态sm下选择动作除ak外的其他操作的概率;
步骤9:计算t时刻系统熵;
式中,pik(t)为机器人在状态si下选择动作ak的概率;
步骤10:判断熵是否趋于最小值Hmin,如果是,标志着系统已达到自组织,机器人已形成操作条件反射习得最优动作,则本次学习结束,转到测试阶段;否则,转步骤2;
步骤11:测试阶段,载入期望轨迹和速度;
步骤12:在保持概率矩阵P不变,根据概率从操作集中选择操作执行,按照状态转移公式计算新的状态,循环往复;
步骤13:判断机器人当前位置是否为终点,如果是,则结束,否则,转步骤11,继续测 试阶段。
附图说明
图1本发明学习阶段流程图;
图2本发明测试阶段流程图;
图3机器人简化示意图;
图4学习阶段机器人轨迹仿真图;
图5测试阶段机器人轨迹仿真图。
具体实施方式
下面结合附图作进一步说明。
本发明所述方法的流程图如附图所示,包含以下几个步骤。
步骤1:初始化。令机器人状态集合S={ei|i=1,2,...,ns},区间划分如表1,ei(1)、ei(2)分别划分了5个区间,一共25个;操作集合A={vk,ωj|k=1,2,...,na1,j=1,2,...,na2}速度和角速度区间划分如表2,这里保持速度不变,角速度划分了5个区间。令机器人从起点出发,选择起点坐标为机器人当前状态。令初始概率集合P为均匀分布。
表1状态集合区间划分
表2操作集合区间划分
步骤2:机器人当前时刻的坐标位置,记作si|t=(xi,yi,θi)。期望轨迹坐标点为soi|t = (xoi,yoi, θoi) 。计算当前状态S={ei|i=1,2,...,ns}=soi-si=(xoi-xi,yoi-yi,θoi-θi),依照表1,记录对应状态区间序号。
步骤3:这里设前行的速度vk保持不变,为0.1m/s,根据概率集合,从表2划分的操作集中选择一组动作,即选择角速度ωj;
步骤4:按照公式(1)计算按照速度为0.1m/s和选择的角速度ωj执行后的位置。
步骤5:按照公式(2)计算当前时刻能量函数eng的值;
步骤6:按照公式(3)计算取向函数δ值;
步骤7:按照公式(4)调整动作集概率分布P;
步骤8:按照公式(5)计算当前时刻系统熵;
步骤9:判断熵是否趋于最小值Hmin,如果是,标志着系统已达到自组织,机器人已形成操作条件反射习得最优动作,则本次学习结束,转到测试阶段;否则,转步骤2;
步骤10,测试阶段。载入期望轨迹和速度。
步骤11,在保持习得概率矩阵P不变,根据概率从操作集中选择操作执行,按照状态转移公式(1)计算新的状态,循环往复。
步骤12,判断机器人当前位置是否为终点,如果是,则结束,否则,转步骤10,继续测试阶段。
下面给出应用本发明进行轨迹跟踪的仿真实验。
仿真实验在MATLAB仿真软件中进行。机器人行走机构采用双轮差动式运动底盘,在机器人左右两侧安装有轮wL和wR,由直流电机驱动,前部有一个起支撑作用的万向轮wF。该机器人的机械结构简化示意图如图3。
环境为20m×20m大小的空间,追踪目标点初始位置为(-5,0),机器人初始位置随机给定,目标点和机器人速度都为0.5m/s。学习阶段如图4所示,粗线为目标点位置,细线为机器人轨迹。为了让每个状态下的学习更充分,目标点随机移动,在此次试验中,目标点位置在(-5,0)附近运动,如图4,机器人初始位置在(7,-3.5)左右。测试阶段如图5,目标点运动轨迹为半径为5m的圆,粗线为目标点运动轨迹,细线为机器人运动轨迹。从中可以看出,本发明中所述方法可以完成机器人的轨迹跟踪。
Claims (1)
1.基于Skinner操作条件反射自动机的机器人轨迹跟踪方法,其特征在于包括以下步骤:
步骤1:确定Skinner操作条件反射机的数学模型,SKCOA;
SKCOA自动机是离散的一个七元组,SKCOA=<S,A,f,δ,P,L,H>,S为离散状态组合集合,A为自动机可选择动作操作集合,f为状态转移函数,δ是取向函数,P为每一状态下选择操作的概率集合,令初始概率分布为均匀分布,L为自动机的操作条件反射学习机制,H为自动机操作行为熵;
步骤2:确定SKCOA自动机可选择的操作集合A;
操作集合A={vk,ωj|k=1,2,...,na1,j=1,2,...,na2},vk为机器人前进的速度,ωj为机器人转过的角速度,na1,na2分别为速度和角速度的操作集大小;
步骤3:获得机器人在t的时刻的状态集合S={ei|i=1,2,...,ns};
机器人t时刻在环境地图中的坐标位置,记作si|t=(xi,yi,θi);xi,yi分别为机器人t时刻所在的横纵坐标,θi为机器人与横轴夹角;期望轨迹坐标点为soi|t=(xoi,yoi,θoi);xoi,yoi分别为机器人期望轨迹在t时刻的横纵坐标,θoi为期望位姿与横轴夹角;机器人在t的时刻的状态集合为S1={ei|i=1,2,...,ns}=soi-si=(xoi-xi,yoi-yi,θoi-θi),ns为状态集合大小;
步骤4:根据概率集合,从动作集中选择一组动作,即选择前行的速度vk和角速度ωk;
步骤5:计算状态转移,方法如下:
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<msub>
<mi>x</mi>
<mi>n</mi>
</msub>
<mo>=</mo>
<msub>
<mi>x</mi>
<mi>o</mi>
</msub>
<mo>+</mo>
<msub>
<mi>v</mi>
<mi>k</mi>
</msub>
<mo>*</mo>
<msub>
<mi>t</mi>
<mi>s</mi>
</msub>
<mo>*</mo>
<mi>c</mi>
<mi>o</mi>
<mi>s</mi>
<msub>
<mi>&theta;</mi>
<mi>n</mi>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>y</mi>
<mi>n</mi>
</msub>
<mo>=</mo>
<msub>
<mi>y</mi>
<mi>o</mi>
</msub>
<mo>+</mo>
<msub>
<mi>v</mi>
<mi>k</mi>
</msub>
<mo>*</mo>
<msub>
<mi>t</mi>
<mi>s</mi>
</msub>
<mo>*</mo>
<msub>
<mi>sin&theta;</mi>
<mi>n</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>&theta;</mi>
<mi>n</mi>
</msub>
<mo>=</mo>
<msub>
<mi>&theta;</mi>
<mi>o</mi>
</msub>
<mo>+</mo>
<msub>
<mi>&omega;</mi>
<mi>k</mi>
</msub>
<mo>*</mo>
<msub>
<mi>t</mi>
<mi>s</mi>
</msub>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
式中,xn、yn、θn分别代表动作选择后机器人新的横纵坐标以及机器人的朝向角度,xo、yo、θo分别代表动作选择前机器人新的横纵坐标以及机器人的朝向角度,ts为机器人传感器的采样时间;
步骤6:计算能量函数eng的值;
能量函数用于表示机器人当前位置与轨迹的距离关系,记作eng=eng(S)={eng(Si)|i=1,2,...,ns}∈R,距离越近,eng越小,反之,eng越大,方法如下:
eng(Si)=ei 2
步骤7:计算取向函数δ值;
取向函数δ=δ(S,A)={δik|i=1,2,...,ns;k=1,2,...,na},模拟了自然界中生物的取向性,方法如下:
δik=eng(Si)-eng(Si+1)
其中δik表示si∈S执行动作(vk,ωk)∈A后系统性能的变化;δ<0时,为负取向,说明系统性能趋向变差;δ=0时,为零取向,说明系统性能趋向不变;δ>0时,为正取向,说明系统性能趋向变好;
步骤8:根据Skinner操作条件反射原理调整动作集概率分布P;
动作集概率分布的规则为:正强化时,动作概率增加;负强化时,动作概率减少;设t时刻状态sm,选择操作ak执行,通过状态转移到sn;
当δ>0时,
<mrow>
<msub>
<mi>&alpha;</mi>
<mn>1</mn>
</msub>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mfrac>
<msub>
<mi>&eta;</mi>
<mn>1</mn>
</msub>
<mrow>
<mn>1</mn>
<mo>+</mo>
<mi>exp</mi>
<mrow>
<mo>(</mo>
<mi>e</mi>
<mi>n</mi>
<mi>g</mi>
<mo>(</mo>
<msub>
<mi>s</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mo>)</mo>
</mrow>
</mfrac>
<mo>;</mo>
</mrow>
当δ<0时,
<mrow>
<msub>
<mi>&alpha;</mi>
<mn>1</mn>
</msub>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mfrac>
<msub>
<mi>&eta;</mi>
<mn>2</mn>
</msub>
<mrow>
<mn>1</mn>
<mo>+</mo>
<mi>exp</mi>
<mrow>
<mo>(</mo>
<mi>e</mi>
<mi>n</mi>
<mi>g</mi>
<mo>(</mo>
<msub>
<mi>s</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mo>)</mo>
</mrow>
</mfrac>
<mo>;</mo>
</mrow>
式中,η1,η2为学习效率,且η1>0,η2>0;α1(t),α2(t)为学习速率函数,且0<α1(t)<1,0<α2(t)<1;pmk(t)为t时刻机器人在状态sm下选择动作ak的概率;pmk'(t)为t时刻机器人在状态sm下选择动作除ak外的其他操作的概率;
步骤9:计算t时刻系统熵;
<mrow>
<mi>H</mi>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mo>-</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<msub>
<mi>n</mi>
<mi>a</mi>
</msub>
</munderover>
<msub>
<mi>p</mi>
<mrow>
<mi>i</mi>
<mi>k</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
<msub>
<mi>log</mi>
<mn>2</mn>
</msub>
<msub>
<mi>p</mi>
<mrow>
<mi>i</mi>
<mi>k</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
</mrow>
式中,pik(t)为机器人在状态si下选择动作ak的概率;
步骤10:判断熵是否趋于最小值Hmin,如果是,标志着系统已达到自组织,机器人已形成操作条件反射习得最优动作,则本次学习结束,转到测试阶段;否则,转步骤2;
步骤11:测试阶段,载入期望轨迹和速度;
步骤12:在保持概率矩阵P不变,根据概率从操作集中选择操作执行,按照状态转移公式计算新的状态,循环往复;
步骤13:判断机器人当前位置是否为终点,如果是,则结束,否则,转步骤11,继续测试阶段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410844504.1A CN104570738B (zh) | 2014-12-30 | 2014-12-30 | 基于Skinner操作条件反射自动机的机器人轨迹跟踪方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410844504.1A CN104570738B (zh) | 2014-12-30 | 2014-12-30 | 基于Skinner操作条件反射自动机的机器人轨迹跟踪方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104570738A CN104570738A (zh) | 2015-04-29 |
CN104570738B true CN104570738B (zh) | 2017-09-08 |
Family
ID=53087108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410844504.1A Active CN104570738B (zh) | 2014-12-30 | 2014-12-30 | 基于Skinner操作条件反射自动机的机器人轨迹跟踪方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104570738B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107479547B (zh) * | 2017-08-11 | 2020-11-24 | 同济大学 | 基于示教学习的决策树行为决策算法 |
CN108681243B (zh) * | 2018-05-03 | 2020-12-18 | 南京理工大学 | 一种机器人轨迹跟踪方法 |
CN109212975B (zh) * | 2018-11-13 | 2021-05-28 | 北方工业大学 | 一种具有发育机制的感知行动认知学习方法 |
CN115076019B (zh) * | 2022-06-24 | 2023-05-16 | 清华大学 | 一种用于波浪发电装置的控制方法、装置和电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673354A (zh) * | 2009-06-12 | 2010-03-17 | 北京工业大学 | 操作条件反射自动机及其在仿生自主学习控制中的应用 |
CN101599137A (zh) * | 2009-07-15 | 2009-12-09 | 北京工业大学 | 自治操作条件反射自动机及在实现智能行为中的应用 |
CN103792846B (zh) * | 2014-02-18 | 2016-05-18 | 北京工业大学 | 基于Skinner操作条件反射原理的机器人避障导航方法 |
-
2014
- 2014-12-30 CN CN201410844504.1A patent/CN104570738B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104570738A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022012265A1 (en) | Robot learning from demonstration via meta-imitation learning | |
CN104570738B (zh) | 基于Skinner操作条件反射自动机的机器人轨迹跟踪方法 | |
CN110653831B (zh) | 用于地下综合管廊的多寻味机器人的危险气体泄漏源定位系统和方法 | |
CN109388073A (zh) | 一种车辆动态模拟的方法和装置 | |
CN106843235A (zh) | 一种面向无人自行车的人工势场路径规划法 | |
CN111381600B (zh) | 一种基于粒子群算法的uuv路径规划方法 | |
CN105094124A (zh) | 基于操作条件反射进行自主路径探索的方法及模型 | |
JP2020204803A (ja) | 学習方法及びプログラム | |
CN111645673B (zh) | 一种基于深度强化学习的自动泊车方法 | |
CN103792846B (zh) | 基于Skinner操作条件反射原理的机器人避障导航方法 | |
kumar Panigrahi et al. | Navigation of autonomous mobile robot using different activation functions of wavelet neural network | |
CN112824998A (zh) | 马尔可夫决策过程的多无人机协同航路规划方法和装置 | |
CN112061116A (zh) | 一种基于势能场函数逼近的强化学习方法的泊车策略 | |
Tian | Research on robot optimal path planning method based on improved ant colony algorithm | |
CN113967909B (zh) | 基于方向奖励的机械臂智能控制方法 | |
Ma et al. | Data-driven state-increment statistical model and its application in autonomous driving | |
CN103886367A (zh) | 一种仿生智能控制方法 | |
Boufera et al. | Fuzzy inference system optimization by evolutionary approach for mobile robot navigation | |
CN114386620B (zh) | 一种基于动作约束的离线多智能体强化学习方法 | |
Mourad et al. | Wheeled Mobile Robot Path Planning and Path Tracking in a static environment using TLBO AND PID-TLBO control | |
Paikray et al. | Improved shuffled frog leaping algorithm for path planning of multiple mobile-robot | |
Patle | Intelligent navigational strategies for multiple wheeled mobile robots using artificial hybrid methodologies | |
Tang et al. | Reinforcement learning for robots path planning with rule-based shallow-trial | |
CN116324817A (zh) | 用于加速数据驱动强化学习的离线原语发现 | |
CN115867918A (zh) | 使用相对熵q学习训练动作选择系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |