李 晟 李玉曉
[摘要]介紹一種冗余自由度的工業(yè)機(jī)器人單片機(jī)分布式控制系統(tǒng),主機(jī)的主程序、示教盒主程序、再現(xiàn)程序以及從機(jī)與主機(jī)的通訊程序的設(shè)計(jì)。
[關(guān)鍵詞]工業(yè)機(jī)器人分布式控制模塊化結(jié)構(gòu)
中圖分類(lèi)號(hào):TP2文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1871--7597(2009)1020158--01
一、引言
冗余自由度的工業(yè)機(jī)器人有七個(gè)自由度,包括機(jī)器人底座的直線(xiàn)運(yùn)動(dòng),腰部的回轉(zhuǎn)運(yùn)動(dòng),大臂的俯仰運(yùn)動(dòng),小臂的俯仰運(yùn)動(dòng)和腕部的回轉(zhuǎn)、俯仰和左右擺動(dòng)。其中前四個(gè)自由度的作用是將手腕部件定位到工作范圍內(nèi)的任意一點(diǎn),后三個(gè)自由度的作用是使末端執(zhí)行器能夠完成作業(yè)任務(wù)。
機(jī)器人分布式控制系統(tǒng)以微處理器為基礎(chǔ),合作執(zhí)行一個(gè)共同任務(wù),其基本思想是把一個(gè)比較復(fù)雜系統(tǒng)分解,分層實(shí)施,再輔以網(wǎng)絡(luò)進(jìn)行信息傳遞,從而完成整個(gè)系統(tǒng)的性能優(yōu)化。
二、控制軟件的總體設(shè)計(jì)思想
在主控單元軟件中,將機(jī)器人的工作狀態(tài)分為歸零、示教、編輯、回原點(diǎn)、再現(xiàn)等幾種工作狀態(tài)。軟件設(shè)計(jì)采用模塊化結(jié)構(gòu)。主控軟件共分為三大模塊,分別是主模塊、任務(wù)模塊和功能模塊,如圖1所示。
初始化模塊是對(duì)系統(tǒng)的可編程芯片進(jìn)行編程,開(kāi)辟系統(tǒng)緩沖區(qū),建立軟件標(biāo)志等;自檢模塊完成整個(gè)控制系統(tǒng)的自檢和自診斷;在歸零模塊中,機(jī)器人的主控單元向關(guān)節(jié)控制板發(fā)出指令,使所選關(guān)節(jié)歸零,即關(guān)節(jié)到達(dá)有機(jī)器人內(nèi)部傳感器確定的一個(gè)基準(zhǔn)位置;示教模塊中根據(jù)用戶(hù)指令產(chǎn)生相關(guān)的關(guān)節(jié)動(dòng)作指令,將此指令傳送給關(guān)節(jié)控制板,并接收關(guān)節(jié)控制板的回送信息,還可以將機(jī)器人所希望的關(guān)節(jié)位置記憶下來(lái);在編輯模塊中,操作者可離線(xiàn)修改示教記憶關(guān)節(jié)空間的坐標(biāo)值,也可修改示教記憶的路徑;在再現(xiàn)模塊中,控制系統(tǒng)對(duì)作業(yè)進(jìn)行動(dòng)作規(guī)劃,生成機(jī)器人路徑。
每一個(gè)從機(jī)控制一個(gè)執(zhí)行機(jī)構(gòu),負(fù)責(zé)機(jī)器人各關(guān)節(jié)的相應(yīng)動(dòng)作。在接收控制主機(jī)的命令時(shí),首先接收主機(jī)發(fā)送來(lái)的控制命令字,然后接收運(yùn)動(dòng)參數(shù)并存儲(chǔ)到對(duì)應(yīng)的存儲(chǔ)單元中??刂茝臋C(jī)接收數(shù)據(jù)完成后,在自己的控制程序中識(shí)別命令字,之后按命令字的要求控制實(shí)現(xiàn)運(yùn)動(dòng)動(dòng)作。
控制系統(tǒng)的主程序流程圈如圖2所示。
三、示赦和再現(xiàn)子程序
按下示教盒的“示教”鍵,則示教盒處于等待輸入示教次數(shù)n的狀態(tài),一旦輸入,再次按下“示教”鍵,就發(fā)出讓機(jī)器人開(kāi)始示教命令,并將n值發(fā)送到備關(guān)節(jié)控制單片機(jī)。而各關(guān)節(jié)控制單片機(jī)在接到命令后,隨即查詢(xún)接收示教循環(huán)次數(shù)n,對(duì)各關(guān)節(jié)進(jìn)行直接運(yùn)動(dòng)操作,并存儲(chǔ)各有關(guān)數(shù)據(jù)以便再現(xiàn)時(shí)使用,本機(jī)器人可存儲(chǔ)10組示教數(shù)據(jù)。再現(xiàn)運(yùn)動(dòng)是示教的目的,其示教再現(xiàn)子程序用來(lái)再現(xiàn)所選中10組示教中的一種。
四、通訊程序設(shè)計(jì)
主單片與示教盒之間通過(guò)單片機(jī)的串口直接進(jìn)行通訊,與AVR之間屬于多機(jī)通訊問(wèn)題,通過(guò)異步通訊接收發(fā)送器8250進(jìn)行。從機(jī)須服從主機(jī)的調(diào)度、支配。串口通訊程序用于AT89S8252單片機(jī)和AVR之間的通訊,其程序框圖如圖3所示。
主機(jī)AT89S8252串行口一直處于查詢(xún)狀態(tài),檢查是否有讓主機(jī)發(fā)送示教軌跡數(shù)據(jù)到關(guān)節(jié)控制單片機(jī)的命令或讓主機(jī)從關(guān)節(jié)控制單片機(jī)接收示教軌跡數(shù)據(jù)的命令。若與存儲(chǔ)指令相符,則打開(kāi)示教軌跡數(shù)據(jù)文件,先讀取示教軌跡數(shù)據(jù)長(zhǎng)度,然后將整個(gè)文件讀到主機(jī)的數(shù)據(jù)區(qū),接著逐一發(fā)關(guān)節(jié)控制單片機(jī)地址碼,掛鉤后發(fā)送軌跡數(shù)據(jù),發(fā)送完畢后重新進(jìn)入查詢(xún)狀態(tài)。
五、結(jié)論
基于模塊化結(jié)構(gòu)的分布式單片機(jī)系統(tǒng),由單片機(jī)構(gòu)成上下兩級(jí)。上位機(jī)以AT89S8252單片機(jī)為核心,下位機(jī)采用AVR單片機(jī)AT9082313。機(jī)器人的控制采用計(jì)算機(jī)示教再現(xiàn)點(diǎn)位控制方式,具有功能分散,易于維修調(diào)試,可靠性高等特點(diǎn)。