一種機(jī)器人運(yùn)動(dòng)控制系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種機(jī)器人運(yùn)動(dòng)控制交互軟件,涉及機(jī)器人運(yùn)動(dòng)控制技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 工業(yè)機(jī)器人是集機(jī)械、電子、控制、計(jì)算機(jī)、傳感器、人工智能等多學(xué)科先進(jìn)技術(shù)于 一體的現(xiàn)代制造業(yè)重要的自動(dòng)化裝備。機(jī)器人控制系統(tǒng)及其控制終端是機(jī)器人的重要組成 部分,多年來(lái),通用的機(jī)器人控制系統(tǒng)一直是學(xué)者和各廠商的研宄課題,主要是由于缺少一 種通用的運(yùn)動(dòng)學(xué)解算器和軌跡規(guī)劃器,所以機(jī)器人運(yùn)動(dòng)控制系統(tǒng)的發(fā)展一直受到限制;對(duì) 于機(jī)器人控制系統(tǒng),國(guó)外一直處于壟斷地位,國(guó)外廠商的控制系統(tǒng)及其控制終端一般只對(duì) 自由品牌的機(jī)器人有一定的兼容性,而對(duì)于其他機(jī)器人不具有通用性,其獨(dú)有的設(shè)備配件 和高昂的維修費(fèi)用讓國(guó)內(nèi)相關(guān)產(chǎn)業(yè)耗費(fèi)了大量的人力與財(cái)力。而近年來(lái),PMAC、M 〇VeIt!、 ROS等多項(xiàng)研宄成果使得通用機(jī)器人控制系統(tǒng)的實(shí)現(xiàn)成為可能?,F(xiàn)有技術(shù)沒(méi)有給出利用 PMAC、MoveIt !、ROS這些多項(xiàng)研宄成果的結(jié)合的機(jī)器人運(yùn)動(dòng)控制系統(tǒng)。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的目的是提供一種機(jī)器人運(yùn)動(dòng)控制系統(tǒng),以解決現(xiàn)有的機(jī)器人運(yùn)動(dòng)控制系 統(tǒng)存在通用性差、可擴(kuò)展性差、系統(tǒng)的開(kāi)放性差的問(wèn)題。
[0004] 本發(fā)明為解決上述技術(shù)問(wèn)題采取的技術(shù)方案是:
[0005] 一種機(jī)器人運(yùn)動(dòng)控制系統(tǒng),所述系統(tǒng)包括控制終端子系統(tǒng)和服務(wù)器端子系統(tǒng),
[0006] 控制終端子系統(tǒng)包括人機(jī)交互界面和工作線程模塊,
[0007] 服務(wù)器端子系統(tǒng)包括指令解釋器、ROS服務(wù)器和PMAC交互模塊,
[0008]用戶(hù)通過(guò)人機(jī)交互界面發(fā)出操作指令,利用工作線程模塊將所述操作指令轉(zhuǎn)化為 指令解釋器可識(shí)別的指令并通過(guò)網(wǎng)絡(luò)傳遞給指令解釋器,
[0009] 指令解釋器通過(guò)調(diào)用MoveIt !數(shù)據(jù)庫(kù)將其接收的指令轉(zhuǎn)化為關(guān)節(jié)路徑命令并發(fā) 布在ROS服務(wù)器的節(jié)點(diǎn)上,PMAC交互模塊接收ROS服務(wù)器傳來(lái)的關(guān)節(jié)路徑命令,通過(guò)PMAC 通信協(xié)議轉(zhuǎn)化為PMC可識(shí)別的運(yùn)動(dòng)控制指令并通過(guò)網(wǎng)絡(luò)傳遞給PMAC,從而實(shí)現(xiàn)對(duì)機(jī)器人 的運(yùn)動(dòng)控制;PMAC交互模塊讀取PMAC上的機(jī)器人關(guān)節(jié)狀態(tài)信息,并反饋給ROS服務(wù)器,并 在人機(jī)交互界面中顯示。
[0010] 所述人機(jī)交互界面為控制終端子系統(tǒng)和用戶(hù)直接交互的界面,用于接收用戶(hù)的操 作指令并傳遞給工作線程模塊,其內(nèi)容包括校準(zhǔn)、手動(dòng)操作、示教、再現(xiàn)、程序編輯、機(jī)器人 狀態(tài)顯示、PLC輸入/輸出控制、用戶(hù)坐標(biāo)系建立、文件瀏覽及系統(tǒng)維護(hù)功能。
[0011] 定義工作線程模塊的工作方式為有限狀態(tài)機(jī),工作線程模塊描述的用戶(hù)操作模式 狀態(tài)如下:
[0012] a)待機(jī)狀態(tài):在沒(méi)有接受任何用戶(hù)操作指令時(shí),控制終端子系統(tǒng)為待機(jī)狀態(tài),不 發(fā)布任何指令;
[0013] b)手動(dòng)操作模式:用戶(hù)通過(guò)交互界面操作進(jìn)入手動(dòng)操作模式,并通過(guò)三維搖桿向 控制終端子系統(tǒng)輸入操作指令,控制終端子系統(tǒng)通過(guò)解釋三維搖桿的操作指令向ROS服務(wù) 器節(jié)點(diǎn)發(fā)布手動(dòng)操作運(yùn)動(dòng)指令;該模式包含關(guān)節(jié)坐標(biāo)系和笛卡爾坐標(biāo)系;
[0014] c)再現(xiàn)模式:控制終端子系統(tǒng)在再現(xiàn)模式下將所存儲(chǔ)的機(jī)器人程序(一系列指 令)按順序逐條發(fā)布在ROS服務(wù)器節(jié)點(diǎn)上,使機(jī)器人可以按指令順序自動(dòng)運(yùn)行,該模式可實(shí) 現(xiàn)對(duì)程序的一次再現(xiàn)、多次循環(huán)再現(xiàn)以及逐條再現(xiàn);
[0015] d)校準(zhǔn)模式:在該模式下,機(jī)器人各關(guān)節(jié)零位可被重置,用戶(hù)機(jī)器人的標(biāo)定工作;
[0016] e)控制指令模式:該模式下控制終端子系統(tǒng)可以向ROS服務(wù)器節(jié)點(diǎn)發(fā)布除運(yùn)動(dòng)指 令以外的指令:控制指令、PLC操作指令;
[0017] f)用戶(hù)坐標(biāo)系發(fā)布模式:在該模式下控制終端子系統(tǒng)可以向ROS服務(wù)器節(jié)點(diǎn)發(fā)布 用戶(hù)自定義的坐標(biāo)系信息;
[0018] g)三維搖桿調(diào)試模式:該模式下控制終端子系統(tǒng)可以重置三維搖桿的零位,從而 初始化三維搖桿;
[0019] 所述工作線程模塊作為所述控制終端子系統(tǒng)的后臺(tái)模塊,按以下順序循環(huán)運(yùn)行:
[0020] 1)檢測(cè)通信網(wǎng)絡(luò)是否聯(lián)通;
[0021] 2)訂閱ROS服務(wù)器節(jié)點(diǎn)消息,其中包括PMAC交互模塊狀態(tài)、機(jī)器人關(guān)節(jié)狀態(tài)、機(jī)器 人坐標(biāo)系信息、三維搖桿操作信息、薄膜按鍵操作信息;
[0022] 3)解釋所訂閱的消息,其中PMAC交互模塊狀態(tài)被用于判斷機(jī)器人運(yùn)行狀態(tài)、機(jī)器 人關(guān)節(jié)狀態(tài)以角度形式向用戶(hù)反饋、機(jī)器人坐標(biāo)系信息以笛卡爾坐標(biāo)系和歐拉角的形式向 用戶(hù)反饋、將三維搖桿操作信息解釋為用戶(hù)對(duì)所操作的三個(gè)坐標(biāo)軸或三個(gè)關(guān)節(jié)的運(yùn)動(dòng)速度 大小、將薄膜按鍵操作信息解釋為執(zhí)行相應(yīng)控制功能;
[0023] 4)更新機(jī)器人信息,包括機(jī)器人坐標(biāo)系信息、機(jī)器人關(guān)節(jié)狀態(tài)信息、機(jī)器人運(yùn)行狀 態(tài);
[0024] 5)利用工作線程模塊檢測(cè)用戶(hù)操作模式狀態(tài),根據(jù)相應(yīng)的用戶(hù)操作模式狀態(tài)向 ROS服務(wù)器發(fā)布節(jié)點(diǎn)消息,所述節(jié)點(diǎn)消息是指令解釋器可識(shí)別的指令,包括運(yùn)動(dòng)指令、控制 指令、PLC操作指令;
[0025] 6)警告:控制終端子系統(tǒng)在該步驟下檢測(cè)機(jī)器人關(guān)節(jié)位置信息,并限制機(jī)器人工 作空間,提醒用戶(hù)在手動(dòng)模式下不可操作機(jī)器人超出機(jī)器人工作空間。
[0026] 所述PMAC交互模塊是一種有限狀機(jī),包括初始化狀態(tài)、運(yùn)動(dòng)狀態(tài)和停止?fàn)顟B(tài);
[0027] 1)當(dāng)所述PMAC交互模塊運(yùn)行在初始化狀態(tài)時(shí),將進(jìn)入循環(huán),不斷更新機(jī)器人狀 態(tài),不會(huì)有任何操作,一旦接收到進(jìn)入運(yùn)動(dòng)狀態(tài)的指令時(shí),PMAC交互模塊會(huì)清除緩存、電機(jī) 使能,并使PMC進(jìn)入P-T模式,然后進(jìn)入運(yùn)動(dòng)狀態(tài);
[0028] 2)當(dāng)所述PMAC交互模塊進(jìn)入運(yùn)動(dòng)狀態(tài)時(shí),如果沒(méi)有檢測(cè)到停止指令,將進(jìn)入循 環(huán),會(huì)接收由指令解釋器計(jì)算出的關(guān)節(jié)路徑命令,并通過(guò)插補(bǔ)運(yùn)算計(jì)算出PMC運(yùn)動(dòng)軌跡, 發(fā)送給PMAC,如果收到停止指令,則PMAC交互模塊會(huì)進(jìn)入停止指令;
[0029] 3)當(dāng)PMAC交互模塊進(jìn)入停止?fàn)顟B(tài),等待3秒后重新進(jìn)入初始化狀態(tài)。
[0030] 本發(fā)明的有益效果是:
[0031] 本發(fā)明的控制終端子系統(tǒng)和服務(wù)器端子系統(tǒng)各自為獨(dú)立計(jì)算機(jī)系統(tǒng),通過(guò)以太網(wǎng) 建立局域網(wǎng),其軟件可基于ROS實(shí)現(xiàn),具有較高的模塊化程度和很強(qiáng)的通用性,可兼容多種 多自由度串聯(lián)機(jī)器人。
[0032] 本發(fā)明中的PMC運(yùn)動(dòng)控制卡能提供較為便利的機(jī)器人應(yīng)用接口:可以直接讀取 機(jī)器人各關(guān)節(jié)軸的電機(jī)參數(shù),同時(shí)通過(guò)以太網(wǎng)與上位機(jī)通信;可以對(duì)耦合的運(yùn)動(dòng)建立坐標(biāo) 系,便于描述機(jī)械耦合、并聯(lián)運(yùn)動(dòng)等機(jī)械耦合設(shè)計(jì);可以進(jìn)行樣條插補(bǔ)運(yùn)算,便于減小通信 帶寬,避免引入不可預(yù)知錯(cuò)誤。
[0033] 本發(fā)明中的MoveIt !是一種先進(jìn)的軟件包,集成了最新的運(yùn)動(dòng)規(guī)劃、三維捕捉、 運(yùn)動(dòng)學(xué)控制以及導(dǎo)航算法,它為前沿機(jī)器人應(yīng)用提供了便利的開(kāi)發(fā)平臺(tái)。通過(guò)建立一種"通 用機(jī)器人描述文件"(URDF),可以方便的描述機(jī)器人的運(yùn)動(dòng)學(xué)模型,并結(jié)合MoveIt !的運(yùn)動(dòng) 學(xué)相關(guān)算法實(shí)現(xiàn)機(jī)器人的運(yùn)動(dòng)軌跡規(guī)劃。
[0034] 本發(fā)明中的ROS (Robot Operating System)又稱(chēng)機(jī)器人操作系統(tǒng),是基于BSD開(kāi) 源協(xié)議的操作系統(tǒng)級(jí)的軟件,主要目標(biāo)是滿(mǎn)足代碼復(fù)用的需求,致力于建立機(jī)器人行業(yè)標(biāo) 準(zhǔn),有強(qiáng)制的模塊化要求和明確的軟件接口。通過(guò)機(jī)器人操作系統(tǒng)搭建的系統(tǒng)具有較強(qiáng)的 通用性,利用其良好的C/S(服務(wù)器/客戶(hù)端)通信架構(gòu),不僅可以通過(guò)服務(wù)器向其他客戶(hù) 及發(fā)送多種數(shù)據(jù)類(lèi)型的消息,還可為客戶(hù)機(jī)提供服務(wù),滿(mǎn)足多種通信需求。
[0035] 本發(fā)明所述的機(jī)器人控制系統(tǒng)基于可編程多軸運(yùn)動(dòng)控制器(PMC)和MoveIt !實(shí) 現(xiàn)對(duì)串聯(lián)多自由度機(jī)器人的通用性。由于PMC可對(duì)機(jī)器人各關(guān)節(jié)進(jìn)行運(yùn)動(dòng)控制,MoveIt ! (BSD協(xié)議)可以對(duì)機(jī)器人進(jìn)行路徑規(guī)劃,該控制系統(tǒng)將二者結(jié)合,從而實(shí)現(xiàn)對(duì)大多數(shù)串聯(lián) 機(jī)器人的控制。
[0036] 所述控制系統(tǒng)硬件包括一臺(tái)工控機(jī)和一臺(tái)控制終端,二者均為獨(dú)立運(yùn)行的計(jì)算機(jī) 系統(tǒng),通過(guò)以太網(wǎng)組建成局域網(wǎng)進(jìn)行通信。該系統(tǒng)采用服務(wù)器/客戶(hù)端結(jié)構(gòu),控制系統(tǒng)主程 序運(yùn)行于工控機(jī),作為控制系統(tǒng)服務(wù)器,控制終端則作為客戶(hù)端,運(yùn)行用戶(hù)界面交互軟件, 并通過(guò)機(jī)器人操作系統(tǒng)(ROS)與控制系統(tǒng)服務(wù)器進(jìn)行實(shí)時(shí)通信。
[0037] 本發(fā)明所述的機(jī)器人控制系統(tǒng)分別應(yīng)用于六自由度磨拋機(jī)器人本體和生物采樣 履帶機(jī)器人的六自由度機(jī)械臂本體,同時(shí)也在虛擬環(huán)境中對(duì)ABB IRB244機(jī)器人和FANUC M430機(jī)器人成功進(jìn)行了仿真,均可以實(shí)現(xiàn)對(duì)機(jī)器人的手動(dòng)控制、示教、再現(xiàn)、插補(bǔ)等功能。
【附圖說(shuō)明】
[0038] 圖1是本發(fā)明的流程框圖,圖2是機(jī)器人控制終端的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0039] 如圖1所示,本實(shí)施方式所述的機(jī)器人運(yùn)動(dòng)控制系統(tǒng),包括控制終端子系統(tǒng)和服 務(wù)器端子系統(tǒng),
[0040] 控制終端子系統(tǒng)包括人機(jī)交互界面和工作線程模塊,
[0041] 服務(wù)器端子系統(tǒng)包括指令解釋器、ROS服務(wù)器和PMAC交互模塊,
[0042] 用戶(hù)通過(guò)人機(jī)交互界面發(fā)出操作指令,利用工作線程模塊將所述操作指令轉(zhuǎn)化為 指令解釋器可識(shí)別的指令并通過(guò)網(wǎng)絡(luò)傳遞給指令解釋器,
[0043] 指令解釋器通過(guò)調(diào)用MoveIt !數(shù)據(jù)庫(kù)將其接收的指令轉(zhuǎn)化為關(guān)節(jié)路徑命令并發(fā) 布在ROS服務(wù)器的節(jié)點(diǎn)上,PMAC交互模塊接收ROS服務(wù)器傳來(lái)的關(guān)節(jié)路徑命令,通過(guò)PMAC 通信協(xié)議轉(zhuǎn)化為PMC可識(shí)別的運(yùn)動(dòng)控制指令并通過(guò)網(wǎng)絡(luò)傳遞給PMAC,從而實(shí)現(xiàn)對(duì)機(jī)器人 的運(yùn)動(dòng)控制;PMAC交互模塊讀取PMAC上的機(jī)器人關(guān)節(jié)狀態(tài)信息,并反饋給ROS服務(wù)器,并 在人機(jī)交互界面中顯示。
[0044] 所述人機(jī)交互界面為控制終端子系統(tǒng)和用戶(hù)直接交互的界面,用于接收用戶(hù)的操 作指令并傳遞給工作線程模塊,其內(nèi)容包括校準(zhǔn)、手動(dòng)操作、示教、再現(xiàn)、程序編輯、機(jī)器人 狀態(tài)顯示、PLC輸入/輸出控制、用戶(hù)坐標(biāo)系建立、文件瀏覽及系統(tǒng)維護(hù)功能。
[0045] 定義工作線程模塊的工作方式為有限狀態(tài)機(jī),工作線程模塊描述的用戶(hù)操作模式 狀態(tài)如下:
[0046] a)待機(jī)狀態(tài):在沒(méi)有接受任何用戶(hù)操作指令時(shí),控制終端子系統(tǒng)為待機(jī)狀態(tài),不 發(fā)布任何指令;
[0047] b)手動(dòng)操作模式:用戶(hù)通過(guò)交互界面操作進(jìn)入手動(dòng)操作模式,并通過(guò)三維搖桿向 控制終端子系統(tǒng)輸入操作指令,控制終端子系統(tǒng)通過(guò)解釋三維搖桿的操作指令向ROS服務(wù) 器節(jié)點(diǎn)發(fā)布手動(dòng)操作運(yùn)動(dòng)指令;該模式包含關(guān)節(jié)坐標(biāo)系和笛卡爾坐標(biāo)系;
[0048] c)再現(xiàn)模式:控制終端子系統(tǒng)在再現(xiàn)模式下將所存儲(chǔ)的機(jī)器人程序(一系列指 令)按順序逐條發(fā)布在ROS服務(wù)器節(jié)點(diǎn)上,使機(jī)器人可以按指令順序自動(dòng)運(yùn)行,該模式可實(shí) 現(xiàn)對(duì)程序的一次再現(xiàn)、多次循環(huán)再現(xiàn)以及逐條再現(xiàn);