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