ROS - 使用UR機械臂最新的 ur_robot_driver


ur_robot_driver適用於polyscope >= 3.7 版本的ur機械臂和CB>=5的ur-e機械臂。筆者機器版本爲3.12。
目前ur臂的驅動有三個:ur_driver, ur_modern_driver, ur_robot_driver。
ur_driver和ur_modern_driver已經被官方棄用,ur_driver適用於CB1和CB2(不是很清楚),ur_modern_driver適用於CB2、CB3(具體到哪個子版本不是很清楚,我在CB3.12上是不適用的,國外網友反應CB3.9.1還是適用的,但是3.10不適用,可能就是CB3.10一下吧)。
來看一下ur_modern_driver和ur_robot_driver的對比:

在這裏插入圖片描述具體的驅動的詳細介紹請參考:
universal_robot_ros_wiki
ur_robot_driver
ur_robot_driver_doc

下面我們將會使用ROS和ur_robot_driver來驅動真機UR臂。

一、下載ros package

source /opt/ros/$ROS_DISTRO/setup.bash
mkdir -p ur_ws/src && cd ur_ws
git clone https://github.com/UniversalRobots/Universal_Robots_ROS_Driver.git src/Universal_Robots_ROS_Driver
git clone -b calibration_devel https://github.com/fmauch/universal_robot.git src/fmauch_universal_robot
sudo apt update -qq
rosdep update
rosdep install --from-paths src --ignore-src -y
catkin_make
source devel/setup.bash

如果執行rosdep init 和 rosdep install失敗,請參考ROS -sudo rosdep init 失敗解決方法

爲了工作空間之間不相互干擾,推薦每次手動source setup.bash,如果只有一個工作空間,也可以直接寫在bashrc裏面。

二、配置示教器

Universal_Robots_ROS_Driver/ur_robot_driver/resources路徑下的externalcontrol.urcap文件拷貝到U盤安裝到示教器上。

安裝完成後,按以下步驟操作:
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述設置完成後返回
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述靜止在這個頁面不要動.

三、配置Ubuntu網絡

使用externalcontrol,要求使用靜態IP,並且指定了IP段,而且因爲筆者電腦有兩個有線網卡,所以我們選擇網線直線,印象中通過路由器分配靜態IP不是那麼直接。
使用網線直線電腦和UR的控制櫃。
第二步已經將示教器配置好,下面來配置Ubuntu。

1. 查看顯卡名稱

ifconfig

在這裏插入圖片描述可以看到enp2s0正是連接控制櫃的網卡。在沒配置之前,這個沒有inet addr屬性,所以一看便知。

2.設置靜態IP

sudo vi /etc/network/interfaces

在這裏插入圖片描述添加如圖所示的代碼。因爲示教器上的externalcontrol顯示要設置成這個指定的IP。網關和子網掩碼可按上圖設置。網管必須和IP在同一網段,即最後一位的數字可以不一樣,且範圍爲[0,255]。指定靜態IP時必須指定dns server,否則連接互聯網的網卡有可能無法解析DNS。
這裏雖然設置的是8.8.8.8,但是實際的dns server地址並不是8.8.8.8,而是由ubuntu內置的networkmanager程序dnsmasq程序接管,由它來分配dns server。

執行

sudo vi /etc/resolv.conf

可以看到分配的nameserver爲
在這裏插入圖片描述這個是本地dns的迴環地址,由dnsmasq來分配,具體參考nameserver 127.0.1.1 & 如何設置nameserver

3.重啓

4.現在看看右上角網絡連接有沒有顯示對應於控制櫃的網絡顯示已經連接。

如果沒有,執行

sudo vi /etc/NetworkManager/NetworkManager.conf 

managed改爲true
在這裏插入圖片描述保存退出後,執行

sudo /etc/init.d/networking restart

如果還是沒有顯示連接,重啓

四、運行程序測試

1.獲取標定信息

roslaunch ur_calibration calibration_correction.launch   robot_ip:=192.168.56.2 target_filename:="${HOME}/my_robot_calibration.yaml"

2. 運行externalcontrol

在這裏插入圖片描述

3.運行啓動文件

 roslaunch ur_robot_driver ur3_bringup.launch robot_ip:=192.168.56.2 kinematics_config:=${HOME}/my_robot_calibration.yaml

上條指令ur3換成自己的機械臂類型。

當終端顯示Robot ready to receive control commands.時,

rosrun rqt_joint_trajectory_controller rqt_joint_trajectory_controller

這時候就可以在rqt中拖動滑塊來控制機械臂每個關節的轉角。
具體參考ur_robot_driver

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章