麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

機械臂的控制方法和裝置與流程

文檔序號:12736967閱讀:2470來源:國知局
機械臂的控制方法和裝置與流程

本發明實施例涉及控制應用技術領域,特別是涉及一種機械臂的控制方法和裝置。



背景技術:

機器人已經被應用于多個領域,在工業化、智能化的發展中發揮著越來越突出的作用,其中,機械臂是機器人執行任務的重要部件。運動軌跡是機器人控制系統的一項基本任務。機械臂的運動軌跡通常有笛卡爾空間的直線、圓弧,以及關節空間的點到點運動軌跡。在實際的應用場合中,一般是由多條軌跡順序連接完成一項操作任務,然而,相鄰兩條軌跡在連接處存在拐角,從而不能從一條軌跡平滑過渡到下一條軌跡。



技術實現要素:

有鑒于此,本發明提出一種機械臂的控制方法和裝置,通過對實現了對機械臂運動過程中不同軌跡之間的平穩過渡,保證了機械臂運行的效率和精度。

第一方面,本發明實施例提供了一種機械臂的控制方法,所述方法包括:獲取機械臂末端在當前移動直線上的所在點的第一狀態信息和所述機械臂末端在下一移動直線上預設點的第二狀態信息;根據所述第一狀態信息和所述第二狀態信息確定從所述所在點至所述預設點的移動軌跡的參數,所述機械臂末端在所述移動軌跡上的移動函數為連續函數;控制所述機械臂末端沿所述移動軌跡從所述所在點移動至所述預設點。

進一步的,在控制所述機械臂末端沿所述移動軌跡從所述所在點移動至所述預設點之后,還包括:所述機械臂末端從所述預設點根據所述下一移動直線的軌跡規劃繼續移動至所述下一移動直線的終點。

進一步的,所述第一狀態信息包括所述機械臂末端在所述所在點的位置、速度和加速度;所述第二狀態信息包括所述機械臂末端在所述預設點的位置、速度和加速度。

進一步的,所述獲取機械臂末端在當前移動直線上的所在點的第一狀態信息和所述機械臂末端在下一移動直線上預設點的第二狀態信息包括:獲取所述機械臂末端在當前移動直線上的所在點的在關節空間下的第一狀態信息;通過逆運動學方法,將所述預設點的第二狀態信息由笛卡爾坐標表示轉換成關節空間坐標表示。

進一步的,所述根據所述第一狀態信息和所述第二狀態信息確定從所述所在點至所述預設點的移動軌跡的參數包括:通過S型速度規劃法、多階樣條插值法和/或B樣條插補法規劃所述下一移動直線在笛卡爾坐標系下的插補點。

進一步的,所述移動函數包括:所述機械臂末端在所述移動軌跡上的位置函數、速度函數和加速度函數。

進一步的,所述根據所述第一狀態信息和所述第二狀態信息確定從所述所在點至所述預設點的移動軌跡的參數,所述機械臂末端在所述移動軌跡上的移動函數為連續函數還包括:通過多階多項式和/或三角函數法,分別確定所述位置函數、速度函數和加速度函數對應的參數。

進一步的,所述通過逆運動學方法,將所述預設點的第二狀態信息由笛卡爾坐標表示轉換成關節空間坐標表示包括:根據公式進行笛卡爾坐標表示向關節空間坐標表示的轉換,其中和分別為笛卡爾坐標系下機械臂末端的速度和加速度,和分別為關節空間坐標系下機械臂末端的速度和加速度,J為雅可比矩陣,為雅可比矩陣的一階導,J+為J的偽逆。

進一步的,所述通過多階多項式和/或三角函數法,分別確定所述位置函數、速度函數和加速度函數對應的參數包括:根據如下五階多項式曲線公式,確定所述位置函數、速度函數和加速度函數對應的參數;

a0=Q0

<mrow> <msub> <mi>a</mi> <mn>1</mn> </msub> <mo>=</mo> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mn>0</mn> </msub> </mrow>

<mrow> <msub> <mi>a</mi> <mn>2</mn> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mn>0</mn> </msub> </mrow>

<mrow> <msub> <mi>a</mi> <mn>3</mn> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mn>2</mn> <msubsup> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> <mn>3</mn> </msubsup> </mrow> </mfrac> <mo>&lsqb;</mo> <mn>20</mn> <mi>h</mi> <mo>-</mo> <mrow> <mo>(</mo> <mn>8</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mi>s</mi> </msub> <mo>+</mo> <mn>12</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mn>0</mn> </msub> <mo>)</mo> </mrow> <msub> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> </msub> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mn>0</mn> </msub> <mo>-</mo> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mi>s</mi> </msub> <mo>)</mo> </mrow> <msubsup> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> <mn>2</mn> </msubsup> <mo>&rsqb;</mo> </mrow>

<mrow> <msub> <mi>a</mi> <mn>4</mn> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mn>2</mn> <msubsup> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> <mn>4</mn> </msubsup> </mrow> </mfrac> <mo>&lsqb;</mo> <mo>-</mo> <mn>30</mn> <mi>h</mi> <mo>+</mo> <mrow> <mo>(</mo> <mn>14</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mi>s</mi> </msub> <mo>+</mo> <mn>16</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mn>0</mn> </msub> <mo>)</mo> </mrow> <msub> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> </msub> <mo>+</mo> <mrow> <mo>(</mo> <mn>3</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mn>0</mn> </msub> <mo>-</mo> <mn>2</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mi>s</mi> </msub> <mo>)</mo> </mrow> <msubsup> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> <mn>2</mn> </msubsup> <mo>&rsqb;</mo> </mrow>

<mrow> <msub> <mi>a</mi> <mn>5</mn> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mn>2</mn> <msubsup> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> <mn>5</mn> </msubsup> </mrow> </mfrac> <mo>&lsqb;</mo> <mn>12</mn> <mi>h</mi> <mo>-</mo> <mn>6</mn> <mrow> <mo>(</mo> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mi>s</mi> </msub> <mo>+</mo> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mn>0</mn> </msub> <mo>)</mo> </mrow> <msub> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> </msub> <mo>+</mo> <mrow> <mo>(</mo> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mi>s</mi> </msub> <mo>-</mo> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mn>0</mn> </msub> <mo>)</mo> </mrow> <msubsup> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> <mn>2</mn> </msubsup> <mo>&rsqb;</mo> </mrow>

其中,Q0、和分別為所述所在點的關節空間的位置、速度和加速度,Qs、和分別為所述預設點在關節空間的位置、速度和加速度,h為所述所在點和所述預設點之間的距離,ttrans機械臂末端從所述所在點移動至所述預設點的時間。

進一步的,所述通過多階多項式和/或三角函數法,分別確定所述位置函數、速度函數和加速度函數對應的參數還包括:根據如下公式計算機所述所在點至所述預設點之間任意時刻的機械臂末端的位置、速度和加速度;

Qt=Q0+a1t+a2t2+a3t3+a4t4+a5t5

<mrow> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mi>t</mi> </msub> <mo>=</mo> <msub> <mi>a</mi> <mn>1</mn> </msub> <mo>+</mo> <mn>2</mn> <msub> <mi>a</mi> <mn>2</mn> </msub> <mi>t</mi> <mo>+</mo> <mn>3</mn> <msub> <mi>a</mi> <mn>3</mn> </msub> <msup> <mi>t</mi> <mn>2</mn> </msup> <mo>+</mo> <mn>4</mn> <msub> <mi>a</mi> <mn>4</mn> </msub> <msup> <mi>t</mi> <mn>3</mn> </msup> <mo>+</mo> <mn>5</mn> <msub> <mi>a</mi> <mn>5</mn> </msub> <msup> <mi>t</mi> <mn>4</mn> </msup> </mrow>

<mrow> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mi>t</mi> </msub> <mo>=</mo> <mn>2</mn> <msub> <mi>a</mi> <mn>2</mn> </msub> <mo>+</mo> <mn>6</mn> <msub> <mi>a</mi> <mn>3</mn> </msub> <mi>t</mi> <mo>+</mo> <mn>12</mn> <msub> <mi>a</mi> <mn>4</mn> </msub> <msup> <mi>t</mi> <mn>2</mn> </msup> <mo>+</mo> <mn>20</mn> <msub> <mi>a</mi> <mn>5</mn> </msub> <msup> <mi>t</mi> <mn>3</mn> </msup> </mrow>

其中,Qt、和分別為所述機械臂末端在所述所在點至所述預設點之間任意點的位置、速度和加速度。

第二方面,本發明實施例提供了一種機械臂的控制裝置,所述裝置包括:獲取單元,用于獲取機械臂末端在當前移動直線上的所在點的第一狀態信息和所述機械臂末端在下一移動直線上預設點的第二狀態信息;確定單元,與所述獲取單元相連,用于根據所述第一狀態信息和所述第二狀態信息確定從所述所在點至所述預設點的移動軌跡的參數,所述機械臂末端在所述移動軌跡上的移動函數為連續函數;控制單元,與所述確定單元相連,用于控制所述機械臂末端沿所述移動軌跡從所述所在點移動至所述預設點。

進一步的,所述第一狀態信息包括所述機械臂末端在所述所在點的位置、速度和加速度;所述第二狀態信息包括所述機械臂末端在所述預設點的位置、速度和加速度,所述獲取單元包括:信息獲取子單元,用于獲取所述機械臂末端在當前移動直線上的所在點的在關節空間下的第一狀態信息;信息轉換子單元,與所述信息獲取子單元相連,用于通過逆運動學方法,將所述預設點的第二狀態信息由笛卡爾坐標表示轉換成關節空間坐標表示。

本發明實施例中,通過獲取機械臂末端在當前移動直線上的所在點和機械臂末端在下一移動直線上預設點狀態信息,規劃從所述所在點至所述預設點的移動軌跡,控制所述機械臂末端沿所述移動軌跡從所述所在點移動至所述預設點。實現了機械臂末端平穩的從一個運動方向切換至另一個運動方向,保證了機械臂運動的效率和精度。

附圖說明

通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本發明的其它特征、目的和優點將會變得更明顯:

圖1是本發明實施例一中的一種機械臂的控制方法的流程圖;

圖2是本發明實施例二中的一種機械臂的控制方法的流程圖;

圖3是本發明實施例三中的一種機械臂的控制方法的流程圖;

圖4為本發明實施例三中的X-Y平面內機械臂末端的軌跡規劃圖;

圖5-圖7為本發明實施例三中的機械臂的前三個軸在任意時刻的位置曲線圖;

圖8-圖10為本發明實施例三中的機械臂的前三個軸在任意時刻的速度曲線圖;

圖11-圖13為本發明實施例三中的機械臂的前三個軸在任意時刻的加速度曲線圖;

圖14為本發明實施例四中的一種機械臂的控制裝置的結構圖。

具體實施方式

下面結合附圖和實施例對本發明作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋本發明,而非對本發明的限定。還需要說明的是,為了便于描述,附圖中僅示出了與本發明相關的部分而非全部內容。另外還需要說明的是,為了便于說明,以下實施例中示出了與本發明相關的示例,這些示例僅作為說明本發明實施例的原理所用,并不作為對本發明實施例的限定,同時,這些示例的具體數值會根據不同的應用環境和裝置或者組件的參數不同而不同。

本發明實施例的一種機械臂的控制方法可以運行于安裝有Windows(微軟公司開發的操作系統平臺)、Android(谷歌公司開發的用于便攜式可移動智能設備的操作系統平臺)、iOS(蘋果公司開發的用于便攜式可移動智能設備的操作系統平臺)、Windows Phone(微軟公司開發的用于便攜式可移動智能設備的操作系統平臺)等操作系統的終端中,該終端可以是臺式機、筆記本電腦、移動電話、掌上電腦、平板電腦、數碼相機、數碼攝像機等等中的任意一種。

實施例一

圖1是本發明實施例一中的一種機械臂的控制方法的流程圖,該方法用于實現機械臂末端平穩的從一個運動方向切換至另一個運動方向,該方法可以由具有機械臂控制的裝置來執行,該裝置可以由軟件和/或硬件方式實現,例如典型的是用戶終端設備,例如手機、電腦等。本實施例中的用于觸摸屏的操作方法包括:步驟S110、步驟S120和步驟S130。

步驟S110,獲取機械臂末端在當前移動直線上的所在點的第一狀態信息和所述機械臂末端在下一移動直線上預設點的第二狀態信息。

具體的,在機械臂的任務操作過程中,機械臂的運動是指機械臂末端的運動,由機械臂末端來執行具體的操作任務。可以把機械臂在當前移動直線上的所在點作為該段軌跡的起點,該所在點記為O。機械臂按照用戶指定的任務需求進行移動,移動至指定位置去執行對應操作,在機械臂的移動過程中,將下一直線上的預設點T作為過渡段的終點,下一移動直線的起點記為P1,終點記為P2,獲取機械臂末端在點O和點T的狀態信息。

可選的,所述第一狀態信息包括所述機械臂末端在所述所在點的位置、速度和加速度;所述第二狀態信息包括所述機械臂末端在所述預設點的位置、速度和加速度。

其中,第一狀態信息包括機械臂末端所在點的位置、速度和加速度分別為Q0、和Q0、和均為n維列向量,向量維數機械臂的關節數目;第二狀態信息包括機械臂末端在預設點的位置、速度和加速度分別為Ps、和Ps、和均為n維列向量,向量維數機械臂的關節數目

步驟S120,根據所述第一狀態信息和所述第二狀態信息確定從所述所在點至所述預設點的移動軌跡的參數,所述機械臂末端在所述移動軌跡上的移動函數為連續函數。

具體的,為了確定機械臂從所述所在點至所述預設點的移動軌跡,首先需要確定計算移動軌跡所需要的參數,該參數由所述第一狀態信息和所述第二狀態信息決定。移動軌跡是由移動函數生成的直線或曲線構成的,函數是描述每個輸入值(自變量)對應唯一輸出值(因變量)的對應關系,函數圖像是平面或曲面上的點對的集合。機械臂末端的移動軌跡是由移動函數在平面或曲面上確定的點對的集合,這些點對形成了機械臂末端的移動軌跡。

機械臂末端在所述移動軌跡上的移動函數為連續函數,連續函數是指當自變量變化很小時,因變量變化也很小的對應關系,體現在圖像上是一條沒有斷裂的連續曲線。機械臂末端的移動軌跡為連續函數是指,機械臂末端的相關狀態信息的量在數值上沒有跳變,體現在實際運動中是機械臂在任務操作中不發生抖動。

步驟S130,控制所述機械臂末端沿所述移動軌跡從所述所在點移動至所述預設點。

具體的,得到從所述所在點至所述預設點的移動軌跡后,控制機械臂末端的運動,機械臂末端沿計算出來的移動軌跡從當前直線的所在點位置移動至下一移動直線的預設點位置。

可選的,在控制所述機械臂末端沿所述移動軌跡從所述所在點移動至所述預設點之后,還包括:所述機械臂末端從所述預設點根據所述下一移動直線的軌跡規劃繼續移動至所述下一移動直線的終點。

具體的,機械臂末端沿所述移動軌跡從當前直線的所在點移動至下一移動直線的預設點T之后,完成了從所在點到預設點的過渡,按用戶需求根據下一移動直線的軌跡移動至下一直線的終點P2。按用戶需求完成了沿下一移動直線的移動。

本發明實施例中,通過獲取機械臂末端在當前移動直線上的所在點和機械臂末端在下一移動直線上預設點狀態信息;規劃從所述所在點至所述預設點的移動軌跡,控制所述機械臂末端沿所述移動軌跡從所述所在點移動至所述預設點。實現了機械臂末端平穩的從一個運動方向切換至另一個運動方向,保證了機械臂運動的效率和精度。

實施例二

圖2是本發明實施例二中一種機械臂的控制方法的流程圖,本發明實施例實在實施例一的基礎上,進一步解釋了步驟S110,所述獲取機械臂末端在當前移動直線上的所在點的第一狀態信息和所述機械臂末端在下一移動直線上預設點的第二狀態信息包括:獲取所述機械臂末端在當前移動直線上的所在點的在關節空間下的第一狀態信息;通過逆運動學方法,將所述預設點的第二狀態信息由笛卡爾坐標表示轉換成關節空間坐標表示。具體的,本實施例中機械臂的控制方法包括:步驟S210、步驟S220、步驟S230和步驟S240。

步驟S210,獲取所述機械臂末端在當前移動直線上的所在點的在關節空間下的第一狀態信息。

具體的,第一狀態信息包括機械臂末端所在點的位置、速度和加速度分別為Q0、和Q0、和均為機械臂末端在關節空間下的狀態表示,單位分別為rad、rad/s和rad/s2

步驟S220,通過逆運動學方法,將所述預設點的第二狀態信息由笛卡爾坐標表示轉換成關節空間坐標表示。

具體的,第二狀態信息包括機械臂末端在預設點的位置、速度和加速度分別為Ps、和Ps、和為均為機械臂在笛卡爾空間下的狀態表示,單位分別為m、m/s和m/s2。根據逆運動學的變換方法,通過雅各比矩陣完成第二狀態信息由笛卡爾坐標系表示到關節空間坐標表示的轉換。

可選的,所述通過逆運動學方法,將所述預設點的第二狀態信息由笛卡爾坐標表示轉換成關節空間坐標表示包括:根據公式進行笛卡爾坐標表示向關節空間坐標表示的轉換,其中和分別為笛卡爾坐標系下機械臂末端的速度和加速度,和分別為關節空間坐標系下機械臂末端的速度和加速度,J為雅可比矩陣,為雅可比矩陣的一階導,J+為J的偽逆。

其中,根據逆運動學的變換關系,即關節空間的坐標表示和任務空間的坐標表示之間的關系得到

步驟S230,根據所述第一狀態信息和所述第二狀態信息確定從所述所在點至所述預設點的移動軌跡的參數,所述機械臂末端在所述移動軌跡上的移動函數為連續函數。

步驟S240,控制所述機械臂末端沿所述移動軌跡從所述所在點移動至所述預設點。

本發明實施例通過獲取所述機械臂末端在當前移動直線上的所在點的在關節空間下的第一狀態信息,通過逆運動學方法,將所述預設點的第二狀態信息由笛卡爾坐標表示轉換成關節空間坐標表示,將第一狀態信息和第二狀態信息統一成關節空間的坐標表示,以便對機械臂末端從所在點到預設點的移動軌跡進行準確規劃。

實施例三

圖3是本發明實施例中的一種機械臂的控制方法的流程圖,本實施例是在實施例一的基礎上,進一步解釋了步驟S120,通過S型速度規劃法、多階樣條插值法和/或B樣條插補法規劃所述下一移動直線在笛卡爾坐標系下的插補點;通過多階多項式和/或三角函數法,分別確定所述位置函數、速度函數和加速度函數對應的參數。具體的,本實施例中機械臂的控制方法包括:步驟S310、步驟S320、步驟S330和步驟S340。

步驟S310,獲取機械臂末端在當前移動直線上的所在點的第一狀態信息和所述機械臂末端在下一移動直線上預設點的第二狀態信息。

步驟S320,通過S型速度規劃法、多階樣條插值法和/或B樣條插補法規劃所述下一移動直線在笛卡爾坐標系下的插補點。

具體的,當前移動直線和下一移動直線的狀態信息可以是預先規劃的,也可以是根據機械臂執行任務操作的過程中按照用戶新的需求進行更新的。S型速度規劃法,系統在加減速段的速度曲線的形狀呈現S型,加減速控制的方式比較復雜,主要是在加減速的時候,通過對加速度的導數的控制,從而對加速度、速度和位移進行控制,最大限度的減少對系統造成的影響。多階樣條插值法是通過一系列形值點的一條光滑曲線,數學上通過求解三彎矩方程組得出曲線函數組的過程。B樣條曲線插補具有幾何不變性、凸包性、保凸性、變差減小性和局部支撐性等特性。通過S型速度規劃法、多階樣條插值法和/或B樣條插補法規劃所述下一移動直線在笛卡爾坐標系下的插補點,Pt=[xt,yt,zt]T,速度加速度t為時間點,xt,yt,zt是機械臂末端在笛卡爾空間的三個坐標軸的位置分量,是機械臂末端在笛卡爾空間的三個坐標軸的速度分量,是機械臂末端在笛卡爾空間的三個坐標軸的加速度分量。

步驟S330,通過多階多項式和/或三角函數法,分別確定所述位置函數、速度函數和加速度函數對應的參數。

具體的,多階多項式法即構造多階多項式曲線,該多階多項式曲線即為軌跡規劃中的移動曲線,多階多項式法的參數與所述位置函數、速度函數和加速度函數相關。三角函數法,即通過正余弦等三角函數,通過位置函數、速度函數和加速度函數,確定其對應的參數。

步驟S340,控制所述機械臂末端沿所述移動軌跡從所述所在點移動至所述預設點。

可選的,所述移動函數包括:所述機械臂末端在所述移動軌跡上的位置函數、速度函數和加速度函數。

可選的,所述通過多階多項式和/或三角函數法,分別確定所述位置函數、速度函數和加速度函數對應的參數包括:根據如下五階多項式曲線公式,確定所述位置函數、速度函數和加速度函數對應的參數;

a0=Q0

<mrow> <msub> <mi>a</mi> <mn>1</mn> </msub> <mo>=</mo> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mn>0</mn> </msub> </mrow>

<mrow> <msub> <mi>a</mi> <mn>2</mn> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mn>0</mn> </msub> </mrow>

<mrow> <msub> <mi>a</mi> <mn>3</mn> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mn>2</mn> <msubsup> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> <mn>3</mn> </msubsup> </mrow> </mfrac> <mo>&lsqb;</mo> <mn>20</mn> <mi>h</mi> <mo>-</mo> <mrow> <mo>(</mo> <mn>8</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mi>s</mi> </msub> <mo>+</mo> <mn>12</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mn>0</mn> </msub> <mo>)</mo> </mrow> <msub> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> </msub> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mn>0</mn> </msub> <mo>-</mo> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mi>s</mi> </msub> <mo>)</mo> </mrow> <msubsup> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> <mn>2</mn> </msubsup> <mo>&rsqb;</mo> </mrow>

<mrow> <msub> <mi>a</mi> <mn>4</mn> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mn>2</mn> <msubsup> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> <mn>4</mn> </msubsup> </mrow> </mfrac> <mo>&lsqb;</mo> <mo>-</mo> <mn>30</mn> <mi>h</mi> <mo>+</mo> <mrow> <mo>(</mo> <mn>14</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mi>s</mi> </msub> <mo>+</mo> <mn>16</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mn>0</mn> </msub> <mo>)</mo> </mrow> <msub> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> </msub> <mo>+</mo> <mrow> <mo>(</mo> <mn>3</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mn>0</mn> </msub> <mo>-</mo> <mn>2</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mi>s</mi> </msub> <mo>)</mo> </mrow> <msubsup> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> <mn>2</mn> </msubsup> <mo>&rsqb;</mo> </mrow>

<mrow> <msub> <mi>a</mi> <mn>5</mn> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mn>2</mn> <msubsup> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> <mn>5</mn> </msubsup> </mrow> </mfrac> <mo>&lsqb;</mo> <mn>12</mn> <mi>h</mi> <mo>-</mo> <mn>6</mn> <mrow> <mo>(</mo> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mi>s</mi> </msub> <mo>+</mo> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mn>0</mn> </msub> <mo>)</mo> </mrow> <msub> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> </msub> <mo>+</mo> <mrow> <mo>(</mo> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mi>s</mi> </msub> <mo>-</mo> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mn>0</mn> </msub> <mo>)</mo> </mrow> <msubsup> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> <mn>2</mn> </msubsup> <mo>&rsqb;</mo> </mrow>

其中,Q0、和分別為所述所在點的關節空間的位置、速度和加速度,Qs、和分別為所述預設點在關節空間的位置、速度和加速度,h為所述所在點和所述預設點之間的距離,ttrans機械臂末端從所述所在點移動至所述預設點的時間。

具體的,通過五階多項式曲線公式,確定所述位置函數、速度函數和加速度函數對應的參數a0、a1、a2、a3、a4和a5,各參數分別與機械臂末端的所在點的速度和加速度、預設點的速度和加速度、所在點和預設點的距離相關。

可選的,所述通過多階多項式和/或三角函數法,分別確定所述位置函數、速度函數和加速度函數對應的參數還包括:根據如下公式計算機所述所在點至所述預設點之間任意時刻的機械臂末端的位置、速度和加速度;

Qt=Q0+a1t+a2t2+a3t3+a4t4+a5t5

<mrow> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mi>t</mi> </msub> <mo>=</mo> <msub> <mi>a</mi> <mn>1</mn> </msub> <mo>+</mo> <mn>2</mn> <msub> <mi>a</mi> <mn>2</mn> </msub> <mi>t</mi> <mo>+</mo> <mn>3</mn> <msub> <mi>a</mi> <mn>3</mn> </msub> <msup> <mi>t</mi> <mn>2</mn> </msup> <mo>+</mo> <mn>4</mn> <msub> <mi>a</mi> <mn>4</mn> </msub> <msup> <mi>t</mi> <mn>3</mn> </msup> <mo>+</mo> <mn>5</mn> <msub> <mi>a</mi> <mn>5</mn> </msub> <msup> <mi>t</mi> <mn>4</mn> </msup> </mrow>

<mrow> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mi>t</mi> </msub> <mo>=</mo> <mn>2</mn> <msub> <mi>a</mi> <mn>2</mn> </msub> <mo>+</mo> <mn>6</mn> <msub> <mi>a</mi> <mn>3</mn> </msub> <mi>t</mi> <mo>+</mo> <mn>12</mn> <msub> <mi>a</mi> <mn>4</mn> </msub> <msup> <mi>t</mi> <mn>2</mn> </msup> <mo>+</mo> <mn>20</mn> <msub> <mi>a</mi> <mn>5</mn> </msub> <msup> <mi>t</mi> <mn>3</mn> </msup> </mrow>

其中,Qt、和分別為所述機械臂末端在所述所在點至所述預設點之間任意點的位置、速度和加速度。

具體的,計算出參數a0、a1、a2、a3、a4和a5后,根據該參數的值設計函數表達式,計算所在點至所述預設點之間任意時刻的機械臂末端的位置、速度和加速度。該函數表達式根據用戶的需要進行設定,可以是線性函數表達式,也可以是非線性函數表達式。

本發明實施例中,通過規劃所述下一移動直線在笛卡爾坐標系下的插補點,并確定所述位置函數、速度函數和加速度函數對應的參數,確定機械臂末端從所在點到預設點的移動軌跡,機械臂末端沿該軌跡進行移動。

為了使方案的表述更易理解,以實施例一至實施例三為基礎,可選的,以一個實際應用的例子進行說明。對一個SCARA型四軸機械臂末端從坐標[0.6,0,0]T直線運行到[0.289,0.156,-0.078]T,然后使用上述實施例提出的算法,從當前位置規劃出一個過渡段曲線到[0.189,0.2,-0.094]T,然后直線運行到終點[0,0.2,0]T值得注意的是,以下參數取值只是一種示例性取值,還可以存在其他取值,具體數值不同,機械臂末端移動軌跡的精度也不同,可以根據情況進行相關調整。圖4為X-Y平面內機械臂末端的軌跡規劃圖,機械臂末端位置的X軸分量和機械臂末端位置的Y軸分量的單位均為米,曲線410為機械臂末端在該規劃軌跡中的實際移動曲線。圖5-圖7為機械臂的前三個軸在任意時刻的位置,時間單位均為秒(s),位置單位均為弧度(rad),曲線510、曲線610和曲線710分別代表機械臂前三個軸的位置曲線,點5101和點5102之間的曲線、點6101和點6102之間的曲線、點7101和點7102之間的曲線分別代表機械臂末端從所在點到預設點的位置曲線。圖8-圖10為機械臂的前三個軸在任意時刻的速度,時間單位均為秒(s),速度單位均為弧度每秒(rad/s),曲線810、曲線910和曲線1010分別代表機械臂前三個軸的速度曲線,點8101和點8102之間的曲線、點9101和點9102之間的曲線、點10101和點10102之間的曲線分別代表機械臂末端從所在點到預設點的速度曲線。圖11-圖13為機械臂的前三個軸在任意時刻的加速度,時間單位均為秒(s),加速度單位均為弧度每二次方秒(rad/s2)。曲線1110、曲線1210和曲線1310分別代表機械臂前三個軸的加速度曲線,點11101和點11102之間的曲線、點12101和點12102之間的曲線、點13101和點13102之間的曲線分別代表機械臂末端從所在點到預設點的加速度曲線。從圖可以看到,在關節空間坐標系的各個軸的位置、速度和加速度都連續。

實施例四

圖14是本發明實施例四中的一種機械臂的控制裝置的結構圖。該裝置適用于執行本發明實施例一至三中提供的機械臂的控制方法,該裝置具體包括:獲取單元1410、確定單元1420和控制單元1430。

獲取單元1410,用于獲取機械臂末端在當前移動直線上的所在點的第一狀態信息和所述機械臂末端在下一移動直線上預設點的第二狀態信息;

確定單元1420,與獲取單元1410相連,用于根據所述第一狀態信息和所述第二狀態信息確定從所述所在點至所述預設點的移動軌跡的參數,所述機械臂末端在所述移動軌跡上的移動函數為連續函數;

控制單元1430,與確定單元1420相連,用于控制所述機械臂末端沿所述移動軌跡從所述所在點移動至所述預設點。

進一步的,所述第一狀態信息包括所述機械臂末端在所述所在點的位置、速度和加速度;所述第二狀態信息包括所述機械臂末端在所述預設點的位置、速度和加速度,獲取單元1410包括:

信息獲取子單元,用于獲取所述機械臂末端在當前移動直線上的所在點的在關節空間下的第一狀態信息;

信息轉換子單元,與所述信息獲取子單元相連,用于通過逆運動學方法,將所述預設點的第二狀態信息由笛卡爾坐標表示轉換成關節空間坐標表示。

進一步的,確定單元1420具體用于:通過S型速度規劃法、多階樣條插值法和/或B樣條插補法規劃所述下一移動直線在笛卡爾坐標系下的插補點。

進一步的,所述移動函數包括:所述機械臂末端在所述移動軌跡上的位置函數、速度函數和加速度函數;確定單元1420還用于通過多階多項式和/或三角函數法,分別確定所述位置函數、速度函數和加速度函數對應的參數。

進一步的,確定單元1420具體用于:根據公式進行笛卡爾坐標表示向關節空間坐標表示的轉換,其中和分別為笛卡爾坐標系下機械臂末端的速度和加速度,和分別為關節空間坐標系下機械臂末端的速度和加速度,J為雅可比矩陣,為雅可比矩陣的一階導,J+為J的偽逆。

進一步的,確定單元1420還用于根據如下五階多項式曲線公式,確定所述位置函數、速度函數和加速度函數對應的參數;

a0=Q0

<mrow> <msub> <mi>a</mi> <mn>1</mn> </msub> <mo>=</mo> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mn>0</mn> </msub> </mrow>

<mrow> <msub> <mi>a</mi> <mn>2</mn> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mn>0</mn> </msub> </mrow>

<mrow> <msub> <mi>a</mi> <mn>3</mn> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mn>2</mn> <msubsup> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> <mn>3</mn> </msubsup> </mrow> </mfrac> <mo>&lsqb;</mo> <mn>20</mn> <mi>h</mi> <mo>-</mo> <mrow> <mo>(</mo> <mn>8</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mi>s</mi> </msub> <mo>+</mo> <mn>12</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mn>0</mn> </msub> <mo>)</mo> </mrow> <msub> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> </msub> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mn>0</mn> </msub> <mo>-</mo> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mi>s</mi> </msub> <mo>)</mo> </mrow> <msubsup> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> <mn>2</mn> </msubsup> <mo>&rsqb;</mo> </mrow>

<mrow> <msub> <mi>a</mi> <mn>4</mn> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mn>2</mn> <msubsup> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> <mn>4</mn> </msubsup> </mrow> </mfrac> <mo>&lsqb;</mo> <mo>-</mo> <mn>30</mn> <mi>h</mi> <mo>+</mo> <mrow> <mo>(</mo> <mn>14</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mi>s</mi> </msub> <mo>+</mo> <mn>16</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mn>0</mn> </msub> <mo>)</mo> </mrow> <msub> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> </msub> <mo>+</mo> <mrow> <mo>(</mo> <mn>3</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mn>0</mn> </msub> <mo>-</mo> <mn>2</mn> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mi>s</mi> </msub> <mo>)</mo> </mrow> <msubsup> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> <mn>2</mn> </msubsup> <mo>&rsqb;</mo> </mrow>

<mrow> <msub> <mi>a</mi> <mn>5</mn> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mn>2</mn> <msubsup> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> <mn>5</mn> </msubsup> </mrow> </mfrac> <mo>&lsqb;</mo> <mn>12</mn> <mi>h</mi> <mo>-</mo> <mn>6</mn> <mrow> <mo>(</mo> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mi>s</mi> </msub> <mo>+</mo> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mn>0</mn> </msub> <mo>)</mo> </mrow> <msub> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> </msub> <mo>+</mo> <mrow> <mo>(</mo> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mi>s</mi> </msub> <mo>-</mo> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mn>0</mn> </msub> <mo>)</mo> </mrow> <msubsup> <mi>t</mi> <mrow> <mi>t</mi> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> </mrow> <mn>2</mn> </msubsup> <mo>&rsqb;</mo> </mrow>

其中,Q0、和分別為所述所在點的關節空間的位置、速度和加速度,Qs、和分別為所述預設點在關節空間的位置、速度和加速度,h為所述所在點和所述預設點之間的距離,ttrans為機械臂末端從所述所在點移動至所述預設點的時間。

進一步的,確定單元1420還用于根據如下公式計算機所述所在點至所述預設點之間任意時刻的機械臂末端的位置、速度和加速度;

Qt=Q0+a1t+a2t2+a3t3+a4t4+a5t5

<mrow> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mi>t</mi> </msub> <mo>=</mo> <msub> <mi>a</mi> <mn>1</mn> </msub> <mo>+</mo> <mn>2</mn> <msub> <mi>a</mi> <mn>2</mn> </msub> <mi>t</mi> <mo>+</mo> <mn>3</mn> <msub> <mi>a</mi> <mn>3</mn> </msub> <msup> <mi>t</mi> <mn>2</mn> </msup> <mo>+</mo> <mn>4</mn> <msub> <mi>a</mi> <mn>4</mn> </msub> <msup> <mi>t</mi> <mn>3</mn> </msup> <mo>+</mo> <mn>5</mn> <msub> <mi>a</mi> <mn>5</mn> </msub> <msup> <mi>t</mi> <mn>4</mn> </msup> </mrow>

<mrow> <msub> <mover> <mi>Q</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mi>t</mi> </msub> <mo>=</mo> <mn>2</mn> <msub> <mi>a</mi> <mn>2</mn> </msub> <mo>+</mo> <mn>6</mn> <msub> <mi>a</mi> <mn>3</mn> </msub> <mi>t</mi> <mo>+</mo> <mn>12</mn> <msub> <mi>a</mi> <mn>4</mn> </msub> <msup> <mi>t</mi> <mn>2</mn> </msup> <mo>+</mo> <mn>20</mn> <msub> <mi>a</mi> <mn>5</mn> </msub> <msup> <mi>t</mi> <mn>3</mn> </msup> </mrow>

其中,Qt、和分別為所述機械臂末端在所述所在點至所述預設點之間任意點的位置、速度和加速度。

本發明實施例中,通過獲取機械臂末端在當前移動直線上的所在點和機械臂末端在下一移動直線上預設點狀態信息,規劃從所述所在點至所述預設點的移動軌跡,控制所述機械臂末端沿所述移動軌跡從所述所在點移動至所述預設點。實現了機械臂末端平穩的從一個運動方向切換至另一個運動方向,保證了機械臂運動的效率和精度。

顯然,本領域技術人員應該明白,上述產品可執行本發明任意實施例所提供的方法,具備執行方法相應的功能模塊和有益效果。

注意,上述僅為本發明的較佳實施例及所運用技術原理。本領域技術人員會理解,本發明不限于這里所述的特定實施例,對本領域技術人員來說能夠進行各種明顯的變化、重新調整和替代而不會脫離本發明的保護范圍。因此,雖然通過以上實施例對本發明進行了較為詳細的說明,但是本發明不僅僅限于以上實施例,在不脫離本發明構思的情況下,還可以包括更多其他等效實施例,而本發明的范圍由所附的權利要求范圍決定。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 乌鲁木齐县| 民县| 怀化市| 乌审旗| 密云县| 合山市| 平昌县| 滕州市| 龙泉市| 左贡县| 武平县| 皋兰县| 扶沟县| 英吉沙县| 深圳市| 赞皇县| 团风县| 南涧| 云梦县| 拉孜县| 西充县| 密山市| 改则县| 文水县| 进贤县| 洛宁县| 韶关市| 平果县| 定结县| 独山县| 策勒县| 甘孜| 鸡泽县| 时尚| 离岛区| 且末县| 平凉市| 旬阳县| 姚安县| 平安县| 明水县|