羅捷
【摘 要】論文介紹了一種能夠使用龍鼓演奏的鼓樂機器人的設(shè)計與實現(xiàn)。該機器人為了實現(xiàn)較好的自動演奏效果,實現(xiàn)手勢識別遙控選曲、手勢控制即興演奏等設(shè)計要求,機器人使用了ROS(機器人操作系統(tǒng))實現(xiàn)了多種異質(zhì)硬件的整合。經(jīng)過測試,機器人運行穩(wěn)定,自動演奏節(jié)奏準確,即興演奏響應(yīng)迅速。
【關(guān)鍵詞】機器人;ROS;手勢識別;龍鼓;樹莓派;愛迪生平臺
中圖分類號: TP242 文獻標識碼: A 文章編號: 2095-2457(2017)17-0091-001
The Design and Implementation of a Dragon Drum Robot Based ROS
LUO Jie
(Guangxi technological college of machinery and electricity,Nanning Guangxi 530023,China)
【Abstract】This paper introduces the design and implementation of a robot can be used to play the Dragon drum. In order to realize the automatic playing,gesture recognition,gesture control remote improvisation play music.The robot use ROS(Robot Operating System) to achieve the integration of heterogeneous hardware.After testing,the robot runs stably,automatically plays accurately, when improvisation play,the robot responds quickly.
【Key words】Robot;ROS;Gesture recognition;Dragon drum;Raspberry pi;Intel Edison
0 引言
隨著計算機技術(shù)、自動控制技術(shù)的不斷發(fā)展,物聯(lián)網(wǎng)技術(shù)、機器人技術(shù)的逐漸興起,機器人的應(yīng)用已經(jīng)不局限于工業(yè)領(lǐng)域,而是逐漸進入了人們生活的方方面面。如送餐機器人、掃地機器人等。
音樂機器人屬于表演機器人的一種。通常,一種音樂機器人有兩種不同的設(shè)計重點:一種使用音樂播放設(shè)備,注重與人的互動;一種直接演奏真實的樂器,注重真實的音效。此類機器人根據(jù)樂器的不同,主要有弦樂機器人、管樂機器人、鍵盤類機器人和打擊樂機器人。其中打擊樂機器人往往由多條機械臂組成,演奏時動作敏捷,節(jié)奏感極強,視覺和聽覺效果較好。樂器演奏機器人以其真實的演奏音效和機械動作帶來的美感,越來越受到人們的青睞。
手勢語言作為人類最早使用至今,且仍被廣泛使用的一種交際工具。隨著人工智能、機器視覺等領(lǐng)域的迅速發(fā)展,手勢識別也理所當然成為了新一代的人機交互方式。
ROS(Robot Operating System)“機器人操作系統(tǒng)”是一種機器人軟件框架,它能夠在異質(zhì)的計算機集群提供類似操作系統(tǒng)的功能。在機器人中,可以實現(xiàn)不同平臺間的信息互聯(lián)。利用其豐富的開源軟件包的支持,可以迅速的整合多種不同的硬件設(shè)備,組成機器人。
本文嘗試基于ROS框架,整合樹莓派、普通PC、單片機、手勢傳感器、舵機等異質(zhì)硬件,設(shè)計和實現(xiàn)了一種鼓樂機器人。機器人使用6個2自由度機械臂同時使用3個龍鼓實現(xiàn)鼓樂的演奏。使用手勢識別的方式實現(xiàn)人對機器人的控制。
1 總體方案和功能分析
本文的鼓樂演奏機器人設(shè)計,有三個主要組成部分:機械結(jié)構(gòu)設(shè)計、系統(tǒng)硬件設(shè)計和軟件設(shè)計。機械結(jié)構(gòu)設(shè)計主要針對支架和機械臂的執(zhí)行機構(gòu)設(shè)計;軟硬件部分用于實現(xiàn)機械臂控制、網(wǎng)絡(luò)連接和手勢識別等功能。
在樂器演奏機器人的設(shè)計中,由于機器人所使用樂器的特殊性,往往不能直接使用樂譜,而需要根據(jù)將對樂譜進行改編,轉(zhuǎn)換成控制指令,保存為文本。演奏時,由上位機將選定曲目的控制指令組發(fā)給下位機,再由下位機控制機械臂完成演奏。
本鼓樂機器人的結(jié)構(gòu)如下圖所示:
2 機械結(jié)構(gòu)設(shè)計
本鼓樂機器為了追求更好的龍鼓演奏效果,使用3個龍鼓作為演奏樂器,每個龍鼓由2個個配有鼓槌機械臂錘擊,整個機器人共6個機械臂。因為在龍鼓演奏中,往往通過敲擊鼓的不同位置,實現(xiàn)不同的聲音效果,因此每個機械臂設(shè)置了兩個自由度,可以靈活的選擇敲擊龍鼓的不同部位,每個自由度由大扭力舵機驅(qū)動。六條機械臂通過三腳架支撐,手臂根部均統(tǒng)一連接到支架頂端的圓形底座上,每個機械臂的根部按間隔60°等間距安裝,使用時通常以2個手臂為一組進行演奏。
3 系統(tǒng)硬件設(shè)計
根據(jù)本機器人的需求,由于人類的聽覺器官對于音樂的節(jié)奏時差非常敏感,因此演奏音樂的(下轉(zhuǎn)第69頁)(上接第91頁)時間控制較為嚴格。本機器人在舵機控制部分使用STM32單片機,以保證控制的實時性。單片機由于其性能、軟件支持等問題,對于手勢識別等功能難以直接支持。因此本機器人由的單片機作為下位機,使用串口與樹莓派相連。樹莓派作為上位機,負責實現(xiàn)較為復雜的手勢交互、Wi-Fi等功能。手勢交互控制器使用愛迪生平臺和手勢傳感器(leap motion)組成。
4 軟件設(shè)計
按照本機器人的硬件設(shè)計,會發(fā)現(xiàn)機器人的硬件種類比較多,需要整合多種異質(zhì)硬件。ROS十分適合用于整合不同硬件。由于樹莓派和愛迪生平臺都是Linux系統(tǒng),因此都可以安裝ROS。ROS系統(tǒng)通過節(jié)點(Node)實現(xiàn)各種功能,通過主題(Topic)和消息(Message)實現(xiàn)節(jié)點間的通訊。只要進行簡單的設(shè)置,即可以實現(xiàn)網(wǎng)絡(luò)通訊,通訊的細節(jié)被ROS封裝。ROS節(jié)點圖如下:
其中sender節(jié)點直接由ROS提供,它使用基于leap motion傳感器的官方SDK,雖然進行了簡化,智能提供一個手掌的數(shù)據(jù),但對于本機器已經(jīng)足夠。gesture節(jié)點通過訂閱話題,獲得sender節(jié)點發(fā)出的手指關(guān)節(jié)坐標和手掌法線坐標,以此來判斷手勢。目前可以判斷的手勢有:止(拇指橫指,其余四指收回)、選曲(伸出食指表示第一曲,如此類推)、手指跟隨演奏(食指中指伸直并攏)等。
5 小結(jié)
本文闡述了鼓樂機器人的總體方案和功能、機械結(jié)構(gòu)設(shè)計、硬件設(shè)計和軟件設(shè)計。該設(shè)計基于ROS框架完成,具有開發(fā)周期較短、整合差異性硬件能力強等特點。該機器人使用真實的龍鼓進行鼓樂演奏,音效真實。使用了手勢識別作為接收用戶的控制指令,并可以遠程控制,實現(xiàn)自動演奏和即興演奏。經(jīng)過測試,該鼓樂機器人演奏效果真實,手勢識別操作較為靈敏,滿足了設(shè)計要求。
【參考文獻】
[1]付曉東.音樂機器人的發(fā)展歷史與技術(shù)成果[J].演藝科技:2015,5:12-17.
[2]韓新斌,王晨升.一種打擊琴鍵音樂機器人的設(shè)計與實現(xiàn)[J].軟件:2013,34(1):1-3.
[3]張亞東,葛鎖良.基于單片機的多功能智能機器人設(shè)計[J].通信技術(shù):2012,45(1):96-98.
[4]郭劍鷹,呂恬升.國外音樂機器人研究[J].機電一體化,2002,3:14-17.
[5]黃衛(wèi)華.基于樹莓派的葫蘆絲演奏機器人設(shè)計與開發(fā)D].武漢:武漢科技大學,2016.endprint