发明名称 基于实际测量的纹理的力触觉表达方法
摘要 本发明公开了一种基于实际测量的纹理的力触觉表达方法,其特征是当力触觉再现设备的操作柄与虚拟纹理表面发生碰撞后,以法向纹理力、法向束缚力及切向摩擦力的合力作为接触力输出给操作者。法向纹理力由测量真实划过纹理表面的压力获得,用施力恒定且底部带有压力传感器的机械臂在纹理材料表面匀速划过,同时采集数据,数据经过修正错误项、平滑、电压压力值转换、减去机械臂恒力值后转换为法向纹理力;法向束缚力建模为弹簧阻尼模型;切向摩擦力建模综合了静摩擦力和滑动摩擦力两个阶段,静摩擦阶段建模为最大静摩擦力和正弦函数的乘积,动摩擦阶段动摩擦系数由反映纹理凹凸程度的法向纹理力计算得到,提高了纹理表达的真实感。
申请公布号 CN102054122A 申请公布日期 2011.05.11
申请号 CN201010520893.4 申请日期 2010.10.27
申请人 东南大学 发明人 吴涓;李莅圆;宋爱国;程盈盈;裴诚诚;张小瑞
分类号 G06F19/00(2011.01)I;G01B21/30(2006.01)I 主分类号 G06F19/00(2011.01)I
代理机构 南京天翼专利代理有限责任公司 32112 代理人 汤志武
主权项 1.一种基于实际测量的纹理的力触觉表达方法,其特征在于:操纵力触觉再现设备的操作柄趋近虚拟纹理表面,设与纹理表面发生碰撞之前的输出力为0,当与纹理表面发生碰撞后,产生法向纹理力<img file="FDA0000029632290000011.GIF" wi="170" he="74" />法向束缚力<img file="FDA0000029632290000012.GIF" wi="160" he="72" />及切向摩擦力<img file="FDA0000029632290000013.GIF" wi="150" he="84" />最后,以法向纹理力<img file="FDA0000029632290000014.GIF" wi="169" he="74" />法向束缚力<img file="FDA0000029632290000015.GIF" wi="160" he="72" />及切向摩擦力<img file="FDA0000029632290000016.GIF" wi="122" he="86" />的合力作为接触力<img file="FDA0000029632290000017.GIF" wi="138" he="74" />并以此接触力<img file="FDA0000029632290000018.GIF" wi="125" he="74" />作为输出力;所述法向纹理力<img file="FDA0000029632290000019.GIF" wi="131" he="74" />由以下方法生成:步骤1选取真实的纹理材料;步骤2将压力传感器安装在机械臂的底部;步骤3带有压力传感器的机械臂在纹理材料表面匀速移动,机械臂施加恒力F<sub>in</sub>,使压力传感器与纹理材料表面接触,并用采样装置获取采样的数据,数据的采样率为1000Hz,即时间分辨率Δt<sub>0</sub>为0.001s,记录机械臂水平运动速度v<sub>s</sub>和位移S,采样点数<img file="FDA00000296322900000110.GIF" wi="324" he="121" />步骤4将所测得的压力传感器的电压值进行数据处理,包括:(1)数据预处理:如果所测的N个采样点中的任一电压采样值小于电压基准值U<sub>0</sub>,则以电压基准值U<sub>0</sub>代替所述小于电压基准值U<sub>0</sub>的任一电压采样值,此时,N个采样点的电压采样值为u<sub>01</sub>,u<sub>02</sub>,...u<sub>0N</sub>,采用五点三次平滑法对电压采样值进行平滑处理,具体公式是:<maths num="0001"><![CDATA[<math><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>u</mi><mn>1</mn></msub><mo>=</mo><mfrac><mn>1</mn><mn>70</mn></mfrac><mo>[</mo><mn>69</mn><msub><mi>u</mi><mn>01</mn></msub><mo>+</mo><mn>4</mn><mrow><mo>(</mo><msub><mi>u</mi><mn>02</mn></msub><mo>+</mo><msub><mi>u</mi><mn>04</mn></msub><mo>)</mo></mrow><mo>-</mo><mn>6</mn><msub><mi>u</mi><mn>03</mn></msub><mo>-</mo><msub><mi>u</mi><mn>05</mn></msub><mo>]</mo></mtd></mtr><mtr><mtd><msub><mi>u</mi><mn>2</mn></msub><mo>=</mo><mfrac><mn>1</mn><mn>35</mn></mfrac><mo>[</mo><mn>2</mn><mrow><mo>(</mo><msub><mi>u</mi><mn>01</mn></msub><mo>+</mo><msub><mi>u</mi><mn>05</mn></msub><mo>)</mo></mrow><mo>+</mo><mn>27</mn><msub><mi>u</mi><mn>02</mn></msub><mo>+</mo><mn>12</mn><msub><mi>u</mi><mn>03</mn></msub><mo>-</mo><mn>8</mn><msub><mi>u</mi><mn>04</mn></msub><mo>]</mo></mtd></mtr><mtr><mtd><msub><mi>u</mi><mi>i</mi></msub><mo>=</mo><mfrac><mn>1</mn><mn>35</mn></mfrac><mo>[</mo><mo>-</mo><mn>3</mn><mrow><mo>(</mo><msub><mi>u</mi><mrow><mn>0</mn><mi>i</mi><mo>-</mo><mn>2</mn></mrow></msub><mo>+</mo><msub><mi>u</mi><mrow><mn>0</mn><mi>i</mi><mo>+</mo><mn>2</mn></mrow></msub><mo>)</mo></mrow><mo>+</mo><mn>12</mn><mrow><mo>(</mo><msub><mi>u</mi><mrow><mn>0</mn><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>+</mo><msub><mi>u</mi><mrow><mn>0</mn><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mo>+</mo><mn>17</mn><msub><mi>u</mi><mrow><mn>0</mn><mi>i</mi></mrow></msub><mo>]</mo></mtd></mtr><mtr><mtd><msub><mi>u</mi><mrow><mi>N</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>=</mo><mfrac><mn>1</mn><mn>35</mn></mfrac><mo>[</mo><mn>2</mn><mrow><mo>(</mo><msub><mi>u</mi><mrow><mn>0</mn><mi>N</mi><mo>-</mo><mn>4</mn></mrow></msub><mo>+</mo><msub><mi>u</mi><mrow><mn>0</mn><mi>N</mi></mrow></msub><mo>)</mo></mrow><mo>-</mo><mn>8</mn><msub><mi>u</mi><mrow><mn>0</mn><mi>N</mi><mo>-</mo><mn>3</mn></mrow></msub><mo>+</mo><mn>12</mn><msub><mi>u</mi><mrow><mn>0</mn><mi>N</mi><mo>-</mo><mn>2</mn></mrow></msub><mo>+</mo><mn>27</mn><msub><mi>u</mi><mrow><mn>0</mn><mi>N</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>]</mo></mtd></mtr><mtr><mtd><msub><mi>u</mi><mi>N</mi></msub><mo>=</mo><mfrac><mn>1</mn><mn>70</mn></mfrac><mo>[</mo><mo>-</mo><msub><mi>u</mi><mrow><mn>0</mn><mi>N</mi><mo>-</mo><mn>4</mn></mrow></msub><mo>+</mo><mn>4</mn><mrow><mo>(</mo><msub><mi>u</mi><mrow><mn>0</mn><mi>N</mi><mo>-</mo><mn>3</mn></mrow></msub><mo>+</mo><msub><mi>u</mi><mrow><mn>0</mn><mi>N</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mo>-</mo><mn>6</mn><msub><mi>u</mi><mrow><mn>0</mn><mi>N</mi><mo>-</mo><mn>2</mn></mrow></msub><mo>+</mo><mn>69</mn><msub><mi>u</mi><mrow><mn>0</mn><mi>N</mi></mrow></msub><mo>]</mo></mtd></mtr></mtable></mfenced></math>]]></maths>式中,u<sub>1</sub>,u<sub>2</sub>,...u<sub>N</sub>为平滑后的电压采样值,i=3,4,...N-2;(2)将平滑后的电压采样值u<sub>1</sub>,u<sub>2</sub>,...u<sub>N</sub>转换为压力值F<sub>1</sub>,F<sub>2</sub>,...F<sub>N</sub>,根据电路原理转换公式为<img file="FDA0000029632290000021.GIF" wi="276" he="114" />j=1,2,...N,其中,U<sub>0</sub>为电压基准值,L为传感器灵敏度,G为由电路决定的常数;(3)将压力值F<sub>j</sub>减去机械臂施加的恒力值F<sub>in</sub>,得到反映纹理表面的凹凸不同的压力值,即法向纹理力<img file="FDA0000029632290000022.GIF" wi="170" he="74" />法向纹理力<img file="FDA0000029632290000023.GIF" wi="131" he="74" />的序列表示为<img file="FDA0000029632290000024.GIF" wi="205" he="76" />j=1,2,...N,公式为:<maths num="0002"><![CDATA[<math><mrow><msubsup><mi>f</mi><mi>texture</mi><mo>&RightArrow;</mo></msubsup><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>F</mi><mi>j</mi></msub><mo>-</mo><msub><mi>F</mi><mi>in</mi></msub><mo>,</mo><mi>j</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mi>N</mi></mrow></math>]]></maths>步骤5将纹理力<img file="FDA0000029632290000026.GIF" wi="131" he="74" />在虚拟场景坐标系Oxyz中进行表达,表达为<img file="FDA0000029632290000027.GIF" wi="286" he="76" />(1)初始化力触觉再现设备和虚拟场景;设置虚拟场景坐标系Oxyz,假设碰撞点在虚拟场景空间坐标系Oxyz下的坐标为(x,y,z),坐标系中的区域{0≤x≤X,0≤y≤Y,z=Z}为纹理材料表面,区域{0≤x≤X,0≤y≤Y,z>Z}为纹理材料外部,区域{0≤x≤X,0≤y≤Y,z<Z}为纹理材料内部,X、Y分别表示纹理区域在x轴、y轴的边界位置坐标,且X>0,Y>0,Z表示纹理平面在z轴上的位置坐标;(2)用N-1个平面<img file="FDA0000029632290000028.GIF" wi="886" he="124" />将空间区域{0≤x≤X,0≤y≤Y,z≤Z}平均分割成N个小区域,在任一小区域中,纹理力<img file="FDA0000029632290000029.GIF" wi="330" he="74" />都为一固定值,沿z轴方向,具体公式为:<maths num="0003"><![CDATA[<math><mrow><msubsup><mi>f</mi><mi>texture</mi><mo>&RightArrow;</mo></msubsup><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><mo>=</mo><msubsup><mi>f</mi><mi>texture</mi><mo>&RightArrow;</mo></msubsup><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>当<maths num="0004"><![CDATA[<math><mrow><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><mo>&Element;</mo><mo>{</mo><mfrac><mrow><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mi>X</mi></mrow><mi>N</mi></mfrac><mo>&lt;</mo><mi>x</mi><mo>&le;</mo><mfrac><mi>jX</mi><mi>N</mi></mfrac><mo>,</mo><mn>0</mn><mo>&le;</mo><mi>y</mi><mo>&le;</mo><mi>Y</mi><mo>,</mo><mi>z</mi><mo>&le;</mo><mi>Z</mi><mo>|</mo><mi>j</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mi>N</mi><mo>}</mo></mrow></math>]]></maths>所述法向束缚力<img file="FDA00000296322900000212.GIF" wi="160" he="72" />由以下方法生成:法向束缚力<img file="FDA00000296322900000213.GIF" wi="160" he="72" />建模为弹簧阻尼模型<img file="FDA00000296322900000214.GIF" wi="325" he="74" />沿z轴方向,具体公式为:<maths num="0005"><![CDATA[<math><mrow><msubsup><mi>f</mi><mi>constraint</mi><mo>&RightArrow;</mo></msubsup><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><mo>=</mo><mi>k</mi><mo>*</mo><mo>|</mo><mi>z</mi><mo>-</mo><mi>Z</mi><mo>|</mo><mo>+</mo><mi>b</mi><mo>*</mo><mrow><mo>(</mo><mo>-</mo><mfrac><mi>dz</mi><mi>dt</mi></mfrac><mo>)</mo></mrow><mo>,</mo><mi>z</mi><mo>&le;</mo><mi>Z</mi><mo>;</mo></mrow></math>]]></maths>k*|z-Z|为弹簧形变项,k为刚度系数,表示纹理材料表面在被碰撞和挤压情况下的变形程度,与纹理材料表面的属性有关,k取值范围为0-1(N/mm),当物体为完全刚性时k为1(N/mm),物体为完全柔性时k为0,Z为纹理平面在z轴上的位置坐标,|z-Z|为Z轴方向的穿刺深度;<img file="FDA0000029632290000032.GIF" wi="197" he="124" />为阻尼项,<img file="FDA0000029632290000033.GIF" wi="57" he="107" />为虚拟探针沿z轴方向的瞬时速度,具体计算公式为<img file="FDA0000029632290000034.GIF" wi="422" he="107" />Δt为力触觉再现设备的更新速率,b为与纹理材料表面形变的能耗成正比的粘滞阻尼系数,b取值范围为0.1-0.5,b越大,纹理材料表面越不易产生形变,当物体为完全刚性时b取值为0.5,物体为完全柔性时b取值为0.1;所述切向摩擦力<img file="FDA0000029632290000035.GIF" wi="120" he="84" />由以下方法生成:切向摩擦力<img file="FDA0000029632290000036.GIF" wi="142" he="78" />的方向与虚拟探针在X-Y平面的相对运动或相对运动趋势方向相反,摩擦力在虚拟场景坐标系下的计算公式<img file="FDA0000029632290000037.GIF" wi="340" he="78" />为:<maths num="0006"><![CDATA[<math><mrow><msubsup><mi>f</mi><mi>friction</mi><mo>&RightArrow;</mo></msubsup><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mi>&mu;</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><msub><mi>F</mi><mi>N</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><mo>,</mo><mi>v</mi><mo>&le;</mo><mo>-</mo><mo>|</mo><msub><mi>v</mi><mi>r</mi></msub><mo>|</mo></mtd></mtr><mtr><mtd><msub><mi>f</mi><mi>ms</mi></msub><mi>sin</mi><mrow><mo>(</mo><mo>-</mo><mfrac><mi>&pi;</mi><mrow><mn>2</mn><mo>|</mo><msub><mi>v</mi><mi>r</mi></msub><mo>|</mo></mrow></mfrac><mi>v</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>&mu;</mi><mn>0</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><msub><mi>F</mi><mi>N</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><mi>sin</mi><mrow><mo>(</mo><mo>-</mo><mfrac><mi>&pi;</mi><mrow><mn>2</mn><mo>|</mo><msub><mi>v</mi><mi>r</mi></msub><mo>|</mo></mrow></mfrac><mi>v</mi><mo>)</mo></mrow><mo>,</mo><mi>v</mi><mo>&lt;</mo><mo>|</mo><msub><mi>v</mi><mi>r</mi></msub><mo>|</mo></mtd></mtr><mtr><mtd><mo>-</mo><mi>&mu;</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><msub><mi>F</mi><mi>N</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><mo>,</mo><mi>v</mi><mo>&GreaterEqual;</mo><mo>|</mo><msub><mi>v</mi><mi>r</mi></msub><mo>|</mo></mtd></mtr></mtable></mfenced></mrow></math>]]></maths><maths num="0007"><![CDATA[<math><mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mi>&mu;</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><mrow><mo>(</mo><msubsup><mi>f</mi><mi>texture</mi><mo>&RightArrow;</mo></msubsup><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><mo>+</mo><msubsup><mi>f</mi><mi>constraint</mi><mo>&RightArrow;</mo></msubsup><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>,</mo><mi>v</mi><mo>&le;</mo><mo>-</mo><mo>|</mo><msub><mi>v</mi><mi>r</mi></msub><mo>|</mo></mtd></mtr><mtr><mtd><msub><mi>&mu;</mi><mn>0</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><mrow><mo>(</mo><msubsup><mi>f</mi><mi>texture</mi><mo>&RightArrow;</mo></msubsup><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><mo>+</mo><msubsup><mi>f</mi><mi>constraint</mi><mo>&RightArrow;</mo></msubsup><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><mo>)</mo></mrow><mi>sin</mi><mrow><mo>(</mo><mo>-</mo><mfrac><mi>&pi;</mi><mrow><mn>2</mn><mo>|</mo><msub><mi>v</mi><mi>r</mi></msub><mo>|</mo></mrow></mfrac><mi>v</mi><mo>)</mo></mrow><mo>,</mo><mi>v</mi><mo>&lt;</mo><mo>|</mo><msub><mi>v</mi><mi>r</mi></msub><mo>|</mo></mtd></mtr><mtr><mtd><mo>-</mo><mi>&mu;</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><mrow><mo>(</mo><msubsup><mi>f</mi><mi>texture</mi><mo>&RightArrow;</mo></msubsup><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><mo>+</mo><msubsup><mi>f</mi><mi>constraint</mi><mo>&RightArrow;</mo></msubsup><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>,</mo><mi>v</mi><mo>&GreaterEqual;</mo><mo>|</mo><msub><mi>v</mi><mi>r</mi></msub><mo>|</mo></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>公式中v为虚拟探针在X-Y平面的移动速度,计算公式为<img file="FDA00000296322900000310.GIF" wi="883" he="131" />v<sub>r</sub>为虚拟探针在X-Y平面的速率限,当v<|v<sub>r</sub>|时,为近似相对静止状态,摩擦力建模为静摩擦力<img file="FDA00000296322900000311.GIF" wi="355" he="115" />f<sub>ms</sub>=μ<sub>0</sub>(x,y,z)F<sub>N</sub>(x,y,z)为最大静摩擦力,μ<sub>0</sub>(x,y,z)为碰撞点的静摩擦系数,F<sub>N</sub>(x,y,z)表示正压力,即法向纹理力<img file="FDA0000029632290000041.GIF" wi="131" he="74" />和法向束缚力<img file="FDA0000029632290000042.GIF" wi="160" he="72" />的矢量和;当移动速度v≥|v<sub>r</sub>|或v≤-|v<sub>r</sub>|,摩擦力建模为滑动摩擦力,F<sub>N</sub>(x,y,z)表示正压力,为法向纹理力<img file="FDA0000029632290000043.GIF" wi="131" he="74" />和法向束缚力<img file="FDA0000029632290000044.GIF" wi="160" he="72" />的矢量和,μ(x,y,z)为动摩擦因数,与接触面的材料和接触面的粗糙程度有关,μ(x,y,z)的表达式为:μ(x,y,z)=ρ·r(x,y,z),其中ρ是纹理材料的粗糙系数,r(x,y,z)是碰撞点的局部粗糙系数,与该碰撞点的局部凹凸程度有关,r(x,y,z)的计算由下式得到:<img file="FDA0000029632290000045.GIF" wi="1202" he="176" />其中c<sub>n</sub>为权数,取值与距离<img file="FDA0000029632290000046.GIF" wi="335" he="107" />成反比,且<img file="FDA0000029632290000047.GIF" wi="207" he="147" />q的取值通常为2或3;模型中静摩擦系数μ<sub>0</sub>(x,y,z)大于等于动摩擦系数μ(x,y,z)。
地址 210096 江苏省南京市四牌楼2号