技術頻道

      機器人運動控制系統軟件設計

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

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

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

      0 引言

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

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

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

      1主控板軟件設計

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

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

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

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

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

      在TMS320LF2407A的所有程序中,需要對其串口的數據發送和接收程序做說明。異步通信使用三條線(地線、發送線、接收線)連接采用RS 232格式的終端。發送各位依次為一個起始位、l~8個數據位、可選的一個奇偶校驗位、1~2個停止位。因此串口通訊能夠傳輸的最大的數據單位為8位,即一個字節。在設計中控制器和各終端會有各種類型的數據交流,如整形數據和浮點數據,因此需要對串口發送和接收的數據進行數據轉換。

      四個字節的單精度浮點數的數據傳輸,因為串口每次最多只能傳輸一個字節,所以只需要把每個四字節浮點數的存儲數據轉換成字節形式發送即可,設計中采用強制轉換的方式完成。數據接收的時候也可以采取同樣的處理方式,反向轉換即可。另外在數據轉換上也可選擇共用體來實現,共用體的實質和上面講述的類型轉換是一樣的,只是共用體的各個數據類型占用的存儲空間是共同的,對于這個存儲空間,共用體定義的任何結構類型變量都可以調用。上位機里的串口數據處理采用的是這種方法,十分方便。

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

      2 電機驅動軟件設計

      電機驅動軟件完成電機的驅動控制和閉環調速。驅動控制使用的是電機驅動主控芯片STCl2C4052AD的片內PWM外設單元,生成的PWM信號經過電機驅動芯片驅動電機,可以通過調節PWM占空比來調節加載在電機上24VDC電壓的占空比,從而調節電機轉速。PWM占空比由片內8位的PWM控制寄存器進行控制,該寄存器取值范圍為0-255,分別代表PWM信號占空比從l到0的連續變化。同時STCl2C4052AD接收電機光電碼盤的脈沖信號,利用片內時鐘計算出電機運行速度,通過速度控制算法完成電機的閉環調速。

      電機驅動及閉環調速軟件算法流程圖如圖2所示。

      圖2電機驅動控制器程序流程圖

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

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

      3 超聲波測距軟件設計

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

      S=v*t/2

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

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

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

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

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

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

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

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

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

      4 結論

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

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 国产精品亚洲不卡一区二区三区| 久久中文字幕无码一区二区| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 无码欧精品亚洲日韩一区| 亚洲综合一区二区精品久久| 国产精品视频一区二区三区无码| 水蜜桃av无码一区二区| 亚洲一区欧洲一区| 久久AAAA片一区二区| 久久久国产一区二区三区| 国产乱码伦精品一区二区三区麻豆| 欧洲精品一区二区三区在线观看| 三上悠亚一区二区观看| 亚洲Av无码国产一区二区| 日韩精品一区二区三区中文字幕| 在线观看免费视频一区| 亚洲a∨无码一区二区| 台湾无码AV一区二区三区| 精彩视频一区二区三区| 亚洲熟女综合色一区二区三区 | 精品一区精品二区制服| 国偷自产Av一区二区三区吞精| 精品人妻少妇一区二区三区不卡| 成人免费区一区二区三区| 无码人妻精品一区二| 国模无码视频一区| 亚洲AV日韩综合一区尤物| 97久久精品一区二区三区| 丝袜人妻一区二区三区| 亚洲色婷婷一区二区三区| 亚洲综合无码AV一区二区| 亚洲色大成网站www永久一区| 国产成人无码精品一区在线观看 | 国产精品亚洲专区一区| 日韩一区二区三区不卡视频| 丝袜美腿一区二区三区| 国产SUV精品一区二区88| 国产成人精品视频一区| 中日韩一区二区三区| 一区二区三区在线看| 亚洲一区二区三区无码影院|