一拥刻、末端執(zhí)行器集成生態(tài)庫簡介
睿爾曼系列機械臂有著豐富的外設接口般哼,可十分便捷的與其他執(zhí)行器相結合。如:因時二指夾爪蒸眠、因時五指靈巧手、知行真空吸盤霜运、大寰夾爪蒋腮、鈞舵真空吸盤等。
本文主要介紹EVS08真空吸盤與機械臂集成的使用焦除,后續(xù)會陸續(xù)將其他設置的使用發(fā)出來作彤。
資料鏈接:https://pan.baidu.com/s/1B_NBbbry_N-xUK83_ij5OA?pwd=exbr
提取碼:exbr
二、真空吸盤的集成使用
真空吸盤結構安裝
末端夾爪的安裝。第一步代咸,整理配件成黄。
第二步逻杖,轉接件與真空吸盤連接使用M*15螺絲連接思瘟。如下圖所示
第三步滨攻,在第二步的基礎上使用M6*15mm螺絲將轉接件與吸盤相連并進行電路連接。如下圖所示(注意:此處使用6芯線連接機械臂與真空吸盤時女嘲,機械臂需斷電)
真空吸盤控制
真空吸盤的控制可以用JSON協議控制诞帐、高級語言SDK開發(fā)方式實現,本文將依次介紹這2種方式如何實現愕鼓。實現真空吸盤控制的前提為真空吸盤已安裝在機械臂末端慧起,并且通過連接線連接。
真空吸盤與機械臂之間使用RS485信道谋旦,通過MODBUS RTU協議實現通信屈尼,完成對真空吸盤的控制。
JSON協議控制
JSON協議中有機型的協議示例甲捏,可根據實際的使用場景進行選擇鞭执,本文中僅舉例說明使用。
①使用網線將機械臂與上位機連接大溜,并將上位機IPV4地址修改為192.168.1.100(此操作可在-通信及連接方式內容中找到)估脆。
②在網盤資源中下載并打開“TCP&UDP測試工具”,創(chuàng)建TCP連接付材,輸入機械臂的IP及端口號。
③創(chuàng)建完畢之后璧帝,點擊連接按鈕富寿。此時可連接至機械臂。
④打開資料“RM-65\(3)協議文檔”下的《睿爾曼6自由度機械臂JSON通信協議v3.5.1.pdf》文檔理疙。
⑤打開文檔之后泞坦,找到4.7 末端工具IO控制贰锁、4.8 末端工具-真空吸盤控制(選配)部分內容。
第一步豌熄,在末端工具IO控制中設置工具端電源輸出,根據文檔中協議說明及參數說明復制協議內容至TCP測試工具中蹄皱。
協議內容:
末端輸出24V電源:{"command":"set_tool_voltage","voltage_type":3}
第二步巷折,根據文檔4.8中的說明依次發(fā)送以下協議內容:
協議內容:
真空吸盤啟動崖咨,雙通道啟動:{"command":"write_single_register","port":1,"address":1000,"data":29,"device":2}
{"command":"write_single_register","port":1,"address":1000,"data":109,"device":2}
真空吸盤松開:{"command":"write_single_register","port":1,"address":1000,"data":37,"device":2}
高級語言SDK開發(fā)
本文中使用QT創(chuàng)建C語言項目進行控制真空吸盤的控制,項目以C語言API二次開發(fā)為基礎進行更改署拟,故在此處不做項目創(chuàng)建的說明歌豺。
第一步,項目UI界面新增按鈕馒铃。打開項目中的“mainwindow.ui”文件。在右側新增1個 Push Botton按鈕,更改名稱為吸盤啟動血巍,更改‘MoveJ運動’按鈕名稱為真空吸盤松開。并在界面右側選項欄找到新創(chuàng)建的‘真空吸盤閉合’按鈕柿隙,執(zhí)行轉到‘槽操作’鲫凶。
第二步螟炫,主程序界面調用真空吸盤接口實現真空吸盤閉合操作。
在程序中調用了API中的“Set_Tool_Voltage”設置末端接口電壓接口昼钻、“Write_Single_Register”寫單個寄存器控制吸盤的啟動和破真空然评。
程序主程序如下所示:
#include?"mainwindow.h"
#include?"ui_mainwindow.h"
#include?"rm_api.h"
#include?<QDebug>
MainWindow::MainWindow(QWidget?*parent)?:
????QMainWindow(parent),
????ui(new?Ui::MainWindow)
{
????ui->setupUi(this);
}
MainWindow::~MainWindow()
{
????delete?ui;
}
void?MainWindow::on_pushButton_Start_clicked()
{
????RM_API(65);
????//?連接服務器?返回全局句柄
????m_sockhand?=?Arm_Socket_Start((char?*)"192.168.1.18",?8080,?5000);
???//?Set_USB_Data(m_sockhand,115200);
????//打開bodbus通信,波特率設置為115200
????Set_Modbus_Mode(m_sockhand,1,115200,1,1);
????Write_Single_Register(m_sockhand,1,1000,0,9,1);
????Write_Single_Register(m_sockhand,1,1000,1,9,1);
????if(m_sockhand?<=?0?||?m_sockhand?>?100000)
????{
????????//?連接失敗?打印日志
????????ui->textEdit->append("socket?connect?err:?"?+?QString::number(m_sockhand));
????????return;
????}
????//?連接成功?打印日志
????ui->textEdit->append("socket?connect?success:?"?+?QString::number(m_sockhand));
}
//開始整理桌面盏求,固定位置/固定角度的抓取
void?MainWindow::on_pushButton_place_clicked()
{
????Write_Single_Register(m_sockhand,1,1000,29,9,1);//吸盤通道1啟動亿眠,1000?地址??29?寫入寄存器內容??109通道2啟動?37全部通道破真空
????Write_Single_Register(m_sockhand,1,1000,109,9,1);//吸盤通道2啟動,1000?地址??29?寫入寄存器內容??109通道2啟動?37全部通道破真空
}
void?MainWindow::Open_PAW(){
????Write_Single_Register(m_sockhand,1,1000,37,9,1);//吸盤通道1啟動魂莫,1000?地址??29?寫入寄存器內容??109通道2啟動?37全部通道破真空
}