大連理工大學控制科學與工程學院 郭欣桐廣西大學機械工程學院物流工程實驗室 戰 藝
基于ROS的服務型機器人新型控制方式
大連理工大學控制科學與工程學院 郭欣桐
廣西大學機械工程學院物流工程實驗室 戰 藝
【摘要】傳統的服務機器人控制方式通常采用鍵盤等操控,再通過視頻監控進行反饋的控制方式,該方式具有操作繁瑣、高延遲、缺乏臨場感等缺點。為了改善這些缺點,提出一種基于ROS機器人操作系統的服務機器人新型控制方式,以ROS為基礎,在語音控制的基礎上通過深度攝像頭實現跟隨物體。實驗結果表明,該種控制方式可以高效完成指定任務,具有操作簡單、延遲低、臨場感強等優點,改善了傳統機器人操控繁瑣的缺點,為服務行業、物流領域等諸多方向提供了一種新型的解決方案,提高了人的工作效率。
【關鍵詞】機器人操作系統;服務機器人;語音控制;機器人視覺;機器人跟隨
隨著服務機器人的發展,傳統按鍵、搖桿等遠程操控方式由于其操控繁瑣等因素漸漸淡出人們的視線,基于視覺跟隨、語音控制、自主導航等新型控制方式的機器人由于具有增強人機交互、提高參與感等優點越來越受到人們的關注。然而,隨著機器人技術的發展,為不同機器人編寫軟件這一工作也變得越來越繁重。不同的機器人設計方案不同,底層接口也大不相同,編寫的軟件也不同。然而,其基本算法是一致的,這就導致了機器人平臺繁多,大量代碼冗余,通用性差等缺點。為了改善這些缺點,機器人操作系統ROS(robot operating system)應運而生。ROS很好的解決了軟件開發過程中代碼冗余、移植性差等問題。ROS兼容C++、Python等主流編程語言,可以跨平臺,含有rviz、gazebo、tf等豐富的軟件資源,現已成為機器人開發領域的首選工具。
本文在基于ROS平臺的基礎上,在語音控制的基礎上,設計了視覺跟隨的服務型機器人新型控制方式,改善了傳統機器人操作繁瑣等缺點,為服務行業、物流領域的服務機器人控制提供了基礎。
ROS系統是起源于2007年斯坦福大學人工智能實驗室的項目與機器人技術公司Willow Garage公司的個人機器人項目PRP(personal robots program)之間的合作。2010年Willow Garage公司發布了開源機器人操作系統ROS,很快在機器人研究領域展開了學習和使用ROS的熱潮。
ROS是開源機器人操作系統,它是一種分布式模塊化的開源軟件框架[1],其目的在于提高軟件代碼的復用率,提供機器人開發框架。主要特點有多語言支持、免費開源等。ROS總體框架如圖1所示。

圖1 ROS總體框架
計算圖級主要是體現進程與系統之間的通訊。主要包括節點、節點管理器、參數服務器、消息、服務、主題和消息記錄包幾部分。節點是利用ROS與其他節點通訊的可執行程序,節點之間通過消息進行通訊。消息是一種ROS數據類型,以訂閱或發布主題的方式進行傳遞。ROS主機提供了主題發布服務,其結構如圖2所示[2]。節點1將數據發送給節點2,在ROS主機上注冊了對應的主題和服務,節點2通過訂閱對應的主題來接受消息,進而與節點1進行通信。ROS框架允許多節點發布或訂閱同一主題,因而只需知道主題是什么,而不需要知道發布該主題的節點的名稱。
文件系統級主要包括功能包(package)與功能包集(stack)。功能包是ROS中軟件組織的基本形式,軟件包可包含程序庫、可執行文件、腳本等。功能包集(stack)是軟件包的集合,提供完整的功能。清單(manifest)是對軟件包信息的描述,用于定義軟件包之間的依賴關系、開源許可證協議等。
社區級主要指ROS資源,能通過獨立的網絡社區分享軟件與資源[3]。

圖2 ROS計算圖級結構
2.1 實驗平臺
Turtlebot服務機器人平臺是基于ROS框架下的移動機器人,本實驗采用韓國Yujin公司的Kobuki底盤,并配有Asus Xtion pro live深度攝像頭,機器人實物如圖3所示。

圖3 實驗平臺實物圖
2.2 服務機器人新型控制方式簡述
服務機器人新型控制方式主要結構如圖4所示。語音控制在開源項目CMU Pocket Sphinx的基礎上進行二次開發,其通過識別出用戶的語音命令(如forward、halt等)進而發出控制命令控制機器人移動。在語音控制的基礎上,采用跟隨軟件包為主、語音控制為輔的方式進行控制,跟隨軟件包使用Camshift算法,通過尋找前方物體并與之保持一定的距離,進而實現跟隨。

圖4 新型機器人控制方式結構圖
3.1 機器人跟隨算法及軟件包
ROS機器人跟隨通過Asus Xtion pro live深度攝像頭求出前方物體的質心坐標,計算出機器人當前與其距離與角度,進而計算出速度與角速度來跟隨前方物。
跟隨軟件包采用Camshift算法[4],設(x,y)為搜索窗口中的像素坐標,I(x,y)是投影圖中(x,y)的像素值,定義搜索窗口的零階矩M00、一階矩M10、M01如下:

可以求得搜索窗口的質心坐標:

然后根據M00調整窗口大小,并將窗口中心移到質心,若移動距離大于預設閾值,則重新計算質心。直到窗口中心與質心間距離小于預設閾值,或者循環次數到某一設定值,認為滿足收斂條件,進行下一幀計算。


令:

則下一幀搜索窗口的長度l1、寬度l2和角度分別為:

由于運動物體在視頻圖像中的大小、位置可能會發生變化,Camshift算法會根據上一幀圖像跟蹤結果得到的新窗口可能與目標窗口不聯通,導致跟蹤丟失。初始選擇窗口得到的目標零階矩,若后續跟蹤得到的,則認定本次跟蹤目標丟失。當目標丟失時對其運動進行估計,考慮到運行效率,假設目標在很短的時間內是勻速運動的,令分別為前一次目標在水平、垂直方向上的位移,故可認為與本次的位移一致,即將其作為本次的預測位移對其窗口進行平移,若目標有一部分落在窗口內,則仍可使用Camshift算法搜索,進而提高了Camshift算法的穩定性,利用Camshift算法跟蹤水杯的仿真實驗如圖5所示。
在Camshift算法的基礎上,編寫機器人跟隨軟件包,其簡要流程圖如圖6所示。軟件包首先對機器人相關移動參數進行設定,如速度上下限、角速度上下限等,然后獲取攝像頭的點云信息,并發布空消息給機器人底盤使其停止。如果存在點云信息,則計算前方目標的質心坐標;若不存在點云信息,則返回繼續等待。計算出質心坐標之后計算機器人的線速度角速度等參數,并發布主題,機器人控制節點通過訂閱該主題,將控制信息發布給機器人控制其移動。

圖5 利用Camshift算法跟蹤水杯的仿真圖

圖6 跟隨軟件包簡要流程圖
3.2 機器人語音控制軟件包
該軟件包在CMU Pocket Sphinx開源項目的基礎上進行二次開發,可以將識別出的語音轉化為文字信息,與命令庫中的命令進行匹配,進而發布命令控制機器人執行相關命令,語音控制可以與機器人跟隨結合起來使用。該軟件包的核心節點recognizer.py通過麥克風采集語音消息進行識別,進而生成文本信息,轉化為控制命令進行控制。本系統添加了forward(向前)、halt(停止)、turn left(左轉)、turn right(右轉)、rotate left(左轉90°)、rotate right(右轉90°)、slower(減速)、faster(加速)、follow me(跟隨我)共九個語音指令。識別出的文本通過主題/recognizer/output發布,使用其它節點訂閱該主題即可獲得文本信息,并對機器人發出控制指令。語音控制的簡要節點圖如圖7所示。

圖7 語音控制的簡要節點圖
本文提出了一種基于ROS的服務機器人的人機交互方式。機器人跟隨通過深度攝像頭采集周圍環境的信息,計算出其質心坐標進而實現跟隨。語音控制通過識別用戶語音進而實現控制。這種新型控制方式為服務行業、物流領域等諸多方向提供了一種新型的解決方案,改善了傳統機器人操作繁瑣、缺乏臨場感等缺點。節省了人力物力,提高了人的工作效率。
參考文獻
[1]ZUO Xuanchen,HAN Liangliang,ZHUANG Jie,et al.Design of human-robot interaction system for space robot using robot operating syatem[J].Computer Engineering & Design,2015,12∶3370-3374(in Chinese)[左軒塵,韓亮亮,莊杰,石琪琦,黃煒.基于ROS的空間機器人人機交互系統設計[J].計算機工程與設計,2015,12∶3370-3374.
[2]ROS Summarize[EB/OL][2016-2-19].http∶//www.guyuehome. com/229,2016(in Chinese).[ROS探索總結][EB/OL][2016-2-19]. http∶//www.guyuehome.com/229,2016].
[3]QIAN Sheng.Study on obstacle avoidance of mobile robot Based On Multi sensors[D].University of the South,2014(in Chinese)[錢勝.基于多傳感器的智能小車避障研究[D].江南大學,2014].
[4]XUE Cuihong,QI Liping,YANG Peng,et al.A real-time object recognition and tracking system for home service robots[J].Journal of HeBei University of Technology,2015,06∶1-6+32(in Chinese)[薛翠紅,齊立萍,楊鵬,賈超.一種服務機器人的實時物體識別與跟蹤系統[J].河北工業大學學報,2015,06∶1-6+32].
A new control mode of service robot using robot operating system
GUO Xin-tong1zhanyi2
(1.School of control science and Engineering,Dalian University of Technology Dalian 116024,China;2.Logistics Engineering Laboratory,School of mechanical engineering,Guangxi University,Nanning,Guangxi 530004)
Abstract:The control methods of traditional service robot usually by using keyboard or other controllers,and feedback to people through video surveillance,which has the disadvantages of complex operation,high-delay,lack of presence and so on.In order to improve the disadvantages,a new control method for the service robot based on the robot operating system was designed.This system on the basis of the voice control and following the object through the depth camera.The experimental results indicate that this control mode can finish assigned tasks efficiency.It has the advantages of simple operation,low latency and telepresence.It improves the traditional robot the shortcoming of tedious manipulation and provides a modern solution for service industry,logistics,etc.,and improving people's working efficiency.
Key words:robot operating system;service robot;speech recognition;robot vision;robot follow