亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Protobuf的機(jī)器人示教器軟件設(shè)計(jì)與實(shí)現(xiàn)*

        2016-08-31 06:51:12夏飛虎葉瑛歆胡天亮張承瑞
        制造技術(shù)與機(jī)床 2016年5期
        關(guān)鍵詞:定義界面

        夏飛虎 葉瑛歆 胡天亮 張承瑞

        (①山東大學(xué)機(jī)械工程學(xué)院,山東 濟(jì)南 250061;②高效與潔凈機(jī)械制造教育部重點(diǎn)實(shí)驗(yàn)室(山東大學(xué)),山東 濟(jì)南 250061)

        ?

        基于Protobuf的機(jī)器人示教器軟件設(shè)計(jì)與實(shí)現(xiàn)*

        夏飛虎①②葉瑛歆①②胡天亮①②張承瑞①②

        (①山東大學(xué)機(jī)械工程學(xué)院,山東 濟(jì)南 250061;②高效與潔凈機(jī)械制造教育部重點(diǎn)實(shí)驗(yàn)室(山東大學(xué)),山東 濟(jì)南 250061)

        為提高工業(yè)機(jī)器人示教器數(shù)據(jù)通信性能,改善示教器人機(jī)界面設(shè)計(jì),提出了一種基于以太網(wǎng)通信和嵌入式Windows CE開(kāi)發(fā)的機(jī)器人示教器軟件設(shè)計(jì)方案。該方案在通信實(shí)現(xiàn)上基于Google Protobuf定義Socket傳輸數(shù)據(jù)協(xié)議,簡(jiǎn)化了機(jī)器人示教器與控制器之間傳輸數(shù)據(jù)組包和解析;在界面設(shè)計(jì)上運(yùn)用Windows CE系統(tǒng)的優(yōu)勢(shì),實(shí)現(xiàn)了開(kāi)發(fā)簡(jiǎn)單、反應(yīng)速度快、可擴(kuò)展性好的人機(jī)界面;在軟件設(shè)計(jì)方面基于動(dòng)態(tài)鏈接庫(kù)的映射機(jī)制實(shí)現(xiàn)了模塊化的軟件結(jié)構(gòu),提高了軟件系統(tǒng)的獨(dú)立性和開(kāi)放性。最后通過(guò)在SCARA機(jī)器人上的測(cè)試,驗(yàn)證了示教器軟件的可用性。

        Google Protobuf;工業(yè)機(jī)器人;示教器;軟件設(shè)計(jì)

        機(jī)器人示教器是實(shí)現(xiàn)人機(jī)交互的工具,是機(jī)器人控制系統(tǒng)的重要組成部分。在應(yīng)用上,示教器有兩種類型,一種是作為控制器顯示和鍵盤(pán)延伸的輸入輸出設(shè)備,另一種是帶有獨(dú)立CPU的通信型示教器。通信型示教器系統(tǒng)大多基于單片機(jī)和嵌入式計(jì)算機(jī)。相比于單片機(jī),嵌入式計(jì)算機(jī)具有的系統(tǒng)開(kāi)發(fā)和擴(kuò)展方便、通信穩(wěn)定、開(kāi)放性高等優(yōu)點(diǎn)使其能更好滿足示教器越來(lái)越豐富的功能需求。但基于嵌入式計(jì)算機(jī)開(kāi)發(fā)機(jī)器人示教器涉及兩臺(tái)相互獨(dú)立的計(jì)算機(jī)之間進(jìn)行通信,如何保證通信的速率、穩(wěn)定性和數(shù)據(jù)傳輸?shù)臏?zhǔn)確性是通信型示教器開(kāi)發(fā)中的重要問(wèn)題。

        通信型示教器與控制器常用的通信方式有兩種:串口通信[1-2]、以太網(wǎng)通信[3]以及串口與以太網(wǎng)混合通信[4]。串口通信方式實(shí)現(xiàn)簡(jiǎn)單,但其傳輸速率和傳輸距離均不如以太網(wǎng)通信[5]。串口與以太網(wǎng)混合通信方式根據(jù)對(duì)通信要求的不同,通過(guò)采用串口與PLC通信,同時(shí)使用以太網(wǎng)與運(yùn)動(dòng)控制通信,能很好地改善通信性能,但通信系統(tǒng)過(guò)于復(fù)雜。以太網(wǎng)通信方式將PLC通信和運(yùn)動(dòng)控制通信集中通過(guò)以太網(wǎng)實(shí)現(xiàn),在簡(jiǎn)化了通信系統(tǒng)的同時(shí)能保證通信性能,但多種數(shù)據(jù)同時(shí)傳輸使得傳輸數(shù)據(jù)協(xié)議的制定較為復(fù)雜。因此,設(shè)計(jì)一種簡(jiǎn)單的傳輸數(shù)據(jù)協(xié)議來(lái)開(kāi)發(fā)通過(guò)以太網(wǎng)方式通信的示教器具有重要意義。

        針對(duì)以上問(wèn)題,本文在課題組前期開(kāi)發(fā)的基于實(shí)時(shí)以太網(wǎng)的運(yùn)動(dòng)視覺(jué)一體化機(jī)器人控制器平臺(tái)的基礎(chǔ)上[6-9],提出了一種基于嵌入式Windows CE的工業(yè)機(jī)器人示教器設(shè)計(jì)方案。該方案采用基于Socket的TCP/IP網(wǎng)絡(luò)通信模式,通過(guò)以太網(wǎng)實(shí)現(xiàn)示教器與控制器之間所有數(shù)據(jù)的通信,充分利用Windows CE系統(tǒng)圖形界面友好、反應(yīng)速度快、可擴(kuò)展性好的優(yōu)點(diǎn)和以太網(wǎng)具有的速率高、穩(wěn)定性好、傳輸距離遠(yuǎn)等優(yōu)勢(shì)。同時(shí),基于Google Protobuf提供的序列化框架,設(shè)計(jì)了一種機(jī)器人示教器與控制器之間數(shù)據(jù)傳輸協(xié)議,使傳輸數(shù)據(jù)的定義變得簡(jiǎn)潔高效。在示教器軟件設(shè)計(jì)上,通過(guò)動(dòng)態(tài)鏈接庫(kù)機(jī)制和多線程、模塊化的軟件結(jié)構(gòu)實(shí)現(xiàn)了示教器的開(kāi)放性。并以SCARA機(jī)器人為樣機(jī)搭建了示教器性能測(cè)試平臺(tái),驗(yàn)證示教器軟件的正確性和可操作性。

        1 示教器軟件結(jié)構(gòu)設(shè)計(jì)

        如圖1所示,機(jī)器人控制系統(tǒng)由機(jī)器人示教器、機(jī)器人控制器和機(jī)器人本體組成。本文以課題組前期研發(fā)的運(yùn)行實(shí)時(shí)拓展軟件Kithara拓展的Windows7系統(tǒng)的工業(yè)PC為控制器,采用標(biāo)準(zhǔn)以太網(wǎng)卡與示教器集成。示教器為運(yùn)行Windows CE 6.0系統(tǒng)的嵌入式計(jì)算機(jī)。

        示教器系統(tǒng)的軟件結(jié)構(gòu)采用模塊化、多線程的策略進(jìn)行開(kāi)發(fā),包括兩個(gè)部分:運(yùn)行在示教器上的人機(jī)交互(HMI)模塊及以太網(wǎng)通信模塊和運(yùn)行在控制器上的以太網(wǎng)通信模塊,其結(jié)構(gòu)如圖2所示??刂破魃系囊蕴W(wǎng)通信模塊以動(dòng)態(tài)鏈接庫(kù)(DLL)的形式加載到控制器主程序,采用C++語(yǔ)言開(kāi)發(fā)。HMI模塊是示教器程序的主控模塊,為提高界面開(kāi)發(fā)效率采用C#語(yǔ)言開(kāi)發(fā);以太網(wǎng)通信模塊以C#引用(using)的形式加載到HMI模塊中。在示教器軟件運(yùn)行過(guò)程中主要實(shí)現(xiàn)3個(gè)任務(wù):界面顯示和觸屏消息的刷新,按鍵消息的響應(yīng)和通信數(shù)據(jù)的交互。任務(wù)的并行執(zhí)行采用多線程的方式,即開(kāi)辟3個(gè)線程分別對(duì)應(yīng)負(fù)責(zé)3個(gè)任務(wù),界面線程為主線程,按鍵處理線程和通信線程為兩個(gè)支線程。界面主線程負(fù)責(zé)掃描界面輸入與刷新界面輸出;通信線程調(diào)用以太網(wǎng)通信模塊中的函數(shù)完成與控制器的通信和與HMI的交互;按鍵處理線程負(fù)責(zé)將按鍵的輸入向HMI的傳遞。

        示教器的軟件設(shè)計(jì)主要實(shí)現(xiàn)人機(jī)交互和以太網(wǎng)通信兩個(gè)功能。

        2 示教器人機(jī)交互功能實(shí)現(xiàn)

        人機(jī)交互功能是通過(guò)一系列的人機(jī)界面、輸入輸出操作實(shí)現(xiàn)的。示教器為用戶提供了按鍵和觸屏兩種輸入方式,用來(lái)實(shí)現(xiàn)參數(shù)設(shè)置、指令輸入、程序編輯等功能。界面為用戶提供了機(jī)器人位姿狀態(tài)、報(bào)警信息顯示,操作窗口等功能,隨著機(jī)器人應(yīng)用場(chǎng)合更加廣泛,示教器還能方便擴(kuò)展功能,如集成機(jī)器人視覺(jué)后的視覺(jué)圖像顯示等。Windows CE是一種模塊化的、具有強(qiáng)大通信能力的嵌入式操作系統(tǒng),專門(mén)用來(lái)支持各種便攜式的個(gè)人計(jì)算設(shè)備,非常適合用于示教器開(kāi)發(fā)。

        圖3列出了示教器界面的結(jié)構(gòu)。主界面是HMI的初始界面,主要實(shí)現(xiàn)機(jī)器人位姿、報(bào)警信息顯示,手動(dòng)操作,示教器系統(tǒng)信息顯示,坐標(biāo)系選擇以及調(diào)用其它界面的功能選擇操作等功能。設(shè)置界面,包含機(jī)器人機(jī)構(gòu)參數(shù),伺服參數(shù),用戶自定義的運(yùn)動(dòng)速度、加速度、加加速度、工況參數(shù),機(jī)器人坐標(biāo)系等的設(shè)置、修改和查看。自動(dòng)模式是機(jī)器人在搬運(yùn)、碼垛等工況下的工作模式,通過(guò)設(shè)置機(jī)器人運(yùn)動(dòng)軌跡中的幾個(gè)固定的示教點(diǎn),自動(dòng)生成機(jī)器人運(yùn)動(dòng)軌跡,完成相應(yīng)工作任務(wù)。自動(dòng)模式界面,包括示教點(diǎn)的設(shè)置、修改、查看以及自動(dòng)模式下的相應(yīng)按鍵。編輯模式界面是機(jī)器人的運(yùn)動(dòng)軌跡程序編輯界面,包含了機(jī)器人軌跡編程的特定語(yǔ)言,程序編輯、程序代碼執(zhí)行,鍵盤(pán)等。文件管理界面,是進(jìn)行示教程序管理的界面,包含了文件讀寫(xiě)、修改、存儲(chǔ)等操作。

        3 示教器與控制器通信功能實(shí)現(xiàn)

        機(jī)器人示教器和控制器軟件系統(tǒng)作為兩個(gè)獨(dú)立的進(jìn)程使用客戶端/服務(wù)器模式[10]實(shí)現(xiàn),控制器為服務(wù)器,示教器為客戶端。示教器與控制器通過(guò)網(wǎng)線連接,以太網(wǎng)通信的具體實(shí)現(xiàn)采用套接字(socket)來(lái)完成。在示教器和控制器上分別設(shè)計(jì)了一個(gè)以太網(wǎng)通信模塊,封裝socket實(shí)現(xiàn)函數(shù)和數(shù)據(jù)傳輸協(xié)議,完成示教器和控制器之間的數(shù)據(jù)信息的交互。具體有以下3個(gè)方面的作用:

        (1)網(wǎng)絡(luò)檢測(cè)。檢測(cè)網(wǎng)絡(luò)出現(xiàn)的異常,維護(hù)網(wǎng)絡(luò)的穩(wěn)定可靠,使其能正常通信。

        (2)數(shù)據(jù)傳輸。接收數(shù)據(jù)并解析到相應(yīng)的接收數(shù)據(jù)緩沖區(qū),或?qū)⒁掳l(fā)的數(shù)據(jù)寫(xiě)入相應(yīng)的下發(fā)數(shù)據(jù)緩沖區(qū)并下發(fā)。

        (3)數(shù)據(jù)交互。提供接口函數(shù)給主線程,使其方便地從通信模塊中讀寫(xiě)數(shù)據(jù)。數(shù)據(jù)傳輸協(xié)議采用Protobuf提供的語(yǔ)法格式來(lái)定義。

        3.1Protobuf簡(jiǎn)介

        Google Protobuf(簡(jiǎn)稱Protobuf)是Google提供的一個(gè)開(kāi)源序列化框架,一種支持多種語(yǔ)言、跨平臺(tái)的結(jié)構(gòu)化數(shù)據(jù)串行化方法,可用于分布式應(yīng)用之間的數(shù)據(jù)通信、數(shù)據(jù)存儲(chǔ)或者異構(gòu)環(huán)境下的數(shù)據(jù)交換[11]。Protobuf最大的特點(diǎn)是以二進(jìn)制流存儲(chǔ),以一種高效、簡(jiǎn)潔、可擴(kuò)展的數(shù)據(jù)格式對(duì)結(jié)構(gòu)化數(shù)據(jù)進(jìn)行編碼[12]。開(kāi)發(fā)人員按照特定的語(yǔ)法定義結(jié)構(gòu)化的數(shù)據(jù)格式,然后使用Protobuf編譯器生成用來(lái)讀寫(xiě)該數(shù)據(jù)的類的代碼,通過(guò)將這些類的文件添加到項(xiàng)目中,調(diào)用相關(guān)方法來(lái)完成數(shù)據(jù)的讀寫(xiě)和序列化與反序列化工作。

        3.2數(shù)據(jù)傳輸協(xié)議

        機(jī)器人示教器與控制器之間的傳輸數(shù)據(jù)主要包括參數(shù)數(shù)據(jù)、指令數(shù)據(jù)和狀態(tài)數(shù)據(jù),集成機(jī)器視覺(jué)后還包括視覺(jué)圖像數(shù)據(jù),如圖4所示。參數(shù)數(shù)據(jù)包括機(jī)器人的機(jī)構(gòu)參數(shù)、伺服電動(dòng)機(jī)的伺服參數(shù)和用戶自定義的用戶參數(shù);指令數(shù)據(jù)是指通過(guò)示教器發(fā)送給控制器用來(lái)控制機(jī)器人運(yùn)動(dòng)的命令,根據(jù)類型的不同又分為觸發(fā)性指令和長(zhǎng)效指令;狀態(tài)數(shù)據(jù)包括機(jī)器人關(guān)節(jié)坐標(biāo)、末端坐標(biāo)以及運(yùn)動(dòng)報(bào)警信息等。可以看出,這些數(shù)據(jù)類型中既有機(jī)器人運(yùn)動(dòng)狀態(tài)等周期性數(shù)據(jù),也有運(yùn)動(dòng)指令等隨機(jī)性數(shù)據(jù),因此必須制定一套數(shù)據(jù)傳輸協(xié)議以確保信息傳輸?shù)母咝?zhǔn)確。Protobuf的特點(diǎn)使其非常適合網(wǎng)絡(luò)數(shù)據(jù)傳輸,因此,本文基于Protobuf設(shè)計(jì)了機(jī)器人示教器與控制器之間的數(shù)據(jù)傳輸協(xié)議。

        Protobuf將傳輸數(shù)據(jù)定義在.proto文件中,傳輸數(shù)據(jù)的結(jié)構(gòu)在該文件中以message格式定義。每個(gè)數(shù)據(jù)結(jié)構(gòu)擁有一個(gè)或多個(gè)字段,每個(gè)字段都由一個(gè)字段修飾符、字段值類型、字段名和字段標(biāo)識(shí)符組成。修飾符用于指定該字段是必選字段(required)、可選字段(optional)或者是重復(fù)字段(repeated),重復(fù)字段通常被用來(lái)當(dāng)做數(shù)組使用;值類型指定了字段的數(shù)據(jù)類型,可以是基本數(shù)據(jù)類型,也可以是枚舉(enum)、message等類型;字段名是字段的ID,不允許重名;標(biāo)識(shí)符用于標(biāo)識(shí)該字段序列化時(shí)在二進(jìn)制流中的位置。下面列舉了一個(gè)名為PosData的message定義的例子,其含有3個(gè)字段。

        message PosData

        {

        enum DataType

        {

        DOWNLOAD = 0;

        UPLOAD = 1;

        UNDEFINE = 2;

        }

        required DataType dataType = 1 [default = UNDEFINE];

        optional double feedPos = 2;

        repeated double absPos = 3;

        }

        定義好的.proto文件通過(guò)編譯器生成指定語(yǔ)言數(shù)據(jù)類的代碼,C++生成.pb.h和.pb.cc文件,C#生成.cs文件。.proto文件中的每個(gè)message都會(huì)對(duì)應(yīng)地生成一個(gè)C++類或C#類,類中針對(duì)message中的每個(gè)字段都會(huì)生成一系列的函數(shù)用于方便地對(duì)字段進(jìn)行讀寫(xiě)操作。以feedPos為例,會(huì)生成下列函數(shù):

        // optional double feedpos = 2;

        inline bool has_feedpos () const;

        inline void clear_feedpos ();

        static const int kfeedPosFieldNumber = 2;

        inline ::google::protobuf:: double feedpos () const;

        inline void set_feedpos (::google::protobuf:: double value);

        基于Protobuf數(shù)據(jù)規(guī)則,本文在RobotData.proto文件中定義了機(jī)器人的傳輸數(shù)據(jù)。該文件中包含兩個(gè)一級(jí)message,分別為數(shù)據(jù)頭DataHead和數(shù)據(jù)區(qū)DataInfo。數(shù)據(jù)頭中定義了數(shù)據(jù)區(qū)的數(shù)據(jù)模式、數(shù)據(jù)狀態(tài)和數(shù)據(jù)長(zhǎng)度,如圖5所示。數(shù)據(jù)區(qū)中定義了機(jī)器人運(yùn)動(dòng)參數(shù)、運(yùn)動(dòng)指令和運(yùn)動(dòng)狀態(tài)以及擴(kuò)展的視覺(jué)信息等數(shù)據(jù),這些數(shù)據(jù)在DataInfo中分別定義成不同的message,實(shí)現(xiàn)數(shù)據(jù)的結(jié)構(gòu)化存放。數(shù)據(jù)的結(jié)構(gòu)化存放滿足了周期性數(shù)據(jù)和隨機(jī)性數(shù)據(jù)在傳輸中的不同需求,也使數(shù)據(jù)讀寫(xiě)和后期擴(kuò)展更加方便。數(shù)據(jù)頭和數(shù)據(jù)區(qū)共同構(gòu)成了數(shù)據(jù)協(xié)議,以整體的形式在以太網(wǎng)中傳輸,如圖6所示。

        數(shù)據(jù)頭中定義的數(shù)據(jù)區(qū)的數(shù)據(jù)模式是指數(shù)據(jù)是下發(fā)模式還是上傳模式,下發(fā)模式是指從示教器往控制器發(fā)送數(shù)據(jù),上傳模式是指控制器往示教器發(fā)送數(shù)據(jù)。下發(fā)模式的數(shù)據(jù)主要是隨機(jī)性數(shù)據(jù),上傳模式的數(shù)據(jù)既有機(jī)器人位姿、關(guān)節(jié)位置等周期性,又有報(bào)警、錯(cuò)誤信息等非周期性數(shù)據(jù)。數(shù)據(jù)狀態(tài)用于校驗(yàn)數(shù)據(jù)類型,不同的場(chǎng)合會(huì)有不同的數(shù)據(jù)需求,如某些緊急情況下會(huì)發(fā)送緊急數(shù)據(jù)。數(shù)據(jù)包長(zhǎng)度在數(shù)據(jù)發(fā)送前通過(guò)Protobuf提供的函數(shù)獲得,在數(shù)據(jù)包反序列化時(shí)使用。數(shù)據(jù)發(fā)送前先要根據(jù)數(shù)據(jù)區(qū)的內(nèi)容寫(xiě)數(shù)據(jù)頭;數(shù)據(jù)接收后也先要解析數(shù)據(jù)頭,再根據(jù)數(shù)據(jù)頭解析數(shù)據(jù)區(qū)。

        3.3數(shù)據(jù)交互接口

        以太網(wǎng)中傳輸?shù)臄?shù)據(jù)是Protobuf格式數(shù)據(jù),要將其轉(zhuǎn)換成示教器界面層或控制器運(yùn)動(dòng)內(nèi)核層(RunTime)使用的數(shù)據(jù)還必須通過(guò)自定義的數(shù)據(jù)交互接口來(lái)完成。數(shù)據(jù)交互接口中包括了Protobuf數(shù)據(jù)定義類(RobotData.pb.h、RobotData.pb.cc)、Protobuf數(shù)據(jù)收發(fā)類(TcpComm.h、TcpComm.cpp)、用戶數(shù)據(jù)定義類(DataInfo.h、DataInfo.cpp)、用戶數(shù)據(jù)讀寫(xiě)類(DataComm.h、DataComm.cpp)等四個(gè)類,類關(guān)系圖如圖7所示。圖中編號(hào)為數(shù)據(jù)傳輸流程,①~⑤為數(shù)據(jù)接收讀取流程,⑥~⑩為數(shù)據(jù)寫(xiě)入發(fā)送流程。

        Protobuf數(shù)據(jù)收發(fā)類中封裝了與以太網(wǎng)通信的接口函數(shù),用戶數(shù)據(jù)讀寫(xiě)類封裝了與示教器界面或控制器非實(shí)時(shí)層交互的接口函數(shù)。用戶數(shù)據(jù)定義類的作用是充當(dāng)了一個(gè)數(shù)據(jù)緩沖區(qū),示教器在下發(fā)數(shù)據(jù)之前先通過(guò)用戶數(shù)據(jù)讀寫(xiě)類中的寫(xiě)函數(shù)將要下發(fā)的數(shù)據(jù)寫(xiě)入數(shù)據(jù)緩沖區(qū),再周期性地傳遞給用戶Protobuf數(shù)據(jù)定義類,完成下發(fā);示教器在周期性地接收數(shù)據(jù)后將接收的Protobuf數(shù)據(jù)讀入數(shù)據(jù)緩沖區(qū),HMI或RunTime再通過(guò)用戶數(shù)據(jù)讀寫(xiě)類中的讀函數(shù)讀取所需的數(shù)據(jù)。

        3.4數(shù)據(jù)傳輸流程

        Protobuf定義的數(shù)據(jù)協(xié)議在Socket通訊中的基本原理是[13]:發(fā)送端在發(fā)送之前將要傳輸?shù)南磎essage格式打包并序列化;接收端在收到消息時(shí),反序列化并解包。Protobuf提供的API定義了序列化和反序列化的函數(shù),如表1所示。

        表1Protobuf序列化與反序列化函數(shù)

        操作函數(shù)C++序列化SerializeToArray()C++反序列化ParseFromArray()C#序列化Serializer.Serialize()C#反序列化Serializer.Deserialize()

        常用的Socket通信應(yīng)用類型有兩類:用于面向連接的TCP(Transmission control protocol,傳輸控制協(xié)議)服務(wù)應(yīng)用和用于無(wú)連接的UDP(user data protocol,用戶數(shù)據(jù)報(bào)協(xié)議)服務(wù)應(yīng)用[14]。TCP通信在正式收發(fā)數(shù)據(jù)前,必須和對(duì)方建立可靠地連接,因此準(zhǔn)確性高。機(jī)器人示教器與控制器之間的通信必須保證數(shù)據(jù)的嚴(yán)格準(zhǔn)確,因此采用基于面向連接的TCP協(xié)議的Socket通信??刂破鳛镾ocket服務(wù)器端,示教器為Socket客戶端,在獨(dú)立的線程中通過(guò)定時(shí)器實(shí)現(xiàn)每200 ms完成一次數(shù)據(jù)接收與發(fā)送,通信工作流程如圖8所示。

        4 實(shí)例驗(yàn)證

        在實(shí)驗(yàn)室的機(jī)器人控制平臺(tái)上,以SCARA機(jī)器人為實(shí)例,進(jìn)行了以下兩個(gè)方面的試驗(yàn),試驗(yàn)平臺(tái)如圖9所示。

        (1)示教器與控制器之間以太網(wǎng)通信準(zhǔn)確性和穩(wěn)定性的試驗(yàn)。模擬示教器正常使用情況下數(shù)據(jù)的發(fā)送和接收情況,如從示教器設(shè)置參數(shù),下發(fā)指令,從控制器獲取機(jī)器人位姿、報(bào)警信息等,觀察數(shù)據(jù)的準(zhǔn)確性和網(wǎng)絡(luò)的穩(wěn)定性。結(jié)果表明,以太網(wǎng)通信準(zhǔn)確穩(wěn)定。

        (2)示教器、控制器與機(jī)器人聯(lián)機(jī)試驗(yàn)。試驗(yàn)過(guò)程中用示教器改變機(jī)器人的位姿、設(shè)定機(jī)器人運(yùn)動(dòng)速度和指定運(yùn)動(dòng)軌跡,觀察機(jī)器人的實(shí)際響應(yīng)情況及示教器的狀態(tài)顯示等。結(jié)果表明,通過(guò)示教器可以方便快捷的使機(jī)器人按照指定的方式穩(wěn)定的運(yùn)動(dòng)。

        5 結(jié)語(yǔ)

        在嵌入式WinCE平臺(tái)下開(kāi)發(fā)機(jī)器人示教器,能充分利用系統(tǒng)支持的豐富軟硬件資源,使示教器軟件開(kāi)發(fā)更加方便,人機(jī)界面更加友好,性能更加完善。使用以太網(wǎng)實(shí)現(xiàn)示教器與控制器之間的通信,解決了傳輸速率的問(wèn)題,提高了通信效率,同時(shí)提高了通信的穩(wěn)定性和數(shù)據(jù)傳輸?shù)臏?zhǔn)確性?;贕oogle Protobuf定義傳

        輸數(shù)據(jù)協(xié)議,簡(jiǎn)化了數(shù)據(jù)協(xié)議,可在不改變軟件結(jié)構(gòu)的情況下修改數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)與算法的分離。

        [1]洪鷹,王樂(lè). 基于嵌入式計(jì)算機(jī)的機(jī)器人示教器研究[J]. 計(jì)算機(jī)工程與應(yīng)用,2013,49(1):78-81.

        [2]周偉,徐方. 基于Wince的機(jī)器人示教盒的設(shè)計(jì)與開(kāi)發(fā)[J]. 機(jī)械設(shè)計(jì)與制造, 2012(3):9-11.

        [3]趙鳳申,李愛(ài)芹,吳文祥. 工業(yè)機(jī)器人嵌入式示教盒設(shè)計(jì)[J].電焊機(jī), 2011,41(12): 9-12.

        [4]何競(jìng)擇,贠超,張棟,等. 拋光機(jī)器人示教控制系統(tǒng)設(shè)計(jì)[J]. 制造業(yè)自動(dòng)化, 2011,33(13): 5-8.

        [5]常春國(guó),史金飛,羅翔,等. Windows與Linux串口通信和網(wǎng)絡(luò)通信的比較研究[J]. 中國(guó)制造業(yè)信息化:學(xué)術(shù)版, 2006(7): 49-52,65.

        [6]Wang K, Zhang C, Ding X, et al. A new real-time Ethernet for numeric control[C].Intelligent Control and Automation (WCICA), 2010 8th World Congress on. IEEE, 2010: 4137-4141.

        [7]郎需林,靳東,張承瑞,等. 基于實(shí)時(shí)以太網(wǎng)的 DELTA 并聯(lián)機(jī)械手控制系統(tǒng)設(shè)計(jì)[J]. 機(jī)器人, 2013, 35(5): 576-581.

        [8]姬帥,張承瑞,孫書(shū)仁,等. 基于實(shí)時(shí)以太網(wǎng)的開(kāi)放式運(yùn)動(dòng)控制系統(tǒng)[J]. 山東大學(xué)學(xué)報(bào):工學(xué)版, 2014, 44(5): 7-13.

        [9]孫好春,張承瑞,胡天亮. 基于 SMP 的總線式軟運(yùn)動(dòng)控制引擎設(shè)計(jì)[J]. 農(nóng)業(yè)機(jī)械學(xué)報(bào), 2014, 45(3): 288-292.

        [10]Xue M, Zhu C. The socket programming and software design for communication based on client/server[C].Circuits, Communications and Systems, 2009. PACCS'09. Pacific-Asia Conference on. IEEE, 2009: 775-777.

        [11]Feng J, Li J. Google Protocol Buffers research and application in online game[C].Conference Anthology, IEEE. IEEE, 2013: 1-4.

        [12]Sumaray A, Makki S K. A comparison of data serialization formats for optimal efficiency on a mobile platform[C].Proceedings of the 6th International Conference on Ubiquitous Information Management and Communication. ACM, 2012: 48.

        [13]李紀(jì)欣,王康,周立發(fā),等. Google Protobuf在Linux Socket通訊中的應(yīng)用[J]. 電腦開(kāi)發(fā)與應(yīng)用, 2013,26(4): 1-5.

        [14]張?jiān)蕜?劉常春,劉偉,等.基于Socket和多線程的遠(yuǎn)程監(jiān)控系統(tǒng)[J]. 控制工程, 2006, 13(2): 175-177.

        如果您想發(fā)表對(duì)本文的看法,請(qǐng)將文章編號(hào)填入讀者意見(jiàn)調(diào)查表中的相應(yīng)位置。

        Design and implementation of the robot handheld’s software based on Protobuf

        XIA Feihu①②, YE Yingxin①②, HU Tianliang①②, ZHANG Chengrui①②

        (①School of Mechanical Engineering, Shandong University,Jinan 250061,CHN;②Key Laboratory of High Efficiency and Clean Mechanical Manufacturing, Shandong University, Jinan 250061, CHN)

        To improve the data communication performance and the human-machine interface design of the industrial robot handheld, a software design method of the robot handheld based on Ethernet and Windows CE is proposed. In the implementation of communication, Socket data transmission protocol is defined based on Google Protobuf, which simplifies the packaging and parsing of transmission data between robot handheld and the controller. In interface design, the use of Windows CE system simplifies the development, also fast response and good extensibility of human-machine interface are achieved. In software design, mapping mechanism based on dynamic link library is used to realize the modularized software architecture, which increases independence and openness of the software system. Through the test on SCARA robot, feasibility of handheld software is validated.

        Google Protobuf; industrial robot; handheld; software design

        TP242.2

        A

        夏飛虎,男,1989年生,碩士研究生,研究領(lǐng)域?yàn)闄C(jī)器人控制系統(tǒng)。

        (編輯譚弘穎)(2016-01-05)

        160537

        數(shù)控一代機(jī)械產(chǎn)品創(chuàng)新的區(qū)域應(yīng)用示范工程(2014BAF09B01)科技部國(guó)家支撐計(jì)劃

        猜你喜歡
        定義界面
        永遠(yuǎn)不要用“起點(diǎn)”定義自己
        海峽姐妹(2020年9期)2021-01-04 01:35:44
        定義“風(fēng)格”
        國(guó)企黨委前置研究的“四個(gè)界面”
        基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開(kāi)發(fā)方法研究
        空間界面
        金秋(2017年4期)2017-06-07 08:22:16
        電子顯微打開(kāi)材料界面世界之門(mén)
        人機(jī)交互界面發(fā)展趨勢(shì)研究
        成功的定義
        山東青年(2016年1期)2016-02-28 14:25:25
        手機(jī)界面中圖形符號(hào)的發(fā)展趨向
        新聞傳播(2015年11期)2015-07-18 11:15:04
        修辭學(xué)的重大定義
        久久综合伊人有码一区中文字幕 | 亚洲一区二区三区精品| 日产精品久久久一区二区| 欧美成年黄网站色视频| 春色成人在线一区av| 亚洲人妻御姐中文字幕| 午夜熟女插插xx免费视频| 熟妇高潮一区二区三区| 免费国产黄线在线播放| 精品国产精品久久一区免费| 精品熟人妻一区二区三区四区不卡| 蜜桃麻豆www久久囤产精品| 日韩在线观看你懂的| 丝袜美腿亚洲综合玉足| 亚洲乱码中文字幕在线播放| 国产精品自在线拍国产手机版| 亚洲色大成网站www在线观看| 肉丝高跟国产精品啪啪| 精品国产成人av久久| 白天躁晚上躁麻豆视频| 欧洲亚洲视频免费| 精品中文字幕精品中文字幕 | 日本一区二区偷拍视频| 精品午夜福利在线观看| 国产zzjjzzjj视频全免费| 免费无遮挡毛片中文字幕| 日韩美腿丝袜三区四区| 天堂中文官网在线| 欧美一级三级在线观看| av天堂一区二区三区精品| 日本在线视频www色| 日日碰狠狠躁久久躁9| 中文字幕大乳少妇| 国产在线91精品观看| 亚洲另类欧美综合久久图片区| 纯肉无遮挡H肉动漫在线观看国产| 一区二区三区四区免费国产视频| 天堂在线资源中文在线8| 国产亚洲av片在线观看18女人| 亚洲精品白浆高清久久| 丰满人妻猛进入中文字幕|