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