曹 俊,陳勁杰
(上海理工大學機械工程學院,上海 200082)
隨著控制技術和智能制造的快速發展,越來越多的智能移動裝備應用于工業生產和人們的日常生活中。四輪移動機器人作為智能化裝備的一部分,對工業和農業的改革與發展有著不可代替的作用。許多行業都需要移動機器人協助或者代替人類完成工作,這樣可降低工作人員的勞動強度,提高勞動效率[1]。例如,工業園區的貨物運送、快遞和外賣的配送以及一些危險的勘探任務等。因此,對于移動機器人控制系統的研究符合未來發展方向并能夠加快智能移動裝備的發展進程[2]。當前的一些移動機器人環境適應能力差、實時性差且功能擴展性較差,難以普及。針對上述背景,本文采用FreeRTOS實時操作系統和STM32硬件平臺設計了一種低成本和高實時性、可靠性的小型四輪移動機器人控制系統。
本文基于嵌入式實時操作系統,設計了四輪移動機器人小車(以下簡稱四輪移動小車)的下位機控制系統。四輪移動小車底層控制系統以STM32F4作為核心處理器,使用MPU6050傳感器獲取四輪移動小車的位姿,上傳至上位機主控制器進行數據融合,以獲得更加精準的位姿數據,使用BQ7692003PWR芯片模塊獲取磷酸鐵鋰電池的電壓數據,并使用開路電壓法和安時積分法計算電池的SOC(剩余電量),使用PI算法控制四輪移動小車的速度。通過整套設計可以實現四輪移動機器人控制的實時性和穩定性。系統總體框圖如圖1所示。

圖1 系統總體架構圖Fig.1 Overall system architecture diagram
四輪移動小車下位機控制系統采用STM32F405RGT6主控芯片,通過串口USART3完成與上位機主控制器的通信,并傳輸下位機的相關數據[3];通過I2C雙向總線獲取MPU6050傳感器的數據,將位姿傳感器獲得的數據傳給主控制器;通過I2C接口獲取BQ7692003PWR芯片模塊傳輸的電芯電壓數據對電池系統進行管理;使用定時器產生PWM(脈沖寬度調制),通過電機驅動模塊對4個直流電機進行控制,電機通過光電編碼器反饋電機的實時速度[4]。這4個子系統共同完成對四輪移動小車系統的控制,系統硬件設計架構如圖2所示。

圖2 系統硬件設計架構Fig.2 System hardware design architecture
MPU6050陀螺儀模塊是四輪移動小車的位姿檢測模塊,是一種六軸傳感器模塊,可以同時檢測三軸加速度、三軸陀螺儀的運動數據及溫度數據。六軸傳感器模塊內置數字運動處理器,可對數據進行濾波、融合處理。該模塊通過模擬I2C接口向下位機主控制器輸出運動數據[5]。
四輪移動小車的電源模塊使用12 V 的鋰電池,鋰電池具有重量輕、容量大和壽命較長等優點。鋰電池使用18650鋰電池,通過串、并聯方式連接后容量可達13 600 mAh,可以滿足小型移動機器人的電壓和電流需求,并且此類電池的質量較輕,不影響機器人的移動性能,價格較其他電池實惠,適用于小型的移動平臺。
使用BQ7692003PWR芯片模塊對四輪移動小車進行電池管理,鋰電池采用串、并聯方式連接。電池分為4組,每組由3節18650鋰電池串聯而成。使用BQ7692003PWR芯片模塊對一組3節電池進行電芯電壓數據的采集,再通過開路電壓法和安時積分法對鋰電池的剩余電量進行實時的估算。通過I2C接口向STM32主控芯片傳輸電壓數據。
四輪移動小車采用的電機是12 V直流減速電機。電機尾部帶光電編碼器,可實時反饋四輪移動小車電機的轉速。電機驅動模塊采用WSDC2412D,是直流電機驅動集成電路,采用標準邏輯電平信號控制;使用高性能MOSFET(金氧半場效晶體管)組成“H”橋驅動,可驅動最高300 W 電功率的直流電機;允許PWM 輸入的最小脈寬低至3μs,可保證PWM 的動態調節范圍。
FreeRTOS操作系統是一款輕量級的實時操作系統,可移植在嵌入式設備上,它可免費用于商用。FreeRTOS操作系統提供任務管理、時間管理、信號量和消息隊列等功能,完全可滿足移動機器人的系統功能需求[6]。
四輪移動機器人軟件控制系統基于FreeRTOS實時操作系統開發,軟件系統架構如圖3所示。需要建立6個主應用任務:串口通信任務、位姿檢測任務、電機控制任務、電池狀態監測任務、電池狀態分析任務及信息打印任務,使用FreeRTOS操作系統對多個任務進行協調管理,各任務的功能如下。

圖3 軟件系統架構Fig.3 Soft ware system architecture
(1)串口通信任務。串口通信任務使用USART3和上位機主控芯片進行通信。當串口通信任務運行時,首先會對四輪移動小車的x、y、z軸的目標速度等信息進行賦值,其次使用串口將數據發送到下位機主控制器。接收信息時,會等待串口中斷回調函數中的消息通知,當上位機發送命令時會觸發中斷接收函數,下位機對數據進行接收和解析。
(2)位姿檢測任務。在四輪移動小車開機前,位姿檢測模塊首先使用MPU6050模塊檢測讀取陀螺儀的零點,行駛中得到加速度傳感器數據和陀螺儀數據。其次使用模擬I2C接口將數據傳輸到下位機主控制器。最后下層主控制器將數據發送到上位機主控制器進行數據擬合。
(3)電機控制任務。電機控制任務首先讀取上位機傳來的x、y、z軸的目標速度,根據編碼器讀取四輪移動小車的實際速度。其次使用PI算法進行調速,將得到的值賦值給PWM 寄存器對電機的轉速進行調整,進而提高四輪移動小車運動控制的準確性[7]。
(4)電池狀態監測任務。電池狀態監測任務是通過BQ7692003PWR芯片模塊對鋰電池的單體電芯電壓和電池組電壓進行監測。測得數據可用于電池狀態分析任務。
(5)電池狀態分析任務。電池狀態分析任務對BQ7692003PWR芯片得到的電壓數據進行分析。首先進行簡單的數據分析,并通過簡單的計算獲得最大電壓差、平均電壓和最大最小電壓。其次使用開路電壓算法和安時積分算法估算鋰電池的剩余電量。
(6)信息打印任務。信息打印任務負責打印4個電機轉速、鋰電池的單體電壓和電池的SOC等信息。
在FreeRTOS實時操作系統中,任務和中斷都具有不同的優先級。調度器總是在所有處于就緒態的任務中選擇具有最高優先級的任務執行。優先級相同的任務在時鐘節拍中斷中進行切換并執行相同的時間片大小。當任務優先級足夠高,該任務就會立即得到響應,然后根據優先級依次響應。本設計中的電機控制任務和通信任務相對于電池管理任務,優先級更高。任務優先級分配如表1所示。

表1 任務優先級Tab.1 Task priority
四輪移動小車的電機控制采用PI(比例積分)控制器。P為比例環節,可以反映偏差信號,以減少偏差;I是積分環節,可以消除系統靜差。比例積分控制器是根據給定值與實際輸出值構成控制偏差,將偏差的比例(P)和積分(I)通過線性組合構成控制量,對車速進行控制[8]。PI位置式算法離散公式如公式(1)所示:
其中,U(t)是控制器輸出值;e k是本次控制器輸入與設定值之間的誤差;K P是比例系數;K i是積分系數。
PI算法的核心代碼如下:
四輪移動小車的SOC(State Of Charge),即電池剩余電量,采用的是開路電壓法和安時積分法結合的方法對電量進行估算。開路電壓法是在四輪移動小車長時間待機靜止后以最低電芯電壓為標準校準一次電容[7];安時積分法是電池充放電狀態下實時對電流進行積分校準電池的實際容量,然后計算SOC值。前者用于準確地估計初始SOC值,后者用于估計實時SOC值。兩種方法結合可以更加精準地估計電池的剩余電量。
開路電壓法是測量鋰電池后得到一個具有100個元素的數組,然后根據數組查找最小電芯電壓在數組中位置對應的SOC,從而得出當前電池電量,經過實驗可得開路電壓與SOC關系曲線和開路電壓法流程圖,如圖4所示。

圖4 開路電壓與SOC 的關系曲線圖和開路電壓法流程圖Fig.4 Relation curve bet ween open circuit voltage and SOC and flow chart of open circuit voltage method
安時積分法,測量電池主回路的實時電流,將電流對時間積分,數值在放電時為正,充電時為負。放電過程中用初始電量減去積分結果,得到當前電量;充電過程中用初始電量加上積分結果,得到當前電量。如公式(2)所示,SOC0為鋰電池荷電狀態的初始值,SOCt為t時刻電池的剩余電量,Q N為電池的額定容量,I為t時刻的充放電負載電流[8]。
安時積分法的核心算法如下:
安時積分法算出的SOC為SOC1,開路電壓法得出的SOC為SOC2。如果SOC2>SOC1,則SOC=SOC1,取最小值可以使SOC更為準確;如果SOC2<SOC1,則SOC=SOC2,這樣可以修正放置一段時間后電池的SOC值;安時積分法和開路電壓法相結合,能夠估算較為準確的SOC。
四輪移動小車的硬件平臺如圖5所示,主要包括四輪移動小車底盤、下位機主控制器STM32、電池管理模塊、位姿傳感器、電機驅動器、電機、電源。
通過實驗可以證明四輪移動小車在行駛過程中有很好的實時性和動態反應能力,并且對地形有較好的適應能力。信息打印任務監控的功能如表2所示。

表2 監控信息列表Tab.2 Monitoring information list
一組電池的測試數據如表3所示。電池的最大誤差為4 mV。可見,電池管理模塊可以很好地管理四輪移動小車的電源,實現對電源剩余電量的監測。

表3 測試數據Tab.3 test data
本文設計的四輪移動機器人底層控制系統,采用電機控制模塊、光電編碼器、位姿傳感器、電源管理模塊實現了四輪移動機器人的快速轉向和加速能力,并且可實時監控電源的剩余電量。四輪移動機器人基于STM32平臺和FreeRTOS實時操作系統,使用PI算法進行電機調速保證電機的動態響應,并使用開路電壓法和安時積分法對電池的剩余電量進行監測,提高了四輪移動機器人的運動能力和環境適應能力,應用場景較為廣泛,具有較好的實際應用價值。