SLAM+語音機器人DIY系列:(四)差分底盤設計——5.底盤PID控制參數整定

摘要                                            

運動底盤是移動機器人的重要組成部分,不像激光雷達、IMU、麥克風、音響、攝像頭這些通用部件能夠直接買到,很難買到通用的底盤。一方面是由於底盤的尺寸結構和參數是要與具體機器人匹配的;另外一方面是由於底盤包含軟硬件整套解決方案,是不少機器人公司的核心技術,通常不會隨便公開。出於強烈的求知慾與學習熱情,我想本身DIY一整套兩輪差分底盤,而且將完整的設計過程公開出去供你們學習。說幹就幹,本章節主要內容:html

1.stm32主控硬件設計python

2.stm32主控軟件設計nginx

3.底盤通訊協議django

4.底盤ROS驅動開發ubuntu

5.底盤PID控制參數整定centos

6.底盤裏程計標網絡



5.底盤PID控制參數整定            

咱們的miiboo機器人底盤的stm32控制板中已經內置了整定好的PID參數,若是選用咱們提供的控制板和電機,通常狀況下是不須要整定PID的。架構

對於想體驗一下PID參數整定過程或將咱們的miiboo機器人底盤的stm32控制板應用到其餘地方的朋友,這裏給出了整定PID的整個操做過程和思路,方便你們學習和更深層次的研究。首先,對PID三個參數定性的分析,先有個感性的認識,如圖49ide

(圖49PID參數定性分析工具

其次,因爲咱們的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,並使系統在保持良好動態響應的狀況下,消除穩態偏差。這種調整可根據響應曲線的狀態,反覆改變KIKD,以期獲得滿意的控制過程。

3步:

若使用比例-積分調節器消除了穩態偏差,但動態過程仍不能滿意,則可加入微分環節。在第2步整定的基礎上,逐步增大KP,同時相應地改變KIKD,逐步試湊以得到滿意的調節效果。

原理了解後,就要到實際的miiboo機器人上進行整定了,首先須要將底盤的DATA-uart2DEBUG-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_plotROS提供的繪圖工具,關於這些的具體使用方法將在miiboo機器人SLAM導航中作更詳細的展開。

最後,就是經過觀察速度曲線,按照試湊法的步驟,在底盤調試節點的終端中輸入相應的kpkikd參數,不斷重複這個過程直到速度曲線達到一個比較滿意的形狀。rqt_plot速度曲線的樣子如圖52所示。

(圖52rqt_plot速度曲線

後記              

------SLAM+語音機器人DIY系列【目錄】快速導覽------

第1章:Linux基礎

1.Linux簡介

2.安裝Linux發行版ubuntu系統

3.Linux命令行基礎操做

第2章:ROS入門

1.ROS是什麼

2.ROS系統總體架構

3.在ubuntu16.04中安裝ROS kinetic

4.如何編寫ROS的第一個程序hello_world

5.編寫簡單的消息發佈器和訂閱器

6.編寫簡單的service和client

7.理解tf的原理

8.理解roslaunch在大型項目中的做用

9.熟練使用rviz

10.在實際機器人上運行ROS高級功能預覽

第3章:感知與大腦

1.ydlidar-x4激光雷達

2.帶自校準九軸數據融合IMU慣性傳感器

3.輪式里程計與運動控制

4.音響麥克風與攝像頭

5.機器人大腦嵌入式主板性能對比

6.作一個能走路和對話的機器人

第4章:差分底盤設計

1.stm32主控硬件設計

2.stm32主控軟件設計

3.底盤通訊協議

4.底盤ROS驅動開發

5.底盤PID控制參數整定

6.底盤裏程計標

第5章:樹莓派3開發環境搭建

1.安裝系統ubuntu_mate_16.04

2.安裝ros-kinetic

3.裝機後一些實用軟件安裝和系統設置

4.PC端與robot端ROS網絡通訊

5.Android手機端與robot端ROS網絡通訊

6.樹莓派USB與tty串口號綁定

7.開機自啓動ROS節點

第6章:SLAM建圖與自主避障導航

1.在機器人上使用傳感器

2.google-cartographer機器人SLAM建圖

3.ros-navigation機器人自主避障導航

4.多目標點導航及任務調度

5.機器人巡航與現場監控

第7章:語音交互與天然語言處理

1.語音交互相關技術

2.機器人語音交互實現

3.天然語言處理雲計算引擎

第8章:高階拓展

1.miiboo機器人安卓手機APP開發

2.centos7下部署Django(nginx+uwsgi+django+python3)

----------------文章將持續更新,敬請關注-----------------

 

若是你們對博文的相關類容感興趣,或有什麼技術疑問,歡迎加入下面的《SLAM+語音機器人DIY》QQ技術交流羣,一塊兒討論學習^_^

關於咱們:

視頻教程:

 

https://www.bilibili.com/video/av61448040

相關文章
相關標籤/搜索