技術頻道

      機器人運動控制系統(tǒng)軟件設計

      摘要:移動機器人的運動控制主要是完成移動機器人的運動平臺,提供一種移動機器人的控制方式。本文通過對移動機器人的研究,實現(xiàn)了基于渡越時間法的超聲波測距模塊設計,為機器人提供簡單方便的障礙物距離檢測。本文主要完成對主控板控制器軟件設計、電機驅(qū)動控制器軟件設計和超聲波測距軟件的設計,使開發(fā)系統(tǒng)能夠服務于移動機器人研究的通用開發(fā)平臺。

      關鍵詞:機器人;運動控制;軟件設計;超聲波測距

      中途分類號:TP 9 文獻標識碼:B

      0 引言

      隨著計算機、網(wǎng)絡、機械電子、信息、自動化以及人工智能等技術的飛速發(fā)展,移動機器人的研究進入了一個嶄新的階段。同時,太空資源、海洋資源的開發(fā)與利用為移動機器人的發(fā)展提供了廣闊的空間。目前,智能移動機器人,無人自主車等領域的研究進入了應用的階段,隨著研究的深入,對移動機器人的自主導航能力,動態(tài)避障策略,避障時間等方面提出了更高的要求。地面智能機器人路徑規(guī)劃,是行駛在復雜,動態(tài)自然環(huán)境中的全自主機器人系統(tǒng)的重要環(huán)節(jié),而地面智能機器人全地域全自主技術的研究,是當今國內(nèi)外學術界面臨的挑戰(zhàn)性問題。

      智能移動機器人是一類能夠通過傳感器感知環(huán)境和自身狀態(tài),實現(xiàn)在有障礙物的環(huán)境中面向目標自主運動,從而完成一定功能的機器人系統(tǒng)。移動機器人技術研究綜合了路徑規(guī)劃、導航定位、路徑跟蹤與運動控制等技術。涉及到包括距離探測、視頻采集、溫濕度以及聲光等多種外部傳感器,作為移動機器人的輸入信息。移動機器人的運動控制主要是完成移動機器人的運動平臺,提供一種移動機器人的控制方式。性能良好的移動機器人運動控制系統(tǒng)是移動機器人運行的基礎,能夠服務于移動機器人研究的通用開發(fā)平臺。

      移動機器人技術研究綜合了多學科領域的知識,關鍵技術可分為:路徑規(guī)劃、導航定位、路徑跟蹤與運動控制技術。路徑規(guī)劃又可分為全局和局部路徑規(guī)劃。全局路徑規(guī)劃是根據(jù)移動機器人總體任務進行路徑規(guī)劃,將總體路徑任務分解,并建立全局地形數(shù)據(jù)庫;局部路徑規(guī)劃是根據(jù)全局規(guī)劃分解的子任務,結合移動機器人當前狀態(tài)信息,實時規(guī)劃可行路徑;導航定位技術確定移動機器人在全局地圖中的位置,并實時得到機器人與路徑跟蹤的相對位置關系,其關鍵技術是多傳感器信息處理與數(shù)據(jù)融合技術。路徑跟蹤與運動控制技術的任務是控制移動機器人跟蹤局部規(guī)劃給出的路徑,結合導航定位系統(tǒng)得到機器人本身狀態(tài)信息與道路信息,完成航向和速度控制。移動機器人的路徑規(guī)劃、導航控制以及路徑跟蹤與運動控制技術是相互關聯(lián)的,任何一個系統(tǒng)的不完善都會導致整體性能的下降。

      1主控板軟件設計

      主控板硬件完成模塊管理、設備通訊及機器人定位脈沖檢測等內(nèi)容。在實際應用中,主控板硬件還負責超聲波測距的軟件管理。

      主控板硬件中只有主控板控制器需要進行軟件設計。主控板控制器TMS320LF2407A的主要任務是超聲波測距的軟件設計管理和其他一些基本設置內(nèi)容,包括電機碼盤的正交編碼脈沖檢測。初始選定TMS320LF2407A作為主控板控制器是考慮到此控制系統(tǒng)可以作為以后機器人應用的平臺,可以在TMS320LF2407A里嵌入實時系統(tǒng),提升系統(tǒng)性能,方便接口開發(fā)。

      主控板控制器的軟件設計內(nèi)容包括模塊初始化、串口通訊、正交編碼脈沖檢測和超聲波測距軟件。這里介紹模塊初始化串口通訊和正交編碼脈沖檢測等內(nèi)容。圖1主控板控制器程序流程圖。

      圖1主控板控制器程序流程圖

      復位向量地址為程序入口,然后程序進行初始化。初始化內(nèi)容包括擴展方式、溢出方式、DARAM、倍頻、JTAG等基本配置。另外還有使用的相關I/O的設置、程序使用相關定時器的設置、程序使用相關中斷的設置和串口通訊的相關設置。這些配置都是控制器使用的基本配置流程。初始化之后會開啟相關的中斷程序,隨后進入超聲波測距程序,并一直循環(huán)。中斷服務程序處于就緒狀態(tài),一旦有中斷發(fā)生,中斷服務程序立即執(zhí)行。

      在TMS320LF2407A的所有程序中,需要對其串口的數(shù)據(jù)發(fā)送和接收程序做說明。異步通信使用三條線(地線、發(fā)送線、接收線)連接采用RS 232格式的終端。發(fā)送各位依次為一個起始位、l~8個數(shù)據(jù)位、可選的一個奇偶校驗位、1~2個停止位。因此串口通訊能夠傳輸?shù)淖畲蟮臄?shù)據(jù)單位為8位,即一個字節(jié)。在設計中控制器和各終端會有各種類型的數(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ā)送即可,設計中采用強制轉(zhuǎn)換的方式完成。數(shù)據(jù)接收的時候也可以采取同樣的處理方式,反向轉(zhuǎn)換即可。另外在數(shù)據(jù)轉(zhuǎn)換上也可選擇共用體來實現(xiàn),共用體的實質(zhì)和上面講述的類型轉(zhuǎn)換是一樣的,只是共用體的各個數(shù)據(jù)類型占用的存儲空間是共同的,對于這個存儲空間,共用體定義的任何結構類型變量都可以調(diào)用。上位機里的串口數(shù)據(jù)處理采用的是這種方法,十分方便。

      對于正交編碼脈沖的檢測,TMS320LF2407A具有獨立的正交編碼脈沖單元,只要對單元寄存器進行簡單設置即可得到機器人驅(qū)動輪的運行方向和距離參數(shù)。TMS320LF2407A將這些數(shù)據(jù)通過串口發(fā)送到上位機,由上位機建模,對數(shù)據(jù)加以處理后得到機器人的位姿信息。

      2 電機驅(qū)動軟件設計

      電機驅(qū)動軟件完成電機的驅(qū)動控制和閉環(huán)調(diào)速。驅(qū)動控制使用的是電機驅(qū)動主控芯片STCl2C4052AD的片內(nèi)PWM外設單元,生成的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ū)動控制器程序流程圖

      如上圖所示,程序開始后進行初始化,初始化包括程序使用相關變量定義、10ms定時器0、定時器l及串口、脈沖計數(shù)用外中斷0、看門狗等寄存器的設置和電機狀態(tài)參數(shù)(剎車、速度)等的初始化。然后進入循環(huán)狀態(tài),循環(huán)過程中更新看門狗寄存器的相關標志位。速度檢測和閉環(huán)調(diào)速程序分別在外中斷0和定時器0中完成。中斷服務程序也就包含了外中斷0、定時器0以及串口中斷服務程序。

      外中斷0是電機光電碼盤的脈沖檢測外設,所有電機光電碼盤的脈沖都會引起外中斷0的中斷。碼盤脈沖測速的原理是計算STCl2C4052AD單位定時時間內(nèi)的脈沖數(shù)目,因此外中斷0的中斷服務程序的內(nèi)容就是對脈沖計數(shù)。而上位機設定的目標電機轉(zhuǎn)速也會被轉(zhuǎn)換為此單位定時時間內(nèi)的脈沖數(shù)目。可以定義一個全局變量,每次進入外中斷0的中斷將該變量加1即可。另外為防止程序干擾,應該對計數(shù)值加以修正,如小于0的時候等于0,大于某一設定值的時候等于某一設定值等。

      3 超聲波測距軟件設計

      設計中的超聲波測距軟件利用了常用超聲波測距的渡越時間法。渡越時間法的工作原理為發(fā)射超聲波的同時開始計時,接收到超聲波后停止計時,記錄超聲波的傳輸時間為t,那么超聲波測距模塊和障礙物的距離為s由下式表示。

      S=v*t/2

      其中v為超聲波在空氣中的傳播速度。由下式表示。

      其中,T為空氣的華氏溫度。

      在常溫下,超聲波的傳輸速度隨溫度變化并不太大,而且超聲波的傳輸時間都為毫秒級,因此影響不是很大。不過也可以為超聲波測距模塊添加一個溫度校正模塊,檢測環(huán)境溫度,再在主控板控制器計算超聲波速度時進行修正。現(xiàn)在市場已有集成溫度檢測器件,也很方便。

      超聲波測距的主要流程為發(fā)射超聲波以后,如果有反射超聲波信號返回,則由外中斷0接收計算距離。在超聲波信號發(fā)射的同時打開定時器3,定時時間為最大超聲波測量距離所需的傳輸時間,如果在定時器3中斷的時候還沒有外中斷0中斷事件發(fā)生,即沒有反射超聲波信號返回,那么在進入定時器3中斷的時候關閉超聲波返回中斷和超聲波傳輸時間定時器l,進行下一次的超聲波測距循環(huán)。程序流程圖如圖3所示。

      圖3 超聲波測距程序流程圖

      外中斷0接收到超聲波測距信號返回,則進入外中斷0服務程序進行測距程序處理。若沒有超聲波信號返回則將發(fā)生定時器3的定時中斷,說明等待超時,設定測距范圍內(nèi)無障礙物。兩種情況都將引發(fā)等待標志位的改變,程序跳出等待狀態(tài),更改工作超聲波測距模塊,進行下一個超聲波模塊的測距處理。

      外中斷0和定時器0的程序流程圖如圖4所示。

      圖4 外中斷0和定時器3程序流程圖

      圖中A為外中斷0程序流程圖。進入中斷服務程序表示有超聲波信號返回。程序開始關閉所有系統(tǒng)的可屏蔽中斷和測距使用外設,讀取定時器l計數(shù)值,計算障礙物距離。更改程序循環(huán)標志,然后中斷服務程序返回。B為定時器3的程序流程圖。進入中斷服務程序表示測距范圍內(nèi)無障礙物,因此只用關閉系統(tǒng)的可屏蔽中斷和測距使用外設,直接更改程序循環(huán)標志,退出中斷服務程序即可。設置定時器1不產(chǎn)生中斷,而設置定時器1為定時最大值也不會發(fā)生定時器l中斷。因此不必寫定時器1的中斷服務程序。

      4 結論

      本主控板控制器協(xié)調(diào)上位機和各模塊的工作,軟件設計中詳細講述串口傳輸中的數(shù)據(jù)類型處理問題。利用單片機PWM外設生成脈沖寬度調(diào)制信號驅(qū)動電機,并通過光電碼盤實現(xiàn)電機的閉環(huán)調(diào)速。超聲波測距模塊已經(jīng)有廣泛的應用,超聲波測距模塊軟件程序采用通用的渡越時間法完成距離的測量,并通過模擬開關實現(xiàn)多超聲波測距模塊的分時工作。

      文章版權歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

      主站蜘蛛池模板: 婷婷亚洲综合一区二区| 国产精品一区二区香蕉| 国产日韩高清一区二区三区| 污污内射在线观看一区二区少妇| 伊人无码精品久久一区二区| 久久久91精品国产一区二区三区| 风流老熟女一区二区三区| 国产伦精品一区二区| 一区二区三区内射美女毛片| 无遮挡免费一区二区三区| 国产精品一区二区久久沈樵| 精品国产一区二区三区色欲| 在线视频一区二区| 性色av无码免费一区二区三区 | 亚洲综合在线一区二区三区| 国产精品一区二区久久精品涩爱| 无码国产精成人午夜视频一区二区| 福利一区在线视频| 国产一区二区三区免费观看在线| 精品国产伦一区二区三区在线观看| 在线一区二区观看| 国产精品一区二区久久国产| 亚洲AV综合色区无码一区爱AV | 亚洲人成网站18禁止一区| 精品一区二区三区在线视频| 在线观看视频一区二区| 无码人妻一区二区三区精品视频 | 91在线精品亚洲一区二区| 国产亚洲福利一区二区免费看 | 国产一区二区三区不卡在线看| 国精无码欧精品亚洲一区| 男人的天堂av亚洲一区2区| 国产一区二区精品尤物| 国产传媒一区二区三区呀| 91秒拍国产福利一区| 又硬又粗又大一区二区三区视频| 精品一区狼人国产在线| 国产一区韩国女主播| 成人H动漫精品一区二区| 精品女同一区二区三区免费站| 国产日韩AV免费无码一区二区|