版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《ROS原理與技術(shù)應(yīng)用》能力模塊四掌握線控底盤的調(diào)試方法
任務(wù)一實(shí)現(xiàn)自動駕駛系統(tǒng)的遠(yuǎn)程登錄導(dǎo)入隨著自動駕駛技術(shù)的不斷發(fā)展,在L3級別的自動駕駛面臨的最大的挑戰(zhàn)是循序雙手暫時離開方向盤,而更高級別的自動駕駛則需要達(dá)到解放雙手雙腳以及眼睛的效果,完全依靠感知層、決策層和執(zhí)行層來控制汽車自動駕駛。目錄
CONTENTS0102串口通信的定義串口通信在智慧貓上的應(yīng)用03ros_arduino_bridge通信包的文件結(jié)構(gòu)新授一、串口通信的定義串行接口簡稱串口,也稱串行通信接口(通常指COM接口),是采用串行通信方式的擴(kuò)展接口。
串口通信(SerialCommunications)是指指外設(shè)和計(jì)算機(jī)間,通過數(shù)據(jù)信號線、地線、控制線等,按位(bit)發(fā)送和接收字節(jié),進(jìn)行傳輸數(shù)據(jù)的一種通訊方式。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù)。它很簡單并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信。
串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)。對于兩個進(jìn)行通信的端口,這些參數(shù)必須匹配。下面將對波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)這幾個概念進(jìn)行簡單介紹一、串口通信的定義1波特率這是一個衡量字符傳輸速率的參數(shù),配置了波特率就知道了傳輸每個位(bit)所需要的時間。波特率指的是信號被調(diào)制以后在單位時間內(nèi)的變化,即單位時間內(nèi)載波參數(shù)變化的次數(shù),如每秒鐘傳送240個字符,而每個字符格式包含10位(1個起始位,1個停止位,8個數(shù)據(jù)位),這時的波特率為240Bd,比特率為10位*240個/秒=2400bps。波特率不能隨意設(shè)定,因?yàn)橥ㄐ烹p方需要事先設(shè)定先溝通的波特率才能通信成功,否則接收不到通信內(nèi)容。一般最常見的波特率是9600或115200(低端單片機(jī)如51常用9600,高端單片機(jī)和嵌入式SOC常用115200)。2數(shù)據(jù)位這是衡量通信中實(shí)際數(shù)據(jù)位的參數(shù)。當(dāng)計(jì)算機(jī)發(fā)送一個信息包,實(shí)際真正有效數(shù)據(jù)位數(shù)是可以選擇的,標(biāo)準(zhǔn)的值是6~8位。如何設(shè)置取決于你想傳送的信息。比如,標(biāo)準(zhǔn)的ASCII碼是0~127(7位)。擴(kuò)展的ASCII碼是0~255(8位)。如果數(shù)據(jù)使用簡單的文本(標(biāo)準(zhǔn)ASCII碼),那么每個數(shù)據(jù)包使用7位數(shù)據(jù)。一、串口通信的定義3停止位用于表示單個包的最后一位。典型的值為1,1.5和2位。由于數(shù)據(jù)是在傳輸線上定時的,并且每一個設(shè)備有其自己的時鐘,很可能在通信中兩臺設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計(jì)算機(jī)校正時鐘同步的機(jī)會。適用于停止位的位數(shù)越多,不同時鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時也越慢。4奇偶校驗(yàn)位在串口通信中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。當(dāng)然沒有校驗(yàn)位也是可以的。對于偶和奇校驗(yàn)的情況,串口會設(shè)置校驗(yàn)位(數(shù)據(jù)位后面的一位),用一個值確保傳輸?shù)臄?shù)據(jù)有偶個或者奇?zhèn)€邏輯高位。例如,如果數(shù)據(jù)是011,那么對于偶校驗(yàn),校驗(yàn)位為0,保證邏輯高的位數(shù)是偶數(shù)個。如果是奇校驗(yàn),校驗(yàn)位為1,這樣就有3個邏輯高位。高位和低位不真正的檢查數(shù)據(jù),簡單置位邏輯高或者邏輯低校驗(yàn)。這樣使得接收設(shè)備能夠知道一個位的狀態(tài),有機(jī)會判斷是否有噪聲干擾了通信或者是否傳輸和接收數(shù)據(jù)是否不同步。一、串口通信的定義實(shí)際的串口通訊的數(shù)據(jù)包傳輸過程是發(fā)送設(shè)備通過自身的TXD接口傳輸?shù)浇邮赵O(shè)備的RXD接口。其數(shù)據(jù)包內(nèi)容為:起始位、數(shù)據(jù)位、校驗(yàn)位以及停止位組成,通信雙方的數(shù)據(jù)包格式需要約定一致才能正常的收發(fā)數(shù)據(jù),數(shù)據(jù)包的具體構(gòu)成如圖二、串口通信在智慧貓上的應(yīng)用當(dāng)我們想要具體利用決策單元控制智慧貓的底盤之前,我們首先需要了解上位機(jī)與下位機(jī)的概念。上位機(jī)是指可以直接發(fā)出操控命令的計(jì)算機(jī),通常是PC、hostcomputer、mastercomputer、決策模塊。下位機(jī)是指能夠直接控制設(shè)備運(yùn)作、獲取設(shè)備狀態(tài)信息的計(jì)算機(jī),一般是指PLC(可編程邏輯控制器,ProgrammableLogicController)、單片機(jī)、slavecomputer等。上位機(jī)發(fā)出命令傳遞給下位機(jī),下位機(jī)再根據(jù)命令直接控制相應(yīng)設(shè)備。下位機(jī)讀取設(shè)備狀態(tài)數(shù)據(jù)反饋給上位機(jī)。二、串口通信在智慧貓上的應(yīng)用在智慧貓線控底盤通信中上下位機(jī)分別是串口接收決策單元和線控底盤控制單元。想實(shí)現(xiàn)智慧主控制器與底盤控制器的通信,步驟大致分為以下三步:?將行云橋智慧貓自帶的HDMI接口跟桌面顯示器相連,USB接口連接無線鍵鼠接收器。?打開電源,進(jìn)入到Ubuntu系統(tǒng)。?啟動ROS與arduino的通信節(jié)點(diǎn)。其中智慧貓的線控底盤控制單元(下位機(jī))通過串口接收決策單元(上位機(jī))發(fā)送過來的底盤行駛的線速度和角速度,同時,下位機(jī)也通過串口向上位機(jī)發(fā)送四個驅(qū)動電機(jī)的實(shí)時轉(zhuǎn)速。
智慧貓的上位機(jī)采用JetsonNano作為主控模塊(決策模塊),然后通過串口連接至底盤的控制器(ArduinoMega2560)。上位機(jī)JetsonNano上已經(jīng)安裝好了ROS系統(tǒng),并通過ros_arduino_bridge通信功能包實(shí)現(xiàn)與下位機(jī)arduino之間的串行通信。三、ros_arduino_bridge通信包的文件結(jié)構(gòu)os_arduino_bridge功能包集包括了Arduino庫(ROSArduinoBridge)和一系列用來控制基于Arduino的ROS功能包,它使用的是標(biāo)準(zhǔn)的ROS消息和服務(wù),且不依賴于ROS串口。ros_arduino_bridge包含了一個底盤控制器(basecontroller),該底盤控制器是用來控制一個兩輪差速驅(qū)動的機(jī)器人,可以接受ROSTwist格式的消息和發(fā)布里程計(jì)數(shù)據(jù)到主控電腦(上位機(jī))。目前ros_arduino_bridge功能包支持的電機(jī)驅(qū)動板有PololuVNH5019雙路電機(jī)控制板和PololuMC33926雙路電機(jī)控制板。除了默認(rèn)支持的控制板,我們也可以通過修改代碼來擴(kuò)充其他型號的電機(jī)驅(qū)動板。該軟件包處理支持驅(qū)動電機(jī),還有一些其他功能:?直接支持各種超聲波傳感器(如:HY-SRF05超聲波模塊)和Sharp紅外測距傳感器(如:GP2D12)?可以從通用的模擬和數(shù)字信號的傳感器讀取數(shù)據(jù)?可以直接控制數(shù)字信息信號的輸出?能夠支出PWM伺服舵機(jī)控制三、ros_arduino_bridge通信包的文件結(jié)構(gòu)接下來,我們來介紹一下ros_arduino_bridge功能包集的整體文件結(jié)構(gòu)。總的來說,ros_arduino_bridge功能包包括四大部分:ros_arduino_bridge模塊、ros_arduino_firmware模塊、ros_arduino_msgs模塊以及ros_arduino_python模塊。具體的內(nèi)部文件結(jié)構(gòu)如圖三、ros_arduino_bridge通信包的文件結(jié)構(gòu)其中ros_arduino_msgs文件夾內(nèi)部包含了ROS使用的各類信息格式和各類服務(wù)。內(nèi)部的msg文件夾內(nèi)容主要用于定義消息,srv文件夾內(nèi)容用于定義服務(wù)。具體包含的功能文件如圖三、ros_arduino_bridge通信包的文件結(jié)構(gòu)其中ros_arduino_python文件夾內(nèi)部包含了上位機(jī)中需要運(yùn)行的主要代碼,由pythonb編寫。內(nèi)部結(jié)構(gòu)為config、launch、nodes和src/ros_arduino_python文件夾。一一對應(yīng)的具體功能文件展示如圖三、ros_arduino_bridge通信包的文件結(jié)構(gòu)在實(shí)現(xiàn)實(shí)現(xiàn)線控底盤主機(jī)與底層控制板Arduino的通信之前,需要確認(rèn)線控底盤的主機(jī)通信包已安裝,必須先啟動底盤通信節(jié)點(diǎn),相關(guān)命令如下(1)遠(yuǎn)程登錄到線控底盤主機(jī)側(cè):(2)啟動底盤通信節(jié)點(diǎn):正確啟動后界面顯示如圖任務(wù)實(shí)施一、任務(wù)準(zhǔn)備(一)軟件、硬件準(zhǔn)備(二)安全要求及注意事項(xiàng)1.安裝好ROS系統(tǒng)的桌面電腦一臺;2.燒錄好智慧貓線控底盤控制系統(tǒng)程序的ArduinoMega2560控制板一塊;11.檢查桌面電腦ROS系統(tǒng)是否已經(jīng)安裝好;22.檢查Arduino板的程序是否已經(jīng)燒錄完成。
檢查桌面電腦ROS系統(tǒng)是否已安裝好實(shí)施步驟有:二、實(shí)施步驟首先需要完成工作空間的創(chuàng)建01編譯與環(huán)境配置02配置線控底盤的參數(shù)03啟動底盤通信節(jié)點(diǎn)04二、實(shí)施步驟(一)創(chuàng)建工作空間并初始化
步驟1:首先需要完成工作空間的創(chuàng)建
(1)在home/inwinic目錄下創(chuàng)建多級文件夾目錄:(2)初始化工作空間:二、實(shí)施步驟(一)創(chuàng)建工作空間并初始化
步驟2:編譯與環(huán)境配置
(2)編譯與環(huán)境配置將配套提供的ros_arduino_bridge功能包拷貝到文件夾目錄/home/inwinic/inwinic_ws/src下,并完成編譯和環(huán)境的配置。編譯的指令如下:環(huán)境的配置指令如下:二、實(shí)施步驟(一)創(chuàng)建工作空間并初始化
步驟3:配置線控底盤的參數(shù)
將Arduino控制板連接至桌面電腦的USB端口,如果是在桌面電腦的虛擬機(jī)上安裝的ROS,需要在虛擬機(jī)窗口欄中選擇“虛擬機(jī)”->“可移動設(shè)備”,在“可移動設(shè)備”列表中找到arduino對應(yīng)的設(shè)備并連接。具體參數(shù)的配置步驟如下:(1)查詢arduino控制板與虛擬機(jī)的連接端口號及權(quán)限設(shè)置:首先查詢端口號:顯示如圖所示:二、實(shí)施步驟(一)創(chuàng)建工作空間并初始化
步驟3:配置線控底盤的參數(shù)
常見設(shè)備連接后,端口顯示一般為ttyUSB*或ttyACM*,“*”代表數(shù)字“0,1,2……”,如果不確定,可以在Arduino控制板連接至上位機(jī)控制板前查詢下端口號,然后在Arduino控制板連接至上位機(jī)控制板后,再查詢下端口號,新增加的端口號即為Arduino控制板的連接端口。在查詢到端口號為/dev/ttyUSB0后,可以通過如下指令查詢端口的權(quán)限:指令執(zhí)行后,顯示如圖所示:紅色標(biāo)注部分表示端口的權(quán)限,詳情如表所示二、實(shí)施步驟(一)創(chuàng)建工作空間并初始化
步驟3:配置線控底盤的參數(shù)
端口在賦予權(quán)限的時候是通過數(shù)字來實(shí)現(xiàn)的,每組權(quán)限r(nóng)wx分別對應(yīng)3位二進(jìn)制數(shù),然后轉(zhuǎn)換成十進(jìn)制數(shù)后的對應(yīng)關(guān)系如表所示:為了實(shí)現(xiàn)上位機(jī)和下位機(jī)之間通過連接端口傳輸數(shù)據(jù),我們將所有者的權(quán)限、同組用戶權(quán)限、其他用戶權(quán)限都為rwx,即在權(quán)限賦值時設(shè)置權(quán)限值為777即可。指令如下:指令執(zhí)行后,端口所有的權(quán)限均為rwx。二、實(shí)施步驟(一)創(chuàng)建工作空間并初始化
步驟3:配置線控底盤的參數(shù)
(2)修改通信節(jié)點(diǎn)的啟動參數(shù):打開文件夾目錄ros_arduino_bridge/ros_arduino_python/config,然后打開my_arduino_params.yaml文件(如果沒有該文件,可以復(fù)制arduino_params.yaml文件,然后修改文件名為my_arduino_params.yaml),并進(jìn)行參數(shù)的修改,具體操作指令如下:二、實(shí)施步驟(一)創(chuàng)建工作空間并初始化
步驟3:配置線控底盤的參數(shù)
打開my_arduino_params.yaml參數(shù)后,參考如下內(nèi)容來修改my_arduino_params.yaml文件:(行前面如果包含“#”,代表該行設(shè)定的參數(shù)無效):特別需要指出的是這個參數(shù)設(shè)置文件內(nèi),編碼器分辨率(encoder_resolu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 多組學(xué)技術(shù)在精準(zhǔn)醫(yī)療中的創(chuàng)新服務(wù)模式
- 2025年高職木業(yè)智能裝備應(yīng)用技術(shù)(智能裝備操作)試題及答案
- 2026年智能酒品AI營銷文案生成器項(xiàng)目可行性研究報(bào)告
- 2025年中職(烘焙工藝)中式面點(diǎn)制作試題及答案
- 多源數(shù)據(jù)融合的化工行業(yè)職業(yè)病風(fēng)險(xiǎn)預(yù)測
- 2025年高職歷史(歷史應(yīng)用技能進(jìn)階)試題及答案
- 2025年中職行政管理(行政辦公實(shí)務(wù))試題及答案
- 2025年高職托育基礎(chǔ)應(yīng)用技術(shù)(托育應(yīng)用)試題及答案
- 2025年高職(建設(shè)工程管理)工程質(zhì)量控制綜合測試試題及答案
- 2025年高職國際物流(國際物流實(shí)務(wù))試題及答案
- GB/T 23446-2025噴涂聚脲防水涂料
- 2026年(馬年)學(xué)校慶元旦活動方案:駿馬踏春啟新程多彩活動慶元旦
- 消防箱生產(chǎn)工藝流程
- T-CDLDSA 09-2025 健身龍舞彩帶龍 龍舞華夏推廣套路技術(shù)規(guī)范
- 部編版初三化學(xué)上冊期末真題試題含解析及答案
- GB/T 19566-2025旱地糖料甘蔗高產(chǎn)栽培技術(shù)規(guī)程
- 去極端化條例解讀課件
- 光纖收發(fā)器培訓(xùn)
- 汽車減震器課件
- 水上拋石應(yīng)急預(yù)案
- 蘇州大學(xué)介紹
評論
0/150
提交評論