国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種模塊化嵌入式多足機(jī)器人運(yùn)動(dòng)控制器的制作方法

      文檔序號(hào):6282052閱讀:384來源:國(guó)知局
      專利名稱:一種模塊化嵌入式多足機(jī)器人運(yùn)動(dòng)控制器的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于機(jī)器人技術(shù)領(lǐng)域,具體涉及一種模塊化嵌入式多足機(jī)器人運(yùn)動(dòng)控制器。
      背景技術(shù)
      機(jī)器人控制器是機(jī)器人系統(tǒng)中最重要、最關(guān)鍵的部分。機(jī)器人控制器性能的好壞直接決定著機(jī)器人的運(yùn)動(dòng)性能?,F(xiàn)有的機(jī)器人系統(tǒng)多是專用系統(tǒng),只能適應(yīng)于特定結(jié)構(gòu)的機(jī)器人,一旦機(jī)器人的結(jié)構(gòu)改變,其控制器也得重新設(shè)計(jì),從而限制了機(jī)器人根據(jù)任務(wù)和工作環(huán)境的要求進(jìn)行變更或擴(kuò)展的能力。且現(xiàn)有的控制器不具有容錯(cuò)功能,機(jī)器人的某些關(guān)節(jié)一旦遭到破壞整個(gè)機(jī)器人系統(tǒng)立刻陷入癱瘓狀態(tài)。
      目前存在的各種開放式結(jié)構(gòu)機(jī)器人控制器雖然做到了可移植性,可擴(kuò)展性等,但大多采用工業(yè)控制計(jì)算機(jī)作為控制器,硬件結(jié)構(gòu)無法改變,且成本高,體積大,無法做到嵌入式控制。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于克服已有控制器的不足之處,提供一種模塊化嵌入式多足機(jī)器人運(yùn)動(dòng)控制器,該控制器軟件系統(tǒng)靈活、穩(wěn)定,是一種具有可重構(gòu)、可容錯(cuò)的嵌入式控制器。
      本發(fā)明提供的模塊化嵌入式多足機(jī)器人運(yùn)動(dòng)控制器,其特征在于該控制器包括PC模塊、機(jī)身控制模塊和分別位于各條足上的足單元控制模塊;其中,PC模塊包括操作軟件模塊和第一通信模塊,操作軟件模塊用于實(shí)現(xiàn)環(huán)境識(shí)別、路徑規(guī)劃和步態(tài)規(guī)劃功能,并將計(jì)算出的數(shù)據(jù)傳送給第一通信模塊;第一通信模塊具有處理機(jī)身總線數(shù)據(jù)的功能,將機(jī)身控制模塊與PC模塊通過USB總線連接;機(jī)身控制模塊包括第二PC通信模塊、狀態(tài)顯示模塊和機(jī)身控制器;第二PC通信模塊用于與第一通信模塊通信,并將數(shù)據(jù)傳送給機(jī)身控制器;機(jī)身控制器采用ARM處理器對(duì)數(shù)據(jù)進(jìn)行處理后再將處理后的數(shù)據(jù)轉(zhuǎn)發(fā)到各足單元控制器,機(jī)身控制器的狀態(tài)通過狀態(tài)顯示模塊予以顯示;足單元控制模塊包括足單元控制器、髖關(guān)節(jié)控制模塊、膝關(guān)節(jié)控制模塊、踝關(guān)節(jié)控制模塊和傳感器模塊;足單元控制器協(xié)調(diào)控制一條足內(nèi)的三個(gè)關(guān)節(jié)的協(xié)調(diào)運(yùn)動(dòng),并向機(jī)身控制模塊反饋整條足的運(yùn)動(dòng)狀態(tài);髖關(guān)節(jié)控制模塊、膝關(guān)節(jié)控制模塊、踝關(guān)節(jié)控制模塊結(jié)構(gòu)相同,均由關(guān)節(jié)控制器和足關(guān)節(jié)電機(jī)構(gòu)成;關(guān)節(jié)控制器根據(jù)機(jī)身控制模塊通過CAN_Bus傳送的運(yùn)動(dòng)數(shù)據(jù),采用單片機(jī)控制足關(guān)節(jié)電機(jī)進(jìn)行預(yù)定的運(yùn)動(dòng),通過足關(guān)節(jié)傳動(dòng)鏈將運(yùn)動(dòng)傳遞到關(guān)節(jié)機(jī)構(gòu)本體,各關(guān)節(jié)的協(xié)調(diào)運(yùn)動(dòng)形成機(jī)器人的整體運(yùn)動(dòng),再通過傳感器模塊將關(guān)節(jié)的運(yùn)動(dòng)狀態(tài)進(jìn)行反饋,實(shí)現(xiàn)閉環(huán)控制。
      本發(fā)明所提出的模塊化嵌入式機(jī)器人控制器采用分層式控制方式,由數(shù)據(jù)運(yùn)算層、以ARM微處理器為控制核心的機(jī)身控制層和單片機(jī)為控制核心的關(guān)節(jié)控制層組成。數(shù)據(jù)運(yùn)算層建立在PC機(jī)上,計(jì)算機(jī)器人的步態(tài)數(shù)據(jù)。機(jī)身控制層以ARM處理器為控制核心,可存儲(chǔ)機(jī)器人的步態(tài)數(shù)據(jù),實(shí)現(xiàn)機(jī)器人的離線運(yùn)動(dòng),也擁有與PC機(jī)的無縫聯(lián)接接口,由PC機(jī)對(duì)機(jī)器人實(shí)現(xiàn)在線調(diào)試,關(guān)節(jié)控制層則由單片機(jī)為控制核心。具體而言,本發(fā)明具有以下技術(shù)效果(1)本發(fā)明所提出的機(jī)器人控制器具有可重構(gòu)能力,當(dāng)機(jī)器人根據(jù)任務(wù)和工作環(huán)境的要求進(jìn)行變更或擴(kuò)展時(shí),只須將關(guān)節(jié)控制器加入到機(jī)身控制器的CAN總線網(wǎng)絡(luò)或從網(wǎng)絡(luò)中刪除即可。
      (2)當(dāng)機(jī)器人在運(yùn)行中遭到破壞,機(jī)身控制器會(huì)自動(dòng)識(shí)別并關(guān)閉該關(guān)節(jié),直接跳出對(duì)該關(guān)節(jié)的操作,擁有一定的容錯(cuò)能力。
      (3)機(jī)身控制層擴(kuò)展關(guān)節(jié),增添其他設(shè)備可實(shí)現(xiàn)即插即用,自動(dòng)識(shí)別ID號(hào)。
      (4)本發(fā)明可以用于機(jī)器人的控制,也可以用于其他運(yùn)動(dòng)系統(tǒng)的控制。


      圖1為模塊化可重構(gòu)機(jī)器人各邏輯層與物理實(shí)現(xiàn)的對(duì)應(yīng)關(guān)系圖;圖2為本發(fā)明模塊化嵌入式多足機(jī)器人運(yùn)動(dòng)控制器的結(jié)構(gòu)示意圖;圖3操作軟件模塊流程圖;圖4為機(jī)身控制器硬件結(jié)構(gòu)框圖;圖5為機(jī)身控制器軟件系統(tǒng)框圖;圖6為關(guān)節(jié)控制器硬件框圖;圖7為關(guān)節(jié)控制器軟件三層抽象圖8為關(guān)節(jié)控制器軟件流程圖;圖9為ID識(shí)別流程圖。
      具體實(shí)施例方式
      下面結(jié)合附圖和實(shí)例對(duì)本發(fā)明提出的一種模塊化嵌入式機(jī)器人控制器作進(jìn)一步詳細(xì)的說明。
      本發(fā)明中的模塊化嵌入式機(jī)器人能夠?qū)崿F(xiàn)類似于普通步行機(jī)器人的步行運(yùn)動(dòng),而且能夠通過向機(jī)器人平臺(tái)添加新的模塊為機(jī)器人提供擴(kuò)展功能。因此該控制器需要實(shí)現(xiàn)兩方面的功能(1)控制機(jī)器人完成諸如步行、轉(zhuǎn)向等基本動(dòng)作;(2)支持模塊化的功能,即為機(jī)器人的擴(kuò)展模塊提供標(biāo)準(zhǔn)、便利的接口,實(shí)現(xiàn)“即插即用”功能。為了實(shí)現(xiàn)模塊化的功能,需要具體實(shí)現(xiàn)(1)將控制系統(tǒng)劃分為不同的邏輯層級(jí),(2)在每一邏輯層中實(shí)現(xiàn)一類功能,(3)在邏輯層之間使用標(biāo)準(zhǔn)接口進(jìn)行交互。
      在實(shí)現(xiàn)了具有模塊化特征的控制系統(tǒng)后,通過分析機(jī)器人運(yùn)動(dòng)控制策略,可以將機(jī)器人的運(yùn)動(dòng)控制進(jìn)行細(xì)分,并將其按照功能的不同劃分入控制系統(tǒng)邏輯層中。如圖1所示,具體邏輯層包括場(chǎng)景規(guī)劃層,單機(jī)規(guī)劃層,單元模塊層和設(shè)備實(shí)現(xiàn)層。場(chǎng)景規(guī)劃層通過識(shí)別機(jī)器人所處環(huán)境,對(duì)機(jī)器人進(jìn)行路徑規(guī)劃,并對(duì)機(jī)器人進(jìn)行正逆運(yùn)動(dòng)學(xué)計(jì)算。場(chǎng)景規(guī)劃層主要對(duì)機(jī)器人所在環(huán)境進(jìn)行識(shí)別,并根據(jù)環(huán)境決定機(jī)器人的下一步動(dòng)作,在物理實(shí)現(xiàn)上為步態(tài)生成器。單機(jī)規(guī)劃層主要對(duì)多個(gè)關(guān)節(jié)控制器進(jìn)行協(xié)調(diào)控制,并對(duì)機(jī)身總線和關(guān)節(jié)總線進(jìn)行操作,對(duì)應(yīng)于物理實(shí)現(xiàn)上的機(jī)身控制器。單元模塊層主要負(fù)責(zé)各個(gè)模塊間的通信,處理CAN_Bus數(shù)據(jù),在物理實(shí)現(xiàn)上為多個(gè)關(guān)節(jié)控制器。設(shè)備實(shí)現(xiàn)層負(fù)責(zé)執(zhí)行命令,具體為驅(qū)動(dòng)執(zhí)行器電動(dòng)機(jī)按指定運(yùn)動(dòng)參數(shù)運(yùn)動(dòng),在物理實(shí)現(xiàn)上為電機(jī)控制電路、執(zhí)行機(jī)構(gòu)和傳感器。
      如圖2所示,根據(jù)上述思路,本發(fā)明中的模塊化嵌入式多足機(jī)器人運(yùn)動(dòng)控制器包括PC模塊1、機(jī)身控制模塊2和若干個(gè)足單元控制模塊3。PC模塊1用于識(shí)別機(jī)器人所處環(huán)境,根據(jù)高級(jí)算法確定機(jī)器人的下一步動(dòng)作并將數(shù)據(jù)傳送給機(jī)身控制模塊2。機(jī)身控制模塊2用于將該數(shù)據(jù)處理成為具體運(yùn)動(dòng)數(shù)據(jù),再將數(shù)據(jù)通過機(jī)身總線分發(fā)到各足單元控制模塊3。
      一、PC模塊1PC模塊1位于PC機(jī)內(nèi),它對(duì)應(yīng)于分層控制邏輯層中的場(chǎng)景規(guī)劃層,其軟件模塊包括操作軟件模塊11和第一通信模塊12。操作軟件模塊11用于實(shí)現(xiàn)環(huán)境識(shí)別、路徑規(guī)劃和步態(tài)規(guī)劃功能。如圖3所示,操作軟件模塊11的工作流程為(1)獲取工作任務(wù)進(jìn)行任務(wù)規(guī)劃,生成子任務(wù)序列。并獲取子任務(wù)優(yōu)先級(jí)及子任務(wù)信息。
      (2)根據(jù)各子任務(wù)的優(yōu)先級(jí)調(diào)處優(yōu)先級(jí)最高的子任務(wù)作為當(dāng)前任務(wù)。
      (3)調(diào)入子任務(wù)信息,進(jìn)行處理生成運(yùn)動(dòng)指令序列,將該序列傳送給第一通信模塊12后,繼續(xù)調(diào)用下一個(gè)子任務(wù),直到完成所有的運(yùn)動(dòng)任務(wù)。
      (4)當(dāng)所有任務(wù)完成后根據(jù)機(jī)身控制模塊的反饋數(shù)據(jù)總結(jié)決策經(jīng)驗(yàn),并更新決策庫。
      操作軟件模塊11將計(jì)算出的數(shù)據(jù)傳送給第一通信模塊12,第一通信模塊12具有處理機(jī)身總線數(shù)據(jù)的功能,將機(jī)身控制模塊2與PC模塊1連接起來。機(jī)身控制模塊2與PC模塊1通過USB總線連接。
      二、機(jī)身控制模塊2機(jī)身控制模塊2對(duì)應(yīng)于分層控制邏輯層中的單機(jī)規(guī)劃層。機(jī)身控制模塊2的功能如下1)在離線運(yùn)動(dòng)時(shí)進(jìn)行生成步態(tài),并協(xié)調(diào)控制多個(gè)關(guān)節(jié)控制器完成運(yùn)動(dòng)。2)在與PC聯(lián)調(diào)時(shí)存儲(chǔ)轉(zhuǎn)發(fā)PC上層軟件生成的運(yùn)動(dòng)數(shù)據(jù),并協(xié)調(diào)各個(gè)關(guān)節(jié)控制器的運(yùn)行。
      機(jī)身控制模塊2由第二PC通信模塊21、狀態(tài)顯示模塊22和機(jī)身控制器23組成。第二PC通信模塊21與PC模塊1中的第一通信模塊12通信,并將數(shù)據(jù)傳送給機(jī)身控制器23。機(jī)身控制器23對(duì)數(shù)據(jù)進(jìn)行處理后再將處理后的數(shù)據(jù)轉(zhuǎn)發(fā)到各足單元控制器。機(jī)身控制器23的狀態(tài)通過狀態(tài)顯示模塊22顯示出來方便調(diào)試以及錯(cuò)誤診斷。
      如圖4所示,機(jī)身控制器23包括USB_Bus控制模塊231、傳感器模塊接口232、串口通信模塊233、ARM微處理器234和CAN_Bus驅(qū)動(dòng)模塊235。機(jī)身控制器23采用ARM微處理器234作為控制核心。與工業(yè)控制計(jì)算機(jī)相比,ARM嵌入式微處理器具有體積小,重量輕,成本低及可靠性高的優(yōu)點(diǎn)。在ARM的外圍加上USB_Bus控制模塊231用于接受來自PC模塊1通過USB_Bus傳送的運(yùn)動(dòng)指令數(shù)據(jù),并將機(jī)器人運(yùn)動(dòng)狀態(tài)返回給PC模塊1。傳感器模塊接口232用于為足單元模塊3中的傳感器3提供接口。串口通信模塊233傳送和發(fā)送通過串口來自PC模塊1的數(shù)據(jù),主要在調(diào)試過程中使用。CAN_Bus驅(qū)動(dòng)模塊235連接到CAN_Bus網(wǎng)絡(luò),為ARM微處理器234中的CAN控制器提供與物理總線之間的物理接口。
      由于機(jī)身控制層的數(shù)據(jù)流量大,任務(wù)繁多,存在多層中斷嵌套,對(duì)實(shí)時(shí)性要求比較高,因此再采用傳統(tǒng)的前后臺(tái)系統(tǒng)的軟件結(jié)構(gòu)顯然不能滿足要求。如圖5所示,ARM微處理器234通過移植嵌入式操作系統(tǒng)μC/OS-II可以使機(jī)身控制程序能夠利用多線程、動(dòng)態(tài)內(nèi)存分配等高級(jí)功能完成更加復(fù)雜的任務(wù)。ARM微處理器234的程序結(jié)構(gòu)可分成兩層操作系統(tǒng)和應(yīng)用程序。操作系統(tǒng)是在ARM啟動(dòng)后首先執(zhí)行的背景程序,應(yīng)用程序則是在操作系統(tǒng)之上的各個(gè)任務(wù),操作系統(tǒng)根據(jù)各個(gè)任務(wù)的要求,進(jìn)行資源管理,消息管理,任務(wù)調(diào)度及異常處理等工作。μC/OS-II是一個(gè)源碼公開,可移植,可固化,可裁剪及占先式的實(shí)時(shí)多任務(wù)操作系統(tǒng),絕大部分源碼使用ANSIC寫的,與微處理器硬件相關(guān)的部分是使用匯編語言編寫。因此操作系統(tǒng)包括μC/OS-II內(nèi)核,μC/OS-II任務(wù)設(shè)置,μC/OS-II系統(tǒng)移植代碼。μC/OS-II內(nèi)核提供所有的系統(tǒng)服務(wù)。內(nèi)核將應(yīng)用程序與底層硬件有機(jī)的結(jié)合成一個(gè)實(shí)時(shí)系統(tǒng)。與處理器相關(guān)的代碼(μC/OS-II移植代碼)可以看作是內(nèi)核與硬件之間的中間層,它實(shí)現(xiàn)了同一內(nèi)核應(yīng)用于不同硬件體系中。μC/OS-II任務(wù)設(shè)置則是與應(yīng)用程序相關(guān)的對(duì)操作系統(tǒng)的設(shè)置。
      應(yīng)用程序由多個(gè)任務(wù)組成,每個(gè)任務(wù)都有唯一的優(yōu)先級(jí),實(shí)時(shí)操作系統(tǒng)根據(jù)各個(gè)任務(wù)的優(yōu)先級(jí),動(dòng)態(tài)的切換各個(gè)任務(wù),保證對(duì)實(shí)時(shí)性的要求。USB_Bus數(shù)據(jù)處理任務(wù)優(yōu)先級(jí)最高,用于接收來自PC機(jī)的運(yùn)動(dòng)數(shù)據(jù),以及返回機(jī)器人控制器的各種狀態(tài)信息。CAN_Bus數(shù)據(jù)處理任務(wù)處理機(jī)身總線上的數(shù)據(jù),向關(guān)節(jié)控制層的多個(gè)控制器分發(fā)運(yùn)動(dòng)指令,并實(shí)時(shí)監(jiān)控各關(guān)節(jié)控制器的狀態(tài),當(dāng)出現(xiàn)有關(guān)節(jié)控制器出錯(cuò),或有新ID注冊(cè)時(shí),讓出錯(cuò)分析處理任務(wù)或ID識(shí)別記錄任務(wù)處于就緒態(tài),并進(jìn)行任務(wù)調(diào)度。系統(tǒng)指令處理任務(wù)負(fù)責(zé)將PC發(fā)送的數(shù)據(jù)進(jìn)行分析,處理,并分發(fā)。當(dāng)要進(jìn)行離線運(yùn)行時(shí)離線數(shù)據(jù)運(yùn)行任務(wù)讀取存儲(chǔ)器中運(yùn)動(dòng)數(shù)據(jù)進(jìn)行機(jī)器人的運(yùn)行控制。串口數(shù)據(jù)處理任務(wù)及顯示模塊任務(wù)都是為了方便調(diào)試而設(shè)置的,其優(yōu)先級(jí)最低,只在無其他任務(wù)時(shí)運(yùn)行。
      三、足單元控制模塊3步行機(jī)器人通常由多只足構(gòu)成,每只足上設(shè)有一個(gè)足單元控制模塊。足單元控制模塊對(duì)應(yīng)于分層控制邏輯層中的單元模塊層和設(shè)備實(shí)現(xiàn)層。本發(fā)明中的足單元控制模塊3包括足單元控制器30、髖關(guān)節(jié)控制模塊3 1、膝關(guān)節(jié)控制模塊32、踝關(guān)節(jié)控制模塊33和傳感器模塊34。髖關(guān)節(jié)控制模塊31位于髖關(guān)節(jié),膝關(guān)節(jié)控制模塊32位于膝關(guān)節(jié),踝關(guān)節(jié)模塊位于踝關(guān)節(jié)。
      足單元控制器30負(fù)責(zé)協(xié)調(diào)控制一條足內(nèi)的三個(gè)關(guān)節(jié)的協(xié)調(diào)運(yùn)動(dòng),并向機(jī)身控制模塊2反饋整條足的運(yùn)動(dòng)狀態(tài)。由于每條足在結(jié)構(gòu)和功能上都相同,因此各條足上的足單元控制器也相同。為了充分利用關(guān)節(jié)控制器的剩余能力,在不增加硬件成本的基礎(chǔ)上實(shí)現(xiàn)了足單元控制器的功能,可以將每條足中的髖關(guān)節(jié)控制器31的功能進(jìn)行擴(kuò)充,使其具備足單元控制器30的功能。
      髖關(guān)節(jié)控制模塊31、膝關(guān)節(jié)控制模塊32和踝關(guān)節(jié)控制模塊33的硬件結(jié)構(gòu)也相同,均由關(guān)節(jié)控制器和足關(guān)節(jié)電機(jī)構(gòu)成。
      關(guān)節(jié)控制器根據(jù)機(jī)身控制模塊2通過CAN_Bus傳送的運(yùn)動(dòng)數(shù)據(jù)控制足關(guān)節(jié)電機(jī)進(jìn)行預(yù)定的運(yùn)動(dòng),通過足關(guān)節(jié)傳動(dòng)鏈將運(yùn)動(dòng)傳遞到關(guān)節(jié)機(jī)構(gòu)本體,多個(gè)關(guān)節(jié)的協(xié)調(diào)運(yùn)動(dòng)則形成機(jī)器人的整體運(yùn)動(dòng),通過傳感器模塊34將關(guān)節(jié)的運(yùn)動(dòng)狀態(tài)進(jìn)行反饋,以達(dá)到閉環(huán)控制的效果。
      關(guān)節(jié)控制器是模塊化思想中的關(guān)鍵。如圖6所示,關(guān)節(jié)控制器由三個(gè)模塊組成,分別是單片機(jī)控制模塊61,電機(jī)控制和驅(qū)動(dòng)模塊62以及CAN通信模塊63。單片機(jī)控制模塊61由單片機(jī)最小系統(tǒng)611、電源監(jiān)控模塊612和顯示模塊613構(gòu)成。其中,單片機(jī)最小系統(tǒng)611保證單片機(jī)能完成最簡(jiǎn)單的功能,電源監(jiān)控模塊612使單片機(jī)在外接電源發(fā)生波動(dòng)時(shí)仍能正常運(yùn)行,顯示模塊613實(shí)時(shí)顯示關(guān)節(jié)控制器的運(yùn)行狀態(tài),方便調(diào)試。
      電機(jī)控制和驅(qū)動(dòng)模塊62根據(jù)CAN通信模塊63接受的運(yùn)動(dòng)數(shù)據(jù)控制驅(qū)動(dòng)電機(jī)運(yùn)行,它包括電機(jī)控制器621和電機(jī)驅(qū)動(dòng)器622。電機(jī)控制器621采用專用的運(yùn)動(dòng)控制處理器,對(duì)于關(guān)節(jié)控制器的主CPU單片機(jī)來說,要控制電動(dòng)機(jī)的運(yùn)動(dòng)狀態(tài),只需要設(shè)定電機(jī)的位置、速度以及加速度等相關(guān)參數(shù),減輕了CPU的負(fù)擔(dān),簡(jiǎn)化了控制方法,提高了控制效率。電機(jī)控制部分產(chǎn)生控制電機(jī)的運(yùn)動(dòng)的信號(hào),而電機(jī)的實(shí)際運(yùn)動(dòng)需要有驅(qū)動(dòng)部分來實(shí)現(xiàn)。本發(fā)明中電機(jī)驅(qū)動(dòng)器622采用集成化的功率驅(qū)動(dòng)電路來實(shí)現(xiàn),由電機(jī)控制器輸出PWM波來控制電機(jī)驅(qū)動(dòng)器,達(dá)到功率放大的作用。電機(jī)驅(qū)動(dòng)器622直接與直流電機(jī)623相連完成運(yùn)動(dòng)要求。由于在電機(jī)控制器621和電機(jī)驅(qū)動(dòng)器623之間存在著較大的電磁干擾,采用光耦624進(jìn)行隔離。
      CAN通信模塊63負(fù)責(zé)關(guān)節(jié)控制器與機(jī)身控制器的通信,接受機(jī)身控制模塊2發(fā)送的運(yùn)動(dòng)數(shù)據(jù),并實(shí)時(shí)返回關(guān)節(jié)的運(yùn)動(dòng)狀態(tài)。CAN是到目前為止唯一擁有國(guó)際標(biāo)準(zhǔn)的現(xiàn)場(chǎng)總線,具有抗干擾強(qiáng)、傳輸速度快和傳輸距離長(zhǎng)等特點(diǎn),只需通過對(duì)報(bào)文的標(biāo)示符濾波即可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)及全局廣播等幾種方式傳送接收數(shù)據(jù),因此我們采用CAN總線作為機(jī)身總線。使用CAN總線能夠很好地支持模塊化的結(jié)構(gòu)。CAN總線通信模塊也分為CAN總線控制器631和CAN總線驅(qū)動(dòng)器632兩部分,CAN總線控制器631以一塊可編程芯片上的邏輯電路的組合來實(shí)現(xiàn)網(wǎng)絡(luò)層次結(jié)構(gòu)中數(shù)據(jù)鏈路層和物理層的功能。CAN總線驅(qū)動(dòng)器632提供了物理總線與CAN總線控制器631之間的接口。CAN總線控制器631和CAN總線驅(qū)動(dòng)器632均采用專用芯片來實(shí)現(xiàn)。由單片機(jī)對(duì)其進(jìn)行編程實(shí)現(xiàn)控制。
      關(guān)節(jié)控制器6通過單片機(jī)最小系統(tǒng)611的軟件編程實(shí)現(xiàn)其控制,其體系結(jié)構(gòu)包括三層抽象軟件即硬件相關(guān)層(底層)、自定義函數(shù)層(中間層)和應(yīng)用層(最高層),如圖7所示。其中自定義函數(shù)層和應(yīng)用層也可稱為與硬件無關(guān)層。層與層之間是單向調(diào)用的關(guān)系,即只能由上一層調(diào)用下一層函數(shù),但是下一層卻不能調(diào)用上一層的函數(shù)。而且調(diào)用只能在相鄰層之間,而不能跨層調(diào)用,比如應(yīng)用層不能跳過自定義函數(shù)層去調(diào)用硬件相關(guān)層中的函數(shù)。使用這樣的三層結(jié)構(gòu)設(shè)計(jì)的好處是當(dāng)硬件系統(tǒng)改變以后,只需要更改硬件相關(guān)層,而中間層和應(yīng)用層不需要進(jìn)行多大的改變就可以適應(yīng)新的硬件平臺(tái)。這樣的體系結(jié)構(gòu)提高了軟件的開放性和可移植性。
      由于關(guān)節(jié)控制層的任務(wù)數(shù)較少,且關(guān)節(jié)控制層中微控制器的存儲(chǔ)容量有限,因此關(guān)節(jié)控制層的整體流程采用前后臺(tái)方式,應(yīng)用程序是一個(gè)無限循環(huán)。循環(huán)中調(diào)用相應(yīng)的函數(shù)完成相應(yīng)的操作,中斷服務(wù)程序處理異步事件。事件相關(guān)性很強(qiáng)的關(guān)鍵操作靠中斷服務(wù)程序保證。其具體流程如圖8所示。當(dāng)系統(tǒng)上電復(fù)位后,由系統(tǒng)初始化程序初始化單片機(jī),電機(jī)控制器,CAN總線控制器及設(shè)置中斷方式和優(yōu)先級(jí)。然后由ID識(shí)別模塊識(shí)別出該關(guān)節(jié)的ID值并向機(jī)身控制器進(jìn)行枚舉。進(jìn)入主循環(huán),查詢CAN總線事件發(fā)生標(biāo)志,電機(jī)到位標(biāo)志,電機(jī)堵轉(zhuǎn)標(biāo)志,以及CAN網(wǎng)絡(luò)出錯(cuò)標(biāo)志。當(dāng)有標(biāo)志位置位時(shí)則調(diào)用相應(yīng)的函數(shù)進(jìn)行處理。當(dāng)有中斷到來時(shí),在中斷處理程序中并不馬上進(jìn)行處理,只是改變?cè)摌?biāo)志位,在主循環(huán)中再進(jìn)行處理。這樣可以防止進(jìn)入中斷時(shí)間過長(zhǎng),相應(yīng)其他中斷的速度變慢而使得系統(tǒng)整體中斷響應(yīng)時(shí)間變長(zhǎng)。
      ID自識(shí)別是機(jī)器人實(shí)現(xiàn)可重構(gòu)和可容錯(cuò)的關(guān)鍵點(diǎn)。當(dāng)機(jī)器人需重構(gòu)時(shí),只要將要添加或更改的關(guān)節(jié)ID用撥碼開關(guān)的方式改變,并復(fù)位具體的關(guān)節(jié)控制器,無須對(duì)機(jī)身控制器操作即可實(shí)現(xiàn)ID自動(dòng)更新,實(shí)現(xiàn)即插即用。ID自識(shí)別的流程如圖9所示,當(dāng)關(guān)節(jié)控制器復(fù)位后,首先讀出撥碼開關(guān)所指示的ID號(hào),控制器先以0x00為ID號(hào),向機(jī)身控制器發(fā)出枚舉信號(hào),等待機(jī)身控制其響應(yīng)后,將讀出的ID號(hào)發(fā)送給機(jī)身控制器,機(jī)身控制器首先判斷該ID號(hào)是否已經(jīng)存在,若不存在,則在其關(guān)節(jié)ID鏈表中添加該ID號(hào),并向關(guān)節(jié)控制器發(fā)送確認(rèn)禎,關(guān)節(jié)控制器受到確認(rèn)禎后將該ID號(hào)設(shè)為CAN總線ID號(hào)進(jìn)行通訊。若該ID號(hào)在機(jī)身控制器中已存在,則通知關(guān)節(jié)控制器ID出錯(cuò),并報(bào)警。
      權(quán)利要求
      1.一種模塊化嵌入式多足機(jī)器人運(yùn)動(dòng)控制器,其特征在于該控制器包括PC模塊(1)、機(jī)身控制模塊(2)和分別位于各條足上的足單元控制模塊(3);其中,PC模塊(1)包括操作軟件模塊(11)和第一通信模塊(12),操作軟件模塊(11)用于實(shí)現(xiàn)環(huán)境識(shí)別、路徑規(guī)劃和步態(tài)規(guī)劃功能,并將計(jì)算出的數(shù)據(jù)傳送給第一通信模塊(12);第一通信模塊(12)具有處理機(jī)身總線數(shù)據(jù)的功能,將機(jī)身控制模塊(2)與PC模塊(1)通過USB總線連接;機(jī)身控制模塊(2)包括第二PC通信模塊(21)、狀態(tài)顯示模塊(22)和機(jī)身控制器(23);第二PC通信模塊(21)用于與第一通信模塊(12)通信,并將數(shù)據(jù)傳送給機(jī)身控制器(23);機(jī)身控制器(23)采用ARM處理器對(duì)數(shù)據(jù)進(jìn)行處理后再將處理后的數(shù)據(jù)轉(zhuǎn)發(fā)到各足單元控制器,機(jī)身控制器(23)的狀態(tài)通過狀態(tài)顯示模塊(22)予以顯示;足單元控制模塊(3)包括足單元控制器(30)、髖關(guān)節(jié)控制模塊(31)、膝關(guān)節(jié)控制模塊(32)、踝關(guān)節(jié)控制模塊(33)和傳感器模塊(34);足單元控制器(30)用于協(xié)調(diào)控制一條足內(nèi)的三個(gè)關(guān)節(jié)的協(xié)調(diào)運(yùn)動(dòng),并向機(jī)身控制模塊(2)反饋整條足的運(yùn)動(dòng)狀態(tài);髖關(guān)節(jié)控制模塊(31)、膝關(guān)節(jié)控制模塊(32)、踝關(guān)節(jié)控制模塊(33)結(jié)構(gòu)相同,均由關(guān)節(jié)控制器和足關(guān)節(jié)電機(jī)構(gòu)成;關(guān)節(jié)控制器根據(jù)機(jī)身控制模塊(2)通過CAN_Bus傳送的運(yùn)動(dòng)數(shù)據(jù),采用單片機(jī)控制足關(guān)節(jié)電機(jī)進(jìn)行預(yù)定的運(yùn)動(dòng),通過足關(guān)節(jié)傳動(dòng)鏈將運(yùn)動(dòng)傳遞到關(guān)節(jié)機(jī)構(gòu)本體,各關(guān)節(jié)的協(xié)調(diào)運(yùn)動(dòng)形成機(jī)器人的整體運(yùn)動(dòng),再通過傳感器模塊(34)將關(guān)節(jié)的運(yùn)動(dòng)狀態(tài)進(jìn)行反饋,實(shí)現(xiàn)閉環(huán)控制。
      2.根據(jù)權(quán)利要求1所述的模塊化嵌入式多足機(jī)器人運(yùn)動(dòng)控制器,其特征在于所述足單元控制器(30)和髖關(guān)節(jié)控制模塊(31)合為一體。
      3.根據(jù)權(quán)利要求1或2所述的模塊化嵌入式多足機(jī)器人運(yùn)動(dòng)控制器,其特征在于機(jī)身控制器23包括USB_Bus控制模塊(231)、傳感器模塊接口(232)、串口通信模塊(233)、ARM微處理器(234)和CAN_Bus驅(qū)動(dòng)模塊(235);其中,ARM微處理器(234)采用移植嵌入式操作系統(tǒng)μC/OS-H,根據(jù)各個(gè)任務(wù)的要求,進(jìn)行資源管理,消息管理,任務(wù)調(diào)度及異常處理工作,并初始化和處理來自USB_Bus控制模塊(231)、傳感器模塊接口(232)、串口通信模塊(233)CAN_Bus驅(qū)動(dòng)模塊(235)的數(shù)據(jù);USB_Bus控制模塊(231)用于接受來自PC模塊(1)通過USB_Bus傳送的運(yùn)動(dòng)指令數(shù)據(jù),并將機(jī)器人運(yùn)動(dòng)狀態(tài)返回給PC模塊;傳感器模塊接口(232)用于為足單元模塊(3)中的傳感器模塊(34)提供接口;串口通信模塊(233)傳送在調(diào)試過程中來自PC模塊(1)的數(shù)據(jù);CAN_Bus驅(qū)動(dòng)模塊(235)連接到CAN_Bus網(wǎng)絡(luò),為ARM微處理器(234)中的CAN控制器提供與物理總線之間的物理接口。
      4.根據(jù)權(quán)利要求3所述的模塊化嵌入式多足機(jī)器人運(yùn)動(dòng)控制器,其特征在于所述關(guān)節(jié)控制器由單片機(jī)控制模塊(61),電機(jī)控制和驅(qū)動(dòng)模塊(62)以及CAN通信模塊(63)構(gòu)成;其中,單片機(jī)控制模塊(61)用于控制單片機(jī)正常工作,接受CAN通信模塊(63)的總線數(shù)據(jù),處理后的數(shù)據(jù)傳入電機(jī)控制驅(qū)動(dòng)模塊(62)控制和驅(qū)動(dòng)電機(jī)按指令運(yùn)動(dòng);并接受來自電機(jī)驅(qū)動(dòng)模塊(62)的電機(jī)運(yùn)行狀態(tài)數(shù)據(jù),分析后生成關(guān)節(jié)運(yùn)動(dòng)狀態(tài)數(shù)據(jù)通過CAN通信模塊(63)發(fā)送到總線上;電機(jī)控制和驅(qū)動(dòng)模塊(62)接受單片機(jī)控制模塊(61)的運(yùn)動(dòng)指令數(shù)據(jù),控制和驅(qū)動(dòng)電機(jī),并將電機(jī)運(yùn)行狀態(tài)返回到單片機(jī)控制模塊(61);CAN通信模塊(63)接受CAN總線上的數(shù)據(jù)且傳送給單片機(jī)控制模塊(61),將單片機(jī)控制模塊(61)返回的關(guān)節(jié)狀態(tài)發(fā)送到CAN總線上。
      5.根據(jù)權(quán)利要求4所述的模塊化嵌入式多足機(jī)器人運(yùn)動(dòng)控制器,其特征在于單片機(jī)控制模塊(61)由單片機(jī)最小系統(tǒng)(611)、電源監(jiān)控模塊(612)和顯示模塊(613)構(gòu)成;其中,單片機(jī)最小系統(tǒng)(611)用于單片機(jī)完成最基本的的功能,電源監(jiān)控模塊(612)使單片機(jī)在外接電源發(fā)生波動(dòng)時(shí)仍能正常運(yùn)行,顯示模塊(613)實(shí)時(shí)顯示關(guān)節(jié)控制器的運(yùn)行狀態(tài)。
      6.根據(jù)權(quán)利要求4所述的模塊化嵌入式多足機(jī)器人運(yùn)動(dòng)控制器,其特征在于電機(jī)控制和驅(qū)動(dòng)模塊(62)包括電機(jī)控制器(621)和電機(jī)驅(qū)動(dòng)器(622),電機(jī)控制器(621)用于控制電機(jī)工作,出PWM波來控制電機(jī)驅(qū)動(dòng)器(622)工作,達(dá)到功率放大的作用,電機(jī)驅(qū)動(dòng)器(622)與直流電機(jī)(623)相連完成運(yùn)動(dòng)要求,電機(jī)控制器(621)和電機(jī)驅(qū)動(dòng)器(623)之間采用光耦(624)進(jìn)行隔離。
      7.根據(jù)權(quán)利要求4所述的模塊化嵌入式多足機(jī)器人運(yùn)動(dòng)控制器,其特征在于CAN總線通信模塊(63)由CAN總線控制器(631)和CAN總線驅(qū)動(dòng)器(632)構(gòu)成,CAN總線控制器(631)實(shí)現(xiàn)網(wǎng)絡(luò)層次結(jié)構(gòu)中數(shù)據(jù)鏈路層和物理層的功能,CAN總線驅(qū)動(dòng)器(632)用于提供物理總線與CAN總線控制器(631)之間的接口。
      全文摘要
      本發(fā)明公開了一種模塊化嵌入式多足機(jī)器人運(yùn)動(dòng)控制器,包括PC模塊、機(jī)身控制模塊和分別位于各條足上的足單元控制模塊。PC模塊用于識(shí)別機(jī)器人所處環(huán)境,確定機(jī)器人的下一步動(dòng)作并將數(shù)據(jù)傳送給機(jī)身控制模塊。機(jī)身控制模塊用于將該數(shù)據(jù)處理成為具體運(yùn)動(dòng)數(shù)據(jù),再將數(shù)據(jù)通過機(jī)身總線分發(fā)到各足單元控制模塊。本發(fā)明采用分層式控制方式,由數(shù)據(jù)運(yùn)算層、機(jī)身控制層和關(guān)節(jié)控制層組成。數(shù)據(jù)運(yùn)算層建立在PC機(jī)上,根據(jù)機(jī)器人的正逆運(yùn)動(dòng)學(xué)、動(dòng)力學(xué)計(jì)算出機(jī)器人的步態(tài)數(shù)據(jù)。機(jī)身控制層以ARM處理器為控制核心。機(jī)身控制層有較大的存儲(chǔ)空間,可存儲(chǔ)機(jī)器人的步態(tài)數(shù)據(jù),實(shí)現(xiàn)機(jī)器人的離線運(yùn)動(dòng),也擁有與PC機(jī)的無縫聯(lián)接接口,由PC機(jī)對(duì)機(jī)器人實(shí)現(xiàn)在線調(diào)試。
      文檔編號(hào)G05B19/418GK101020313SQ200710051629
      公開日2007年8月22日 申請(qǐng)日期2007年3月8日 優(yōu)先權(quán)日2007年3月8日
      發(fā)明者陳學(xué)東, 蒲華燕, 孫翊, 賈文川, 曾理湛, 何學(xué)明, 趙軍 申請(qǐng)人:華中科技大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1