摘要
運動底盤是移動機器人的重要組成部分,不像激光雷達、IMU、麥克風、音響、攝像頭這些通用部件可以直接買到,很難買到通用的底盤。一方面是因為底盤的尺寸結構和參數是要與具體機器人匹配的;另一方面是因為底盤包含軟硬件整套解決方案,是很多機器人公司的核心技術,一般不會隨便公開。出於強烈的求知欲與學習熱情,我想自己DIY一整套兩輪差分底盤,並且將完整的設計過程公開出去供大家學習。說干就干,本章節主要內容:
5.底盤PID控制參數整定
我們的miiboo機器人底盤的stm32控制板中已經內置了整定好的PID參數,如果選用我們提供的控制板和電機,一般情況下是不需要整定PID的。
對於想體驗一下PID參數整定過程或將我們的miiboo機器人底盤的stm32控制板應用到其他地方的朋友,這里給出了整定PID的整個操作過程和思路,方便大家學習和更深層次的研究。首先,對PID三個參數定性的分析,先有個感性的認識,如圖49。
(圖49)PID參數定性分析
其次,由於我們的miiboo機器人底盤的stm32控制板中采用的是增量式PID,所以這里對增量式PID參數的特殊性進行一些說明,如圖50。
(圖50)離散域位置式PID與增量式PID數學表達式
位置型PID的參數整定過程一般是,先整定KP,然后整定KI,最后整定KD;對比位置型PID與增量型PID的數學表達式,可以發現位置型KP和增量型KI一樣,位置型KI和增量型KD一樣,位置型KD和增量型KP一樣,如圖51。這樣,增量型PID應該先整定KI,然后整定KD,最后整定KP。這一點需要特別注意,弄錯順序的話會發現整定規律完全不適用的。
(圖51)增量式PID參數特殊性說明
在機器人上進行具體PID整定操作之前,先對整定原理做一些講解。下面的表述是針對增量型PID的,即KI為比例參數、KD為積分參數、KP為微分參數。這里使用試湊法對miiboo機器人底盤的增量PID參數進行整定:
第1步:
首先只整定比例部分。比例系數KI由小變大,觀察相應的系統響應,直到得到反應快,超調小的響應曲線。系統若無靜差或靜差已小到允許范圍內,並且響應效果良好,那么只須用比例調節器即可。
第2步:
若穩態誤差不能滿足設計要求,則需加入積分控制。整定時先置KD為較小值,並將經第1步整定得到的KI減小些( 如縮小為原值的0.8倍 ),然后增大KD,並使系統在保持良好動態響應的情況下,消除穩態誤差。這種調整可根據響應曲線的狀態,反復改變KI及KD,以期得到滿意的控制過程。
第3步:
若使用比例-積分調節器消除了穩態誤差,但動態過程仍不能滿意,則可加入微分環節。在第2步整定的基礎上,逐步增大KP,同時相應地改變KI和KD,逐步試湊以獲得滿意的調節效果。
原理了解后,就要到實際的miiboo機器人上進行整定了,首先需要將底盤的DATA-uart2與DEBUG-uart1串口連接到機器人的主板樹莓派3中,並確保被樹莓派識別的串口設備號為底盤驅動設置的值,如果串口號不匹配需要先進行匹配,關於這部分內容將在miiboo機器人SLAM導航中做更詳細的展開。然后,需要啟動底盤控制節點、底盤調試節點、鍵盤控制節點。
#打開終端,啟動底盤控制節點
roslaunch miiboo_bringup minimal.launch
#再打開一個終端,啟動底盤調試節點,按提示輸入命令
roslaunch miiboo_bringup pid_set.launch
#再打開一個終端,鍵盤控制節點
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
#再打開一個終端,用rqt_plot對底盤速度曲線進行繪制,指定曲線數據來源的topic
rosrun rqt_plot rqt_plot
鍵盤控制節點teleop_twist_keyboard需要通過apt-get命令來安裝,rqt_plot是ROS提供的繪圖工具,關於這些的具體使用方法將在miiboo機器人SLAM導航中做更詳細的展開。
最后,就是通過觀察速度曲線,按照試湊法的步驟,在底盤調試節點的終端中輸入相應的kp、ki、kd參數,不斷重復這個過程直到速度曲線達到一個比較滿意的形狀。rqt_plot速度曲線的樣子如圖52所示。
(圖52)rqt_plot速度曲線
后記
------SLAM+語音機器人DIY系列【目錄】快速導覽------
第1章:Linux基礎
第2章:ROS入門
第3章:感知與大腦
第4章:差分底盤設計
第5章:樹莓派3開發環境搭建
第6章:SLAM建圖與自主避障導航
2.google-cartographer機器人SLAM建圖
第7章:語音交互與自然語言處理
第8章:高階拓展
2.centos7下部署Django(nginx+uwsgi+django+python3)
----------------文章將持續更新,敬請關注-----------------
如果大家對博文的相關類容感興趣,或有什么技術疑問,歡迎加入下面的《SLAM+語音機器人DIY》QQ技術交流群,一起討論學習^_^
關於我們:
視頻教程: