![室內(nèi)巡視機(jī)器人設(shè)計(jì)和仿真與實(shí)現(xiàn)本科畢業(yè)設(shè)計(jì)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/5/2aca3b76-8235-4d9e-8270-eeb057bf898e/2aca3b76-8235-4d9e-8270-eeb057bf898e1.gif)
![室內(nèi)巡視機(jī)器人設(shè)計(jì)和仿真與實(shí)現(xiàn)本科畢業(yè)設(shè)計(jì)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/5/2aca3b76-8235-4d9e-8270-eeb057bf898e/2aca3b76-8235-4d9e-8270-eeb057bf898e2.gif)
![室內(nèi)巡視機(jī)器人設(shè)計(jì)和仿真與實(shí)現(xiàn)本科畢業(yè)設(shè)計(jì)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/5/2aca3b76-8235-4d9e-8270-eeb057bf898e/2aca3b76-8235-4d9e-8270-eeb057bf898e3.gif)
![室內(nèi)巡視機(jī)器人設(shè)計(jì)和仿真與實(shí)現(xiàn)本科畢業(yè)設(shè)計(jì)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/5/2aca3b76-8235-4d9e-8270-eeb057bf898e/2aca3b76-8235-4d9e-8270-eeb057bf898e4.gif)
![室內(nèi)巡視機(jī)器人設(shè)計(jì)和仿真與實(shí)現(xiàn)本科畢業(yè)設(shè)計(jì)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/5/2aca3b76-8235-4d9e-8270-eeb057bf898e/2aca3b76-8235-4d9e-8270-eeb057bf898e5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1本科畢業(yè)設(shè)計(jì)(論文)本科畢業(yè)設(shè)計(jì)(論文)題目:(中文)室內(nèi)巡視機(jī)器人設(shè)計(jì)和仿真實(shí)現(xiàn)(英文)indoor patrol robot design and simulation 室內(nèi)巡視機(jī)器人設(shè)計(jì)和仿真實(shí)現(xiàn)2誠誠 信信 承承 諾諾我謹(jǐn)在此承諾:本人所寫的畢業(yè)論文室內(nèi)巡視機(jī)器人設(shè)計(jì)和仿真實(shí)現(xiàn)均系本人獨(dú)立完成,沒有抄襲行為,凡涉及其他作者的觀點(diǎn)和材料,均作了注釋,若有不實(shí),后果由本人承擔(dān)。 承諾人(簽名):承諾人(簽名): 年年 月月 日日寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)3室內(nèi)巡視機(jī)器人設(shè)計(jì)和仿真實(shí)現(xiàn)【摘要摘要】巡視機(jī)器人是一個(gè)集環(huán)境感知、路線規(guī)劃、動(dòng)態(tài)決策、行為控制等功能集于一體的綜
2、合系統(tǒng),采用巡視機(jī)器人進(jìn)行定點(diǎn)監(jiān)控巡視或不間斷自動(dòng)巡視將是目前一種可行的解決方案。將機(jī)器人用于巡視工作,具有廣闊的應(yīng)用前景。本文以自主移動(dòng)機(jī)器人為平臺(tái),主要任務(wù)與目標(biāo)是在 robotic studio 仿真系統(tǒng)中建立差分驅(qū)動(dòng)輪式移動(dòng)機(jī)器人進(jìn)行巡視仿真環(huán)境,通過獲取激光數(shù)據(jù)和攝像頭數(shù)據(jù)來完成路徑規(guī)劃,避障和實(shí)時(shí)監(jiān)控,設(shè)計(jì)手動(dòng)控制界面來手動(dòng)控制機(jī)器人進(jìn)行巡視?!娟P(guān)鍵詞】移動(dòng)機(jī)器人;路徑規(guī)劃;避障;巡視;仿真; 【abstract】with the constantly expanding the size and number of social and economic development,
3、 supermarkets, airports, railway stations, exhibition centers and logistics warehouses and other large-scale flow of passengers and places, large and medium-sized cities of high-level, high-end commercial buildings, an increasing number, the automation needs of the increasingly urgent. the patrol ro
4、bot is a set of environmental perception, route planning, dynamic decision-making, behavior control functions into one integrated system, patrol robot sentinel surveillance visits or continuous automatic inspection will be a viable solution. the robot for the inspection work has broad application pr
5、ospects. in this paper, the autonomous mobile robot platform, the main task and goal differential drive wheeled mobile robots in the robotic studio simulation system to conduct an inspection of the simulation environment, by acquiring laser data and camera data path planning, obstacle avoidance and
6、real-time monitoring design manual control interface to manually control the robot to conduct an inspection.【key words】mobile robot;path planning ;obstacle avoidance;inspections;simulation;室內(nèi)巡視機(jī)器人設(shè)計(jì)和仿真實(shí)現(xiàn)4目錄目錄1 1緒論緒論.11.1引言.11.2移動(dòng)機(jī)器人的研究內(nèi)容及發(fā)展趨勢.11.2.1移動(dòng)機(jī)器人的國內(nèi)外研究現(xiàn)狀 .11.2.2移動(dòng)機(jī)器人的發(fā)展趨勢 .21.3論文的主要內(nèi)容.22 2室內(nèi)
7、巡視機(jī)器人設(shè)計(jì)的總體方案室內(nèi)巡視機(jī)器人設(shè)計(jì)的總體方案.32.1研究任務(wù).32.2仿真機(jī)器人的組成.32.2.1激光傳感器.32.2.2攝像頭.32.2.3差分驅(qū)動(dòng)輪.42.3室內(nèi)巡視機(jī)器人的開發(fā)環(huán)境.52.3.1仿真環(huán)境 microsoft robotics developer studio 2008 r編程環(huán)境visual studio 2008 .62.4仿真機(jī)器人的總體巡視方案.62.4.1總體巡視方案.62.4.2傳感器數(shù)據(jù)接口.62.4.3避障.62.4.4路徑規(guī)劃.72.4.5實(shí)時(shí)監(jiān)控.72.4.6手動(dòng)控制.73 3仿真機(jī)器人巡視算法及實(shí)現(xiàn)仿真機(jī)器人巡視算法及實(shí)現(xiàn).
8、83.1仿真環(huán)境建立及編程調(diào)試.83.1.1仿真環(huán)境建立.83.1.2控制程序的編寫.83.2避障.103.2.1獲取激光數(shù)據(jù).103.2.2避障的實(shí)現(xiàn).113.2.3避障程序.123.3路徑規(guī)劃.143.3.1機(jī)器人沿墻巡視的設(shè)計(jì).153.3.2最小二乘原理.153.3.3直線擬合.163.3.4機(jī)器人沿墻走巡視的設(shè)計(jì).163.3.5機(jī)器人沿墻走巡視的實(shí)現(xiàn).183.3.6機(jī)器人沿墻走巡視的特殊情況.203.4實(shí)時(shí)監(jiān)控.203.4.1獲取攝像頭數(shù)據(jù).203.4.2圖像顯示及刷新.22寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)53.5手動(dòng)控制器的設(shè)計(jì).243.5.1手動(dòng)操作面板控制原理.25
9、3.5.2手動(dòng)操作面板控制的功能.253.5.3手動(dòng)控制器的實(shí)現(xiàn).264實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)結(jié)果.284.1數(shù)據(jù)輸出程序.284.2數(shù)據(jù)分析.284.2.1避障時(shí)數(shù)據(jù)分析.284.2.2沿墻走時(shí)數(shù)據(jù)分析.294.3總結(jié).315總結(jié)與展望總結(jié)與展望.325.1本文總結(jié).325.2展望.32參考文獻(xiàn)參考文獻(xiàn).33致謝致謝.35寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)3 1 1 緒論緒論1.1引言引言21 世紀(jì),隨著經(jīng)濟(jì),科技,社會(huì)不斷向前進(jìn)步和發(fā)展,我們生活中的各種各樣的的人流以及物流的集散場所不斷的增加,其數(shù)量與規(guī)模是以往所不能比擬的,例如倉庫、車站,大型購物中心,高級寫字樓、會(huì)議中心以及飛機(jī)場等
10、等。正是由于這些人流,物流集散場所在數(shù)量和規(guī)模上的不斷增加,隨之而來的是這些場所中各種設(shè)備、裝置的自動(dòng)化需求也越來越高。然而巡視機(jī)器人,它是一個(gè)集環(huán)境感知、路線規(guī)劃、動(dòng)態(tài)決策、行為控制等功能集于一體的綜合系統(tǒng),采用巡視機(jī)器人進(jìn)行定點(diǎn)監(jiān)控巡視或不間斷自動(dòng)巡視將是目前一種可行的解決方案。將機(jī)器人用于巡視工作,具有廣闊的應(yīng)用前景,近年來已受到國內(nèi)外的重視,成為服務(wù)機(jī)器人的一個(gè)新研究方向。本文主要綜述室內(nèi)巡視機(jī)器人設(shè)計(jì)的相關(guān)問題,并進(jìn)行問題分析及提出相關(guān)的解決方案。1.2移動(dòng)機(jī)器人的研究內(nèi)容及發(fā)展趨勢移動(dòng)機(jī)器人的研究內(nèi)容及發(fā)展趨勢1.2.1移動(dòng)機(jī)器人的國內(nèi)外研究現(xiàn)狀移動(dòng)機(jī)器人的國內(nèi)外研究現(xiàn)狀 國外移動(dòng)
11、機(jī)器人的研究開展較早,斯坦福研究院從 1966 年開始并用了 6 年時(shí)間研制出了“shakey”的移動(dòng)機(jī)器人。目前研究的方向主要是人工智能技術(shù),即在復(fù)雜環(huán)境下機(jī)器人能夠進(jìn)行自主推理、規(guī)劃和控制,并且它還安裝有視覺、距離和碰撞等傳感器,可以通過計(jì)算機(jī)對采集的圖像進(jìn)行處理和任務(wù)規(guī)劃等功能。70 年代,美國加州理工大學(xué)研制的移動(dòng)機(jī)器人和法國 laas 的機(jī)器人和人工智能研究小組開發(fā)的 hiare 移動(dòng)機(jī)器人,是當(dāng)時(shí)移動(dòng)機(jī)器人研究領(lǐng)域的代表之作。80 年代,美國國防高級研究計(jì)劃局揭開了世界范圍內(nèi)全面研究移動(dòng)機(jī)器人的序幕。其代表是 mit 研發(fā)的 wheelesley 機(jī)器人。90 年代,移動(dòng)機(jī)器人進(jìn)入
12、更高層次的研究領(lǐng)域,其研究的主要內(nèi)容在于研發(fā)出高水平的環(huán)境信息傳感器、信息處理技術(shù)、高適應(yīng)性的移動(dòng)機(jī)器人控制技術(shù)和真實(shí)環(huán)境下的規(guī)劃技術(shù)等。美國 probotics公司 1999 年生產(chǎn)了 cye 小型家用移動(dòng)機(jī)器人,它采用雙輪差動(dòng)驅(qū)動(dòng)方式,可以自主的進(jìn)行相應(yīng)的工作。 國內(nèi)移動(dòng)機(jī)器人的研究起步較晚,但通過對國外機(jī)器人平臺(tái)的引進(jìn)和自主開發(fā),現(xiàn)已取得很大進(jìn)展。很多高校和研究機(jī)構(gòu)對移動(dòng)機(jī)器人各方面的功能展開了廣泛的研究。寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)21.2.2移動(dòng)機(jī)器人的發(fā)展趨勢移動(dòng)機(jī)器人的發(fā)展趨勢雖然,在目前歐美一些國家和日本在移動(dòng)機(jī)器人研究領(lǐng)域取得很大的進(jìn)步,并領(lǐng)先于其他國家,但
13、是其相應(yīng)的成本也是相當(dāng)高昂的。因此結(jié)臺(tái)我國的基本國情,且考慮到移動(dòng)機(jī)器人的市場等相關(guān)因素,我們必須在以下幾個(gè)方面上進(jìn)行努力: (1)必須降低成本,研發(fā)出能夠滿足不同功能需求的相關(guān)系列產(chǎn)品。 (2 移動(dòng)機(jī)器人未來的發(fā)展方向是智能化和自主式。 (3)保證移動(dòng)機(jī)器人能夠正常巡視并正確的呈現(xiàn)出當(dāng)前環(huán)境的具體狀況。 (4)必要時(shí)我們可以通過人機(jī)結(jié)臺(tái),運(yùn)用無線通信技術(shù)和因特網(wǎng)技術(shù)對移動(dòng)機(jī)器人系統(tǒng)進(jìn)行控制,來處理一些突發(fā)、緊急情況,保證移動(dòng)機(jī)器人的正常工作。1.3論文的主要內(nèi)容論文的主要內(nèi)容本論文的主要內(nèi)容是在 robotic studio 仿真系統(tǒng)中建立差分驅(qū)動(dòng)輪式機(jī)器人的室內(nèi)巡視仿真環(huán)境,通過編寫程序?qū)?/p>
14、激光傳感器數(shù)據(jù)的采集和處理,規(guī)劃機(jī)器人的運(yùn)動(dòng)路徑及避障,使其能夠自主巡視,再將攝像頭采集到的圖像顯示出來,進(jìn)行實(shí)時(shí)監(jiān)控,然后在設(shè)計(jì)一個(gè)手動(dòng)控制功能,即手動(dòng)控制機(jī)器人進(jìn)行巡視。課題的主要工作如下:1.學(xué)習(xí)和了解 robotic studio 仿真系統(tǒng),掌握建立機(jī)器人仿真環(huán)境和編程控制機(jī)器人的基本方法;2.學(xué)習(xí)和了解差分驅(qū)動(dòng)輪式移動(dòng)機(jī)器人的基本運(yùn)動(dòng)控制方式;本文中我們要求機(jī)器人完成的動(dòng)作都是在改變機(jī)器人左右輪子的速度來實(shí)現(xiàn)的,所以我們的重點(diǎn)是掌握機(jī)器人左右輪速度的控制上。3.通過編程實(shí)現(xiàn)機(jī)器人沿墻進(jìn)行自主巡視及實(shí)時(shí)監(jiān)控;其中涉及到機(jī)器人移動(dòng)的路徑規(guī)劃,避障,攝像頭數(shù)據(jù)獲取,圖像顯示,圖像實(shí)時(shí)刷新等
15、問題。4. 通過編程來實(shí)現(xiàn)對機(jī)器人進(jìn)行手動(dòng)控制進(jìn)行巡視;雖然自動(dòng)巡視具有很多的優(yōu)點(diǎn),如方便,快捷,自主等,但是也有些不足,比如操作不靈活,功能單一等。為此我們專門引入了手動(dòng)控制器來增加操作的靈活性和多樣化的功能。5.在 robotic studio 仿真系統(tǒng)中編程實(shí)現(xiàn)機(jī)器人在室內(nèi)進(jìn)行巡視。機(jī)器人能夠沿著墻壁進(jìn)行自動(dòng)巡視,實(shí)時(shí)監(jiān)控,躲避障礙物,還要能夠進(jìn)行手動(dòng)控制,是機(jī)器人進(jìn)行手動(dòng)巡視。寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)3 2 2 室內(nèi)巡視機(jī)器人室內(nèi)巡視機(jī)器人設(shè)計(jì)的總體方案設(shè)計(jì)的總體方案 2.1研究任務(wù)研究任務(wù)本文的研究任務(wù)主要為機(jī)器人的自動(dòng)巡視和手動(dòng)控制巡視兩部分,其中包括路徑規(guī)劃
16、,避障,實(shí)時(shí)圖像顯示等內(nèi)容。尋找一種合理,有效,方便,成熟的方法來到達(dá)我們所要求的設(shè)計(jì)要求,是機(jī)器人在室內(nèi)的巡視效果到達(dá)最佳。2.2仿真機(jī)器人的組成仿真機(jī)器人的組成本次研究中所使用的仿真機(jī)器人是采用輪式結(jié)構(gòu),由 2 個(gè)驅(qū)動(dòng)輪和一個(gè)輔助輪組成,此外還安裝有激光傳感器,攝像頭。2.2.1 激光傳感器激光傳感器本文中所用的仿真激光傳感器是按照德國 sick 公司生產(chǎn)的 lms200 設(shè)計(jì)的,它的掃描范圍最大可以到達(dá) 8m,掃描角度為 180,而將這個(gè) 180的半圓分成 0360 共 361 份,其角度分辨率為 0.5一份。如圖 2.1 所示。圖 2.1 激光傳感器掃描范圍示意圖2.2.2攝像頭攝像頭
17、本文中所用的仿真攝像頭是按照日本 sanyo 公司生產(chǎn)的 ccd 設(shè)計(jì)的,它主要將機(jī)器人在室內(nèi)巡視時(shí)所到的地方的圖像顯示在窗口中,便于我們觀察,有利于我們對室內(nèi)的一切狀況進(jìn)行實(shí)時(shí)的監(jiān)控。一旦遇到什么情況,我們可以第一時(shí)間知道并及時(shí)的做出相應(yīng)的正確的反應(yīng)。寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)42.2.3 差分驅(qū)動(dòng)輪差分驅(qū)動(dòng)輪本次研究中所使用的仿真機(jī)器人是采用輪式結(jié)構(gòu),由 2 個(gè)驅(qū)動(dòng)輪和一個(gè)輔助輪組成。因此機(jī)器人所能完成的動(dòng)作主要通過對仿真機(jī)器人左右輪的不同控制來實(shí)現(xiàn)的,現(xiàn)在我們分別設(shè)仿真機(jī)器人的左輪子的速度為,右輪子的速度為, 如圖 2.2 所示。1vrv圖 2.2 機(jī)器人平面圖接下來
18、,我們對二輪差分輪式移動(dòng)機(jī)器人進(jìn)行相關(guān)的分析,現(xiàn)在分別設(shè)仿真機(jī)器人的左輪子的速度為,右輪子的速度為。1vrv 圖2.3 機(jī)器人位置和姿勢示意圖寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)3 則將仿真機(jī)器人的左右輪子的速度,轉(zhuǎn)換成線速度v 及角速度分別為:1vrv (2-11v2drrvvvv1)式中d 為仿真機(jī)器人右邊輪子到左邊輪子的距離。根據(jù)圖2.3知, 機(jī)器人的位置和姿勢的表達(dá)形式為( x ,y ,) ,其中( x ,y) 為機(jī)器人重心到坐標(biāo)軸邊界的距離,為機(jī)器人與坐標(biāo)軸x的夾角,則 (2-x= cosy= sin= 2)式(2-2)說明,我們可以講對機(jī)器人線速度和角速度的控制轉(zhuǎn)化對機(jī)器
19、人左右輪子的速度的控制?,F(xiàn)在我們重新來定義一個(gè)新的函數(shù)關(guān)系式d =f (x ,y) ,其中(x ,y)為仿真機(jī)器人此時(shí)此刻所處的地理位置,而f ( x ,y)= 0為我們期望機(jī)器人所做的運(yùn)動(dòng)軌跡,則 (2-xyx22222xxyyxyyx22222xxyyxyyyxyd=f x+f y=fcossind=fcosfsin2fcos sinfcosfsinfcosfsin2fcos sin=fcosfsin()(-)3)式中,為我們剛剛設(shè)的控制變量。由式(2-3)得: d=2.3室內(nèi)巡視機(jī)器人的開發(fā)環(huán)境室內(nèi)巡視機(jī)器人的開發(fā)環(huán)境2.3.1仿真環(huán)境仿真環(huán)境 microsoft robotics de
20、veloper studio 2008 r3本文所采用的仿真環(huán)境是 microsoft robotics developer studio 2008 r3,微軟機(jī)器人的通用開發(fā)平臺(tái) robotics developer studio 2008 第三個(gè)版本 r3 版本,簡稱 rds 2008 r3。robotics developer studio 是微軟在 06 年開始,面向機(jī)器人應(yīng)用開發(fā)而推出的一個(gè)平臺(tái),是基于.net framework 的開發(fā)環(huán)境,微軟 rds 支持多種機(jī)器人平臺(tái),既可以在運(yùn)行著 windows 系統(tǒng)的嵌入式 pc 上直接運(yùn)行,也可以在 windows pc 上通過藍(lán)牙、
21、wi-fi 等無寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)6線連接遠(yuǎn)程控制。2.3.2編程環(huán)境編程環(huán)境 visual studio 2008本文所采用的仿真環(huán)境是 microsoft visual studio,是面向 windows vista、office 2007、web 2.0 的開發(fā)工具。vs2008 引入了 250 個(gè)新特性,整合了對象、關(guān)系型數(shù)據(jù)、xml 訪問方式,語言更加簡潔。這個(gè)版本包含了眾多版本,分別面向不同的開發(fā)角色。能創(chuàng)建滿足關(guān)鍵性要求的多層次智能客戶端、web、或基于 microsoft office 等應(yīng)用程序。使用 visual studio 2008 可以高
22、效地開發(fā) windows 應(yīng)用程序,可以實(shí)時(shí)反映變更,智能感知功能可以提高開發(fā)效率。同時(shí) visual studio 2008 支持項(xiàng)目模板、部署程序和調(diào)試器。2.4仿真機(jī)器人的總體巡視方案仿真機(jī)器人的總體巡視方案2.4.1總體巡視方案總體巡視方案室內(nèi)巡視機(jī)器人的總體巡視方案結(jié)構(gòu)框圖如 2.4 所示??傮w方案主要包括:激光傳感器、攝像頭數(shù)據(jù)的接口,避障,路徑規(guī)劃,實(shí)時(shí)監(jiān)控,手動(dòng)控制。圖2.4 總體巡視方案結(jié)構(gòu)框圖2.4.2傳感器數(shù)據(jù)接口傳感器數(shù)據(jù)接口激光傳感器、攝像頭數(shù)據(jù)的接口,它主要是將采集到激光傳感器、攝像頭的數(shù)據(jù)實(shí)時(shí)寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)3 的傳送到機(jī)器人。機(jī)器人
23、,巡視的主體,它將接收到的數(shù)據(jù)進(jìn)行處理,然后根據(jù)程序做出相應(yīng)的正確的動(dòng)作,使其能夠順利的進(jìn)行巡視。2.4.3避障避障避障,就是機(jī)器人在接收到激光傳感器傳來的關(guān)于前方障礙物的距離信息后,根據(jù)已經(jīng)編寫好的程序來控制機(jī)器人偏轉(zhuǎn)的方向和角度達(dá)到避開障礙物的目的。本文所采用的避障方法:獲取激光數(shù)據(jù)后,我們可以根據(jù)獲取的數(shù)據(jù)編寫一個(gè)避障的控制程序,即當(dāng)激光檢測到的前方障礙物距離小于 500,就轉(zhuǎn)個(gè)方向。2.4.4路徑規(guī)劃路徑規(guī)劃路徑規(guī)劃,路徑規(guī)劃是機(jī)器人在室內(nèi)進(jìn)行巡視的基本環(huán)節(jié)。它所要達(dá)到的目的是使機(jī)器人在存在障礙物的環(huán)境中,按照一定的標(biāo)準(zhǔn),尋找到一條從起點(diǎn)到終點(diǎn)的最優(yōu)或近似最優(yōu)的無障礙路徑。這里我們可以
24、根據(jù)獲得的傳感器信息,即障礙物的尺寸、形狀和位置等信息,然后對這些信息進(jìn)行處理,并根據(jù)所要到達(dá)的效果來設(shè)計(jì)一條最合適的路徑。本文所采用的路徑規(guī)劃方法是沿墻走,即機(jī)器人沿著室內(nèi)的墻壁進(jìn)行巡視。2.4.5實(shí)時(shí)監(jiān)控實(shí)時(shí)監(jiān)控實(shí)時(shí)監(jiān)控,它主要將機(jī)器人在室內(nèi)巡視時(shí)所到的地方的圖像顯示在窗口中,便于我們觀察,有利于我們對室內(nèi)的一切狀況進(jìn)行實(shí)時(shí)的監(jiān)控。一旦遇到什么情況,我們可以第一時(shí)間知道并及時(shí)的做出相應(yīng)的正確的反應(yīng)。2.4.6手動(dòng)控制手動(dòng)控制手動(dòng)控制,雖然自動(dòng)巡視具有很多的優(yōu)點(diǎn),如方便,快捷,自主等,但是也有些不足,比如操作不靈活,功能單一等。為此我們專門引入了手動(dòng)控制器來增加操作的靈活性和多樣化的功能。我
25、們設(shè)計(jì)出一個(gè)可視化的操作界面來介入機(jī)器人的仿真過程,譬如啟動(dòng)/暫停仿真,自動(dòng)/手動(dòng)的切換,手工設(shè)置機(jī)器人的速度和前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)等。寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)83 3 仿真機(jī)器人巡視算法及仿真機(jī)器人巡視算法及實(shí)現(xiàn)實(shí)現(xiàn)3.1 仿真環(huán)境建立及編程調(diào)試仿真環(huán)境建立及編程調(diào)試3.1.1 仿真環(huán)境建立仿真環(huán)境建立首先啟動(dòng) microsoft visual simulation environment 2008 仿真軟件,選擇軟件自帶的apartment environment 場景,然后在場景中添加一個(gè)差分驅(qū)動(dòng)輪機(jī)器人,并且機(jī)器人上添加攝像頭、激光傳感器。如下圖: 圖 3.1
26、仿真環(huán)境3.1.2 控制程序的編寫控制程序的編寫首先打開 visual c# 2008,新建一個(gè)項(xiàng)目,選擇 microsoft robotics 的 dss service 模板,如下圖,名稱命名為 zmh:寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)3 圖 3.2 新建 dss 模板點(diǎn)擊“確定”后,出現(xiàn)如下選項(xiàng):(如圖 3.3 所示)圖 3.3 選項(xiàng)卡寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)10點(diǎn)擊“partners”選項(xiàng)卡,選擇希望添加的合作關(guān)系,然后點(diǎn)擊“add as partner”按鈕。我們在仿真環(huán)境中使用了差分驅(qū)動(dòng)輪,激光,web 攝像頭。因此,總共需要添加四個(gè)partne
27、r:simulation engine, simulated generic differential driver, simulated laser range finder, simulated webcam。然后點(diǎn)擊“ok”后即可根據(jù)選項(xiàng)自動(dòng)創(chuàng)建項(xiàng)目文件??偟目刂撇襟E可以概括如下:機(jī)器人從激光傳感器獲得數(shù)據(jù)進(jìn)行運(yùn)算輸出控制命令。 3.2 避障避障3.2.1 獲取激光數(shù)據(jù)獲取激光數(shù)據(jù)對于一個(gè)控制程序,一般的步驟是:從機(jī)器人的傳感器獲取傳感數(shù)據(jù)-運(yùn)算-輸出控制命令。為了獲取激光數(shù)據(jù),我們?nèi)ヒ蚣す鈧鞲衅靼l(fā)送一個(gè) get 消息,等待其返回后即可得到激光傳感器數(shù)據(jù)了。因此定義一個(gè)更新激光數(shù)據(jù)的任
28、務(wù)函數(shù):ienumerator updatelaser(datetime datetime) var sensororfault = _simulatedlrfserviceport.get(); yield return sensororfault.choice(); if (!haserror(sensororfault) sicklrf.state sensorstate = (sicklrf.state)sensororfault; /激光數(shù)據(jù)放在sensorstate的distancemeasurements屬性中。 activate(arbiter.receivewithitera
29、tor(false, _datetimeport, updatelaser); taskqueue.enqueuetimer(timespan.frommilliseconds(60), _datetimeport); yield break; 圖 3.4 獲取激光數(shù)據(jù)程序?yàn)榱耸?updatelaser 任務(wù)不斷地重復(fù)執(zhí)行,我們定義一個(gè)計(jì)數(shù)器消息端口,延時(shí)一定時(shí)間后就執(zhí)行 updatelaser 任務(wù)。zmhservice 類中定義一個(gè)時(shí)間端口:port _datetimeport = new port();圖 3.5 定義時(shí)間端口程序在類方法 start 中,啟動(dòng)計(jì)時(shí)器:寧波大學(xué)信息科學(xué)與工
30、程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)3 activate(arbiter.receivewithiterator(false, _datetimeport, updatelaser);taskqueue.enqueuetimer(timespan.frommilliseconds(600), _datetimeport);圖 3.6 啟動(dòng)計(jì)時(shí)器程序第一句告訴 dss,當(dāng)_datetimeport 消息來時(shí),執(zhí)行 updatelaser 任務(wù),第一個(gè)參數(shù)false 表示只執(zhí)行一次。由于_datetimeport 的消息類型是 datetime,所以我們需要重新定義 updatelaser 任務(wù)為:ienu
31、merator updatelaser(datetime datetime)。第二句啟動(dòng)一個(gè)延時(shí)計(jì)數(shù),當(dāng)經(jīng)過 600 毫秒后,就往_datetimeport 發(fā)送一個(gè)消息。這樣當(dāng) 600 毫秒之后,就會(huì)執(zhí)行 updatelaser 任務(wù)。這樣只能執(zhí)行一次,為了使 updatelaser 任務(wù)不斷重復(fù)執(zhí)行,我們在 updatelaser 任務(wù)函數(shù)的結(jié)尾再加上上述兩句,這樣的話 updatelaser 就能不斷地重復(fù)了。3.2.2 避障的實(shí)現(xiàn)避障的實(shí)現(xiàn)避障就是機(jī)器人在接收到激光傳感器傳來的關(guān)于前方障礙物的距離信息后,根據(jù)已經(jīng)編寫好的程序來控制機(jī)器人偏轉(zhuǎn)的方向和角度達(dá)到避開障礙物的目的。本文所采用的
32、避障方法:獲取激光數(shù)據(jù)后,我們可以根據(jù)獲取的數(shù)據(jù)編寫一個(gè)避障的控制程序,即當(dāng)激光檢測到的前方障礙物距離小于 500mm,就轉(zhuǎn)個(gè)方向。又因?yàn)榧す鈹?shù)據(jù)是 180范圍的,我們?nèi)≈虚g的 60作為障礙判斷依據(jù),如圖 3.7 所示。為了更好的實(shí)現(xiàn)避障功能,使避障時(shí)機(jī)器人的轉(zhuǎn)向與下面將要講到的沿墻走路徑規(guī)劃有效的結(jié)合起來,以達(dá)到巡視時(shí)的最佳效果,現(xiàn)我們將這 60的范圍分成左右各 30(即 6090和 90120) 。當(dāng)激光檢測到 6090范圍內(nèi)有障礙物且只小于 500 的安全距離時(shí),機(jī)器人向左轉(zhuǎn),如圖 3.8(a)所示;當(dāng)激光檢測到 90120范圍內(nèi)有障礙物且只小于 500mm 的安全距離時(shí),機(jī)器人向右轉(zhuǎn),
33、如圖 3.8(b)所示。這樣就實(shí)現(xiàn)了機(jī)器人的避障功能。圖 3.7 激光探測示意圖寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)12避障示意圖如下所示:圖 3.8(a) 機(jī)器人避障示意圖圖 3.8(b) 機(jī)器人避障示意圖3.2.3避障程序避障程序根據(jù)機(jī)器人獲取來的激光傳感器數(shù)據(jù),結(jié)合我們選擇的避障方法,按照我們的要求編寫的避障程序。(1)當(dāng)激光檢測到 6090范圍內(nèi)有障礙物且只小于 500mm 的安全距離時(shí),機(jī)器人向左轉(zhuǎn)的避障程序如下圖所示。寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)3 int lasercount = sensorstate.distancemeasurements.len
34、gth; for (int i = lasercount / 3; i lasercount / 2; i+) if (sensorstate.distancemeasurementsi 500) _simulateddifferentialdriveserviceport.setdrivespeed(-0.1f, 0.1f); loginfo(obstacle avoid!);activate(arbiter.receivewithiterator(false, _datetimeport, updatelaser); taskqueue.enqueuetimer(timespan.from
35、milliseconds(200), _datetimeport); yield break; 圖 3.9 避障程序int lasercount = sensorstate.distancemeasurements.length;圖 3.10這條語句是將存放在 sensorstate 的 distancemeasurements 屬性中的激光數(shù)據(jù)賦值給我們設(shè)的整型變量laserc i = lasercount/3; i lasercount/2;i+圖 3.11這條語句是實(shí)現(xiàn)取激光數(shù)據(jù) 6090的范圍的數(shù)據(jù)。if (sensorstate.distancemeasurement
36、si 500) _simulateddifferentialdriveserviceport.setdrivespeed(-0.1f, 0.1f); loginfo(obstacle avoid!);activate(arbiter.receivewithiterator(false, _datetimeport, updatelaser); taskqueue.enqueuetimer(timespan.frommilliseconds(200), _datetimeport); yield break; 圖 3.12這段程序是實(shí)現(xiàn)避障,當(dāng)機(jī)器人與障礙物的距離小于 500mm 時(shí),機(jī)器人的右
37、輪子的速度就減小,而左輪子的速度不變,這樣就實(shí)現(xiàn)了機(jī)器人向左轉(zhuǎn);當(dāng)機(jī)器人與障礙物的距離大于 500mm 時(shí),機(jī)器人左右輪的速度保持不變且一樣,這樣機(jī)器人就直線前進(jìn)。寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)14activate(arbiter.receivewithiterator(false, _datetimeport, updatelaser);taskqueue.enqueuetimer(timespan.frommilliseconds(200), _datetimeport);圖 3.13這兩條程序是用來刷新激光數(shù)據(jù),這里我們設(shè)定的定時(shí)器定時(shí)時(shí)間是 200ms,即0.2s。每隔
38、 0.2s 就刷新一次激光數(shù)據(jù),這樣就可以達(dá)到實(shí)時(shí)采集激光數(shù)據(jù)的目的了,使機(jī)器人更好的完成避障任務(wù)。(2)當(dāng)激光檢測到 90120范圍內(nèi)有障礙物且只小于 500 的安全距離時(shí),機(jī)器人向右轉(zhuǎn)的避障程序如下圖所示。for (int i = lasercount / 2; i 2 * lasercount / 3; i+)if (sensorstate.distancemeasurementsi 500) _simulateddifferentialdriveserviceport.setdrivespeed(0.1f, -0.1f);loginfo(obstacle avoid!);activat
39、e(arbiter.receivewithiterator(false, _datetimeport, updatelaser); taskqueue.enqueuetimer(timespan.frommilliseconds(200), _datetimeport); yield break; 圖 3.14這種情況與(1)的情況相似,程序解釋請參照上面解釋,在此不再進(jìn)行累述。在這里,我們用到了差分驅(qū)動(dòng)輪的消息端口_simulateddifferentialdriveserviceport,并根據(jù)激光數(shù)據(jù)向其發(fā)送驅(qū)動(dòng)參數(shù)。3.3 路徑規(guī)劃路徑規(guī)劃路徑規(guī)劃是機(jī)器人在室內(nèi)進(jìn)行巡視的基本環(huán)節(jié)。它所
40、要達(dá)到的目的是使機(jī)器人在存在障礙物的環(huán)境中,按照一定的標(biāo)準(zhǔn),尋找到一條從起點(diǎn)到終點(diǎn)的最優(yōu)或近似最優(yōu)的無障礙路徑。這里我們可以根據(jù)獲得的傳感器信息,即障礙物的尺寸、形狀和位置等信息,然后對這些信息進(jìn)行處理,并根據(jù)所要到達(dá)的效果來設(shè)計(jì)一條最合適的路徑。3.3.1機(jī)器人沿墻巡視的設(shè)計(jì)機(jī)器人沿墻巡視的設(shè)計(jì)本文所采用的路徑規(guī)劃方法是沿墻走,即機(jī)器人沿著室內(nèi)的墻壁進(jìn)行巡視。因?yàn)楸疚膶幉ù髮W(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)3 研究的重點(diǎn)不是路徑規(guī)劃,而是室內(nèi)巡視機(jī)器人的設(shè)計(jì),所以考慮的到執(zhí)行的難以程度,所到達(dá)的效果(由于機(jī)器人要進(jìn)行巡視,本身帶有攝像頭,那么沿墻走就可以到達(dá)看得到室內(nèi)的一切這個(gè)效果)等
41、,選擇沿墻走這種方法就可以到達(dá)要求的效果,因此選擇沿墻走的路徑規(guī)劃方法。示意圖如圖 3.15。圖 3.15 沿墻走示意圖3.3.2最小二乘原理最小二乘原理設(shè)有一獨(dú)立等精度的測量列(i=1,2,3,n) ,其殘差(或偏差)為= ii,殘差的平方和為:i (3-1)nnn222iiii=1i=1i=n21()()-式中,。 當(dāng)其殘差= 滿足=min 時(shí),顯然對于任何而, nii=1=niin2ii=1 (3-2)iiinnn2iiii=1i=i=nniii=i=n =nxxxxxxx221122211(-)(-)()()+2(-)(-)(-)當(dāng) x= 時(shí),取得最小值,以上就是最小二乘原理。nii=
42、213.3.3直線擬合直線擬合假定所求實(shí)驗(yàn)數(shù)據(jù)的最佳擬合直線方程為:寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)16 (3-3)yabx式中,a 為直線的截距;b 為其斜率。根據(jù)最小二乘原理求得: (3-4)nnnn2iiiiii=1i=1i=1i=1nn2iii=1i=1nnniiiii=1i=1i=1nn2iii=1i=1yxx yx=nxxnx yxy=nxxab 22()-()()-()-()或 (3-5)niii=1nii=1=yxxxyy=xxabb2(-)(-)(-)3.3.4機(jī)器人沿墻走巡視的設(shè)計(jì)機(jī)器人沿墻走巡視的設(shè)計(jì)機(jī)器人沿墻走的仿真圖如圖 3.16 所示。圖 3.16 沿
43、墻走仿真示意圖(1)沿墻走的激光束分布本文中所用的仿真激光傳感器是按照德國 sick 公司生產(chǎn)的 lms200 設(shè)計(jì)的,它的掃描范圍最大可以到達(dá) 8m,掃描角度為 180,而將這個(gè) 180的半圓分成 0360 共 361 份,寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)3 其角度分辨率為 0.5一份,如圖 3.17 所示。這 360 份用極坐標(biāo)表示,見式(3-6) 。 (3-6)iid =ii=2d式中,i 表示激光束的第 i 束。圖 3.17 沿墻走激光束分布示意圖(2)沿墻走的判斷設(shè)激光打在墻上的個(gè)數(shù)為 n,機(jī)器人與墻的距離為 d。 (1)當(dāng)激光打在墻上的個(gè)數(shù)小于3 時(shí)(n3) ,與墻的
44、距離小于 8000mm(d8000mm)時(shí),機(jī)器人就繼續(xù)向前進(jìn);如圖3.18 所示。 (2)當(dāng)激光打在墻上的個(gè)數(shù)大于 3 時(shí)(n3) ,與墻的距離小于8000mm(d8000mm)時(shí),此時(shí)就要進(jìn)行擬合;寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)18圖 機(jī)器人沿墻走巡視的實(shí)現(xiàn)機(jī)器人沿墻走巡視的實(shí)現(xiàn)設(shè)定機(jī)器人的右側(cè)始終靠近墻,當(dāng)機(jī)器人靠近墻時(shí),為了分析方便,現(xiàn)我們?nèi)〖す獯蛟趬ι系?a1a10 十個(gè)點(diǎn),如圖 3.19 所示,而我們需要的是落在 045范圍內(nèi)的點(diǎn),再經(jīng)過篩選,我們選擇距離為 50mm1200mm 之間的點(diǎn)進(jìn)行擬合。之所以選擇這個(gè)范圍,是因?yàn)槿绻覀儗⒋笥?120
45、0mm 的點(diǎn)也包括進(jìn)來會(huì)影響直線擬合的效果,因此我們經(jīng)過反復(fù)的調(diào)試最終確定上述這樣一個(gè)距離區(qū)間。然后通過極坐標(biāo)的轉(zhuǎn)換將篩選出來的點(diǎn)轉(zhuǎn)換成對應(yīng)平面坐標(biāo),極坐標(biāo)轉(zhuǎn)換公式見式(3-7) 。最后對轉(zhuǎn)換后的坐標(biāo)運(yùn)用最小二乘直線擬合,經(jīng)過計(jì)算得出擬合后的直線 y=c+dx,其中 c,d 由最小二乘直線擬合法求出,見公式(3-4) ,(3-5)。再設(shè),分別為機(jī)器人左、右輪速,根據(jù)機(jī)器人右側(cè)與墻的距離 d(如圖所1vrv示)來計(jì)算實(shí)時(shí)的,。1vrv (3-iiiiiiix =d cosy =d sini=27)式中,是第 i 束激光到墻壁的距離,是是第 i 束激光的角度。idi然后根據(jù)最小二乘原理和直線擬合的
46、公式(3-4)計(jì)算出斜率 b,截距 a,而寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)3 c=a,d=b。再根據(jù)斜率 d 按照公式(3-8)計(jì)算出角度。 (3-arctan d8)因?yàn)閿M合出來的直線斜率有正負(fù)之分,所以計(jì)算出來的角度,如果按數(shù)學(xué)上定義,則有大于 90和小于 90的區(qū)別。而我們這里計(jì)算出來的角度的范圍是-9090,即當(dāng) d0 時(shí),0;當(dāng) d0 時(shí),0。由于程序中的坐標(biāo)軸與數(shù)學(xué)定義上的坐標(biāo)軸不一樣,因此我們要對使用的角度進(jìn)行轉(zhuǎn)換,見公式(3-9) 。 (3-(),(0)2,(0)2jdjd 9)仿真機(jī)器人左右輪子的速度計(jì)算見公式(3-10) (3-l1r2=jdjd 10)其中是
47、當(dāng)前機(jī)器人行進(jìn)的速度,為調(diào)試系數(shù),且,經(jīng)過反復(fù)的調(diào)試,1212=最后我們確定比較理想系數(shù)=0.1。12=寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)20圖 3.19 沿墻走擬合示意圖3.3.6機(jī)器人沿墻走巡視的特殊情況機(jī)器人沿墻走巡視的特殊情況機(jī)器人在內(nèi)室進(jìn)行巡視時(shí),經(jīng)常會(huì)出現(xiàn)機(jī)器人走到直角地帶,如圖 3.20 所示。此時(shí),機(jī)器人處于特殊情況下,因此沿墻走也要單獨(dú)進(jìn)行分析,解決。當(dāng)機(jī)器人靠近墻時(shí),我們需要的是落在 045范圍內(nèi)的點(diǎn),再經(jīng)過篩選,我們選擇距離為 50mm1200mm 之間的點(diǎn)進(jìn)行擬合,見式(3-6) 。然后對轉(zhuǎn)換后的點(diǎn)運(yùn)用最小二乘直線擬合,經(jīng)過計(jì)算得出擬合后的直線 y=c+dx
48、,其中 c,d 由最小二乘直線擬合法求出(假設(shè)紅線為擬合后的路線) ,見公式(3-4) ,(3-5)。再設(shè),分別為機(jī)器人左、右輪速,根據(jù)機(jī)器人右側(cè)與墻的距離1vrvd(如圖所示)來計(jì)算實(shí)時(shí)的,。1vrv寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)3 圖 3.20 沿墻走特殊情況擬合示意圖3.4 實(shí)時(shí)監(jiān)控實(shí)時(shí)監(jiān)控3.4.1 獲取攝像頭數(shù)據(jù)獲取攝像頭數(shù)據(jù)攝像頭數(shù)據(jù)的獲取過程與激光數(shù)據(jù)的獲取過程類似定義一個(gè)獲取攝像頭數(shù)據(jù)的任務(wù)函數(shù) updateimage。程序代碼如下:寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)22圖 3.21 攝像頭數(shù)據(jù)獲取程序ienumerator updateimage(
49、datetime datetime) byte rgbdata = null; size size = new size(0, 0); yield return arbiter.choice(_simulatedwebcamserviceport.queryframe(), success = rgbdata = success.frame; size = success.size; , failure = logerror(failure.toexception(); ); if (rgbdata != null) | destbitmap.width != srcdatawidth | d
50、estbitmap.height != srcdataheight | (destbitmap.pixelformat = pixelformat.format32bppargb & bytesperpixel = 3) | (destbitmap.pixelformat = pixelformat.format32bpprgb & bytesperpixel = 3) | (destbitmap.pixelformat = pixelformat.format24bpprgb & bytesperpixel = 4) if (bytesperpixel = 3) destbitmap = n
51、ew bitmap(srcdatawidth, srcdataheight, pixelformat.format24bpprgb); else destbitmap = new bitmap(srcdatawidth, srcdataheight, pixelformat.format32bpprgb); activate(arbiter.receivewithiterator(false, _datetimeportimage, updateimage); taskqueue.enqueuetimer(timespan.frommilliseconds(60), _datetimeport
52、image); 寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)3 byte rgbdata = null; size size = new size(0, 0); yield return arbiter.choice(_simulatedwebcamserviceport.queryframe(), success = rgbdata = success.frame; size = success.size; , failure = logerror(failure.toexception(); );圖 3.22這段程序是定義一個(gè)選擇仲裁器,往 webcam 服務(wù)端口發(fā)送一個(gè) queryfr
53、ame 請求當(dāng)請求成功時(shí),將數(shù)據(jù)保存到 rgbdata 中,并將圖像尺寸保存到 size 中;當(dāng)請求失敗時(shí),給出出錯(cuò)信息。3.4.2 圖像顯示及刷新圖像顯示及刷新從攝像頭獲取到圖像數(shù)據(jù)以后,我們希望能把圖像在窗口中直觀地顯示出來,所以要添加一個(gè)窗體,在窗體中添加一個(gè) picturebox 控件來顯示圖像。然后就是在 start 方法中定義一個(gè)函數(shù)來啟動(dòng)窗體:winformsserviceport.post(new runform() = _laserdataform = new laserdata(); _laserdataform.show();return _laserdataform;
54、);圖 3.23 啟動(dòng)窗體程序啟動(dòng)窗體后,把攝像頭拍攝到的圖像顯示在窗體里,接下來就是不斷地刷新圖像來實(shí)時(shí)更新圖像,以便我們更方便更準(zhǔn)確的觀察,因此需要在窗體類中新添一個(gè)方法updatewebcam 供調(diào)用刷新圖像。程序如下:寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)24internal void updatewebcam(bitmap bmp) bmpwebcam = bmp; pictureboxwebcam.size = new size(bmp.width, bmp.height); pictureboxwebcam.image = bmpwebcam; this.invalida
55、te(true); 圖 3.24 刷新圖像程序這段程序是將 bitmap 圖像保存到類屬性 bmpwebcam 變量中,讓 picturebox 空間顯示圖像,根據(jù)圖像大小重新設(shè)置 picturebox 控件的尺寸。這樣就可以實(shí)現(xiàn)不斷的刷新圖像,從而到達(dá)實(shí)時(shí)顯示的目的。編譯運(yùn)行后可看到攝像頭圖像監(jiān)控畫面如圖 3.25 所示:圖 3.25 攝像頭圖像監(jiān)控畫面機(jī)器人進(jìn)行室內(nèi)巡視時(shí)的實(shí)時(shí)監(jiān)控圖,如圖 3.26 所示,帶有攝像頭實(shí)時(shí)監(jiān)控畫面和機(jī)器人在室內(nèi)的位置,這樣就可以更好的觀察和判斷實(shí)時(shí)監(jiān)控的畫面是否如實(shí)的反映機(jī)器人所在處的情況。寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)3 圖 3.26 仿真
56、環(huán)境下的實(shí)時(shí)監(jiān)控畫面3.5 手動(dòng)控制器的設(shè)計(jì)手動(dòng)控制器的設(shè)計(jì)上文講到的都是機(jī)器人自動(dòng)巡視,雖然自動(dòng)巡視具有很多的優(yōu)點(diǎn),如方便,快捷,自主等,但是也有些不足,比如操作不靈活,功能單一等。為此我們專門引入了手動(dòng)控制器來增加操作的靈活性和多樣化的功能。我們設(shè)計(jì)出一個(gè)可視化的操作界面來介入機(jī)器人的仿真過程,譬如啟動(dòng)/暫停仿真,自動(dòng)/手動(dòng)的切換,手工設(shè)置機(jī)器人的速度和前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)等。手動(dòng)控制操作面板如圖 3.27 所示。圖 3.27 手動(dòng)控制操作面板示意圖手動(dòng)控制操作面板上有前進(jìn),后退,左轉(zhuǎn),右轉(zhuǎn),加速,減速,自動(dòng)/手動(dòng)切換和啟動(dòng)/暫停仿真引擎 8 個(gè)按鍵。寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)
57、計(jì)(論文)263.5.1手動(dòng)操作面板控制原理手動(dòng)操作面板控制原理手動(dòng)操作面板控制原理:當(dāng)我們點(diǎn)擊手動(dòng)操作面板中按鍵,此時(shí)就會(huì)立即先主服務(wù)程序發(fā)送一個(gè) port 消息,然后住服務(wù)程序根據(jù)接收到的 port 信息調(diào)用預(yù)先編寫好的程序進(jìn)行處理,處理完后控制機(jī)器人做出相應(yīng)狀態(tài)的改變。如圖 3.28 所示。圖 3.28 手動(dòng)控制操作面板控制原理示意圖3.5.2手動(dòng)操作面板控制的功能手動(dòng)操作面板控制的功能手動(dòng)控制操作面板上有前進(jìn),后退,左轉(zhuǎn),右轉(zhuǎn),加速,減速,自動(dòng)/手動(dòng)切換和啟動(dòng)/暫停仿真引擎 8 個(gè)按鍵。各個(gè)按鍵的功能:(1) “自動(dòng)/手動(dòng)”切換鍵:實(shí)現(xiàn)自動(dòng)與手動(dòng)操作之間的靈活切換。(2) “啟動(dòng)/暫停
58、仿真引擎”鍵:簡易方便的開啟和關(guān)閉仿真引擎,而不必每次都通過修改 xml 文件,將其中的項(xiàng)由 true 改成 false。 (3) “前進(jìn)”鍵:通過控制機(jī)器人左右輪子的轉(zhuǎn)向來實(shí)現(xiàn)機(jī)器人向前行進(jìn)。(4) “后退”鍵:通過控制機(jī)器人左右輪子的轉(zhuǎn)向來實(shí)現(xiàn)機(jī)器人向后行進(jìn)。(5) “左轉(zhuǎn)”鍵:通過控制機(jī)器人左右輪子的轉(zhuǎn)速來實(shí)現(xiàn)機(jī)器人的轉(zhuǎn)向,向左轉(zhuǎn)時(shí),右輪的速度應(yīng)大于左輪的速度。(6) “右轉(zhuǎn)”鍵:通過控制機(jī)器人左右輪子的轉(zhuǎn)速來實(shí)現(xiàn)機(jī)器人的轉(zhuǎn)向,向右轉(zhuǎn)時(shí),左輪的速度應(yīng)大于右輪的速度。(7) “加速”鍵:將加速的速度值預(yù)先通過程序編寫出來,然后當(dāng)按下此鍵時(shí)實(shí)現(xiàn)速度的增加。(8) “減速”鍵:將加速的速度值預(yù)
59、先通過程序編寫出來,然后當(dāng)按下此鍵時(shí)實(shí)現(xiàn)速寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)3 度的減少。3.5.3手動(dòng)控制器的實(shí)現(xiàn)手動(dòng)控制器的實(shí)現(xiàn)現(xiàn)在我們以啟動(dòng)/暫停仿真引擎為例。首先在窗體中增加一個(gè)按鈕btnrunpausedengine,當(dāng)點(diǎn)擊該按鈕時(shí)希望能夠暫?;蛘哌\(yùn)行仿真引擎。為了能夠在窗體中向主服務(wù)程序發(fā)送消息,我們首先需要把主服務(wù)程序的消息端口告訴窗體類,在窗體類中新增一個(gè)全局變量保存主服務(wù)程序的消息端口:圖 3.29然后,在 zmhtypes.cs 中定義所需要的消息體類型: public class pausedengine : submitpausedenginerequest
60、, portset public pausedengine() : base(new pausedenginerequest() paused = true; public bool paused; /paused屬性為真時(shí)暫停;為假時(shí)運(yùn)行引擎 datacontract public class pausedenginerequest 圖 3.30 同時(shí)在服務(wù)端口中新增一個(gè) pauseengine 消息,將 zmhoperations 改為:serviceport public class zmhoperations : portset 圖 3.31在創(chuàng)建窗體時(shí),把消息端口傳遞給窗體類中的全局
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄉(xiāng)鎮(zhèn)單位解聘合同范本
- 農(nóng)民在工地打工合同范本
- 公廁施工范圍合同范本
- 京西印玥合同范本
- 2025年度歷史文化名城保護(hù)工程個(gè)人勞務(wù)分包合同
- 公司漁業(yè)船舶買賣合同范例
- 會(huì)議家具采購合同范本
- 臨時(shí)住宿合同范本
- 借住公租房合同范例
- 修補(bǔ)圍網(wǎng)合同范本
- 幼兒園開學(xué)前的廚房人員培訓(xùn)
- 油漆工培訓(xùn)試題
- 2024年四川綿陽初中學(xué)業(yè)水平考試英語試卷真題(含答案詳解)
- 2025年閥門和龍頭項(xiàng)目發(fā)展計(jì)劃
- 快手信息流廣告優(yōu)化師(初級)認(rèn)證考試題庫(附答案)
- 園林景觀綠化工程施工組織設(shè)計(jì)方案
- 消防員證考試題庫2000題中級
- 校園安全教育高中生
- 2024至2030年中國數(shù)字壓力表行業(yè)投資前景及策略咨詢研究報(bào)告
- 農(nóng)產(chǎn)品質(zhì)量安全檢測技術(shù)
- 【蟬媽媽】2024年抖音電商酒水行業(yè)趨勢洞察報(bào)告
評論
0/150
提交評論