嵌入式硬件篇---機械臂運動學解算(3自由度)

實際 3 自由度機械臂的解算是機器人控制的核心,涉及運動學正解(關節角度→末端位姿)和逆解(目標位姿→關節角度)。以下從結構建模、解算方法、代碼實現和應用場景四個維度詳細展開,結合工業級機械臂的典型場景進行說明。

一、機械臂結構與坐標系定義

1. 典型結構(RRR 型串聯機械臂)

3 自由度機械臂通常由三個旋轉關節組成,例如:

  • 關節 1(J1):基座旋轉關節,繞垂直軸旋轉;
  • 關節 2(J2):肩關節,繞水平軸旋轉;
  • 關節 3(J3):肘關節,繞水平軸旋轉。
2. D-H 參數法建模

通過 Denavit-Hartenberg 參數法為每個關節建立坐標系,定義四個參數(單位:弧度 / 米):

  • θ?:關節 i 的旋轉角度(旋轉關節的變量);
  • d?:關節 i 的偏移量(移動關節的變量);
  • a?:連桿 i 的長度(沿 X 軸的距離);
  • α?:連桿 i 的扭轉角(繞 X 軸的旋轉角)。

例如,某 3 自由度機械臂的 D-H 參數表如下(單位:米,弧度):

關節θ?d?a?α?
J1θ?0.160700
J2θ?00.425π/2
J3θ?00.3930
3. 齊次變換矩陣

每個關節的變換矩陣?T??由旋轉和平移組成,公式為:
Ti?=?cosθi?sinθi?00??sinθi?cosαi?cosθi?cosαi?sinαi?0?sinθi?sinαi??cosθi?sinαi?cosαi?0?ai?cosθi?ai?sinθi?di?1??

將所有關節的變換矩陣連乘,得到末端執行器相對于基座的位姿矩陣?T??
T03?=T1??T2??T3?

二、正運動學解算(關節角度→末端位姿)

1. 解算流程
  1. 輸入關節角度:θ?~θ?(單位:弧度);
  2. 計算各關節變換矩陣:根據 D-H 參數表生成?T?~T?
  3. 矩陣連乘:得到末端位姿矩陣?T??
  4. 提取結果
    • 位置:T??的前三行第四列(x, y, z);
    • 姿態:用歐拉角或軸角表示(如繞 X 軸旋轉 φ,繞 Y 軸旋轉 θ,繞 Z 軸旋轉 ψ)。
2. Python 代碼示例(含參數解釋)
import numpy as npdef forward_kinematics(theta1, theta2, theta3):"""正運動學解算:已知關節角度,計算末端位姿參數:theta1, theta2, theta3: 關節角度(弧度)返回:T03: 4x4齊次變換矩陣"""# D-H參數(單位:米,弧度)d = [0.1607, 0, 0]a = [0, 0.425, 0.393]alpha = [0, np.pi/2, 0]# 生成各關節變換矩陣T1 = np.array([[np.cos(theta1), -np.sin(theta1)*np.cos(alpha[0]), np.sin(theta1)*np.sin(alpha[0]), a[0]*np.cos(theta1)],[np.sin(theta1), np.cos(theta1)*np.cos(alpha[0]), -np.cos(theta1)*np.sin(alpha[0]), a[0]*np.sin(theta1)],[0, np.sin(alpha[0]), np.cos(alpha[0]), d[0]],[0, 0, 0, 1]])T2 = np.array([[np.cos(theta2), -np.sin(theta2)*np.cos(alpha[1]), np.sin(theta2)*np.sin(alpha[1]), a[1]*np.cos(theta2)],[np.sin(theta2), np.cos(theta2)*np.cos(alpha[1]), -np.cos(theta2)*np.sin(alpha[1]), a[1]*np.sin(theta2)],[0, np.sin(alpha[1]), np.cos(alpha[1]), d[1]],[0, 0, 0, 1]])T3 = np.array([[np.cos(theta3), -np.sin(theta3)*np.cos(alpha[2]), np.sin(theta3)*np.sin(alpha[2]), a[2]*np.cos(theta3)],[np.sin(theta3), np.cos(theta3)*np.cos(alpha[2]), -np.cos(theta3)*np.sin(alpha[2]), a[2]*np.sin(theta3)],[0, np.sin(alpha[2]), np.cos(alpha[2]), d[2]],[0, 0, 0, 1]])# 連乘得到T03T03 = np.dot(T1, np.dot(T2, T3))return T03# 測試:關節角度θ?=30°, θ?=60°, θ?=45°(轉換為弧度)
theta1 = np.deg2rad(30)
theta2 = np.deg2rad(60)
theta3 = np.deg2rad(45)
T03 = forward_kinematics(theta1, theta2, theta3)
print("末端位姿矩陣:\n", T03)

三、逆運動學解算(目標位姿→關節角度)

1. 解析法步驟(以 RRR 型機械臂為例)
  1. 分離位置與姿態:前兩個關節確定位置,第三個關節調整姿態。
  2. 求解 θ?:θ1?=arctan2(xy?)
  3. 求解 θ?和 θ?
    • 計算目標點到基座的距離:D=x2+y2?
    • 用余弦定理求解 θ?和 θ?:θ2?=arccos(2?D?L1D2+L12?L22?)?arctan2(Dz?)θ3?=arccos(2?L1?L2L12+L22?D2?)(其中 L1、L2 為連桿長度)
2. Python 代碼示例(含參數解釋)
def inverse_kinematics(x, y, z, L1=0.425, L2=0.393):"""逆運動學解算:已知目標坐標,計算關節角度參數:x, y, z: 目標坐標(米)L1, L2: 連桿長度(米)返回:theta1, theta2, theta3: 關節角度(弧度)"""# 步驟1:求解θ?theta1 = np.arctan2(y, x)# 步驟2:計算目標點到基座的距離DD = np.sqrt(x**2 + y**2)# 步驟3:求解θ?和θ?# 計算中間變量a = (D**2 + L1**2 - L2**2) / (2 * D * L1)b = z / Dtheta2 = np.arccos(a) - np.arctan2(b, np.sqrt(1 - b**2))c = (L1**2 + L2**2 - D**2) / (2 * L1 * L2)theta3 = np.arccos(c)return theta1, theta2, theta3# 測試:目標坐標(x=0.5m, y=0.3m, z=0.2m)
x = 0.5
y = 0.3
z = 0.2
theta1, theta2, theta3 = inverse_kinematics(x, y, z)
print("關節角度(弧度):θ?=%.2f, θ?=%.2f, θ?=%.2f" % (theta1, theta2, theta3))
print("關節角度(度):θ?=%.2f°, θ?=%.2f°, θ?=%.2f°" % (np.rad2deg(theta1), np.rad2deg(theta2), np.rad2deg(theta3)))
3. 多解處理與奇異性
  • 多解性:3 自由度機械臂通常存在2 組逆解(θ?的正負解),需根據關節限位和運動路徑選擇合理解。
  • 奇異性:當 θ?+θ?=0° 或 180° 時,機械臂失去一個自由度,需采用阻尼最小二乘法避免發散:Δθ=(JTJ+λI)?1JTe其中,J 為雅可比矩陣,e 為位姿誤差,λ 為阻尼系數。

四、實際應用與優化

1. 工業場景示例
  • 裝配機器人:輸入裝配點的位姿,逆解算得到關節角度,控制機械臂完成零件安裝。
  • 醫療手術機器人:通過醫學影像獲取目標位置,逆解算生成微小關節運動,實現精準操作。
2. 實時性優化
  • 硬件加速:使用 FPGA 或 GPU 并行計算矩陣乘法。
  • 預計算:將常用位姿的逆解存入查表,減少實時計算量。
3. 誤差補償
  • 標定:通過激光跟蹤儀測量末端實際位置,修正 D-H 參數。
  • 柔順控制:結合力傳感器實時調整關節角度,補償裝配誤差。

五、核心結論

維度3 自由度機械臂2 自由度機械臂6 自由度機械臂
結構復雜度中等(3 旋轉關節)簡單(2 旋轉關節)復雜(6 旋轉關節)
正解方法D-H 參數法 + 齊次變換矩陣三角函數疊加D-H 參數法 + 齊次變換矩陣
逆解方法解析法(幾何分解)余弦定理直接求解解析法(幾何分解)或數值法
計算復雜度O (n2)(矩陣連乘)O(1)O (n3)(矩陣連乘)
典型應用工業裝配、醫療手術桌面機械臂、教學實驗航天任務、復雜焊接

3 自由度機械臂的解算是理論與工程的結合,需在精度實時性魯棒性之間權衡。實際應用中,通常結合運動規劃算法(如 RRT、人工勢場法)和控制系統(如 ROS MoveIt!)實現復雜任務。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/89672.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/89672.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/89672.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在攝像機視圖中想像在普通 3D 視口里那樣隨意移動

有兩條最常用的方法:1. 「鎖定相機到視圖」(Lock Camera to View)步驟進入相機視圖:按 Numpad 0(若無數字鍵盤,可在 Edit → Preferences → Input 勾選 Emulate Numpad 后用主鍵盤 0)。右側呼出 N 面板,切…

An End-to-End Attention-Based Approach for Learning on Graphs NC 2025

NC 2025 | 一種基于端到端注意力機制的圖學習方法 Nature Communications IF=15.7 綜合性期刊 1區 參考:https://mp.weixin.qq.com/s/cZ-d8Sf8wtQ9wfcGOFimCg 今天介紹一篇發表在 Nature Communications 的圖學習論文《An end-to-end attention-based approach for learnin…

【牛客刷題】小紅的數字串

文章目錄 一、題目描述 1.1 輸入描述 1.2 輸出描述 1.3 示例1 二、高效解法 2.1 核心算法設計 2.2 算法設計理念 2.2.1 算法流程詳解 2.2.2 復雜度分析 2.3 算法優勢分析 2.3.1 關鍵優化點 2.3.2 正確性驗證 2.4 邊界處理 2.5 總結與擴展 一、題目描述 小紅拿到了一個數字串(由…

微算法科技技術創新,將量子圖像LSQb算法與量子加密技術相結合,構建更加安全的量子信息隱藏和傳輸系統

隨著信息技術的發展,數據的安全性變得尤為重要。在傳統計算模式下,即便采用復雜的加密算法,也難以完全抵御日益增長的網絡攻擊威脅。量子計算技術的出現為信息安全帶來了新的解決方案。然而,量子圖像處理領域仍面臨復雜度高、效率…

博客摘錄「 Springboot入門到精通(超詳細文檔)」2025年7月4日

1.Spring Boot返回Json數據及數據封裝1. Controller 中使用RestController注解即可返回 Json 格式的數據首先看看RestController注解包含了什么東西, ResponseBody 注解是將返回的數據結構轉換為 Json 格式Target({ElementType.TYPE}) Retention(RetentionPolicy.RU…

企業安全防護:堡壘機技術解析

目錄 一、堡壘機:企業IT運維的安全守門人 1.1 核心價值矩陣 1.2堡壘機典型部署架構 二、堡壘機如何構建安全防線 2.1 四層防護體系 2.2 關鍵工作流程 三、堡壘機關鍵技術指標對比表 四、智能堡壘機的發展趨勢 一、堡壘機:企業IT運維的安全守門人…

傳輸層協議 TCP

TCP 協議TCP 全稱為 "傳輸控制協議(Transmission Control Protocol"). 人如其名, 要對數據的傳輸進行一個詳細的控制TCP 協議段格式源/目的端口號: 表示數據是從哪個進程來, 到哪個進程去32 位序號/32 位確認號4 位 TCP 報頭長度: 表示該 TCP 頭部有多少個 32 位 bit…

RT-Thread的概念和移植

一、操作系統的概念 操作系統(英語:Operating System,縮寫:OS)是一組主管并控制計算機操作、運用和運行硬件、軟件資源和提供公共服務來組織用戶交互的相互關聯的系統軟件程序。根據運行的環境,操作系統可以…

基于單片機傾角測量儀/角度測量/水平儀

傳送門 👉👉👉👉其他作品題目速選一覽表 👉👉👉👉其他作品題目功能速覽 概述 本設計實現了一種基于單片機的高精度數字傾角測量儀。系統核心由傾角傳感器(ADXL345傾…

深度學習 -- 初步認識Torch

深度學習 – 初步認識Torch 文章目錄深度學習 -- 初步認識Torch一,認識人工智能1.1 人工智能的本質1.2 人工智能的實現過程二,認識Torch2.1簡介2.2 概述2.3 Tensor的創建2.3.1 torch.tensor2.3.2 torch.Tensor三,創建線性和隨機張量3.1創建線…

BGP的“聰明選路”遇上了TCP的“路徑潔癖”,需人工調和

在路由器R1上有兩條外網,WAN1和WAN2。R1上做了域名分流功能,全局網址分到WAN1,指定域名分到WAN2(優先級更高)。癥狀是用戶反饋部分網頁無法打開。于是各種檢查嘗試...... 2天過去了......最終結論是:即使S…

ACWing算法筆記 | 二分

🔍 C 二分查找雙模板詳解:左閉右開 vs 左閉右閉(二分筆記)二分查找(Binary Search)是一類高效的搜索算法,在 O(log n) 的時間復雜度下查找答案,適用于單調性問題。C STL 的 lower_bo…

centos 新加磁盤分區動態擴容

你不能直接將一個分區分配給/dev/mapper/centos-root,因為這是一個邏輯卷(屬于 LVM 系統)。不過,你可以通過以下步驟將/dev/sda3添加到現有卷組或創建新的邏輯卷: 確認磁盤和分區信息 首先檢查分區是否已格式化以及是否…

python學智能算法(二十六)|SVM-拉格朗日函數構造

【1】引言 前序學習進程中,已經了解了拉格朗日乘數法求極值的基本原理,也了解了尋找最佳超平面就是尋找最佳分隔距離。 這篇文章的學習目標是:使用拉格朗日乘數法獲取最佳的分隔距離。 【2】構造拉格朗日函數 目標函數 首先是目標函數f&a…

智能制造——48頁畢馬威:汽車營銷與研發數字化研究【附全文閱讀】

涵蓋了汽車行業數字化轉型、汽車營銷業務能力建設(以會員管理為例)以及汽車研發與創新能力建設等議題。畢馬威認為,軟件定義汽車已成為汽車行業中的核心議題,并圍繞此議題提供了相關方案。在市場觀點方面,畢馬威與多家…

嵌入式學習-PyTorch(8)-day24

torch.optim 優化器torch.optim 是 PyTorch 中用于優化神經網絡參數的模塊,里面實現了一系列常用的優化算法,比如 SGD、Adam、RMSprop 等,主要負責根據梯度更新模型的參數。🏗? 核心組成1. 常用優化器優化器作用典型參數torch.op…

PostgreSQL實戰:高效SQL技巧

PostgreSQL PG 在不同領域可能有不同的含義,以下是幾種常見的解釋: PostgreSQL PostgreSQL(簡稱 PG)是一種開源的關系型數據庫管理系統(RDBMS),支持 SQL 標準并提供了豐富的擴展功能。它廣泛應用于企業級應用、Web 服務和數據分析等領域。 PostgreSQL 的詳細介紹 Po…

3-大語言模型—理論基礎:生成式預訓練語言模型GPT(代碼“活起來”)

目錄 1、GPT的模型結構如圖所示 2、介紹GPT自監督預訓練、有監督下游任務微調及預訓練語言模型 2.1、GPT 自監督預訓練 2.1.1、 輸入編碼:詞向量與位置向量的融合 2.1.1.1、 輸入序列與詞表映射 2.1.1.2、 詞向量矩陣與查表操作 3. 位置向量矩陣 4. 詞向量與…

【Redis 】看門狗:分布式鎖的自動續期

在分布式系統的開發中,保證數據的一致性和避免并發沖突是至關重要的任務。Redis 作為一種廣泛使用的內存數據庫,提供了實現分布式鎖的有效手段。然而,傳統的 Redis 分布式鎖在設置了過期時間后,如果任務執行時間超過了鎖的有效期&…

MYSQL--快照讀和當前讀及并發 UPDATE 的鎖阻塞

快照讀和當前讀在 MySQL 中,數據讀取方式主要分為 快照讀 和 當前讀,二者的核心區別在于是否依賴 MVCC(多版本并發控制)的歷史版本、是否加鎖,以及讀取的數據版本是否為最新。以下是詳細說明:一、快照讀&am…