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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ROS 之 KUKA iiwa编程

發(fā)布時間:2024/3/26 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ROS 之 KUKA iiwa编程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

?

背景介紹

ROS API說明

ROS環(huán)境搭建


背景介紹

目前,市面上大多數(shù)的拖動試教機器人是UR的協(xié)作機器人和DLR-KUKA的iiwa機器人,相比于UR機器人,iiwa機器人在結構上有一點重要的不同。

UR在每個關節(jié)上采取的是雙編碼器的方式,分別測量電機角度和連桿角度。而iiwa機器人在每個關節(jié)上還加入了一個單軸力矩傳感器(一般位于減速器輸出端與末端連桿間),用于測量每個關節(jié)的輸出力矩。如圖所示,iiwa在牽引拖動時表現(xiàn)更好,同時iiwa機器人擁有更小的運動盲區(qū)。用戶可以施加更小的力就可以牽著機器人按其意圖運動,而不會擔心機械臂運動受限。

?

ROS API說明

以iiwa為代表的七軸機械臂在高精度的工作中有著很重要的應用,但是作為以java語言為驅動的機械臂,相較于以python為驅動的UR機械臂而言,其上手難度更高,難以去進行二次開發(fā)。之前常用的開發(fā)主要通過SunriseWorkbench等軟件進行的開發(fā)。難以滿足現(xiàn)有的分布式控制需求。為此也有很多人通過使用ROSjava來對iiwa機器人進行開發(fā)。但是ROSjava已在幾年前停止了維護。為此本文嘗試通過TCP+ROS+Python的搭建方法來滿足機械臂的驅動需求。本文為KUKA-iiwa 智能機器人提供了應用程序編程接口(API)。來支持后續(xù)的iiwa開發(fā)工作。該API建立在KUKA iiwa內(nèi)核安全性的基礎上,可實現(xiàn)緊密的工作并與操作員進行交互。它將功能引入了機器人操作系統(tǒng)(ROS),后者提供了一個分布式開發(fā)環(huán)境,同時允許多種新的設備形式輕松地進行接口。

?

API架構

開發(fā)的API設計得很簡單,通過TCP通訊建立出一套方便與ROS交互開發(fā)的平臺。API體系結構側重于突破通常在Smartpad上運行的KUKA Sunrise控制器中可用的功能。通過使用下圖所示的通用結構,可以看到該體系結構擴展了KUKA LBR iiwa的功能。API公開了在機器網(wǎng)絡上操作的接口。這允許在KUKA LBR iiwa的操作中輕松部署和利用不同的傳感方法和額外的計算資源。

?

KUKA-iiwa的守護程序還處理一些低級但通用和關鍵的控制任務,例如碰撞檢測。這樣的操作可以給我們的二次開發(fā)提供基礎的安全保障。ROS-KUKA節(jié)點也以Python腳本語言實現(xiàn),通過訂閱ROS節(jié)點來使KUKA守護程序和ROS主節(jié)點之間起到中間接口的作用。通過python訂閱來自其他控制ROS節(jié)點的命令,并將它們傳遞給KUKA服務端。這樣可以實現(xiàn)良好的外部擴展。同樣,它從KUKA服務端接收感官和狀態(tài)信息,并通過ROS將其其發(fā)布到python中。從而實現(xiàn)在計算機上不安裝KUKA Sunrise OS即可外部運行此ROS-KUKA節(jié)點,這意味著無需修改KUKA Sunrise Cabinet。因此,保留了KUKA提供的安全協(xié)議,并且添加了功能而不是對其進行了更改。無需在Sunrise OS上安裝第三方軟件(例如ROS),只需使用基于標準Sunrise的應用程序就可以設置KUKA iiwa ROS接口。

下表列出了可通過API調(diào)用的ROS主題以讀取KUKA-iiwa內(nèi)部的參數(shù)

訂閱主題名稱描述例子
JointPosition [A1,A2,A3,A4,A5,A6,A7]time對應了iiwa7個自由度JointPosition [0.0, 0.17, 0.0, 1.92, 0.0,0.35, 0.0] 1459253274.1
ToolPosition [X, Y, Z, A, B, C] time工具末端的位置以及三個旋轉量ToolPosition [433.59711426170867,0.028881929589094864,
601.4449734558293,3.1414002368275726,
1.0471367465304213,3.141453681799645] 1459253274.11
ToolForce [X, Y, Z] time力模式施加的力ToolForce [13.485958070668463,0.3785658886199012,
5.964988607372689] 1459253274.11’
ToolTorque [A, B, C] time設置對應的三個扭矩參數(shù)ToolTorque [13.485958070668463,
0.3785658886199012,
5.964988607372689] 1459253274.11’
JointAcceleration Float timejoint關節(jié)加速度值JointAcceleration 0.4 1459253274.11’
JointVelocity Float timejoint關節(jié)速度值JointVelocity 1.0 1459253274.11’
JointJerk Float time關節(jié)選取最優(yōu)的jerkJointJerk 1.0 1459253274.11’
isCompliance Boolean time判斷機器人狀態(tài)是否符合規(guī)范isCompliance off 1459253274.11’
isReadyToMove Boolean time判斷機器人是否執(zhí)行完所有步驟isReadyToMove true 1459253274.11’
isCollision Boolean time檢測是否碰撞isCollision false 1459253274.11’
isMastered Boolean time是否為主程序isMastered true 1459253274.11’
isJointOutOfRange Boolean time是否超出設定值范圍isJointOutOfRange false 1459253274.11’

另外一個表列出了可通過字符串調(diào)用的ROS主題以向KUKA-iiwa發(fā)送指令

訂閱主題名稱描述例子
setJointAcceleration F設定/變更關節(jié)加速度值’setJointAcceleration 0.4’
setJointVelocity F設定/更改關節(jié)速度值’setJointVelocity 1.0’
setJointJerk F設置/更改關節(jié)Jerk速度值’setJointJerk 1.0’
setPosition A1 A2 A3 A4 A5 A6 A7 ptp/lin根據(jù)關節(jié)位置移動機器人手臂。可以選擇點對點(ptp)或線性(lin)運動。float類型的角度值(以度為單位)可以在A1-7中替換。如果不需要移動任何軸,可以使用-代替值。該示例為除A2不變的每個軸分配新位置。’setPosition 0 21 0 -100 0 60 0 ptp’
setPositionXYZABC X Y Z A B C ptp/lin在機器人笛卡爾空間中移動機器人末端執(zhí)行器。可以選擇點對點(ptp)或線性(lin)運動。這會將機器人末端執(zhí)行器移動到特定位置[x,y,z]方向[a,b,c](浮點中的值)。如果不需要更改任何參數(shù),可以使用-代替值。’setPositionXYZABC 700 0 290 - 180 0 -180 lin’
MoveXYZABC X Y Z A B C僅通過點對點(ptp)運動在機器人笛卡爾空間中移動機器人末端執(zhí)行器。對于給定值(以毫米和度為單位),這會將機器人末端執(zhí)行器沿特定方向[x,y,z]和/或方向[a,b,c]移動。MoveXYZABC 10 20 0 30 0 0
MoveCirc X1 Y1 Z1 A1 B1 C1 X2 Y2 Z2 A2 B2 C2 BlendingOri以給定的混合值將機器人末端執(zhí)行器從第一個位置( [x1 y1 z1 a1 b1c1])的當前位置以弧形/圓周運動從其當前位置移動到第二個位置([x2y2 z2 a2 b2 c2]) 。MoveCirc 700 0 290 -180 0 -180 710 0 300 -180 0 -180 0.1
setCompliance X Y Z Z B C在每個x,y,z,a,b和c中具有特定剛度的情況下激活機器人的Compliance模式。給定的示例僅在x和y直角坐標系中以非常低的剛度激活Compliance。’setCompliance 10 10 5000 300 300 300’
resetCompliance停用機器人的“合規(guī)性”模式’resetCompliance’
resetCollision如果檢測到任何碰撞,則重置碰撞’resetCollision’
forceStop停止機器人并刪除所有等待執(zhí)行的機器人運動隊列’forceStop’
setWorkspace xmin ymin zmin xmax ymax zmax定義工作區(qū)邊界‘SetWorkspace 100 -300 0 600 300 500’

ROS環(huán)境搭建

.........詳情請參考古月居文章

總結

以上是生活随笔為你收集整理的ROS 之 KUKA iiwa编程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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