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