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