袁丹鶴 杜玉曉 江鑫 向穎 王煥
特約論文
基于ROS的人形機器人建模與仿真
袁丹鶴 杜玉曉 江鑫 向穎 王煥
(廣東工業大學自動化學院,廣東 廣州 510006)
在人形機器人硬件設計基礎上,構建ROS環境下基于DARwIn-OP2人形機器人外殼的URDF仿真模型;并利用Moveit!和Gazebo對該機器人的左手及左腿進行聯合仿真。仿真結果驗證了該機器人關節的可操作性和運動控制的可行性,為后續復雜運動規劃等問題的研究提供基礎。
人形機器人;ROS;DARwIn-OP2;建模仿真
機器人技術始于上世紀五十年代,德沃爾和英格伯格在1961年聯手制造了第一臺可編程的實用工業機器人Unimate[1]。隨著科學技術的發展,機器人已滲透于人類生活的各個領域。與工業機器人不同,人形機器人因具有類似人的形態,人們對它的接受度更高。人形機器人已成為當前機器人領域的研究熱點[2],其集機械、電子、計算機、材料、傳感器、控制技術、通信、人工智能和人工心理等多門學科于一體,代表了一個國家的科技發展水平[3]。
幾十年來,許多國家陸續推出了不同的人形機器人。同時,隨著機器人技術的快速發展,相應的開發環境越來越多、體系也越來越復雜,機器人面臨軟件通用性不足和復用性差等問題,使其發展面臨嚴峻考驗。為提高機器人研發過程中的軟件復用率,2010年機器人操作系統(robot operating system,ROS)[4]發布。ROS是一個開源機器人操作系統平臺,采取分布式結構框架,點對點設計,具有多語言支持、架構簡單、集成度高及組件化工具包豐富等特點。
本文在硬件設計基礎上,提出一種基于ROS的人形機器人軟件框架,并在ROS環境下搭建人形機器人模型和Gazebo仿真環境,通過Moveit!對Gazebo環境下的人形機器人左手和左腿進行運動仿真。
人形機器人硬件系統主要由上層嵌入式計算系統和底層控制系統構成。上層嵌入式計算系統主要由主控制器PICO-HC101和USB攝像頭組成,負責視覺感知和運動規劃等復雜算法的計算;底層控制系統主要由子控制器STM32舵機控制板、MX-28T舵機和IMU等組成,負責控制舵機和收集IMU等傳感器信息。人形機器人硬件系統框架[5]如圖1所示。

圖1 人形機器人硬件系統框架[5]
主控制器PICO-HC101最高可搭載2 GHz的Intel? Atom? E3845/ Celeron? J1900/N2807處理器和8 GB的SODIMM,以及各種通信接口包括USB 3.0/2.0,STAT,DP/VGA和w/LAN。子控制器STM32舵機控制板主要負責主控制器、舵機和傳感器之間的實時通信,主芯片選用STM32F103RET6(下文簡稱STM32)單片機,并在板上集成了陀螺儀和加速度計傳感器。
主控制器通過USB接口與外部通信,與子控制器的數據收發需要通過STM32設計USB轉串口電路實現;通過STM32設計串口轉TTL及I2C/SPI實現舵機、IMU與子控制器的通信。因此,要實現主控制器對機器人的穩定控制,STM32電路設計尤為重要。STM32電路圖[6]如圖2所示,其與主控制器、舵機和IMU的通信電路圖參見文獻[7]。

圖2 子控制器主芯片STM32F103RET6電路圖[6]
ROS是一個次級機器人操作系統,點對點的設計,可將機器人的功能模塊分割成節點的多個獨立進程,每個節點負責處理一個功能模塊,且各節點分開編寫、編譯和啟動。不同節點之間通過基于發布/訂閱模型的話題(Topic)和基于客服端/服務器模型的服務(Service),實現消息(Message)在節點間的交換。這種松耦合連接體系結構使機器人系統功能實現模塊化設計,各模塊之間具有相對較高的獨立性。
本文設計的基于ROS的人形機器人軟件框架如圖3所示,分為硬件層、操作系統層、中間層和應用層。ROS作為次級操作系統,無法直接在計算機硬件上運行,需要搭載在Linux系統上。為此,在主控制器上移植了Ubuntu 16.04LTS系統,并選取與之對應的Kinetic版本ROS作為人形機器人的軟件平臺。

圖3 基于ROS的人形機器人軟件框架
應用層的行為控制模塊、機器人控制模塊、視覺模塊和運動模塊等是本軟件控制系統的研究重點。將每個功能模塊設計成一個節點,并在ROS Master管理下正常運行。其中,行為控制模塊負責較高級別的規劃和控制任務,整合處理各模塊的話題消息;機器人控制模塊是底層控制部分的核心,負責傳感器與舵機的實時控制,通過STM32舵機控制板和硬件接口組件實現通信,需要設計2個硬件接口,1個用于真實機器人通信,1個用于仿真的虛擬接口模擬通信;視覺模塊是機器人感知周圍環境的重要功能模塊,可以細分為視頻采集、目標檢測跟蹤和目標測距等多個子節點;運動模塊具有步態、頭部控制、動作控制和跌倒檢測4個核心子節點。
基于ROS的人形機器人舵機分布及ID分配如圖4所示,全身共有20個自由度(degree of freedom,DOF),其中頭部2個、左右手各3個、左右腿各6個。

圖4 人形機器人舵機分布及ID分配圖[5]
對人形機器人關節角度范圍限制時,應盡可能考慮正常人類相應關節的活動角度范圍,以保證機器人類似正常人類運動。由文獻[8]可知:正常人類頭部、左手及左腿各關節的活動范圍如表1所示。由于本文人形機器人的關節數量相對人類少得多,因此在動力學和運動學上會有一定的差異。此外,為避免外殼模型碰撞,且機器人可執行一些人類不能執行的動作,機器人關節角度范圍相對于人類有一定調整,如表1所示。

表1 正常人類及人形機器人關節角度范圍
URDF是ROS中使用XML(可擴展標記語言)格式描述機器人模型的文件[9],包括機器人的外觀形狀、尺寸、顏色、物理屬性和關節類型等基本屬性。編寫URDF文件需要遵守的基本編程語法[10]

表2 URDF基本語法
其中,
其中,必須指定
[12],是一款開源平臺人形機器人,其與本文人形機器人具有相似的機械結構,因此使用其官網下載的STL格式外殼文件,用于本文基于ROS的人形機器人模型構建。
首先,使用表2中的基本指令構建不考慮模型尺寸大小信息的URDF基本樹形結構,并使用

圖5 使用check_urdf命令解析的URDF文件
在基本樹形結構機器人模型下,首先,為每個joint添加

圖6 基于ROS的人形機器人URDF模型整體結構圖
Rviz是ROS根據機器人系統可視化需求提供的一款三維可視化工具,可以顯示URDF文件描述的機器人模型、運動狀態、傳感器信息和周圍環境等多種數據。
實現Rviz對機器人的顯示,需要在launch文件中配置參數加載機器人URDF模型;配置joint_state_ publisher節點以發布機器人關節狀態;配置robot_ state_publisher節點以發布坐標變換關系(transform,TF);配置Rviz節點以運行Rviz可視化界面。基于DARwIn-OP2外殼的人形機器人在Rviz中的三維仿真模型如圖7所示。

圖7 人形機器人在Rviz中的三維仿真模型
Gazebo是一個三維物理仿真平臺,因具有強大的物理引擎及高質量的圖形渲染,使其可以提供高保真度的物理模擬,從而得以在復雜環境中準確、有效地模仿機器人。因此,在不具備機器人實體的情況下,通過Gazebo來仿真機器人是一個較好選擇。
搭建Gazebo物理仿真環境,首先,為人形機器人配置Gazebo屬性,分為以下4步:
1)為link添加慣性參數
2)為link添加
3)添加傳動裝置
4)添加Gazebo控制器插件。
其次,配置launch文件,將人形機器人模型加載到Gazebo仿真環境中;最后,直接添加環境模型或使用Building Editor創建仿真環境。人形機器人在Gazebo中的仿真環境如圖8所示。

圖8 Gazebo仿真環境下的人形機器人
Moveit!是一個集成化開發平臺,包含操作控制、三維感知、運動規劃、運動學、控制和導航算法,核心節點是move_group,通過Topic和Action與機器人通信。使用Moveit! Setup Assistant可以方便快速地對人形機器人進行配置。本文對機器人的左手和左腿進行配置的主要步驟如下:
1)加載人形機器人URDF模型;
2)配置自碰撞矩陣;
3)配置虛擬關節;
4)創建左手和左腿規劃組;
5)定義機器人自定義位姿;
6)配置無用關節;
7)生成配置文件。
配置完成后,在生成的功能包內含一個簡單的演示demo,用以測試配置是否成功,運行界面如圖9所示。

圖9 Moveit! demo運行界面
雖然實現了人形機器人的Gazebo環境搭建以及Moveit!的配置,并通過Rviz顯示,但如果想使用Moveit!控制Gazebo中的人形機器人運動,還需完善相關配置。
ros_control是ROS提供用于機器人控制的中間件,包含不同類型的控制器和接口,用于虛擬接口的配置。機器人通過Moveit!完成左手或左腿的運動規劃后,輸出一個含有規劃軌跡的action,再通過虛擬接口中配置的控制器將action中的信息轉化成仿真機器人各關節需要的位置信息,用于控制機器人關節組在Gazebo環境中的運動,具體配置內容如下:
Gazebo方面,首先,創建控制器配置文件以配置joint_position_controller控制器;其次,創建控制器launch文件,在內加載控制器配置參數及控制器,并運行robot_state_publisher節點;最后,創建頂層launch文件,包含上述控制器launch文件,并啟動Gazebo仿真環境。
Moveit!方面,首先,創建軌跡控制配置文件以配置Joint Trajectory Controller控制器,并通過創建launch文件加載軌跡控制器配置參數;其次,修改Moveit!控制器配置文件,并在其中增加控制器的命名空間;然后,修改Moveit!功能包中的XXX_moveit_ controller_ manager.launch.xml文件,加載修改后的控制器配置文件;隨后,配置關節狀態控制器配置文件,并創建相關launch文件加載關節狀態控制器配置參數;接著,創建規劃執行的launch文件,包含Moveit!功能包中的move_group.launch和moveit_rviz.launch文件;最后,創建頂層launch文件,啟動機器人Gazebo仿真環境,包含上述所有控制器頂層launch文件和規劃執行launch文件以啟動Moveit!。
Rviz和Gazebo啟動后,在MotionPlanning中分別對人形機器人的左手及左腿進行規劃并執行,運行效果如圖10和圖11所示。由圖10、圖11可以看到:Gazebo中人形機器人開始運動,同時在Rviz中也會同步顯示。

圖10 機器人左手Moveit!+Gazebo仿真效果
本文在人形機器人硬件設計基礎上,介紹了ROS平臺中使用URDF文件構建機器人模型的方法,實現了基于DARwIn-OP2人形機器人外殼的機器人三維模型構建,并搭建了相關物理仿真環境。通過Moveit!和Gazebo進行相關控制器的參數配置,對人形機器人的左手和左腿進行了聯合仿真。仿真結果表明:本文設計的基于ROS的人形機器人可進行有效運動,驗證了該模型的合理性,并為人形機器人在ROS環境中進行復雜的運動規劃及控制打下了基礎,同時對后期人形機器人的控制提供了可行性驗證。
[1] 趙泊淥,談英姿.機器人控制軟件的發展與研究現狀[J].工業控制計算機, 2014,27(4):108-110.
[2] 王南.人形機器人運動控制研究[D].北京:華北電力大學, 2016.
[3] 解侖,王志良,李敏嘉.雙足步行機器人[M].北京:機械工業出版社, 2017.
[4] QUIGLEY M, GERKEY B, CONLEY K, et al. ROS: an open-source robot operating system[C]. ICRA Workshop on Open Source Software, 2009.
[5] 李步恒.基于雙控制器與ROS平臺的人形機器人系統設計[D].廣州:廣東工業大學,2018.
[6] 王敬宇.人形機器人控制器設計及步態控制算法研究[D].廣州:廣東工業大學,2019.
[7] 陳梓瀚,杜玉曉,李步恒,等.基于雙控制器的人形機器人系統[J].自動化與信息工程,2018,39(5):33-37.
[8] HIRUKAW H, KAJITA S, KANEHIRO F, et al. The human-size humanoid robot that can walk, lie down and get up[J]. International Journal of Robotics Research, 2005, 24(9):755-769.
[9] 鹿霖,謝樹新.ROS環境下的機器人仿真模型構建方法研究[J].現代電子技術,2018,41(7):102-105,110.
[10] 于程隆,李志奇,樊春光,等.基于ROS的機器人宇航員模型構建與仿真驗證[J].機械與電子,2018,36(3):61-64,68.
[11] 曹正萬,平雪良,陳盛龍,等.基于ROS的機器人模型構建方法研究[J].組合機床與自動化加工技術,2015(8):51-54.
[12] HA I , TAMURA Y , ASAMA H . Development of open platform humanoid robot DARwIn-OP[J]. Advanced Robotics, 2013, 27(3):223-232.
Model Construction and Simulation of Humanoid Robot Based on ROS
Yuan Danhe Du Yuxiao Jiang Xin Xiang Ying Wang Huan
(School of Automation, Guangdong University of Technology, Guangzhou 510006, China)
Based on the hardware design of humanoid robot, the URDF simulation model based on DARwIn-OP2 humanoid robot shell under ROS environment is constructed, and the left hand and left leg of the robot are jointly simulated by Moveit! and Gazebo. The simulation results verify the operability of the robot joint and the feasibility of motion control, and provide the basis for the follow-up study of complex motion planning and other issues.
humanoid robot; ROS; DARwIn-OP2; modeling and simulation
TP242.6
A
1674-2605(2020)06-0002-07
10.3969/j.issn.1674-2605.2020.06.002
袁丹鶴,男,1993年生,碩士研究生,主要研究方向:人形機器人、機器視覺。
杜玉曉(通信作者),男,1973年生,副教授,碩士生導師,主要研究方向:醫療器械設備及腦機接口(BCI)技術、數字圖像處理、自動化裝備與集成。E-mail: yuxiaodu@126.com