機器人 標準DH與改進DH

文章目錄

  • 1 建立機器人坐標系
    • 1.1 連桿編號
    • 1.2 關節編號
    • 1.3 坐標系方向
  • 2 標準DH(STD)
    • 2.1 確定X軸方向
    • 2.2 建模步驟
    • 2.3 變換順序
    • 2.4 變換矩陣
  • 3 改進DH(MDH)
    • 3.1 確定X軸方向
    • 3.2 建模步驟
    • 3.3 變換順序
    • 3.4 變換矩陣
  • 4 標準DH與改進DH區別
  • 5 Matlab示例
  • 參考鏈接

1 建立機器人坐標系

1.1 連桿編號

基座為桿0,從基座往后依次定義為桿1,桿2,…,桿i;

1.2 關節編號

桿i離基座近的一端(近端)的關節為關節i,遠的一端(遠端)為關節i+1。
在這里插入圖片描述

1.3 坐標系方向

  1. 確定Z軸,如果關節是旋轉的,Z軸按右手定則,大拇指指向為正方向,關節轉角θ為關節變量。如果關節是移動的,Z軸定在沿直線運動方向的正方向,連桿偏移d為關節變量。
  2. 確定X軸,情況一:兩關節Z軸既不平行也不相交,即呈異面直線時。則取兩Z軸公垂線方向作為X軸方向。
    情況二:兩關節Z軸平行。此時,兩Z軸之間有無數條公垂線,可挑選與前一關節的公垂線共線的一條公垂線。
    情況三:兩關節Z軸相交。則取兩條Z軸的叉積方向作為X軸(叉積:向量積)
  3. 確定Y軸,通過右手定則確定Y軸的方向。大拇指指向Z軸的方向,以x軸為準,逆時針旋轉90°的方向為y軸的方向。

2 標準DH(STD)

2.1 確定X軸方向

X軸的方向取當前的Z軸和前一個關節Z軸( Z i ? 1 Z_{i-1} Zi?1?軸)的叉乘方向,根據右手定則:由 Z i ? 1 Z_{i-1} Zi?1?軸轉向Z軸,大拇指方向即為X軸方向。可以簡便的取為由 Z i ? 1 Z_{i-1} Zi?1?軸指向Z軸,公垂線方向即是X軸的方向。
在這里插入圖片描述

2.2 建模步驟

  1. z i ? 1 z_{i-1} zi?1?軸旋轉 θ i \theta_i θi?,使得 x i ? 1 x_{i-1} xi?1? x i x_i xi?平行;
  2. 沿 z i ? 1 z_{i-1} zi?1?軸平移 d i d_i di?,使得 x i ? 1 x_{i-1} xi?1? x i x_i xi?重合;
  3. 沿 x i x_{i} xi?軸平移 a i a_i ai?,使得 z i ? 1 z_{i-1} zi?1? z i z_i zi?重合;
  4. x i x_{i} xi?軸旋轉 α i \alpha_i αi?,使得 z i ? 1 z_{i-1} zi?1? z i z_i zi?共線;

2.3 變換順序

STD-DH方法變換時四個參數相乘的順序依次為 θ → d → a → α \theta \to d \to a \to \alpha θdaα

2.4 變換矩陣

R o t ( z i ? 1 , θ i ) = [ cos ? θ i ? s i n θ i 0 0 sin ? θ i cos ? θ i 0 0 0 0 1 0 0 0 0 1 ] \mathrm{Rot(z_{i-1},\theta_i)}=\begin{bmatrix}\cos\theta_\mathrm{i}&-\mathrm{sin\theta_i}&0&0\\\sin\theta_\mathrm{i}&\cos\theta_\mathrm{i}&0&0\\0&0&1&0\\0&0&0&1\end{bmatrix} Rot(zi?1?,θi?)= ?cosθi?sinθi?00??sinθ

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

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

相關文章

Elasticsearch:如何創建搜索引擎

作者:Jessica Taylor 搜索引擎是生活中我們認為理所當然的事情之一。 每當我們尋找某些東西時,我們都會將一個單詞或短語放入搜索引擎,就像魔術一樣,它會為我們提供一個匹配結果列表。 現在可能感覺不那么神奇了,因為這…

Go-知識struct

Go-知識struct 1. struct 的定義1.1 定義字段1.2 定義方法 2. struct的復用3. 方法受體4. 字段標簽4.1 Tag是Struct的一部分4.2 Tag 的約定4.3 Tag 的獲取 githupio地址:https://a18792721831.github.io/ 1. struct 的定義 Go 語言的struct與Java中的class類似&am…

第二十三章 :Docker 部署 Redis

第二十三章 :Docker Redis 部署 Docker version 25.0.3, build 4debf41 ,Docker Compose version v2.24.2Redis-6.0.6 鏡像 redis:6.0.6-alpineRedis-6.0.6版本 部署規劃 服務器IP192.168.92.105端口6379安裝目錄/home/work/docker-redis-6.0.6數據映射目錄/home/work/do…

最簡單的基于 FFmpeg 的收流器(以接收 RTMP 為例)

最簡單的基于 FFmpeg 的收流器(以接收 RTMP 為例) 最簡單的基于 FFmpeg 的收流器(以接收 RTMP 為例)正文結果工程文件下載參考鏈接 最簡單的基于 FFmpeg 的收流器(以接收 RTMP 為例) 參考雷霄驊博士的文章…

藍凌OA frpt_listreport_definefield.aspx接口存在SQL注入漏洞

免責聲明:文章來源互聯網收集整理,請勿利用文章內的相關技術從事非法測試,由于傳播、利用此文所提供的信息或者工具而造成的任何直接或者間接的后果及損失,均由使用者本人負責,所產生的一切不良后果與文章作者無關。該…

DevStack 部署 OpenStack

Devstack 簡介 DevStack 是一系列可擴展的腳本,用于基于 git master 的最新版本快速調出完整的 OpenStack 環境。devstack 以交互方式用作開發環境和 OpenStack 項目大部分功能測試的基礎。 devstack 透過執行 stack.sh 腳本,搭建 openstack 環境&…

lv20 QT主窗口4

熟悉創建主窗口項目 1 QAction 2 主窗口 菜單欄:fileMenu menuBar()->addMenu(tr("&File")); 工具欄:fileToolBar addToolBar(tr("File")); 浮動窗:QDockWidget *dockWidget new QDockWidget(tr("Dock W…

Threejs之精靈模型Sprite

參考資料 精靈模型Sprite…Sprite模擬下雨、下雪 知識點 注:基于Three.jsv0.155.0 精靈模型Sprite精靈模型標注場景(貼圖)Sprite模擬下雨、下雪 精靈模型Sprite Three.js的精靈模型Sprite和Threejs的網格模型Mesh一樣都是模型對象,父類都是Object3…

【設計者模式】單例模式

文章目錄 1、模式定義2、代碼實現(1)雙重判空加鎖方式兩次判空的作用?volatile 關鍵字的作用?構造函數私有? (2)靜態內部類【推薦】(3)Kotlin中的單例模式lateinit 和 by…

Matlab 最小二乘插值(曲線擬合)

文章目錄 一、簡介二、實現代碼三、實現效果參考資料一、簡介 在多項式插值時,當數據點個數較多時,插值會導致多項式曲線階數過高,帶來不穩定因素。因此我們可以通過固定冪基函數的最高次數 m(m < n),來對我們要擬合的曲線進行降階。之前的函數形式就可以變為: 二、實現…

spring Boot 報錯RedisConnectionFailureException

錯誤描述&#xff1a; 錯誤重點&#xff1a;&#xff08;圖片中藍色區域&#xff09; Unable to connect to Redis; 無法連接到Redis Unable to connect to 127.0.0.1 無法連接到本地服務器 所以&#xff0c;錯誤是本地服務器沒有連接上Redis所引起的 錯誤解析…

vue3中的父傳子,子傳父

在Vue 3中&#xff0c;父組件向子組件傳遞數據和子組件向父組件通信的方式與Vue 2非常相似&#xff0c;但Vue 3提供了Composition API和更多的響應式API&#xff0c;為組件間的通信提供了更多的可能性。下面是父傳子和子傳父的基本方法&#xff1a; ### 父組件傳遞數據給子組件…

【InternLM 實戰營筆記】使用SDK接口上傳模型到OpenXLab

概述 浦源內容平臺-模型中心的Python SDK旨在為開發人員提供編程方式來管理和操作模型中心平臺的功能&#xff0c;以便他們可以輕松地與模型中心進行交互和模型管理。通過Python SDK提供的推理接口&#xff0c;開發人員能夠高效地調用不同的模型&#xff0c;實現模型應用的開發…

遞歸實現排列型枚舉(c++題解)

題目描述 把 1~n 這 n(n<10) 個整數排成一行后隨機打亂順序&#xff0c;輸出所有可能的次序。 輸入格式 一個整數n。 輸出格式 按照從小到大的順序輸出所有方案&#xff0c;每行1個。 首先&#xff0c;同一行相鄰兩個數用一個空格隔開。其次&#xff0c;對于兩個不同的…

Linux——進程控制(二)進程等待

目錄 前言 一、進程等待 二、如何進行進程等待 1.wait 2.waitpid 2.1第二個參數 2.2第三個參數 3. 等待多個進程 三、為什么不用全局變量獲取子進程的退出信息 前言 前面我們花了大量的時間去學習進程的退出&#xff0c;退出并不難&#xff0c;但更深入的學習能為本…

048 異常

什么是異常 異常體系結構 異常的繼承關系 Error Exception 異常處理機制 try&#xff1a;用{}將可能產生異常的代碼包裹catch&#xff1a;與try搭配使用&#xff0c;捕獲try包裹代碼中拋出的異常并進行后續動作finally&#xff1a;跟在try后&#xff0c;在try和catch之后執行…

web3時事粥報

比特幣正成為更具有吸引力的通脹對沖工具 在通脹的宏觀經濟浪潮中&#xff0c;比特幣正逐漸嶄露頭角&#xff0c;成為那些渴望多元化投資組合的投資者眼中的璀璨明星。Kooner 預測&#xff0c;2024年&#xff0c;各種宏觀經濟挑戰可能進一步提升比特幣、黃金和白銀等資產的避險…

3月3日做題總結(C/C++真題)

第一題 參加位運算的數據其類型不能是&#xff08;&#xff09;。 A---int B---char C---float D---long int 正確答案&#xff1a;C 解析&#xff1a;無論是float&#xff0c;還是double&#xff0c;在內存中的存儲分為三部分&#xff1a;符號位、指數位、尾數位&#…

Google Dremel和parquet的復雜嵌套數據結構表征方法解析

轉載請注明出處。作者&#xff1a;archimekai 核心參考文獻&#xff1a; Dremel: Interactive Analysis of Web-Scale Datasets 文章目錄 引言復雜嵌套數據結構的無損表征問題Dremel論文中提出的表征方法parquet備注 引言 Dremel是Google的交互式分析系統。Google大量采用prot…

全量知識系統問題及SmartChat給出的答復 之17 知識系統中的兩個特權類(超類和欠類) :腳本和場景

Q.45 知識系統中的兩個特權類 &#xff1a;腳本和場景 知識系統中的兩個特權類&#xff08;也是集合論中兩個特權集合&#xff09;&#xff1a;腳本script和場景scene 。 一個$Demonstrate類型的腳本script&#xff1a; 表示“值val”&#xff08; 形式上是應用程序的實用工…