文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.181058
中文引用格式: 任工昌,吳夢珂,朱愛斌,等. 帶單節拖車的機器人控制系統的設計與實現[J].電子技術應用,2018,44(11):41-44,49.
英文引用格式: Ren Gongchang,Wu Mengke,Zhu Aibin,et al. Design and implementation of robot control system with single trailer[J]. Application of Electronic Technique,2018,44(11):41-44,49.
0 引言
室內服務型移動機器人作為機器人中一個重要的分支,使人們的生活變得更加便捷。目前,已有一些機器人應用到現實生活中,例如美國TRC公司研制的Helpmate醫用機器人、IROBOT公司的掃地機器人Roomba等[1]。
當前,室內服務型機器人多采用兩輪差速驅動,其主要原因是控制系統較為成熟,但是對于帶有配送功能的機器人來說,帶拖車的結構能夠在驅動電機扭矩不變的情況下,運輸更多的貨物,并且轉向更加靈活。帶拖車的移動機器人主要由一節牽引車頭與若干節拖車組成,牽引車主要完成驅動與轉向作用,拖車隨著牽引車進行運動。這類自主運行的配送機器人可用于工廠車間的材料運輸,醫院內部的藥品運輸,大型碼頭的貨物運輸等。
單車體移動機器人的路徑規劃方法通常采用姿態空間法,即以機器人外接圓半徑擴張障礙物,同時將單車體機器人縮為一個控制點,于是路徑規劃可轉化為在擴張后的姿態空間中一個點的規劃路徑[2]。對于帶拖車的移動機器人,它的外接圓時刻是變化的,采用包含所有車體的外接圓來拓展障礙物和建立環境模型的方法往往人為地減少了運行空間,使得系統找不到最優或可行路徑[3]。
本設計中將牽引車部分設計在拖車前端的車底部,因此該機器人在運行過程中仍可看成是一個單車體。針對該結構建立運動學模型,以搭載著ROS的MiniPC作為上位機,接收底層編碼器與激光雷達反饋的信息,完成自主定位與路徑規劃的相關計算,并向下位機發送機器人控制點的速度與角速度信息。以STM32F103作為下位機,接收上位機傳來的運動信息并最終換算成驅動輪電機的轉速,驅動底層電機轉動,完成機器人控制系統的搭建,并在機器人實體上進行實驗。
1 帶單節拖車的配送機器人運動學模型建立
1.1 機器人結構介紹
如圖1、圖2所示,整個機器人結構可以分為兩大部分,一部分為牽引車車頭轉向部分,另一部分為拖車部分。牽引車轉向部分通過轉盤與拖車部分連接,牽引車部分的兩個輪為驅動輪,驅動電機尾部安裝有編碼器,可以得到驅動電機的轉速信息;牽引車部分與拖車部分安裝有陀螺儀,可以測得車頭與拖車部分的相對轉動角度信息。拖車前部上方安裝有激光雷達,可以為上位機反饋周邊環境信息。
1.2 運動學模型建立
將以上機器人結構進行簡化,得到如圖3所示的運動簡圖。其中,k0點為機器人車頭牽引車部分的旋轉中心,k1點為機器人拖車部分后輪中心部位。V0、W0為k0點運動的速度與角速度,V1、W1為k1點運動的速度與角速度,L為k0到k1長度,α為車頭驅動輪與拖車車軸的夾角,X-Y為k1點的坐標系,θ是k1點運動方向與X軸的夾角。假設:整個系統是在平面上運動;車輪是無滑動的;車體關于其縱向軸線對稱;車輪與地面是點接觸,且是純滾動運動;車體是剛體;用于牽引車車頭與車體連接的轉盤是無摩擦的。
對于自主運動的帶拖車配送機器人,選取拖車部分后軸中心為控制點,即k1點。上位機通過控制k1點的速度與角速度來實現機器人的自主運行。
V1、W1與V0、W0的關系如下:
2 ROS簡介
在2007年,斯坦福大學與機器人技術公司Willow Garage進行了一次項目合作,ROS系統便誕生于這次的項目合作[4],由于其分布式的控制機制使得機器人系統的開發大大簡化,在這之后ROS便被機器人領域的眾多研究人員所熟知[5]。
ROS運行時是由多個松耦合的進程組成的,這些進程被稱之為節點(Node),每個節點獨立運行,又與其他相關節點進行通信。在實際使用時,這種模塊化的設計可以大大提高開發效率[6]。
ROS支持多種開發語言,不同的節點可以采用不同的語言進行編寫。由于各個節點模塊的獨立性與開源性,使得所有ROS使用者都可以將自己編寫的功能包進行共享[7]。
3 控制系統硬件設計
從該機器人工作角度考慮,控制系統設計整體分為兩部分:上位機設計與下位機設計。上位機由PC主機與車載MiniPC機組成,兩者之間通過無線局域網進行通信。下位機由車體、車輪、帶編碼器的直流減速電機、電機驅動器、STM32F103開發板、電源、陀螺儀以及激光雷達組成。STM32F103RCT6作為下位機的主要控制單元,其作用是將上位機發出的控制指令轉換成各個電機對應的速度,并將其輸出給電機驅動器,實現機器人不同形式的運動;與此同時,STM32將編碼器反饋的速度信號進行計算和轉換,得到對應車輪的速度信息并將這些信息反饋給上位機。在拖車部分和牽引車車頭部分分別安裝有一個陀螺儀,陀螺儀的型號為TransducerM,通過計算兩個陀螺儀的偏航角之差,可得到牽引車相對于拖車部分的旋轉角度,即圖3中的角α。激光雷達采用的是HOKUYO公司的URG-04LX-UG01二維激光雷達,用于反饋周圍環境信息給上位機。
上位機的車載MiniPC以拖車尾部車軸中點為控制點,向下位機發送移動指令。本設計中上位機向下位機發送的是該點的速度與角速度信息。同時接受下位機反饋的里程信息。車載MiniPC采用的是占美微型電腦,電源采用12 V-5 A適配器,具有體積小、價格低、性能高、接口豐富等特點。控制系統硬件框圖如圖4所示。
4 控制系統軟件設計
控制系統軟件設計在移動機器人的整體設計中占有絕對的核心地位,這直接關系到機器人運行的魯棒性與穩定性。本設計中的控制系統軟件是基于ROS平臺。在車載MiniPC中裝有ROS系統,車載MiniPC與下位機通過串口進行通信,主控電腦通過無線局域網采用ssh遠程登錄方式對車載MiniPC進行控制。下位機通過解算由上位機發送的速度與角速度等信息最終得到驅動電機的PWM波值,從而實現對電機的控制。
4.1 下位機軟件設計
下位機的主要作用是接收上位機傳來的運動信息,并解算成最終的驅動信號,與此同時,向上位機反饋里程計信息,供上位機做位姿定位使用。圖5為下位機的工作流程圖。
下位機上電后首先對整個系統進行初始化,這里由于整個配送機器人是在室內環境下使用的,因此陀螺儀初始化時就失去了使用GPS的校準功能,但是初始化完成后,陀螺儀偏航角的相對精度還是可以保證的。
當下位機接收到上位機傳來的控制點的角速度W1與速度V1信息時,通過式(3)將其解算成牽引車部分運動的速度V0與航向角度α。為了減少下位機運算量和防止角速度的突變,直接給定車頭部分一個恒定的角速度量W0=0.4 rad/s,當V1=0時,W0=0。W0的正負由W1決定,當W1為正時,W0=0.4 rad/s;當W1為負時,W0=-0.4 rad/s。牽引車與拖車部分的陀螺儀通過串口反饋各自的偏航角,在系統初始化之后,以當前偏航角值為初始值,計算各自的變化量,再將兩者相減,即可得到牽引車與拖車部分的相對轉角α*。再將此轉角與解算后的目標α做對比,直到α*=α時,車頭部分的W0=0,只留下一個前進方向的速度V0,在這里為了防止牽引車在目標α角周圍來回抖動,所以將目標α角范圍擴大±0.2。
接下來將牽引車部分的速度與角速度進行換算得到最終驅動電機的PWM波值。與此同時,下位機還將讀取到的編碼器信息通過式(1)換算成控制點的速度與角速度信息,再由串口回傳至上位機做處理。
4.2 上位機軟件的設計
上位機的主要作用是對下位機反饋的里程計信息以及激光雷達捕捉到的周圍環境的信息進行計算,得到當前整車的位姿信息,并且對下一步的運動路線進行規劃,換算成速度與角速度信息,發送給下位機。
在建好地圖的情況下,ROS導航主要需要使用到兩個程序包,一個是move_base,另一個是amcl。move_base包可以根據各個傳感器反饋的信息進行路徑規劃,使機器人移動到指定位置,amcl包主要是根據已有的地圖進行自主定位與導航[8]。圖6為導航包的整體格局。
move_base包主要提供了對于自主導航的相關參數配置、系統與各種傳感器的接口等,主要包括兩個部分。第一部分為全局路徑規劃(global planner):使用者給定目標位置后,系統根據給定的目標位置進行整體路徑規劃;第二部分為本地實施規劃(local planner):在導航過程中,系統根據自身傳感器所反饋的周圍環境信息,對附近的障礙物進行避障路線規劃。
除此之外ROS還提供了一種可視化工具——rviz。使用這種插件機制可以擴展豐富的功能,便于進行二次開發[9]。在這里,可以通過設置footprint的大小來規定機器人的最大邊界,由于該移動機器人的牽引車驅動部分處于拖車車體前端的下方,因此拖車部分的最大邊界即為整車的最大邊界。通過rviz,還可以實時觀測到機器人在地圖中的位置、激光雷達反饋的信息、每一時刻的速度方向以及上位機對導航路徑的規劃情況等。
5 配送機器人實驗與分析
帶單節拖車的配送機器人樣機如圖7所示。在實驗開始之前,需要將車載MiniPC與遠程控制PC都連接上同一個WiFi,在遠程控制PC上打開一個終端,通過ssh命令登錄上車載MiniPC,啟動控制機器人的所有相關節點。在遠程控制PC端打開rviz界面,輸入機器人起始點信息,給定目標點,機器人即可開始自主導航。
圖8是機器人在直線走廊的導航情況,圖9是機器人在直線走廊導航的rviz結果,圖10是機器人在“T”字形走廊拐角處的導航情況,圖11是機器人在“T”字形走廊拐角處的導航的rviz結果。
由圖可見,該機器人在直線走廊中可以順利地避開遇到的障礙物,在“T”字形走廊拐角處也可以兼顧到拖車部分的轉向情況,實現了帶單節拖車的自主導航。
6 結論
本文研究了帶單節拖車的配送機器人控制系統,并在物理樣機上實現了相關的功能。針對帶單節拖車的配送機器人,提出了一種采用單車體運動學模型控制帶單節拖車的配送機器人的控制方案,建立了運動學模型,以及下位機接收到上位機信息之后的決策方案,從而有效地解決了帶單節拖車的室內配送機器人遇到障礙物的避障問題與在“T”字形走廊的轉向問題。
參考文獻
[1] 羅振華.醫院服務機器人室內導航算法與自主充電系統研究[D].哈爾濱:哈爾濱工業大學,2016.
[2] 劉作軍,孔鑫,楊鵬,等.帶拖車移動機器人的運動學分析與仿真[C].2006中國控制與決策學術年會論文集,2006.
[3] 李宏超,黃亞樓,夏毅,等.帶拖車的移動機器人包絡路徑分析與描述[J].機器人,2001(4):334-337.
[4] QUIGLEY M,BERGER E,NG A Y.Stair:hardware and software architecture[C].AAAI Robotics Workshop,2007.
[5] QUIGLEY M,GERKEY B P,CONLEY K,et al.ROS:an open-source robot operating system[C].Proceeding of IEEE ICRA Workshop on Open Source Robotics,2009.
[6] 路飛,田國會,劉國良,等.智能空間下基于WiFi指紋定位與粒子濾波的服務機器人復合全局定位系統設計[J].機器人,2016(2):178-184.
[7] 張建偉,張立偉,胡穎.開源機器人操作系統-ROS[M].北京:科學出版社,2012.
[8] 白亮亮,平雪良,陳盛龍,等.分布式移動機器人控制系統設計與實現[J].機械設計與制造,2015(10):180-183.
[9] 劉維惠,陳殿生,張立志.人機協作下的機械臂軌跡生成與修正方法[J].機器人,2016,38(4):504-512.
作者信息:
任工昌1,吳夢珂1,朱愛斌2,劉 朋1,宋紀元2
(1.陜西科技大學 機電工程學院,陜西 西安710021;2.陜西省智能機器人重點實驗室,陜西 西安710049)