[发明专利]一种用于遥操作人机交互的虚拟管道动态避障控制方法有效

专利信息
申请号: 201510498141.5 申请日: 2015-08-13
公开(公告)号: CN105150210B 公开(公告)日: 2017-05-24
发明(设计)人: 黄攀峰;潘吉祥;刘正雄;孟中杰 申请(专利权)人: 西北工业大学
主分类号: B25J9/16 分类号: B25J9/16;B25J19/02
代理公司: 西安通大专利代理有限责任公司61200 代理人: 徐文权
地址: 710072 *** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 用于 操作 人机交互 虚拟 管道 动态 控制 方法
【权利要求书】:

1.一种用于遥操作人机交互的虚拟管道动态避障控制方法,其特征在于,包括以下步骤:

步骤一:建立机械臂末端势场函数

根据FIRAS函数建立人工斥力场,势场函数为:

<mrow><msub><mi>U</mi><mn>0</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mfrac><mn>1</mn><mn>2</mn></mfrac><mi>&eta;</mi><msup><mrow><mo>(</mo><mfrac><mn>1</mn><mi>&rho;</mi></mfrac><mo>-</mo><mfrac><mn>1</mn><msub><mi>&rho;</mi><mn>0</mn></msub></mfrac><mo>)</mo></mrow><mn>2</mn></msup><mo>,</mo></mrow></mtd><mtd><mrow><mi>&rho;</mi><mo>&le;</mo><msub><mi>&rho;</mi><mn>0</mn></msub></mrow></mtd></mtr><mtr><mtd><mrow><mn>0</mn><mo>,</mo></mrow></mtd><mtd><mrow><mi>&rho;</mi><mo>&gt;</mo><msub><mi>&rho;</mi><mn>0</mn></msub></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>

其中,η是一个限制参数,ρ0表示机械臂末端的势场作用距离,ρ表示与障碍物间的最短距离;ρ0的大小取决于机械臂末端移动的最大速度Vmax以及加速度的大小;

步骤二:在机械臂末端安装视觉传感器,实时计算机械臂末端与障碍物的距离;

步骤三:计算机械臂末端势场对障碍物的虚拟力,具体方法如下:

(1)当障碍物较小时,近似看作一个质点;

当障碍物进入视场范围后,视觉传感器对其位置进行采样,目标位置设为时间函数f(t),采用平方逼近的方法来近似预测;

平方逼近表达式为:其N点的逼近均方差为:

<mrow><mi>E</mi><mrow><mo>(</mo><msubsup><mi>&Delta;e</mi><mi>i</mi><mn>2</mn></msubsup><mo>)</mo></mrow><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msup><mrow><mo>&lsqb;</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>-</mo><msub><mi>b</mi><mn>0</mn></msub><mo>-</mo><msub><mi>b</mi><mn>1</mn></msub><msub><mi>t</mi><mi>i</mi></msub><mo>-</mo><msub><mi>b</mi><mn>2</mn></msub><msubsup><mi>t</mi><mi>i</mi><mn>2</mn></msubsup><mo>&rsqb;</mo></mrow><mn>2</mn></msup></mrow>

最佳逼近通解为:

<mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>b</mi><mn>0</mn></msub></mtd></mtr><mtr><mtd><msub><mi>b</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mi>b</mi><mn>2</mn></msub></mtd></mtr></mtable></mfenced><mo>=</mo><mfrac><mn>1</mn><mrow><mo>|</mo><mi>A</mi><mo>|</mo></mrow></mfrac><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>B</mi></mtd></mtr><mtr><mtd><mi>C</mi></mtd></mtr><mtr><mtd><mi>D</mi></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>

式中:

<mrow><mi>B</mi><mo>=</mo><msub><mi>c</mi><mn>11</mn></msub><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mi>f</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>c</mi><mn>21</mn></msub><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mi>f</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>i</mi></msub><mo>)</mo></mrow><msub><mi>t</mi><mi>i</mi></msub><mo>+</mo><msub><mi>c</mi><mn>31</mn></msub><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mi>f</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>i</mi></msub><mo>)</mo></mrow><msubsup><mi>t</mi><mi>i</mi><mn>2</mn></msubsup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>

<mrow><mi>C</mi><mo>=</mo><msub><mi>c</mi><mn>12</mn></msub><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mi>f</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>c</mi><mn>22</mn></msub><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mi>f</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>i</mi></msub><mo>)</mo></mrow><msub><mi>t</mi><mi>i</mi></msub><mo>+</mo><msub><mi>c</mi><mn>32</mn></msub><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mi>f</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>i</mi></msub><mo>)</mo></mrow><msubsup><mi>t</mi><mi>i</mi><mn>2</mn></msubsup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>

<mrow><mi>D</mi><mo>=</mo><msub><mi>c</mi><mn>13</mn></msub><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mi>f</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>c</mi><mn>23</mn></msub><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mi>f</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>i</mi></msub><mo>)</mo></mrow><msub><mi>t</mi><mi>i</mi></msub><mo>+</mo><msub><mi>c</mi><mn>33</mn></msub><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mi>f</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>i</mi></msub><mo>)</mo></mrow><msubsup><mi>t</mi><mi>i</mi><mn>2</mn></msubsup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>

<mrow><mi>A</mi><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>N</mi></mtd><mtd><mrow><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msub><mi>t</mi><mi>i</mi></msub></mrow></mtd><mtd><mrow><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msubsup><mi>t</mi><mi>i</mi><mn>2</mn></msubsup></mrow></mtd></mtr><mtr><mtd><mrow><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msub><mi>t</mi><mi>i</mi></msub></mrow></mtd><mtd><mrow><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msubsup><mi>t</mi><mi>i</mi><mn>2</mn></msubsup></mrow></mtd><mtd><mrow><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msubsup><mi>t</mi><mi>i</mi><mn>2</mn></msubsup></mrow></mtd></mtr><mtr><mtd><mrow><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msubsup><mi>t</mi><mi>i</mi><mn>2</mn></msubsup></mrow></mtd><mtd><mrow><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msubsup><mi>t</mi><mi>i</mi><mn>3</mn></msubsup></mrow></mtd><mtd><mrow><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msubsup><mi>t</mi><mi>i</mi><mn>4</mn></msubsup></mrow></mtd></mtr></mtable></mfenced><mo>,</mo><mrow><mo>(</mo><mo>|</mo><mi>A</mi><mo>|</mo><mo>&NotEqual;</mo><mn>0</mn><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>

根据(4)式得出f(k+1)的三点平方预测为:

f(k+1)=3f(k)-3f(k-1)+f(k-2) (9)

即根据视觉传感器采样得到前三个时刻的位置信息,便可通过平方预测方法来预测下一时刻的位置,从而能够实时计算障碍物距离机械臂末端的最短距离ρ;

(2)障碍物体积较大时,通过视觉传感器对其局部信息进行采样,先假设障碍物为平行六面体形状,下边来求解机械臂末端到障碍物的最短距离;

对三种距离进行比较判断得到最短距离ρ,即机械臂末端点到平行六面体顶点、棱和面的距离:

a)计算到顶点的距离ρv:将该平行六面体投影到二维平面,提取平行六面体的顶点,再对上述顶点进行三维重建,得到相机视场中顶点到机械臂末端的三维距离;

b)计算末端点到平行六面体棱的距离ρe:在对顶点三维重建后得到各顶点所在的棱,由末端点向每条棱所在的直线作垂线;

需要判断垂足O是否在平行六面体棱上,方法是根据末端点和平行六面体顶点坐标以及垂直关系求出垂足O的坐标,判断其三轴坐标值是否界于平行六面体顶点的对应坐标,如果判断O点不在平行六面体棱上,则将对应垂直距离舍去,属无效距离;

c)计算末端点到平行六面体面的距离ρf:同b)中情况,由末端点向视场范围内的平面作垂线;

通过几何关系求解出垂足O的坐标O(x0,y0,z0),判断O点是否在平行六面体面上;平面法向量经α,β旋转至与z轴平行,再经投影变换矩阵向xoy平面作正投影;变换矩阵为:

<mrow><mi>T</mi><mo>=</mo><msub><mi>T</mi><mrow><mi>R</mi><mi>y</mi></mrow></msub><mo>&CenterDot;</mo><msub><mi>T</mi><mrow><mi>R</mi><mi>x</mi></mrow></msub><mo>&CenterDot;</mo><mi>T</mi><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mi>c</mi><mi>o</mi><mi>s</mi><mi>&alpha;</mi></mrow></mtd><mtd><mrow><mo>-</mo><mi>s</mi><mi>i</mi><mi>n</mi><mi>&alpha;</mi></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mi>cos</mi><mi>&beta;</mi></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mi>s</mi><mi>i</mi><mi>n</mi><mi>&alpha;</mi></mrow></mtd><mtd><mrow><mo>-</mo><mi>cos</mi><mi>&alpha;</mi><mo>&CenterDot;</mo><mi>s</mi><mi>i</mi><mi>n</mi><mi>&beta;</mi></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>10</mn><mo>)</mo></mrow></mrow>

经投影之后问题转化为在二维平面内判断一个点是否落在所求区域内,通过曲线规划判断该点的坐标是否满足描述该区域的不等式组;如果判断O点不在平行六面体面上,则将对应垂直距离舍去,属无效距离;

将a)b)c)三种情况下得到的最短距离ρv、ρe、ρf进行比较得出机械臂末端点与平行六面体的最短距离ρ。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北工业大学,未经西北工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201510498141.5/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top