matlab機器人工具箱基礎使用

資料:https://blog.csdn.net/huangjunsheng123/article/details/110630665

用vscode直接看工具箱api代碼比較方便,代碼說明很多

一、模型設置

1、基礎效果

%采用機器人工具箱進行正逆運動學驗證
a=[0,-0.3,-0.3,0,0,0];%DH參數
d=[0.05,0,0,0.06,0.05,0.04];
alp=[pi/2,0,0,pi/2,-pi/2,0];
%機器人工具箱模型,每一個L建立一個連桿,輸入DH參數即可,offset是連桿的初始偏移量,此處為0
L(1) = Link('d', d(1), 'a', a(1), 'alpha', alp(1));
L(2) = Link('d', d(2), 'a', a(2), 'alpha', alp(2), 'offset', 0 );
L(3) = Link('d', d(3), 'a', a(3), 'alpha', alp(3), 'offset', 0 );
L(4) = Link('d', d(4), 'a', a(4), 'alpha', alp(4), 'offset',0);
L(5) = Link('d', d(5), 'a', a(5), 'alpha', alp(5));
L(6) = Link('d', d(6), 'a', a(6), 'alpha', alp(6));
bot = SerialLink(L,'name','rbt');%將六個連桿組合起來 
figure(1)
bot.display();%顯示機器人模型
view(3)
bot.teach;

2、link的常用屬性

運動學參數
%  theta        kinematic: joint angle   關節角度
%  d            kinematic: link offset   
%  a            kinematic: link length
%  alpha        kinematic: link twist   %  jointtype    kinematic: 'R' if revolute, 'P' if prismatic    關節類型
%  mdh          kinematic: 0 if standard D&H, else 1                參數類型(標準/改進)
%  offset       kinematic: joint variable offset                            關節變量偏移量(設置新零點)
%  qlim         kinematic: joint variable limits [min max]       關節變量限制范圍
動力學參數
%  m            dynamic: link mass   連桿質量
%  r            dynamic: link COG wrt link coordinate frame 3x1   質心
%  I            dynamic: link inertia matrix, symmetric 3x3, about link COG.  慣性張量
%  B            dynamic: link viscous friction (motor referred)     連桿粘性摩擦
%  Tc           dynamic: link Coulomb friction                   連桿庫侖摩擦
%-
%  G            actuator: gear ratio                減速比
%  Jm           actuator: motor inertia (motor referred)    電機慣量

二、運動學

1、正逆運動學

q=[1,-1,1,-1,1,1];%給定初始角度
T_rbt = bot.fkine(q);%采用機器人工具箱函數求正運動學
q_rbt = bot.ikine(T_rbt,'q0',q)%采用RTB的逆運動學計算上邊得到的齊次矩陣對應的關節角度,給定初始值可以更快的收斂到給定的角度

2、雅各比矩陣

bot.jacob0()   關于絕對坐標系的雅各比矩陣
bot.jacobn()  關于工作坐標系的雅各比矩陣

三、動力學

1、查看動力學參數

bot.dyn()

2、正逆動力學

bot.nofriction()                                                     //無摩擦力動力學模型
bot.accel(角度,角速度,外力矩陣)              //計算關節加速度bot.fdyn(時間,外力矩陣)                                                                               //正動力學
bot.rne(角度,角速度,角加速度,重力加速度,輸出動力要求)    //逆動力學

3、計算動力學方程

bot.gravload()    //G
bot.inertia()       //M
bot.coriolis()     //V
bot.payload()    //有效載荷

四、例子:二自由度平面機械臂

syms Ix1 Iy1 Iz1 Ix2 Iy2 Iz2
syms q1 q2 m1 m2 L1 L2
syms qd1 qd2 g 
%%%%%%%%%%%%%%%%%%%1、設置運動學參數%%%%%%%%%%%%%%%%%%%
a=[0,L1,L2];%DH參數
d=[0,0,0];
alp=[0,0,0];q = [q1,q2,0];
qd = [qd1,qd2,0];L(1) = Link('d', d(1), 'a', a(1), 'alpha', alp(1),'modified');        %'modified'代表使用改進dh法
L(2) = Link('d', d(2), 'a', a(2), 'alpha', alp(2),'modified');
L(3) = Link('d', d(3), 'a', a(3), 'alpha', alp(3),'modified');
bot = SerialLink(L,'name','rbt');                                                       %將三個連桿組合起來,形成機器人 
%%%%%%%%%%%%%%%%%%%2、設置動力學參數%%%%%%%%%%%%%%%%%%%
%質量
bot.links(1).m=m1;
bot.links(2).m=m2;
bot.links(3).m=0;
%質心
bot.links(1).r=[L1/2,0,0];
bot.links(2).r=[L2/2,0,0];
bot.links(3).r=[0,0,0];
%轉動慣量
bot.links(1).I = [Ix1, Iy1, Iz1, 0, 0,0];
bot.links(2).I= [Ix2, Iy2, Iz2,0, 0,0];
bot.links(3).I = [0, 0, 0, 0, 0,0];
%重力
bot.gravity=[0;0;-g];bot.dyn();    %顯示所有桿的動力學參數
%%%%%%%%%%%%%%%%%%%3、計算運動學參數%%%%%%%%%%%%%%%%%%%
T = bot.fkine(q);            %機器人正運動學,輸入關節角度,輸出T_e^0
J = bot.jacob0(q);         %計算雅各比矩陣,基于世界坐標的
%%%%%%%%%%%%%%%%%%%4、計算動力學參數%%%%%%%%%%%%%%%%%%%
M = bot.inertia(q);             %關節空間質量矩陣
V = bot.coriolis(q,qd);      %計算離心力和科氏力矢量,注意這里給出的是矩陣V,V*qd才等于計算出的向量V(qd)
G = bot.gravload(q);         %重力矢量
%%%%%%%%%%%%%%%%%%%5、正逆運動學%%%%%%%%%%%%%%%%%%%
%逆運動學,角度(不是微分運動學)
theta1 = bot.ikine(T,'mask',[1,1,1,0,0,0],'q0',[0,0,0]);   %T代表的是工作點的位姿,輸出各個關節角度,q0是基座坐標,mask是關節小于6個時選擇開啟的
theta2 = bot.ikunc(T); 
%%正逆微分運動學
%%%%%%%%%%%%%%%%%%%6、正逆動力學%%%%%%%%%%%%%%%%%%%
bot_nf=bot.nofriction();   %設置沒有摩擦力  %其實就是根據關節力矩和作用力矩+初始q和qd算qdd,再根據qdd更新q和qd
%句柄那里不可以用[1,2,3,4,5,6]這樣賦值了,可以直接給[]就是不給力
%0.4是時間間隔,@函數句柄(函數需要特別設置,因為要解算方程),第一個qz是q0,第二個qz是qd0,5和1就是函數句柄的參數
%輸出就是一系列t、q、qd[t q qd] = p560.nofriction().fdyn(0.4, @test1, qz,qz,5,1);torqfun = [0,30,6];                %設定一組關節力
qdd = bot_nf.accel(q(i,:),qd(i,:),torqfun);  %獲得中間量的辦法,fdyn應該調用了accelfprintf("-----------------------")
%逆動力學
tau = bot.rne(q, qd, qdd, 'gravity',[0,9.8,0],'fext',[0,0,0,0,0,0]);%fext是外力

test1.m

function tau = test1(t,q,qd,qstar,P,D)
tau=P*(qstar-q) + D*qd;
tau =[0,0,0,0,0,0];
end

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

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

相關文章

教育行業軟文怎么寫,媒介盒子無償分享

隨著產業升級和技術變革、信息的智能化、數字化發展,也為教育行業帶來了新的增長點,在線教育課程類型豐富多元,新課程不斷涌現。在激烈的市場競爭環境下,教育機構如何根據市場實行差異化戰略并加強自身品牌建成為挑戰。 如今&…

微服務-Ribbon(負載均衡)

負載均衡的面對多個相同的服務的時候,我們選擇一定的策略去選擇一個服務進行 負載均衡流程 Ribbon結構組成 負載均衡策略 RoundRobinRule:簡單的輪詢服務列表來選擇服務器AvailabilityFilteringRule 對兩種情況服務器進行忽略: 1.在默認情…

Php“牽手”拼多多商品詳情頁數據采集方法,拼多多API接口申請指南

拼多多詳情接口 API 是開放平臺提供的一種 API 接口,它可以幫助開發者獲取商品的詳細信息,包括商品的標題、描述、圖片等信息。在電商平臺的開發中,詳情接口API是非常常用的 API,因此本文將詳細介紹詳情接口 API 的使用。 一、拼…

315官方點贊!多燕瘦或將成酵素選購唯一標準

食用酵素及其衍生產品,是近年來國內主流電商平臺的主要增長類目之一。在全球范圍內,酵素的流行由來已久,其中在日本、北美、歐洲等發達國家和地區尤為風靡。據不完全統計:歐洲酵素市場規模約占全球酵素市場份額的40%以上&#xff…

【Linux】一切皆文件

Linux 下一切皆為文件, 文件包括頭文件,庫文件(靜態庫和共享庫),可執行文件,目錄文件,軟鏈接文件,配置文件等。 每個文件都依據權限分為用戶、用戶組和其他人三個身份,…

webpack相關面試

運行 npm run xxx 的時候發生了什么? npm run xxx的時候,首先會去項目的package.json文件里找scripts 里找對應的xxx,然后執行 xxx的命令 npm i 的時候,npm 讀到該配置后,就將該文件軟鏈接到 ./node_modules/.bin 目錄…

vscode conda activate激活環境出錯

vscode conda activate 出錯 conda-script.py: error: argument COMMAND: invalid choice: ‘activate’ To initialize your shell, run$ conda init <SHELL_NAME>Currently supported shells are:- bash- fish- tcsh- xonsh- zsh- powershellSee conda init --help f…

自定義Android滑塊拼圖驗證控件

自定義Android滑塊拼圖驗證控件 拼圖認證視圖默認策略工具類參考 1、繼承自AppCompatImageView&#xff0c;兼容ImageView的scaleType設置&#xff0c;可設置離線/在線圖片。 2、通過設置滑塊模型&#xff08;透明背景的圖形塊&#xff09;設置滑塊&#xff08;和缺省塊&#x…

【HarmonyOS北向開發】-01 HarmonyOS概述

飛書原文鏈接-【HarmonyOS北向開發】-01 HarmonyOS概述https://fvcs2dhq8qs.feishu.cn/docx/TDf2d2KMaoPSUUxnvg2cASDdnCe?fromfrom_copylink

Leetcode-每日一題【劍指 Offer 20. 表示數值的字符串】

題目 請實現一個函數用來判斷字符串是否表示數值&#xff08;包括整數和小數&#xff09;。 數值&#xff08;按順序&#xff09;可以分成以下幾個部分&#xff1a; 若干空格一個 小數 或者 整數&#xff08;可選&#xff09;一個 e 或 E &#xff0c;后面跟著一個 整數若干空…

xcode把包打到高版本的iPhone里

打開xcode CTRLb build工程&#xff0c;build成功 把手機連到mac&#xff0c;在xcode選項卡里面的window里面選中device and simulator 打開對應的手機的頁面 然后在工程目錄下build成功過后有一個product的文件夾里面&#xff0c;直接把app拖到對應的手機的窗口就可以不用…

指針和數組簡單填空題合集(純刷題:60道)

前言 本篇文章適合初學指針和數組的朋友&#xff0c;如果您看了前幾組題覺得很簡單&#xff0c;可以看一看我的另一篇文章。 通過本篇文章&#xff0c;你可以清晰的區分出strlen和sizeof的區別&#xff0c;&#xff08;題目類型包括一維數組、二維數組&#xff09;并提高自己…

Linux NTP原理及配置使用

一、NTP簡介 1.NTP簡介 NTP&#xff08;Network Time Protocol&#xff0c;網絡時間協議&#xff09;是用來使網絡中的各個計算機時間同步的一種協議。它的用途是把計算機的時鐘同步到世界協調時UTC&#xff0c;其精度在局域網內可達0.1ms&#xff0c;在互聯網上絕大多數的…

CSS自學框架之動畫

這一節&#xff0c;自學CSS動畫。主要學習了淡入淡出、淡入縮放、縮放、移動、旋轉動畫效果。先看一下成果。 優雅的過渡動畫&#xff0c;為你的頁面添加另一份趣味&#xff01; 在你的選擇器里插入 animation 屬性&#xff0c;并添加框架內置的 keyframes 即可實現&#xff0…

《Kubernetes部署篇:Ubuntu20.04基于外部etcd+部署kubernetes1.24.16集群(多主多從)》

一、架構圖 如下圖所示: 二、環境信息 1、部署規劃 主機名K8S版本系統版本內核版本IP地址備注k8s-master-631.24.16Ubuntu 20.04.5 LTS5.15.0-69-generic192.168.1.63master節點 + etcd節點k8s-master-641.24.16Ubuntu 20.04.5 LTS5.15.0-69-generic192.168.1.64master節點 + …

【抖音直播小玩法】介紹

一、是什么 直播小玩法是基于抖音直播場景的新型實時互動內容。直播小玩法由開發者自主開發&#xff0c;接入平臺并開放給抖音主播掛載使用。開發者提供創意&#xff0c;依托平臺生態&#xff0c;獲取收益。 介入標準&#xff1a; 企業開發者&#xff0c;暫不支持個人開發者…

DAMO-YOLO:實時目標檢測設計的報告

ReadPaperhttps://readpaper.com/pdf-annotate/note?pdfId4748421678288076801eId1920373270663763712 Abstract 在本報告中&#xff0c;我們提出了一種快速準確的目標檢測方法&#xff0c;稱為DAMO-YOLO&#xff0c;它比最先進的YOLO系列實現了更高的性能。DAMO-YOLO 通過…

C++ Primer Plus: 第10章(2)

第10章編程題&#xff1a; &#xff08;1&#xff09; Account.h: #ifndef ACCOUNT_H_ #define ACCOUNT_H_#include <string>class Account { private:std::string name ;std::string code ;double money ; public:Account() ;Account(std::string Name, std::string Co…

Vue history和hash模式

目錄 一、簡介 一、簡介 ~~~~~~~~ 在Vue.js中&#xff0c;路由模式是用來管理應用程序中不同頁面之間的導航的機制。Vue Router支持兩種常見的路由模式&#xff1a;history模式和hash模式。 History 模式&#xff1a; ~~~~~~~~ History模式使用瀏覽器的history.pushState API …

紅帆OA SQL注入漏洞復現

0x01 產品簡介 紅帆iOffice.net從最早滿足醫院行政辦公需求&#xff08;傳統OA&#xff09;&#xff0c;到目前融合了衛生主管部門的管理規范和眾多行業特色應用&#xff0c;是目前唯一定位于解決醫院綜合業務管理的軟件&#xff0c;是最符合醫院行業特點的醫院綜合業務管理平…