发明名称 用于工业机器人的过辅助点姿态空间圆弧插补方法
摘要 本发明公开用于工业机器人的过辅助点姿态空间圆弧插补方法,包括以下步骤:机器人控制器通过通信端口确定了示教器示教的空间不共线三点;根据空间几何关系直接进行空间离散点的计算,求出空间圆弧的圆心、半径、法向量、圆心角和弧长;对姿态进行规划使运动轨迹经过辅助点姿态且轨迹光滑;速度轨迹规划模块计算出每个插补周期的插补位移;利用实时插补算法计算出每个插补周期的插补点位姿;将最终满足示教要求的位姿通过通信端口提供给机器人运动机构并执行。本发明避免了示教圆心的困难和确定圆弧方向的问题;计算效率高、插补精度高,可实现机器人的快速插补、控制精度高;运行平滑地经过辅助点姿态,拓宽了机器人的应用场合。
申请公布号 CN105353725A 申请公布日期 2016.02.24
申请号 CN201510796042.5 申请日期 2015.11.18
申请人 南京埃斯顿机器人工程有限公司 发明人 臧秀娟;冯日月;夏正仙;王继虎;王明昕
分类号 G05B19/4105(2006.01)I;G05B19/42(2006.01)I 主分类号 G05B19/4105(2006.01)I
代理机构 江苏圣典律师事务所 32237 代理人 程化铭
主权项 用于工业机器人的过辅助点姿态空间圆弧插补方法,包括以下步骤:步骤一:通过示教确定工业机器人的要求位姿,机器人控制器通过通信端口获取示教器提供的示教点信息,确定工业机器人轨迹的空间圆弧起点、辅助点及终点空间坐标及位姿,分别为:P<sub>1</sub>(x<sub>1</sub>,y<sub>1</sub>,z<sub>1</sub>,a<sub>1</sub>,b<sub>1</sub>,c<sub>1</sub>)、P<sub>2</sub>(x<sub>2</sub>,y<sub>2</sub>,z<sub>2</sub>,a<sub>2</sub>,b<sub>2</sub>,c<sub>2</sub>)、P<sub>3</sub>(x<sub>3</sub>,y<sub>3</sub>,z<sub>3</sub>,a<sub>3</sub>,b<sub>3</sub>,c<sub>3</sub>);机器人轨迹上各点位姿由位置矢量(x,y,z)和RPY姿态矢量(α,β,γ)共同描述,组合成一个6自由度的复合矢量(x,y,z,α,β,γ),即(x,y,z,a,b,c);步骤二:确定空间圆弧的圆心、半径、法向量、圆心角和弧长:A、空间圆弧起点、辅助点及终点为不共线的空间三点,确定了空间圆弧所在的平面,根据圆心到三点的距离都为半径,联立方程,求出圆心的空间坐标P<sub>0</sub>(x<sub>0</sub>,y<sub>0</sub>,z<sub>0</sub>),进而求得半径R;B、根据外积公式,求得垂直于圆弧平面的单位法向量<img file="FDA0000850034830000011.GIF" wi="271" he="85" />C、根据余弦定理和三个角之间的关系,求得空间圆弧的起点到辅助点、辅助点到终点、起点到终点的圆心角分别为:θ<sub>1</sub>,θ<sub>2</sub>,θ<sub>3′</sub>;θ<sub>3</sub>=θ<sub>1</sub>+θ<sub>2</sub>;D、根据圆弧弧长公式,求得弧长L=Rθ<sub>3</sub>;进而求得空间圆弧插补的总位移S;步骤三:姿态规划模块规划出经过空间圆弧辅助点的姿态;各轴姿态随圆心角变化的变化率公式为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>w</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msub><mi>k</mi><mn>1</mn></msub><mi>&theta;</mi><mo>+</mo><msub><mi>m</mi><mn>1</mn></msub></mrow></mtd><mtd><mrow><mo>(</mo><mn>0</mn><mo>&lt;</mo><mi>&theta;</mi><mo>&le;</mo><msub><mi>&theta;</mi><mn>1</mn></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>k</mi><mn>2</mn></msub><mi>&theta;</mi><mo>+</mo><msub><mi>m</mi><mn>2</mn></msub></mrow></mtd><mtd><mrow><mo>(</mo><msub><mi>&theta;</mi><mn>1</mn></msub><mo>&lt;</mo><mi>&theta;</mi><mo>&le;</mo><msub><mi>&theta;</mi><mn>3</mn></msub><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000850034830000012.GIF" wi="693" he="156" /></maths>步骤四:轨迹速度规划模块计算出每个插补周期的插补位移;轨迹速度规划模块,可以根据现有技术规划基于梯形曲线加减速控制或基于S形曲线加减速控制或其它曲线控制;根据不同的曲线控制方式,进行速度规划处理,计算圆弧段所需要的插补总时间和插补信息,最后计算出每个插补周期的插补位移;步骤五:计算得到插补点的空间位姿;计算空间圆弧插补点位姿P<sub>i</sub>(x<sub>i</sub>,y<sub>i</sub>,z<sub>i</sub>,a<sub>i</sub>,b<sub>i</sub>,c<sub>i</sub>),步骤如下:A、根据圆弧弧长公式,每个插补周期的插补位移除以半径得到空间圆弧每个插补周期的插补角度θ;B、利用以下公式可求得插补点的空间坐标位置:x<sub>i</sub>=(x<sub>1</sub>‑x<sub>0</sub>)[n<sub>x</sub>n<sub>x</sub>(1‑cosθ)+cosθ]+(y<sub>1</sub>‑y<sub>0</sub>)[n<sub>x</sub>n<sub>y</sub>(1‑cosθ)‑n<sub>z</sub>sinθ]+(z<sub>1</sub>‑z<sub>0</sub>)[n<sub>x</sub>n<sub>z</sub>(1‑cosθ)+n<sub>y</sub>sinθ]+x<sub>0</sub>y<sub>i</sub>=(x<sub>1</sub>‑x<sub>0</sub>)[n<sub>x</sub>n<sub>y</sub>(1‑cosθ)+n<sub>z</sub>sinθ]+(y<sub>1</sub>‑y<sub>0</sub>)[n<sub>y</sub>n<sub>y</sub>(1‑cosθ)+cosθ];+(z<sub>1</sub>‑z<sub>0</sub>)[n<sub>y</sub>n<sub>z</sub>(1‑cosθ)‑n<sub>x</sub>sinθ]+y<sub>0</sub>z<sub>i</sub>=(x<sub>1</sub>‑x<sub>0</sub>)[n<sub>x</sub>n<sub>z</sub>(1‑cosθ)‑n<sub>y</sub>sinθ]+(y<sub>1</sub>‑y<sub>0</sub>)[n<sub>y</sub>n<sub>z</sub>(1‑cosθ)+n<sub>x</sub>sinθ]+(z<sub>1</sub>‑z<sub>0</sub>)[n<sub>z</sub>n<sub>z</sub>(1‑cosθ)+sinθ]+z<sub>0</sub>C、利用以下公式可求得插补点的姿态<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mtable><mtr><mtd><mrow><msub><mi>a</mi><mi>i</mi></msub><mo>=</mo><msub><mi>a</mi><mn>1</mn></msub><mo>+</mo><msubsup><mo>&Integral;</mo><mn>0</mn><mi>&theta;</mi></msubsup><mi>w</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mi>d</mi><mi>&theta;</mi></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>b</mi><mi>i</mi></msub><mo>=</mo><msub><mi>b</mi><mn>1</mn></msub><mo>+</mo><msubsup><mo>&Integral;</mo><mn>0</mn><mi>&theta;</mi></msubsup><mi>w</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mi>d</mi><mi>&theta;</mi></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>c</mi><mi>i</mi></msub><mo>=</mo><msub><mi>c</mi><mn>1</mn></msub><mo>+</mo><msubsup><mo>&Integral;</mo><mn>0</mn><mi>&theta;</mi></msubsup><mi>w</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mi>d</mi><mi>&theta;</mi></mrow></mtd></mtr></mtable><mo>;</mo></mrow>]]></math><img file="FDA0000850034830000021.GIF" wi="628" he="334" /></maths>步骤六:机器人控制器的中央处理器将最终得到的位姿通过通信端口提供给机器人运动机构进行执行。
地址 211106 江苏省南京市江宁经济开发区燕湖路178号