周旭華,伍懿美,陳紀(jì)欽
(河源職業(yè)技術(shù)學(xué)院,廣東 河源 517000)
中國(guó)智造是我國(guó)加快推進(jìn)產(chǎn)業(yè)結(jié)構(gòu)調(diào)整,適應(yīng)需求結(jié)構(gòu)變化趨勢(shì),完善現(xiàn)代產(chǎn)業(yè)體系,積極推進(jìn)傳統(tǒng)產(chǎn)業(yè)技術(shù)改造,加快發(fā)展戰(zhàn)略性新興產(chǎn)業(yè),提升中國(guó)“智造”水平,全面提升產(chǎn)業(yè)技術(shù)水平和國(guó)際競(jìng)爭(zhēng)力的一項(xiàng)重要發(fā)展戰(zhàn)略。
為與國(guó)際先進(jìn)智能網(wǎng)聯(lián)汽車技術(shù)水平保持同步發(fā)展,開發(fā)具有自主知識(shí)產(chǎn)權(quán)的智能網(wǎng)聯(lián)汽車產(chǎn)品和技術(shù),積極推進(jìn)行業(yè)亟需的智能網(wǎng)聯(lián)汽車技術(shù)規(guī)范與標(biāo)準(zhǔn),在國(guó)家相關(guān)部委支持下,2013年,中國(guó)汽車工程學(xué)會(huì)聯(lián)合包括汽車整車企業(yè)、科研院所、通信運(yùn)營(yíng)商、軟硬件廠商等30多家單位共同發(fā)起成立“車聯(lián)盟產(chǎn)業(yè)技術(shù)創(chuàng)新戰(zhàn)略聯(lián)盟”,2015年7月更名為“智能網(wǎng)聯(lián)汽車產(chǎn)業(yè)技術(shù)創(chuàng)新戰(zhàn)略聯(lián)盟”。聯(lián)盟成立后,通過(guò)協(xié)同創(chuàng)新和技術(shù)共享,在智能網(wǎng)聯(lián)汽車領(lǐng)域完善相關(guān)的標(biāo)準(zhǔn)法規(guī)體系,搭建共性技術(shù)平臺(tái),促進(jìn)形成示范試點(diǎn)工程,推動(dòng)建設(shè)可持續(xù)發(fā)展的智能網(wǎng)聯(lián)汽車產(chǎn)業(yè)發(fā)展環(huán)境,為我國(guó)智能網(wǎng)聯(lián)汽車產(chǎn)業(yè)發(fā)展奠定良好基礎(chǔ)。
在提升“智造”水平的過(guò)程中,機(jī)器的智能化將會(huì)是重要的一個(gè)環(huán)節(jié)。Raspberry Pi和Arduino是當(dāng)前入門級(jí)較為流行的智能化控制硬件,ROS是當(dāng)今最為流行的開源的機(jī)器人操作系統(tǒng),如何將這些智能化硬件和軟件結(jié)合,制作一個(gè)適合作為汽車智能化專業(yè)的高職學(xué)生學(xué)習(xí)智能化相關(guān)知識(shí)的載體,是一個(gè)重要的問(wèn)題。
因此,本文通過(guò)使用智能硬件Raspberry Pi和Arduino,并利用開源的機(jī)器人操作系統(tǒng) (ROS),設(shè)計(jì)了一款智能小車。并在實(shí)際教學(xué)中成功使用。
基于ROS的示教小車的設(shè)計(jì)可以劃分為硬件設(shè)計(jì)和軟件設(shè)計(jì)兩個(gè)部分。硬件設(shè)計(jì)包含上位機(jī)、下位機(jī)和底盤驅(qū)動(dòng)3個(gè)部分,其中上位機(jī)采用Raspberry Pi,下位機(jī)采用Arduino。軟件包含底盤控制程序及ROS控制程序兩個(gè)部分。整個(gè)系統(tǒng)的總體方案如圖1所示。
圖1 基于ROS的示教小車系統(tǒng)整體框圖
ROS示教小車的硬件設(shè)計(jì)部分主要由3個(gè)部分構(gòu)成,分別為上位機(jī)、下位機(jī)和底盤驅(qū)動(dòng)。上位機(jī)采用Raspberry Pi3B+控制板,下位機(jī)采用Arduino uno控制板,底盤驅(qū)動(dòng)采用L298N系列驅(qū)動(dòng)板,電機(jī)GM25-370。整個(gè)系統(tǒng)的硬件設(shè)計(jì)框圖如圖2所示。
圖2 小車系統(tǒng)的硬件設(shè)計(jì)框圖
在硬件系統(tǒng)設(shè)計(jì)中,小車的上位機(jī)采用Raspberry Pi,由電源模塊單獨(dú)供電。Raspberry Pi搭載了Ubuntu16.04操作系統(tǒng),Ubuntu上安裝的ROS系統(tǒng)版本為Kinetic Kame。Raspberry Pi開發(fā)板通過(guò)USB連接到Raspberry Pi,該USB口在給Arduino供電的同時(shí),還負(fù)責(zé)Raspberry Pi和Arduino的通信。電機(jī)驅(qū)動(dòng)模塊的供電為獨(dú)立供電,驅(qū)動(dòng)模塊的PWM信號(hào)由Arduino提供。電機(jī)驅(qū)動(dòng)模塊為電機(jī)供電并提供PWM控制信號(hào)來(lái)控制電機(jī)運(yùn)動(dòng)。
Arduino在與電機(jī)驅(qū)動(dòng)模塊連接的時(shí)候,需要注意Arduino uno能夠提供PWM輸出的引腳編號(hào)為3、5、6、9、10、11。本文采用的PWM引腳為6號(hào)和10號(hào)引腳,并將PWM信號(hào)引腳連接至驅(qū)動(dòng)模塊的ENA和ENB引腳。然后將電機(jī)驅(qū)動(dòng)模塊上控制電機(jī)轉(zhuǎn)向的引腳連接至Arduino程序中定義好的引腳。最后將電機(jī)的供電引腳連接至電機(jī)驅(qū)動(dòng)模塊,電機(jī)的編碼器供電引腳和編碼器輸出引腳連接至Arduino程序中定義好的引腳。詳細(xì)的電路連接圖如圖3所示,硬件的3D模型圖如圖4所示。
圖3 硬件設(shè)計(jì)電路接線圖
圖4 硬件3D模型圖
控制小車底盤移動(dòng)首先需要對(duì)Arduino和Raspberry Pi通信的波特率進(jìn)行設(shè)定,并定義電機(jī)控制引腳和電機(jī)PWM控制引腳。然后定義小車的移動(dòng)方式與接收到的信號(hào)的對(duì)應(yīng)關(guān)系。最后定義小車PID的控制。底盤控制方案的設(shè)計(jì)如圖5所示。
圖5 底盤控制方案設(shè)計(jì)圖
上位機(jī)和下位機(jī)之間的通信采用ros_arduino_bridge這個(gè)ROS功能包集,它包括了Arduino庫(kù) (ROSArduinoBridge)和一系列用來(lái)控制基于Arduino的ROS功能包,它使用的是標(biāo)準(zhǔn)的ROS消息和服務(wù)。這個(gè)功能包集并不依賴于ROS串口。這個(gè)功能包集包括一個(gè)兼容不同驅(qū)動(dòng)的機(jī)器人的基本控制器(base controller),它可以接收ROS Twist類型的消息,可以發(fā)布里程數(shù)據(jù)到個(gè)人電腦。底盤的里程數(shù)據(jù)需要通過(guò)python-serial功能包獲取電機(jī)的編碼器的數(shù)據(jù)來(lái)實(shí)現(xiàn)。
python-serial功能包可以通過(guò)二進(jìn)制安裝的方法來(lái)完成,ros_arduino_bridge功能包通過(guò)編譯式的安裝方法來(lái)完成。在完成功能包的安裝后,通過(guò)設(shè)置當(dāng)前用戶對(duì)于Arduino連接到Raspberry Pi端口的讀寫權(quán)限、通信波特率,并啟動(dòng)控制節(jié)點(diǎn)就可以控制底盤的運(yùn)動(dòng)。上位機(jī)控制流程如圖6所示。
為了便于控制小車進(jìn)行運(yùn)動(dòng),可以通過(guò)便攜機(jī)遠(yuǎn)程登錄到Raspberry Pi的Ubuntu的系統(tǒng),并遠(yuǎn)程啟動(dòng)底盤控制節(jié)點(diǎn),進(jìn)而可以通過(guò)鍵盤節(jié)點(diǎn)遠(yuǎn)程控制小車移動(dòng)。
在實(shí)際教學(xué)中,采用了項(xiàng)目型教學(xué)方式。針對(duì)該底盤設(shè)計(jì)的課程實(shí)踐環(huán)節(jié)及課程知識(shí)點(diǎn)重點(diǎn)如表1所示。
圖6 上位機(jī)控制方案設(shè)計(jì)圖
經(jīng)過(guò)在實(shí)際教學(xué)中對(duì)該小車底盤的使用,發(fā)現(xiàn)該示教小車底盤適用于具備一點(diǎn)arduino基礎(chǔ)的課程。而且在ROS系列課程教學(xué)中也可以使用。
由于采用以實(shí)物為載體的項(xiàng)目型教學(xué)方式,學(xué)生的學(xué)習(xí)積極性及專注度大大提高。項(xiàng)目的實(shí)施過(guò)程可以讓學(xué)生綜合運(yùn)用本學(xué)期課程模塊所學(xué)知識(shí)與技能,更好地理解傳感器、控制器、執(zhí)行器的工作原理。通過(guò)基于課程項(xiàng)目全生命周期的學(xué)習(xí),可以培養(yǎng)學(xué)生運(yùn)用知識(shí)、獲取知識(shí)、總結(jié)知識(shí)、傳播知識(shí)與共享知識(shí)的能力,從而促進(jìn)學(xué)生綜合職業(yè)能力與可持續(xù)發(fā)展能力的提高。
此外,該示教小車通過(guò)結(jié)合一些傳感器可以實(shí)現(xiàn)高階教學(xué)內(nèi)容的擴(kuò)展。在該小車底盤上可拓展的智能網(wǎng)聯(lián)小車課程實(shí)踐設(shè)計(jì)如表2所示。
由于成本較低,可擴(kuò)展性好,基于ROS的示教小車可以較好的運(yùn)用于Arduino編程及ROS系統(tǒng)使用及編程,傳感器、控制器的使用等類型的教學(xué)中。借助于示教小車這種實(shí)踐平臺(tái),可以較大地提升學(xué)生的學(xué)習(xí)興趣及專注力,并直觀地向?qū)W生展示了各項(xiàng)知識(shí)實(shí)現(xiàn)的功能。能夠有效提升學(xué)生對(duì)于智能控制硬件及軟件的掌握。對(duì)高職類學(xué)生的教學(xué)效果能夠起到較好的提升作用。
表2 ROS小車拓展課程設(shè)計(jì)