SLAM+語音機器人DIY系列:(四)差分底盤設計——6.底盤裏程計標

摘要                                            

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

1.stm32主控硬件設計python

2.stm32主控軟件設計nginx

3.底盤通訊協議算法

4.底盤ROS驅動開發django

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

6.底盤裏程計標centos



6.底盤裏程計標                         

機器人底盤運行的精度是衡量底盤的重要指標。底盤精度受里程計的走直線偏差和轉角偏差影響。所以,須要對里程計的走直線和轉角進行標定,儘可能減少偏差。miiboo機器人底盤的ROS驅動中已經寫好了相應的標定程序,跟里程計標定有關的文件主要有:網絡

.../miiboo_bringup/launch/check_linear.launch爲里程計走直線標定啓動文件架構

.../miiboo_bringup/launch/check_angular.launch爲里程計轉角標定啓動文件ide

.../miiboo_bringup/launch/minimal.launch爲設置標定參數及底盤控制啓動文件

下面是標定步驟過程。

第一步:

打開終端,給標定腳本賦予可執行權限

cd miiboo_bringup/scripts/
sudo chmod +x ./*

第二步:

鏈接好底盤DATA-uart2串口,啓動底盤

roslaunch miiboo_bringup minimal.launch

第三步:

設定前進1米的目標,對走直線進行標定

roslaunch miiboo_bringup check_linear.launch

測量底盤中止時實際走的直線距離M,按下面的規則調整里程計直線參數speed_ratio

若是M > 1米,增大speed_ratio

若是M < 1米,減少speed_ratio

里程計的參數存放在miiboo_bringup/launch/minimal.launch文件中,如圖53所示。

(圖53)里程計待標定參數

修改好參數後,須要保存,而後從新啓動一下底盤節點,這樣參數才能生效。

roslaunch miiboo_bringup minimal.launch

重複第三步的操做,直到走直線的偏差達到咱們能接受的範圍(好比1%的偏差),則進入下一步。

第四步:

設定旋轉360度的目標,對轉角進行標定

roslaunch miiboo_bringup check_angular.launch

測量底盤中止旋轉時實際轉過的角度A,按下面的規則調整里程計轉角參數wheel_distance

若是A > 360度,減少wheel_distance

若是A < 360度,增大wheel_distance

上面已經講過,里程計的參數存放在miiboo_bringup/launch/minimal.launch文件中,如圖53所示。

修改好參數後,須要保存,而後從新啓動一下底盤節點,這樣參數才能生效。

roslaunch miiboo_bringup minimal.launch

重複第四步的操做,直到走轉角的偏差達到咱們能接受的範圍(好比1%的偏差),則標定完成。

固然,有興趣的朋友能夠閱讀miiboo_bringup/scripts/中的標定腳本源碼,結合航跡推演算法,理解里程計標定的整個原理。其實wheel_distance這個參數是編碼脈衝值與電機輪胎位移值的一個比例係數,簡單點說就是電機轉過一個編碼脈衝,這個時候電機輪胎走過多少距離;wheel_distance這個參數是左右兩個輪子的間距。有了這個認識後,咱們能夠在這兩個參數的理論值附近對參數進行微調,標定起來會更快。

後記                                            

------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

相關文章
相關標籤/搜索