3軸機器人各關節運動學建立,python編程,非常容易理解

分類:機器人學

一、問題描述

? 如右圖所示的三自由度機械臂,關節1和關節2相互垂直,關節2和關節3相互平行。如圖所示,所有關節均處于初始狀態。 ? 要求: (1) 定義并標注出各關節的正方向; (2) 定義機器人基坐標系{0}及連桿坐標系{1},{2},{3}; (3) 求變換矩陣 , , ; (4) 根據末端腕部位置 (x, y, z) 返求出對應關節 , , ; (5) 利用軟件繪制出機器人模型的三維點線圖,并控制機器人腕部沿半徑r=0.1的圓弧運動. ?

?

二、任務求解

2.1建立坐標系

?

?

2.2?變換矩陣

2.2.1?變換求解

??(1)連桿坐標系{1}——基坐標系{0}?? 原點重合,可繞z軸任意旋轉 ?

??(2)連桿坐標系{2}——連桿坐標系{1}?先繞x軸旋轉90°,再繞新得到的y軸旋轉90°,然后沿新得到的y軸平移 ,最后得到的坐標系可繞z軸任意旋轉 ???3)連桿坐標系{3}——連桿坐標系{2}?? 繞z軸旋轉-90°,再沿新得到的y軸平移 ,最后得到的坐標系可繞z軸任意旋轉 ??

2.2.2?物理意義求解

? 變換矩陣的前三列,每列值對應的數為變換坐標系的坐標軸x、y、z在基坐標系中的坐標位置,第四列為變換坐標系的原點在基坐標系中的坐標位置,第四行為齊次補行數據,則可根據坐標系的位置直接列出下式: ?

? 可見,兩種方式的結果表達式一致。

2.2.3?變換矩陣終解

?

?

2.3?逆運動學求解

2.3.1?矩陣逆推導

? 由連桿坐標系{3}到基座坐標系{0}的齊次矩陣可以表示為 ?

? 末端執行器的位置在基座坐標系{0}中的描述為 ?? 末端執行器的位置在基座坐標系{0}中的描述為 ?? 關系為: ?? 根據矩陣對應元素相等,由MATLAB計算可得可得下面等式: ?

x=-(7*cos(a2)*sin(a1))/25-(7*cos(a2)*sin(a1)*sin(a3))/20(7*cos(a3)*
sin(a1)*sin(a2))/20
y=(7*cos(a1)*cos(a2))/25+(7*cos(a1)*cos(a2)*sin(a3))/20+(7*cos(a1)*cos(a3)*sin(a2))/20
z=(7*sin(a2))/25 + (7*sin(a2)*sin(a3))/20 - (7*cos(a2)*cos(a3))/20 + 47/100

由 ?

? 則: ?? 由對應元素相等,得:

(x*cos(a1))/(cos(a1)^2 + sin(a1)^2) + (y*sin(a1))/(cos(a1)^2 + sin(a1)^2)=0(y*cos(a1))/(cos(a1)^2 + sin(a1)^2) - (x*sin(a1))/(cos(a1)^2 + sin(a1)^2)=(7*cos(a2))/25+(7*cos(a2)*sin(a3))/20+(7*cos(a3)*sin(a2))/20z=(7*sin(a2))/25 + (7*sin(a2)*sin(a3))/20 - (7*cos(a2)*cos(a3))/20 + 47/100

? 綜上可得, ?

?

2.3.2?幾何推導

? 在x0y平面,將末端執行器的軌跡投影到該平面,藍色表示原位置,橘色代表移動后的位置,黑色坐標系為基坐標系,如下圖: ?

? 由圖易見, 為末端執行器投影到xoy平面x與y的夾角,(逆時針為正), ?? 在y0z平面,將末端執行器的軌跡投影到該平面,藍色表示原位置,橘色代表移動后的位置,黑色坐標系為基坐標系,如下圖: ? ??? 將末端執行器的軌跡投影到下圖所示平面,藍色表示原位置,橘色代表移動后的位置,黑色坐標系為基坐標系,如下圖: ?? 構建直角三角形,可得: ?? 綜上,得各關節角與坐標位置的關系為: ??

三、D-H模型法求解

3.1?坐標系建立

? 0號桿件固連在基座上,建立基坐標系 ?

?

3.2 D-H參數

?

?

3.3?各關節變換矩陣

? 若已知四個參數就完全確定了兩連桿之間的相對關系。對此,我們建立基坐標系和連桿運動坐標系之間的變換關系。對于旋轉關節可以確定以下的齊次矩陣 ? 即先繞x軸旋轉, ?

? 然后沿x軸移動,再沿基坐標系的z軸移動d,最后繞z軸旋轉 ? 將參數代入上式,由此可以得到各關節變換矩陣 ??

3.4?求逆變換

? 同2.3.1 ?

四、軟件仿真

4.1?程序代碼

? 用軟件python(x,y)編寫代碼,如下: ?

?

4.2?仿真結果

?

運動學建模仿真Python

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

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

相關文章

ASP.Net中頁面傳值的幾種方式

大致概括一下,ASP.NET 頁面之間傳遞值得方式大致可以分為如下幾種:Request.QueryString["name"],Request.Form("name"),Session,Cookie,Cache,Application,Server.Transfer,Database,HttpContext的Item屬性,Files,DataBa…

Win 10 源碼一覽:0.5T 代碼、400 萬文件、50 萬文件夾

Windows 操作系統本身是不開源的,但是近日微軟內核工程師 Axel Rietschin 發表了一篇博客,帶大家一窺了 Windows 10 內核的魅力。 Axel 介紹,Windows 10 與 Windows 8.x、7、Vista、XP、2000 和 NT 的代碼庫是相同的,其中每一代都…

老齊python-基礎3(列表)

1、定義一個列表 >>> a [] #創建一個空列表 >>> type(a) #查看數據類型 <class list> >>> bool(a) #判斷非空 False >>> print(a) [] >>> a [2,3,tajzhang,] >>> a [2, 3, tajzhang] >&…

UWP 響應鍵盤組合快捷鍵

方法1&#xff1a;響應Ctrl&#xff1f;快捷鍵 首先在load事件或者keydown事件內注冊事件 public MainPage(){this.InitializeComponent();// Register for accelerator key events used for button hotkeysWindow.Current.CoreWindow.Dispatcher.AcceleratorKeyActivated Dis…

NDK 開發實戰 - 封裝 java 層 sdk 模型

關于 Ndk 開發&#xff0c;網上的資料比較少&#xff0c;這方面的書籍也不多。因為其涉及的知識非常廣&#xff0c;時常有哥們問我&#xff0c;東西那么多到底要學到什么程度呢&#xff1f;到底應該怎么學&#xff1f;這期我給大家來做一個簡單回答&#xff0c;首先單純站在 An…

JDK+Tomcat搭建JSP運行環境--JSP基礎

一、搭建JSP運行環境之前需要了解的基本知識 配置JSP運行環境之前&#xff0c;我們需要了解JSP的運行機制。只有了解JSP運行機制后&#xff0c;我們才能知道為什么要搭建JSP運行環境?如何去搭建JSP運行環境?為什么要配置Tomcat、JDK&#xff1f; JSP(Java Sever Page)即Java服…

Docker容器的自動化監控實現

本文由 網易云 發布。 近年來容器技術不斷成熟并得到應用。Docker作為容器技術的一個代表&#xff0c;目前也在快速發展中&#xff0c;基于 Docker的各種應用也正在普及&#xff0c;與此同時 Docker對傳統的運維體系也帶來了沖擊。我們在建設運維平臺的過程中&#xff0c;也需…

robotframework 常用關鍵字

標準庫 第三方庫 其他庫轉載于:https://www.cnblogs.com/Chamberlain/p/10729054.html

身份證的驗證

var Wi [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ]; // 加權因子 var ValideCode [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ]; // 身份證驗證位值.10代表X function checkIdcard(idCard) { idCard trim(idCard);//去掉字符串頭尾空格 if (idCard.length 15…

人工智能實戰小程序之語音_前端開發

1. 人工智能實戰小程序之準備工作 2. 人工智能實戰小程序之語音_前端開發 今天這部分主要講小程序前端功能的開發由于我偏后端&#xff0c;css是我的弱項&#xff0c;可能很多人和我一樣開發小程序不知道如何下手&#xff0c;希望本篇文章對你有幫助我的學習路線是&#xff1a;…

當TFS/VSTS遇上Power BI

引言眾所周知&#xff0c;要對TFS進行深入的圖表分析&#xff0c;往往需要依賴于SQL Server Analysis Service和SQL Server Reporting Service。雖然隨著TFS對敏捷項目的支持&#xff0c;內置了諸如累積流圖、燃盡圖等快捷圖表&#xff1b;并且在最新的版本中還可以在儀表盤和查…

HashMap深度解析:一文讓你徹底了解HashMap

寫在前面HashMap是Map族中最為常用的一種&#xff0c;也是 Java Collection Framework 的重要成員。本文首先給出了 HashMap 的實質并概述了其與 Map、HashSet 的關系&#xff0c;緊接著給出了 HashMap 在 JDK 中的定義&#xff0c;并結合源碼分析了其四種構造方式。最后&#…

Bzoj3628: [JLOI2014]天天酷跑

3628: [JLOI2014]天天酷跑 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 121 Solved: 44[Submit][Status][Discuss]Description 在游戲天天酷跑中&#xff0c;最爽的應該是超級獎勵模式了吧&#xff0c;沒有一切障礙&#xff0c;可以盡情的吃金幣&#xff0c;現在請你控制…

python_線程、進程和協程

線程 Threading用于提供線程相關的操作&#xff0c;線程是應用程序中工作的最小單元。 1 #!/usr/bin/env python2 #codingutf-83 __author__ yinjia4 5 6 import threading,time7 8 def show(arg):9 time.sleep(2) 10 print(線程: str(arg)) 11 12 for i in range(…

AppDelegate瘦身之服務化

有沒有覺得你的AppDelegate雜亂無章&#xff1f;代碼幾百行上千行&#xff1f;集成了無數的功能&#xff0c;如推送、埋點、日志統計、Crash統計等等&#xff0c;感覺AppDelegate無所不能。 來一段一般的AppDelegate代碼&#xff0c;來自網上一篇文章&#xff1a; UIApplicatio…

第四章:手機平板要兼顧-探究碎片

碎片是什么&#xff1f; 碎片&#xff08;Fragment&#xff09;是一種可以嵌入在活動&#xff08;Activity&#xff09;中的 UI 片段&#xff0c;它能讓程序更加合理和充分的利用大屏幕的空間&#xff0c;因而在平板上應用的非常廣泛。 碎片的使用方式 靜態嵌入動態加載碎片和活…

Android Studio 3.4增可視化資源管理工具 可管理和預覽項目資源

經過6個月的開發時間&#xff0c;網絡大廠17日發布了最新版的App開發IDE Android Studio 3.4&#xff0c;現在就能夠下載使用&#xff0c;除了有超過300個錯誤修護和穩定度增強之外&#xff0c;在開發、建置和測試App階段&#xff0c;都推出了一些小的新功能和工具&#xff0c;…

Python安裝、使用MySQL數據庫

本機安裝的python版本為Python 2.7(win32 bit) 從http://www.codegood.com/archives/129下載MySQL-python-1.2.3.win32-py2.7.exe&#xff0c;點擊安裝 如果是win版還需要下載&#xff1a;libguide40.dll 和 libmmd.dll這兩個文件&#xff0c;下載后放入到到C:\WINDOWS/syste…

pytorch 安裝

安裝pytorch時&#xff0c;官網不能選擇版本。原以為是瀏覽器問題&#xff0c;換了幾個瀏覽器都不行。 后來FQ之后&#xff0c;就能選擇版本了。 sudo pip install torch torchvision轉載于:https://www.cnblogs.com/rabitvision/p/8908757.html

《JavaScript 高級程序設計》精讀筆記

本系列讀書筆記是我通過學習《Javascript 高級程序設計》第3版時結合自己的理解、概括、精煉然后加以一定的拓展&#xff0c;總結而來的&#xff0c;非常適合具有一定基礎&#xff0c;同時又想把 JS 基礎學更好的童鞋&#xff0c;當然更希望得到大家的反饋于建議&#xff0c;比…