日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

和ur的区别_UR机械臂simscape正逆解仿真

發(fā)布時(shí)間:2025/3/19 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 和ur的区别_UR机械臂simscape正逆解仿真 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近在看相關(guān)的課程,把作業(yè)做一下,還是蠻有意思的。(課程代碼所以涉及版權(quán)問(wèn)題,經(jīng)過(guò)同意后我上傳代碼)

UR機(jī)械臂的物理模型文件是根據(jù)SolidWorks插件simscape導(dǎo)出的xml文件,課程直接提供的,博客不便給出,清楚整個(gè)建模原理就行。但個(gè)人還是覺(jué)得urdf文件好理解一些,可以人為控制各個(gè)坐標(biāo)系的方向、位置還有質(zhì)心的位置,不同機(jī)械臂的urdf文件可以自己在SolidWorks中建模然后利用sw2urdf插件直接導(dǎo)出urdf文件,這時(shí)就很好控制各個(gè)關(guān)節(jié)坐標(biāo)系的方向,便于后續(xù)正逆運(yùn)動(dòng)學(xué)問(wèn)題的解算驗(yàn)證。

xml文件和urdf兩者在simscape中的區(qū)別可以見(jiàn)上一篇博客Simscape建模筆記。

廢話不多說(shuō),直接上模型,理解其中的建模邏輯即可~

一般情況下,直接smimport('xxx.xml')之后(如果是urdf文件,則命令為smimport('xxx.urdf')),就會(huì)自動(dòng)在simulink中出現(xiàn)如下simscape模型。模型中各個(gè)模塊的性質(zhì)可以參考上一篇博客以及matlab官方文檔。

為了后面對(duì)模型進(jìn)行正逆運(yùn)動(dòng)學(xué)分析,需要將每個(gè)joint模塊,也就是上圖中的Revolute模塊中的部分性質(zhì)進(jìn)行修改,如下圖所示。這是為了實(shí)現(xiàn)控制,因此需要對(duì)其內(nèi)部屬性進(jìn)行修改,將Torque(轉(zhuǎn)矩)設(shè)置為Automatically Computed(自動(dòng)計(jì)算),Motion(動(dòng)力)設(shè)置為Provided by Input,這表示動(dòng)力由輸入提供,這意味著這個(gè)motion口相當(dāng)于系統(tǒng)的輸入口。除此之外,還需要勾選傳感器Position和Velocity的信號(hào)。

通過(guò)這幾個(gè)步驟之后,很容易就明白這樣做的目的,這次作業(yè)只是從位置控制模式上進(jìn)行建模,因此只是將Actuation致動(dòng)端的Motion模式改成由輸入提供,這個(gè)時(shí)候通過(guò)改變Specify Position Target中Value值的單位也就可以確定Motion輸入端的單位,更簡(jiǎn)單來(lái)說(shuō)就是指Motion端輸入多少角度(弧度),這個(gè)Revolute Joint就會(huì)對(duì)應(yīng)地相對(duì)零點(diǎn)位置轉(zhuǎn)動(dòng)多少角度(弧度);如果是從力矩控制模式上進(jìn)行建模,則可以把Actuation致動(dòng)段的Torque模式改成由輸入提供。

另外,可以發(fā)現(xiàn)這個(gè)Revolute Joint方框框右邊除了坐標(biāo)變換用的F口之外,又多出了q和w口,這兩個(gè)口就是咱們前面設(shè)定的Sensing傳感器中Position和Velocity口,可以直接輸出joint實(shí)時(shí)的位置與速度信號(hào),單位對(duì)應(yīng)于前面設(shè)置的角度輸入信號(hào)。

最后需要將每個(gè)Joint模塊連接成如上圖所示,需要注意的地方是simscape在simulink中建模時(shí)的信號(hào)類型轉(zhuǎn)換為題。一般simulink中常用的信號(hào)是這個(gè)環(huán)境中的模擬值,而此處simscape模型的輸入及輸出值則需要是物理量信號(hào),存在一個(gè)信號(hào)類型的問(wèn)題。簡(jiǎn)單從上圖中也可以進(jìn)行分辨,物理信號(hào)通常連接的是圓圈,引出的是帶點(diǎn)兒紅色的線,而simulink中常用的模擬量則連接的是箭頭,引出的直接是普通黑線,這兩個(gè)是無(wú)法連接到一塊兒的,解決辦法就是下圖。。。找出各自對(duì)應(yīng)的輸入輸出模塊即可。后面也會(huì)涉及到PS-simulink和simulink-PS轉(zhuǎn)換模塊的使用。

另外有個(gè)問(wèn)題,就是上圖中初始角度設(shè)定的問(wèn)題。首先講一下為啥要有這個(gè)初始角度,因?yàn)橐话銠C(jī)械臂建模時(shí)通常是在各個(gè)關(guān)節(jié)變量為0的狀態(tài)下進(jìn)行建模(不管是SDH還是MDH下),你就會(huì)發(fā)現(xiàn)一些機(jī)械臂理論建模的初始狀態(tài)與實(shí)際使用中的初始狀態(tài)不一樣,就比如UR機(jī)械臂吧,理論建模時(shí)初始狀態(tài)是下圖左邊這樣。。。而實(shí)際中你會(huì)發(fā)現(xiàn)UR臂初始狀態(tài)是豎直的,也就是下圖右邊這樣。。。所以問(wèn)題就來(lái)了,需要在關(guān)節(jié)角2和關(guān)節(jié)角4設(shè)置偏置,這也就是上圖中初始角Constant設(shè)置的原因。。。但是個(gè)人認(rèn)為不需要這么做,只需要將相應(yīng)Joint中Specify Position Target中Value值改成偏置角即可。。。但是轉(zhuǎn)念一想吧,設(shè)置Constant也方便后期修改,甚至在后期將整個(gè)系統(tǒng)封裝成Mask時(shí)也方便設(shè)置Mask中的變量,便于用戶使用。

每個(gè)Joint都設(shè)置一下,然后為了方便起見(jiàn)把每個(gè)Joint的輸出量弄成Goto,然后將所有的位置Goto弄成一個(gè)輸出口,將所有的速度Goto弄成一個(gè)輸出口,看起來(lái)美觀一些,也減少了模型封裝輸出口的數(shù)量,便于后期處理。

OK,全選所有模塊,然后Ctrl+G一下,Bingo~ 你就得到如下封裝的robot模塊了,里面包含了機(jī)械臂的物理模型,看起來(lái)清爽明亮又美麗~

添加驅(qū)動(dòng)模塊,我選用的是課程提供的永磁同步電機(jī)模塊,便于后期做位置控制用。需要注意的是,上面robot模塊接收的motion信號(hào)是simscape的物理量信號(hào),因此你的driver也需要輸出相應(yīng)類型的信號(hào),以此來(lái)驅(qū)動(dòng)機(jī)械臂關(guān)節(jié)運(yùn)動(dòng)。需要添加下面的simulink-PS模塊進(jìn)行信號(hào)類型的轉(zhuǎn)換,對(duì)應(yīng)的還有PS-simulink。

先進(jìn)行正運(yùn)動(dòng)學(xué)仿真。。。

再進(jìn)行逆運(yùn)動(dòng)學(xué)仿真。。。

UR逆解算法全網(wǎng)遍地都是,主要理解一下simulink+simscape機(jī)械臂正逆解仿真的過(guò)程即可。。。

總結(jié)

以上是生活随笔為你收集整理的和ur的区别_UR机械臂simscape正逆解仿真的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。