它可以以多少種方式移動?
自由度:運動的幾何學
一個 自由度 (DOF) 是一個物體可以獨立移動的方式。理解 DOF 是理解機器人如何與空間互動的第一步。
在 3D 空間中的位置 需要 3 DOF:x(左右),y(前後),z(上下)。一個空間點有 3 DOF。
取向 加上 3 個:轉動(沿著前進軸旋轉)、俯仰(沿著側邊軸旋轉)、滾動(沿著垂直軸旋轉)。一個剛性物體在空間中有 6 DOF:3 個位置 + 3 個取向。
機器人手臂與 DOF:
- 一個 6-軸彈簧手臂(如工業機器人)有 6 個關節,每個關節都添加 1 DOF。有 6 DOF,終端器可以在工作區域內達到任何位置和取向:它有全面的空間自由度。
- 一個 4-軸 SCARA 機器人有 4 DOF:它可以在平面上任何位置並旋轉,但不能傾斜工具。適合在平面上進行選擇與放置。
- 一個 3-軸 Cartesian/櫓式 機器人有 3 DOF:它可以在一個盒狀體積中的任何位置,但不能定向其工具。適合用于 3D 打印機。
多於 6 DOF:一個 7-軸機器人是 冗餘的:它比完全空間定位所需的 DOF 多。額外的 DOF 讓它可以繞過障礙物,如人類手臂在後面伸展。冗餘是幾何上的優勢。
DOF 和任務需求
一家工廠需要為三個不同的任務提供機器人:(A)沿著汽車車體面板的 3D 曲線上塗裝膠,(B)從輸送帶上選擇芯片並將其放置在平坦的電路板上,(C)從多個角度對 3D 連接進行焊接。
机器人几何学的两种方向
运动学:动态几何
运动学是不考虑力时的运动学。在机器人领域,它是纯粹的几何学:关节角度与末端效ector位置之间的关系。
正向运动学(FK): 给定所有关节角度→ 计算末端效ector的位置与方向。这是‘容易’的方向。
对于一个2连杆平面臂:如果关节1位于角度θ₁,关节2位于角度θ₂,链长度分别为L₁和L₂,末端效ector位于:
- x = L₁ cos(θ₁) + L₂ cos(θ₁ + θ₂)
- y = L₁ sin(θ₁) + L₂ sin(θ₁ + θ₂)
对于6轴臂,FK 使用一个链条的同胚变换矩阵:每个关节都贡献一个4×4矩阵,编码旋转和平移。将这六个矩阵相乘,得到末端效ector的姿势。它是机械的,但总是产生一个唯一的答案。
逆向运动学(IK): 给定一个所需的末端效ector位置与方向→ 计算关节角度,实现它。这是‘困难’的方向。
IK 很难因为:
- 多个解决方案:一个6轴臂可以经常以相同的配置达到同一位置(肘部向上 vs. 肘部向下,手腕翻转 vs. 不翻转)。可能有8个或更多的有效解决方案。
- 无解决方案:如果目标在工作空间之外,没有关节角度适用。
- 奇异点:在某些姿势时,两个关节轴对齐,机器人失去一个DOF:就像舵锁。接近奇异点时,较小的Cartesian移动需要巨大的关节速度。
逆向运动学:为什么它难?
考虑一个简单的2连杆平面臂,L₁ = L₂ = 1米。末端效ector需要达到点(1.0,1.0)。
从基座到目标的距离为sqrt(1² + 1²) = sqrt(2) ≈ 1.414 m。由于L₁ + L₂ = 2 m > 1.414 m,点是可达的。
達到的形狀
工作空間:機器人可以達到的幾何學體積
終端工具可以達到的所有點集稱為工作空間範圍。它的形狀完全取決於機器人的幾何學。
六軸機動臂:工作空間大約是一個空心球體。最大達到的範圍是所有連接點都已經伸展。內部邊界存在,因為手臂無法將自己折疊得足夠多來到點過於接近基礎的點。截面看起來像一個環形(圓環)。
SCARA:工作空間是一個柱體。手臂水平移動(生成一個圓形截面)並垂直移動Z軸。結果是一個扁平的柱體體積:水平方向的達到範圍較大,垂直方向達到範圍有限。
Cartesian/Gantry:工作空間是一個矩形方盒。每個軸沿一個維度線性移動。簡單、可預測、易於編程:但因為機器人必須與其工作空間相同大小,所以Bulkiness。
工作空間中的奇點:在某些姿態時,機器人失去一個DOF。完全伸展的六軸機動臂(在其工作空間的外部邊界)處於奇點:它無法再向外移動終端工具。手腕奇點發生在兩個手腕節點軸對齊時。在奇點處,雅可比矩陣的秩下降,機器人的有效DOF暫時減少。
靈巧工作空間 vs. 達到的工作空間:達到的工作空間是終端工具至少可以達到的所有點。靈巧工作空間是終端工具可以達到任意方向的所有點。靈巧工作空間總是達到的工作空間的子集:通常要小得多。
根據工作空間選擇機器人
一個工廠單元中有三個站點以L形排列。A站位於左邊,B站直接向前,C站位於右邊略高(高300毫米)。機器人需要從A站拿取零件,到B站進行操作,並將完成的零件放置在C站:所有這些操作都從單個安裝位置進行。
配置空間:機器人的抽象幾何
配置空間:運動规划的家
配置空間(C-space) 是機器人領域中最強大的幾何抽象之一。相反,將機器人的整個狀態表示為一個N維空間中的單個點。
對於具有N個關節的機器人,C-space有N個維度:一個軸每個關節角。機器人的所有可能姿態都是C-space中的單個點。一個運動(一系列姿態)是一條通過C-space的曲線。
C-space中的障礙:物理世界中的一個障礙在實際上成為C-space中的禁止區域。如果將機器人放在關節角(θ₁,θ₂,...,θN)中將導致碰撞,那麼這個點就在C-space中的障礙區域內。C-space障礙的形狀複雜:物理世界中的一個方盒在實際上成為C-space中的一個奇怪形狀的區域。
路径规划 = 找到一個無碰撞曲線:給定一個起始配置(C-space中的點)和一個終止配置(另一個點),找到連接這兩者且不進入任何禁止區域的連續曲線。
算法:
- A* (grid-based): 將 C-space 分為網格,尋找最短路徑。適用於低維度(2-3 DOF)但隨著維度的增加,網格大小會以指數形式爆炸。
- RRT (Rapidly-Exploring Random Tree): 在 C-space 中建立一個隨機樣本的樹,向未探索的區域生長。適用於高維度(6+ DOF)。不具最優解,但在尋找可行路徑方面速度較快。
- PRM (Probabilistic Roadmap): 先預先計算一組隨機無碰撞的配置,然後在圖中搜索。適用於在相同環境中進行多次查詢。
幾何見解:一個 6-DOF 機器人的路徑規劃問題是一個在 6D 空間中穿過曲線的問題。維度過高使得精確解變得不可能:概率方法(RRT,PRM)是實用的方法。
配置空间思维
一个 2-link 平面机械臂(2 DOF)在一个带有单个长方形障碍物的房间中工作。关节 1 在 0° 到 360° 之间变化,关节 2 在 0° 到 360° 之间变化。配置空间是一个 2D 正方形:θ₁ 在一个轴上,θ₂ 在另一个轴上。