肖軍浩 盧惠民 薛小波 徐曉紅
DOI:10.16660/j.cnki.1674-098X.2016.22.157
摘 要:實踐教學(xué)是人才培養(yǎng)的一個重要環(huán)節(jié),對機器人技術(shù)這樣一門典型的交叉學(xué)科尤為重要。然而,開展機器人技術(shù)實踐教學(xué)亟需一個通用的多功能軟件平臺,機器人操作系統(tǒng)(ROS)的面世填補了這個空白。因此,讓高年級本科生學(xué)習(xí)使用ROS有非常重要的意義。事實上,國外很多知名高校已經(jīng)將ROS用于教學(xué),而國內(nèi)還剛剛起步。作者近兩年在國防科技大學(xué)《自動化系統(tǒng)綜合設(shè)計》實踐課程中對ROS教學(xué)進行了初步嘗試,論文不僅分享了課程的教學(xué)方法,還分析了將ROS應(yīng)用于實踐教學(xué)可能遇到的共性問題,提出了建設(shè)ROS實踐教學(xué)課程的建議。
關(guān)鍵詞:實踐教學(xué) 機器人操作系統(tǒng) 機器人技術(shù) 自動化系統(tǒng)綜合設(shè)計
中圖分類號:TP242 文獻標(biāo)識碼:A 文章編號:1674-098X(2016)08(a)-0157-03
合理有效開展實踐教學(xué),是培養(yǎng)工程技術(shù)類人才必不可少的一個重要步驟,對于機器人技術(shù)的教育更是如此。通過實踐教學(xué),學(xué)生能夠驗證所學(xué)的理論,更重要的是,通過理論與實踐的結(jié)合更深刻理解所學(xué)知識。機器人技術(shù)亟需一個能夠?qū)⒏鞑糠种R融會貫通的軟件實踐平臺。在眾多機器人軟件平臺中,機器人操作系統(tǒng)(ROS)因具有功能豐富、模塊化程度高、代碼可重用性強、開發(fā)效率高、可供借鑒開源資源豐富、組織機器人軟件系統(tǒng)高效靈活等優(yōu)點,能夠更好滿足這個需求。國防科學(xué)技術(shù)大學(xué)《自動化系統(tǒng)綜合設(shè)計》實踐課程對引入ROS進行了初步嘗試,分析了將ROS應(yīng)用于實踐教學(xué)肯能遇到的共性問題,提出了建設(shè)ROS實踐教學(xué)課程的建議。
1 機器人操作系統(tǒng)的發(fā)展
作為撬動下一次工業(yè)革命的杠桿,機器人近年來受到全社會的普遍關(guān)注,各國也不斷加大對于機器人研究的支持力度。隨之而來的是機器人技術(shù)的飛速發(fā)展,但與此同時,機器人系統(tǒng)的復(fù)雜度不斷提高,使得為機器人編寫軟件系統(tǒng)越來越困難。主要原因包括:第一,機器人的功能層次化要求在加深,對軟件的模塊化設(shè)計提出了更高要求;第二,機器人的計算平臺不斷豐富,機器人軟件是否支持跨平臺開發(fā)成為機器人設(shè)計中的一個重要因素;第三,機器人的感知系統(tǒng)越來越復(fù)雜,雖然提升了機器人的感知能力,但數(shù)據(jù)量也越來越大,對于軟件系統(tǒng)的實時性和可靠性提出了挑戰(zhàn);第四,機器人軟件系統(tǒng)呈“煙囪”式發(fā)展,不同機器人間的接口不能兼容,代碼不能復(fù)用??傊?,與個人計算機相比,機器人領(lǐng)域缺少一套軟件架構(gòu)的標(biāo)準(zhǔn),導(dǎo)致代碼的復(fù)用率非常低。
針對上述問題,機器人操作系統(tǒng)[1,2](Robot Operating System,簡稱ROS)應(yīng)運而生。因為集成了全世界機器人領(lǐng)域頂級科研機構(gòu),包括斯坦福大學(xué)、麻省理工學(xué)院、慕尼黑工業(yè)大學(xué)、加州大學(xué)伯克利分校、佐治亞理工大學(xué)、弗萊堡大學(xué)、東京大學(xué)等多年的研究成果,ROS甫一問世便受到了科研人員的廣泛關(guān)注。隨后,ROS又借助開源的魅力吸引了世界各地機器人領(lǐng)域的仁人志士群策群力,推動其不斷進步。2013年麻省理工學(xué)院科技評論(MIT Technology Review)指出:“從2010年發(fā)布1.0版本以來,ROS已經(jīng)成為機器人軟件的事實標(biāo)準(zhǔn)(de facto standard)”。目前ROS在全球已經(jīng)擁有數(shù)以萬計的使用者,其支持的機器人已經(jīng)有百余種,其中包括廉價的樂高機器人(LEGO Mindstorms)和TurtleBot系列教學(xué)機器人。
2 ROS對于機器人實踐教學(xué)的意義
合理有效開展實踐教學(xué),是培養(yǎng)工程技術(shù)類人才必不可少的一個重要步驟,對于機器人技術(shù)的教育更是如此[3]。通過實踐教學(xué),學(xué)生能夠驗證所學(xué)的理論,更重要的是,通過理論與實踐的結(jié)合更深刻的理解所學(xué)知識。機器人技術(shù)涉及到機械系統(tǒng)設(shè)計、運動控制規(guī)劃、環(huán)境感知、信息融合、信號處理等眾多研究內(nèi)容,亟需要一個能夠?qū)W(xué)生過去所學(xué)的知識融會貫通的實踐平臺。對于機器人技術(shù),硬件平臺和軟件平臺具有同等重要的地位,甚至軟件平臺比硬件平臺的地位更加突出,因為沒有硬件平臺還可以通過仿真等途徑進行算法的驗證,而沒有軟件平臺學(xué)生則無從下手。
首先,ROS正是這樣一個能夠用于高年級本科生實踐教學(xué)的理想的軟件平臺,它幾乎涵蓋了機器人技術(shù)的各個方面,包括底層的硬件驅(qū)動、數(shù)據(jù)獲取、運動控制,上層的自主定位、路徑規(guī)劃、地圖創(chuàng)建、目標(biāo)識別等。其次,ROS采用基于發(fā)布/訂閱的節(jié)點通信方式,將各個功能進行了松耦合的模塊化設(shè)計,因此,可以根據(jù)教學(xué)內(nèi)容對實踐項目進行裁剪。此外,ROS中集成了機器人技術(shù)領(lǐng)域很多最新研究成果的代碼,基于這些代碼學(xué)生很容易站在巨人肩膀上學(xué)習(xí),有利于學(xué)生了解學(xué)科的發(fā)展前沿。最后,ROS社區(qū)提供了針對各個層次的用戶的大量在線教程,這些教程都是通過國際同行嚴(yán)格評審后才發(fā)布的,具有非常高的權(quán)威性,可以用于學(xué)生自學(xué)。
因此,讓本科生盡早了解、學(xué)習(xí)并使用ROS具有非常重要的意義:第一,基于ROS能夠迅速實現(xiàn)一些機器人的簡單應(yīng)用,使學(xué)生對機器人技術(shù)產(chǎn)生濃厚的興趣;第二,從更加系統(tǒng)的角度理解機器人軟件架構(gòu);第三,為研究生期間從事機器人技術(shù)研究打下良好基礎(chǔ);第四,學(xué)習(xí)ROS中的代碼標(biāo)準(zhǔn)和編程風(fēng)格,培養(yǎng)良好的工程素養(yǎng);第五,能夠開闊眼界,了解機器人領(lǐng)域最前沿的研究成果。
事實上,自ROS面世以來,國外很多知名高校,如:斯坦福大學(xué)(美國)、伯明翰大學(xué)(英國)、圣路易斯華盛頓大學(xué)(美國)、薩格勒布大學(xué)(克羅地亞)、南卡羅來納大學(xué)(美國)、東京大學(xué)(日本)、錫耶納大學(xué)(意大利)、萊布尼茲漢諾威大學(xué)(德國)已經(jīng)將ROS引入實踐教學(xué)中[4]。與國際同行相比,國內(nèi)關(guān)于機器人操作系統(tǒng)的教學(xué)剛剛起步,國防科學(xué)技術(shù)大學(xué)已經(jīng)開設(shè)了研究生課程[5],在本科生課程方面還未見相關(guān)報告。
3 筆者近兩年的嘗試
筆者在國防科學(xué)技術(shù)大學(xué)自動化專業(yè)的《自動化系統(tǒng)綜合設(shè)計》課程中對ROS教學(xué)進行了初步嘗試。筆者選用的教學(xué)平臺是Willow Garage公司的TurtleBot2教學(xué)機器人[6],是專門針對本科生和研究生教學(xué)研發(fā)的平臺,結(jié)構(gòu)簡單,外形小巧,采用雙輪差動,搭載紅外傳感器、碰撞檢測傳感器、RGB-D體感攝像頭等傳感器。TurtleBot2自帶了豐富的例程,包括遙控運動控制、行人跟蹤、地圖創(chuàng)建等,并且這些例程都配有詳細(xì)的文檔。
《自動化系統(tǒng)綜合設(shè)計》面向自動化專業(yè)大四上學(xué)期本科生,共36個學(xué)時,其中4個學(xué)時用于理論授課,主要用來介紹ROS的基本概念、文件組織、框架結(jié)構(gòu)、基本命令、常用工具、如何編譯執(zhí)行等。其余32個學(xué)時進行分組實驗,具體的實施方式如以下幾點。
3.1 以項目為導(dǎo)向
課程首先發(fā)布一系列的項目供學(xué)生選擇,這些項目涉及到機器人領(lǐng)域不同的知識單元,僅憑一個學(xué)生在課程規(guī)定的時間內(nèi)難以完成。因此,學(xué)生之間必須組隊,根據(jù)題目的難易程度不同允許2~4個學(xué)生為一組。學(xué)生在這門課需要做的是根據(jù)所選項目分析問題和解決實際問題,包含需求分析、方案設(shè)計、代碼實現(xiàn)、軟件調(diào)試、現(xiàn)場驗收5個階段。當(dāng)然,在此過程中老師會給予必要的指導(dǎo)。
通過這種方式,能夠鍛煉學(xué)生綜合利用所學(xué)知識分析并解決實際問題的能力,培養(yǎng)良好的工程素養(yǎng)。
3.2 采用合作學(xué)習(xí)的教學(xué)模式
如上所述,學(xué)生在課程設(shè)計過程中必須通過分工合作才能完成選定的項目。因此,課程采取合作學(xué)習(xí)(cooperative learning)的教學(xué)模式。這一教學(xué)模式于20世紀(jì)70年代在美國提出,并在80年代中期取得實質(zhì)性進展[7,8],我國在引入后也取得了較好效果[7]。合作學(xué)習(xí)是一種結(jié)構(gòu)化的、系統(tǒng)的學(xué)習(xí)策略,由2~6名能力各異的學(xué)生組成一個小組,以合作和互助的方式從事學(xué)習(xí)活動,共同完成小組學(xué)習(xí)目標(biāo),在促進每個人學(xué)習(xí)積極性的前提下,提高整體成績。因此,合作學(xué)習(xí)非常適合類似于《自動化系統(tǒng)綜合設(shè)計》這種綜合性較強的課程學(xué)習(xí)。
通過引入合作學(xué)習(xí),能夠培養(yǎng)學(xué)生的集體意識和強化團隊合作的能力。
3.3 以多重標(biāo)準(zhǔn)進行評分
在現(xiàn)場驗收時,根據(jù)項目的完成情況,每個小組會有一個分?jǐn)?shù),但這個分?jǐn)?shù)僅是組內(nèi)成員最終分?jǐn)?shù)的基數(shù)。為了避免“合作學(xué)習(xí)”中出現(xiàn)“不合作”和“不作為”現(xiàn)象,對于組內(nèi)成員采取互評和差異性評分?;ピu是指組內(nèi)成員根據(jù)對于項目的貢獻互相打分,差異性評分是指組內(nèi)成員的最終成績并不相同。
通過引入組內(nèi)成員互評和差異性評分機制,實現(xiàn)了組內(nèi)競爭,激發(fā)學(xué)生作為個體的責(zé)任感。
4 收獲和感悟
因為課程本身融學(xué)術(shù)性、趣味性、競爭性于一身,因此,學(xué)生參與的積極性非常高??紤]到是第一次在實踐課程中引入ROS,2014年只發(fā)布了3個項目,結(jié)果30個學(xué)生中一半以上報名,最終只有8個學(xué)生入圍。學(xué)生克服了中文文獻少、Linux操作不熟悉等困難,圓滿完成了項目指定的任務(wù)。與學(xué)生交流的過程中,學(xué)生也認(rèn)為在課上學(xué)到了很多新知識,除了機器人操作系統(tǒng)本身之外,對機器人技術(shù)的理解也更加深刻,尤其是對軟硬件體系結(jié)構(gòu)有了新的認(rèn)識。為了增加受眾面,2015年教學(xué)團隊加大了課程的建設(shè)力度,成立了指導(dǎo)老師組,面向整個自動化專業(yè)開設(shè)了以ROS為軟件平臺的《自動化系統(tǒng)綜合設(shè)計》,并取得了預(yù)期的教學(xué)效果。
在課程的建設(shè)過程中,筆者也發(fā)現(xiàn)了一些問題,這些問題對于國內(nèi)本科教學(xué)可能是共性的,在教學(xué)過程中值得注意:第一,Linux操作系統(tǒng)知識儲備不足,當(dāng)前我國大學(xué)校園內(nèi)絕大部分用戶都使用微軟各個版本的windows操作系統(tǒng),知道并能夠熟練使用linux的學(xué)生寥寥無幾。因此,對窗口操作的依賴性極強,對在終端進行命令行操作心存畏懼;第二,中文資料有限,雖然ROS自誕生以來迅速在全世界推廣,但中文資料依然有限。沒有合適的中文教材,對于本科生來講直接使用外文教材難度較大;第三,絕大部分學(xué)生不能將ROS作為一個工具使用,在學(xué)習(xí)過程中不想放過任何一個細(xì)節(jié),沒有邊學(xué)邊用的習(xí)慣;第四,學(xué)生沒有接觸過Boost編程,而ROS集成了全世界大量一流科研機構(gòu)的科研成果,其代碼中較多的使用了boost編程且高度優(yōu)化;第五,TurtleBot2中的代碼中大量使用了nodelet和roslaunch等工具的高級用法,加大了剖析代碼的難度。
5 對于機器人操作系統(tǒng)教學(xué)的建議
從課程體系層面上考慮開設(shè)《機器人操作系統(tǒng)》相關(guān)實踐課程:在縱向上,開設(shè)必要的先修課程,如《Linux操作系統(tǒng)導(dǎo)論》;在橫向上,建議作為機器人技術(shù)主干課程的配套實踐課,例如:針對《自主移動機器人導(dǎo)論》《機器人視覺》等,精心設(shè)計使用ROS實現(xiàn)理論教學(xué)中的一些案例,吸引學(xué)生的興趣,在汲取理論知識的同時提高學(xué)生的動手能力。
6 結(jié)語
筆者在《自動化系統(tǒng)綜合設(shè)計》實踐課程中引入了ROS,作為軟件平臺支撐機器人技術(shù)這一典型交叉學(xué)科的實踐教學(xué)。在課程建設(shè)中,始終堅持以項目為主導(dǎo),采用合作學(xué)習(xí)的教學(xué)模式,以多重標(biāo)準(zhǔn)進行評分。課程本身融學(xué)術(shù)性、趣味性、競爭性于一身,因此,學(xué)生參與的積極性非常高。經(jīng)過課程的訓(xùn)練,學(xué)生對于機器人技術(shù)有了更深刻、更系統(tǒng)的認(rèn)識,能夠利用ROS進行軟件的構(gòu)建,解決實際的工程問題,取得了預(yù)期的教學(xué)效果。此外,筆者總結(jié)了課程建設(shè)過程中遇到的問題,并針對國內(nèi)開展ROS教學(xué)提出了建議。
參考文獻
[1] 肖軍浩.機器人操作系統(tǒng)淺析(譯)[M].北京:國防工業(yè)出版社,2016.
[2] 張建偉,張立偉,胡穎,等.開源機器人操作系統(tǒng)——ROS[M].北京:科學(xué)出版社,2012.
[3] 徐曉紅,鄭志強,盧惠民.構(gòu)建機器人技術(shù)創(chuàng)新實踐基地的探索與實踐[J].實驗室研究與探索,2015,34(3):185-189.
[4] 國際上各大學(xué)已開設(shè)ROS相關(guān)課程列表[EB/OL].http://wiki.ros.org/Courses,2016-08-24.
[5] 王之元,周云,易曉東,等.機器人操作系統(tǒng)研究型課程建設(shè)[J].計算機教育,2016(1):77-80.
[6] Gerkey B,Conley K.Robot developer kits [ros topics][J].IEEE Robotics & Automation Magazine,2011,18(3):16.
[7] 王坦.論合作學(xué)習(xí)的基本理念[J].教育研究,2002,2(2):
68-72.
[8] 曾琦.合作學(xué)習(xí)的基本要素[J].學(xué)科教育,2000(6):7-12.