機器人運動控制系統(tǒng)軟件設(shè)計
摘要:移動機器人的運動控制主要是完成移動機器人的運動平臺,提供一種移動機器人的控制方式。本文通過對移動機器人的研究,實現(xiàn)了基于渡越時間法的超聲波測距模塊設(shè)計,為機器人提供簡單方便的障礙物距離檢測。本文主要完成對主控板控制器軟件設(shè)計、電機驅(qū)動控制器軟件設(shè)計和超聲波測距軟件的設(shè)計,使開發(fā)系統(tǒng)能夠服務(wù)于移動機器人研究的通用開發(fā)平臺。
關(guān)鍵詞:機器人;運動控制;軟件設(shè)計;超聲波測距
中途分類號:TP 9 文獻標識碼:B
0 引言
隨著計算機、網(wǎng)絡(luò)、機械電子、信息、自動化以及人工智能等技術(shù)的飛速發(fā)展,移動機器人的研究進入了一個嶄新的階段。同時,太空資源、海洋資源的開發(fā)與利用為移動機器人的發(fā)展提供了廣闊的空間。目前,智能移動機器人,無人自主車等領(lǐng)域的研究進入了應(yīng)用的階段,隨著研究的深入,對移動機器人的自主導(dǎo)航能力,動態(tài)避障策略,避障時間等方面提出了更高的要求。地面智能機器人路徑規(guī)劃,是行駛在復(fù)雜,動態(tài)自然環(huán)境中的全自主機器人系統(tǒng)的重要環(huán)節(jié),而地面智能機器人全地域全自主技術(shù)的研究,是當今國內(nèi)外學(xué)術(shù)界面臨的挑戰(zhàn)性問題。
智能移動機器人是一類能夠通過傳感器感知環(huán)境和自身狀態(tài),實現(xiàn)在有障礙物的環(huán)境中面向目標自主運動,從而完成一定功能的機器人系統(tǒng)。移動機器人技術(shù)研究綜合了路徑規(guī)劃、導(dǎo)航定位、路徑跟蹤與運動控制等技術(shù)。涉及到包括距離探測、視頻采集、溫濕度以及聲光等多種外部傳感器,作為移動機器人的輸入信息。移動機器人的運動控制主要是完成移動機器人的運動平臺,提供一種移動機器人的控制方式。性能良好的移動機器人運動控制系統(tǒng)是移動機器人運行的基礎(chǔ),能夠服務(wù)于移動機器人研究的通用開發(fā)平臺。
移動機器人技術(shù)研究綜合了多學(xué)科領(lǐng)域的知識,關(guān)鍵技術(shù)可分為:路徑規(guī)劃、導(dǎo)航定位、路徑跟蹤與運動控制技術(shù)。路徑規(guī)劃又可分為全局和局部路徑規(guī)劃。全局路徑規(guī)劃是根據(jù)移動機器人總體任務(wù)進行路徑規(guī)劃,將總體路徑任務(wù)分解,并建立全局地形數(shù)據(jù)庫;局部路徑規(guī)劃是根據(jù)全局規(guī)劃分解的子任務(wù),結(jié)合移動機器人當前狀態(tài)信息,實時規(guī)劃可行路徑;導(dǎo)航定位技術(shù)確定移動機器人在全局地圖中的位置,并實時得到機器人與路徑跟蹤的相對位置關(guān)系,其關(guān)鍵技術(shù)是多傳感器信息處理與數(shù)據(jù)融合技術(shù)。路徑跟蹤與運動控制技術(shù)的任務(wù)是控制移動機器人跟蹤局部規(guī)劃給出的路徑,結(jié)合導(dǎo)航定位系統(tǒng)得到機器人本身狀態(tài)信息與道路信息,完成航向和速度控制。移動機器人的路徑規(guī)劃、導(dǎo)航控制以及路徑跟蹤與運動控制技術(shù)是相互關(guān)聯(lián)的,任何一個系統(tǒng)的不完善都會導(dǎo)致整體性能的下降。
1主控板軟件設(shè)計
主控板硬件完成模塊管理、設(shè)備通訊及機器人定位脈沖檢測等內(nèi)容。在實際應(yīng)用中,主控板硬件還負責超聲波測距的軟件管理。
主控板硬件中只有主控板控制器需要進行軟件設(shè)計。主控板控制器TMS320LF2407A的主要任務(wù)是超聲波測距的軟件設(shè)計管理和其他一些基本設(shè)置內(nèi)容,包括電機碼盤的正交編碼脈沖檢測。初始選定TMS320LF2407A作為主控板控制器是考慮到此控制系統(tǒng)可以作為以后機器人應(yīng)用的平臺,可以在TMS320LF2407A里嵌入實時系統(tǒng),提升系統(tǒng)性能,方便接口開發(fā)。
主控板控制器的軟件設(shè)計內(nèi)容包括模塊初始化、串口通訊、正交編碼脈沖檢測和超聲波測距軟件。這里介紹模塊初始化串口通訊和正交編碼脈沖檢測等內(nèi)容。圖1主控板控制器程序流程圖。
圖1主控板控制器程序流程圖
復(fù)位向量地址為程序入口,然后程序進行初始化。初始化內(nèi)容包括擴展方式、溢出方式、DARAM、倍頻、JTAG等基本配置。另外還有使用的相關(guān)I/O的設(shè)置、程序使用相關(guān)定時器的設(shè)置、程序使用相關(guān)中斷的設(shè)置和串口通訊的相關(guān)設(shè)置。這些配置都是控制器使用的基本配置流程。初始化之后會開啟相關(guān)的中斷程序,隨后進入超聲波測距程序,并一直循環(huán)。中斷服務(wù)程序處于就緒狀態(tài),一旦有中斷發(fā)生,中斷服務(wù)程序立即執(zhí)行。
在TMS320LF2407A的所有程序中,需要對其串口的數(shù)據(jù)發(fā)送和接收程序做說明。異步通信使用三條線(地線、發(fā)送線、接收線)連接采用RS 232格式的終端。發(fā)送各位依次為一個起始位、l~8個數(shù)據(jù)位、可選的一個奇偶校驗位、1~2個停止位。因此串口通訊能夠傳輸?shù)淖畲蟮臄?shù)據(jù)單位為8位,即一個字節(jié)。在設(shè)計中控制器和各終端會有各種類型的數(shù)據(jù)交流,如整形數(shù)據(jù)和浮點數(shù)據(jù),因此需要對串口發(fā)送和接收的數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換。
四個字節(jié)的單精度浮點數(shù)的數(shù)據(jù)傳輸,因為串口每次最多只能傳輸一個字節(jié),所以只需要把每個四字節(jié)浮點數(shù)的存儲數(shù)據(jù)轉(zhuǎn)換成字節(jié)形式發(fā)送即可,設(shè)計中采用強制轉(zhuǎn)換的方式完成。數(shù)據(jù)接收的時候也可以采取同樣的處理方式,反向轉(zhuǎn)換即可。另外在數(shù)據(jù)轉(zhuǎn)換上也可選擇共用體來實現(xiàn),共用體的實質(zhì)和上面講述的類型轉(zhuǎn)換是一樣的,只是共用體的各個數(shù)據(jù)類型占用的存儲空間是共同的,對于這個存儲空間,共用體定義的任何結(jié)構(gòu)類型變量都可以調(diào)用。上位機里的串口數(shù)據(jù)處理采用的是這種方法,十分方便。
對于正交編碼脈沖的檢測,TMS320LF2407A具有獨立的正交編碼脈沖單元,只要對單元寄存器進行簡單設(shè)置即可得到機器人驅(qū)動輪的運行方向和距離參數(shù)。TMS320LF2407A將這些數(shù)據(jù)通過串口發(fā)送到上位機,由上位機建模,對數(shù)據(jù)加以處理后得到機器人的位姿信息。
2 電機驅(qū)動軟件設(shè)計
電機驅(qū)動軟件完成電機的驅(qū)動控制和閉環(huán)調(diào)速。驅(qū)動控制使用的是電機驅(qū)動主控芯片STCl2C4052AD的片內(nèi)PWM外設(shè)單元,生成的PWM信號經(jīng)過電機驅(qū)動芯片驅(qū)動電機,可以通過調(diào)節(jié)PWM占空比來調(diào)節(jié)加載在電機上24VDC電壓的占空比,從而調(diào)節(jié)電機轉(zhuǎn)速。PWM占空比由片內(nèi)8位的PWM控制寄存器進行控制,該寄存器取值范圍為0-255,分別代表PWM信號占空比從l到0的連續(xù)變化。同時STCl2C4052AD接收電機光電碼盤的脈沖信號,利用片內(nèi)時鐘計算出電機運行速度,通過速度控制算法完成電機的閉環(huán)調(diào)速。
電機驅(qū)動及閉環(huán)調(diào)速軟件算法流程圖如圖2所示。
圖2電機驅(qū)動控制器程序流程圖
如上圖所示,程序開始后進行初始化,初始化包括程序使用相關(guān)變量定義、10ms定時器0、定時器l及串口、脈沖計數(shù)用外中斷0、看門狗等寄存器的設(shè)置和電機狀態(tài)參數(shù)(剎車、速度)等的初始化。然后進入循環(huán)狀態(tài),循環(huán)過程中更新看門狗寄存器的相關(guān)標志位。速度檢測和閉環(huán)調(diào)速程序分別在外中斷0和定時器0中完成。中斷服務(wù)程序也就包含了外中斷0、定時器0以及串口中斷服務(wù)程序。
外中斷0是電機光電碼盤的脈沖檢測外設(shè),所有電機光電碼盤的脈沖都會引起外中斷0的中斷。碼盤脈沖測速的原理是計算STCl2C4052AD單位定時時間內(nèi)的脈沖數(shù)目,因此外中斷0的中斷服務(wù)程序的內(nèi)容就是對脈沖計數(shù)。而上位機設(shè)定的目標電機轉(zhuǎn)速也會被轉(zhuǎn)換為此單位定時時間內(nèi)的脈沖數(shù)目。可以定義一個全局變量,每次進入外中斷0的中斷將該變量加1即可。另外為防止程序干擾,應(yīng)該對計數(shù)值加以修正,如小于0的時候等于0,大于某一設(shè)定值的時候等于某一設(shè)定值等。
3 超聲波測距軟件設(shè)計
設(shè)計中的超聲波測距軟件利用了常用超聲波測距的渡越時間法。渡越時間法的工作原理為發(fā)射超聲波的同時開始計時,接收到超聲波后停止計時,記錄超聲波的傳輸時間為t,那么超聲波測距模塊和障礙物的距離為s由下式表示。
S=v*t/2
其中v為超聲波在空氣中的傳播速度。由下式表示。
其中,T為空氣的華氏溫度。
在常溫下,超聲波的傳輸速度隨溫度變化并不太大,而且超聲波的傳輸時間都為毫秒級,因此影響不是很大。不過也可以為超聲波測距模塊添加一個溫度校正模塊,檢測環(huán)境溫度,再在主控板控制器計算超聲波速度時進行修正。現(xiàn)在市場已有集成溫度檢測器件,也很方便。
超聲波測距的主要流程為發(fā)射超聲波以后,如果有反射超聲波信號返回,則由外中斷0接收計算距離。在超聲波信號發(fā)射的同時打開定時器3,定時時間為最大超聲波測量距離所需的傳輸時間,如果在定時器3中斷的時候還沒有外中斷0中斷事件發(fā)生,即沒有反射超聲波信號返回,那么在進入定時器3中斷的時候關(guān)閉超聲波返回中斷和超聲波傳輸時間定時器l,進行下一次的超聲波測距循環(huán)。程序流程圖如圖3所示。
圖3 超聲波測距程序流程圖
外中斷0接收到超聲波測距信號返回,則進入外中斷0服務(wù)程序進行測距程序處理。若沒有超聲波信號返回則將發(fā)生定時器3的定時中斷,說明等待超時,設(shè)定測距范圍內(nèi)無障礙物。兩種情況都將引發(fā)等待標志位的改變,程序跳出等待狀態(tài),更改工作超聲波測距模塊,進行下一個超聲波模塊的測距處理。
外中斷0和定時器0的程序流程圖如圖4所示。
圖4 外中斷0和定時器3程序流程圖
圖中A為外中斷0程序流程圖。進入中斷服務(wù)程序表示有超聲波信號返回。程序開始關(guān)閉所有系統(tǒng)的可屏蔽中斷和測距使用外設(shè),讀取定時器l計數(shù)值,計算障礙物距離。更改程序循環(huán)標志,然后中斷服務(wù)程序返回。B為定時器3的程序流程圖。進入中斷服務(wù)程序表示測距范圍內(nèi)無障礙物,因此只用關(guān)閉系統(tǒng)的可屏蔽中斷和測距使用外設(shè),直接更改程序循環(huán)標志,退出中斷服務(wù)程序即可。設(shè)置定時器1不產(chǎn)生中斷,而設(shè)置定時器1為定時最大值也不會發(fā)生定時器l中斷。因此不必寫定時器1的中斷服務(wù)程序。
4 結(jié)論
本主控板控制器協(xié)調(diào)上位機和各模塊的工作,軟件設(shè)計中詳細講述串口傳輸中的數(shù)據(jù)類型處理問題。利用單片機PWM外設(shè)生成脈沖寬度調(diào)制信號驅(qū)動電機,并通過光電碼盤實現(xiàn)電機的閉環(huán)調(diào)速。超聲波測距模塊已經(jīng)有廣泛的應(yīng)用,超聲波測距模塊軟件程序采用通用的渡越時間法完成距離的測量,并通過模擬開關(guān)實現(xiàn)多超聲波測距模塊的分時工作。

提交
超越傳統(tǒng)直覺,MATLAB/Simulink助力重型機械的智能化轉(zhuǎn)型
新大陸自動識別精彩亮相2024華南國際工業(yè)博覽會
派拓網(wǎng)絡(luò)被Forrester評為XDR領(lǐng)域領(lǐng)導(dǎo)者
智能工控,存儲強基 | ??低晭砭手黝}演講
展會|Lubeworks路博流體供料系統(tǒng)精彩亮相AMTS展會