freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

室內(nèi)巡視機(jī)器人設(shè)計(jì)和仿真與實(shí)現(xiàn)本科畢業(yè)設(shè)計(jì)(編輯修改稿)

2025-07-14 00:36 本頁面
 

【文章內(nèi)容簡介】 =f (x ,y) ,其中(x ,y)為仿真機(jī)器人此時(shí)此刻所處的地理位置,而f ( x ,y)= 0為我們期望機(jī)器人所做的運(yùn)動(dòng)軌跡,則 (2yx222xyxyyxyxy=+fcosindfcosinfcosfinffi=cosin??????????????? ???????? ( )( )3)式中, 為我們剛剛設(shè)的控制變量。?由式(23)得: d=?? 室內(nèi)巡視機(jī)器人的開發(fā)環(huán)境 仿真環(huán)境 Microsoft Robotics Developer Studio 2022 R3本文所采用的仿真環(huán)境是 Microsoft Robotics Developer Studio 2022 R3,微軟機(jī)器人的通用開發(fā)平臺 Robotics Developer Studio 2022 第三個(gè)版本 R3 版本,簡稱 RDS 2022 R3。Robotics Developer Studio 是微軟在 06 年開始,面向機(jī)器人應(yīng)用開發(fā)而推出的一個(gè)平臺, Framework 的開發(fā)環(huán)境,微軟 RDS 支持多種機(jī)器人平臺,既可以在運(yùn)行著 Windows 系統(tǒng)的嵌入式 PC 上直接運(yùn)行,也可以在 Windows PC 上通過藍(lán)牙、WiFi 等無寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)6線連接遠(yuǎn)程控制。 編程環(huán)境 visual studio 2022本文所采用的仿真環(huán)境是 Microsoft Visual Studio,是面向 Windows Vista、Office 202Web 的開發(fā)工具。VS2022 引入了 250 個(gè)新特性,整合了對象、關(guān)系型數(shù)據(jù)、XML 訪問方式,語言更加簡潔。這個(gè)版本包含了眾多版本,分別面向不同的開發(fā)角色。能創(chuàng)建滿足關(guān)鍵性要求的多層次智能客戶端、Web、或基于 Microsoft Office 等應(yīng)用程序。使用 Visual Studio 2022 可以高效地開發(fā) Windows 應(yīng)用程序,可以實(shí)時(shí)反映變更,智能感知功能可以提高開發(fā)效率。同時(shí) Visual Studio 2022 支持項(xiàng)目模板、部署程序和調(diào)試器。 仿真機(jī)器人的總體巡視方案 總體巡視方案室內(nèi)巡視機(jī)器人的總體巡視方案結(jié)構(gòu)框圖如 所示??傮w方案主要包括:激光傳感器、攝像頭數(shù)據(jù)的接口,避障,路徑規(guī)劃,實(shí)時(shí)監(jiān)控,手動(dòng)控制。 總體巡視方案結(jié)構(gòu)框圖 傳感器數(shù)據(jù)接口激光傳感器、攝像頭數(shù)據(jù)的接口,它主要是將采集到激光傳感器、攝像頭的數(shù)據(jù)實(shí)時(shí)寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)3 的傳送到機(jī)器人。機(jī)器人,巡視的主體,它將接收到的數(shù)據(jù)進(jìn)行處理,然后根據(jù)程序做出相應(yīng)的正確的動(dòng)作,使其能夠順利的進(jìn)行巡視。 避障避障,就是機(jī)器人在接收到激光傳感器傳來的關(guān)于前方障礙物的距離信息后,根據(jù)已經(jīng)編寫好的程序來控制機(jī)器人偏轉(zhuǎn)的方向和角度達(dá)到避開障礙物的目的。本文所采用的避障方法:獲取激光數(shù)據(jù)后,我們可以根據(jù)獲取的數(shù)據(jù)編寫一個(gè)避障的控制程序,即當(dāng)激光檢測到的前方障礙物距離小于 500,就轉(zhuǎn)個(gè)方向。 路徑規(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)的無障礙路徑。這里我們可以根據(jù)獲得的傳感器信息,即障礙物的尺寸、形狀和位置等信息,然后對這些信息進(jìn)行處理,并根據(jù)所要到達(dá)的效果來設(shè)計(jì)一條最合適的路徑。本文所采用的路徑規(guī)劃方法是沿墻走,即機(jī)器人沿著室內(nèi)的墻壁進(jì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)。 手動(dòng)控制手動(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)等。寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)83 仿真機(jī)器人巡視算法及實(shí)現(xiàn) 仿真環(huán)境建立及編程調(diào)試 仿真環(huán)境建立首先啟動(dòng) Microsoft Visual Simulation Environment 2022 仿真軟件,選擇軟件自帶的Apartment Environment 場景,然后在場景中添加一個(gè)差分驅(qū)動(dòng)輪機(jī)器人,并且機(jī)器人上添加攝像頭、激光傳感器。如下圖: 圖 仿真環(huán)境 控制程序的編寫首先打開 Visual C 2022,新建一個(gè)項(xiàng)目,選擇 Microsoft Robotics 的 DSS Service 模板,如下圖,名稱命名為 zmh:寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)3 圖 新建 DSS 模板點(diǎn)擊“確定”后,出現(xiàn)如下選項(xiàng):(如圖 所示)圖 選項(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è)Partner: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)算→輸出控制命令。 避障 獲取激光數(shù)據(jù)對于一個(gè)控制程序,一般的步驟是:從機(jī)器人的傳感器獲取傳感數(shù)據(jù)運(yùn)算輸出控制命令。為了獲取激光數(shù)據(jù),我們?nèi)ヒ蚣す鈧鞲衅靼l(fā)送一個(gè) Get 消息,等待其返回后即可得到激光傳感器數(shù)據(jù)了。因此定義一個(gè)更新激光數(shù)據(jù)的任務(wù)函數(shù):IEnumeratorITask UpdateLaser(DateTime dateTime) {var sensorOrFault = ()。 yield return ()。 if (!HasError(sensorOrFault)) { sensorState = ()sensorOrFault。 //激光數(shù)據(jù)放在sensorState的DistanceMeasurements屬性中。 } Activate((false, _dateTimePort, UpdateLaser))。 ((60), _dateTimePort)。 yield break。 }圖 獲取激光數(shù)據(jù)程序?yàn)榱耸?UpdateLaser 任務(wù)不斷地重復(fù)執(zhí)行,我們定義一個(gè)計(jì)數(shù)器消息端口,延時(shí)一定時(shí)間后就執(zhí)行 UpdateLaser 任務(wù)。zmhService 類中定義一個(gè)時(shí)間端口:PortDateTime _dateTimePort = new PortDateTime()。圖 定義時(shí)間端口程序在類方法 Start 中,啟動(dòng)計(jì)時(shí)器:寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)3 Activate((false, _dateTimePort, UpdateLaser))。((600), _dateTimePort)。圖 啟動(dòng)計(jì)時(shí)器程序第一句告訴 DSS,當(dāng)_dateTimePort 消息來時(shí),執(zhí)行 UpdateLaser 任務(wù),第一個(gè)參數(shù)false 表示只執(zhí)行一次。由于_dateTimePort 的消息類型是 DateTime,所以我們需要重新定義 UpdateLaser 任務(wù)為:IEnumeratorITask 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ù)了。 避障的實(shí)現(xiàn)避障就是機(jī)器人在接收到激光傳感器傳來的關(guān)于前方障礙物的距離信息后,根據(jù)已經(jīng)編寫好的程序來控制機(jī)器人偏轉(zhuǎn)的方向和角度達(dá)到避開障礙物的目的。本文所采用的避障方法:獲取激光數(shù)據(jù)后,我們可以根據(jù)獲取的數(shù)據(jù)編寫一個(gè)避障的控制程序,即當(dāng)激光檢測到的前方障礙物距離小于 500mm,就轉(zhuǎn)個(gè)方向。又因?yàn)榧す鈹?shù)據(jù)是 180176。范圍的,我們?nèi)≈虚g的 60176。作為障礙判斷依據(jù),如圖 所示。為了更好的實(shí)現(xiàn)避障功能,使避障時(shí)機(jī)器人的轉(zhuǎn)向與下面將要講到的沿墻走路徑規(guī)劃有效的結(jié)合起來,以達(dá)到巡視時(shí)的最佳效果,現(xiàn)我們將這 60176。的范圍分成左右各 30176。(即 60176。~90176。和 90176。~120176。) 。當(dāng)激光檢測到 60176。~90176。范圍內(nèi)有障礙物且只小于 500 的安全距離時(shí),機(jī)器人向左轉(zhuǎn),如圖 (a )所示;當(dāng)激光檢測到 90176。~120176。范圍內(nèi)有障礙物且只小于 500mm 的安全距離時(shí),機(jī)器人向右轉(zhuǎn),如圖 (b)所示。這樣就實(shí)現(xiàn)了機(jī)器人的避障功能。圖 激光探測示意圖寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)12避障示意圖如下所示:圖 (a ) 機(jī)器人避障示意圖圖 (b) 機(jī)器人避障示意圖 避障程序根據(jù)機(jī)器人獲取來的激光傳感器數(shù)據(jù),結(jié)合我們選擇的避障方法,按照我們的要求編寫的避障程序。(1)當(dāng)激光檢測到 60176。~90176。范圍內(nèi)有障礙物且只小于 500mm 的安全距離時(shí),機(jī)器人向左轉(zhuǎn)的避障程序如下圖所示。寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)3 int laserCount = 。 for (int i = laserCount / 3。 i laserCount / 2。 i++) {if ([i] 500) { (, )。 LogInfo(Obstacle Avoid!)。Activate((false, _dateTimePort, UpdateLaser))。 ((200), _dateTimePort)。 yield break。 } }圖 避障程序int laserCount = 。圖 這條語句是將存放在 sensorState 的 DistanceMeasurements 屬性中的激光數(shù)據(jù)賦值給我們設(shè)的整型變量 laserCount。int i = laserCount/3。 i laserCount/2。i++圖 這條語句是實(shí)現(xiàn)取激光數(shù)據(jù) 60176。~90176。的范圍的數(shù)據(jù)。if ([i] 500) { (, )。 LogInfo(Obstacle Avoid!)。Activate((false, _dateTimePort, UpdateLaser))。 ((200), _dateTimePort)。 yield break。 }圖 這段程序是實(shí)現(xiàn)避障,當(dāng)機(jī)器人與障礙物的距離小于 500mm 時(shí),機(jī)器人的右輪子的速度就減小,而左輪子的速度不變,這樣就實(shí)現(xiàn)了機(jī)器人向左轉(zhuǎn);當(dāng)機(jī)器人與障礙物的距離大于 500mm 時(shí),機(jī)器人左右輪的速度保持不變且一樣,這樣機(jī)器人就直線前進(jìn)。寧波大學(xué)信息科學(xué)與工程學(xué)院本科畢業(yè)設(shè)計(jì)(論文)14Activate((false, _dateTimePort, UpdateLaser))。((200), _dateTimePort)。圖 這兩條程序是用來刷新激光數(shù)據(jù),這里我們設(shè)定的定時(shí)器定時(shí)時(shí)間是 200ms,即。每隔 就刷新一次激光數(shù)據(jù),這樣就可以達(dá)到實(shí)時(shí)采集激光數(shù)據(jù)的目的了,使機(jī)器人更好的完成避障任務(wù)。(2)當(dāng)激光檢測到 90176。~120176。范圍內(nèi)有障礙物且只小于 500 的安全距離時(shí),機(jī)器人向右轉(zhuǎn)的避障程序如下圖所示。for (int i = laserCount / 2。 i 2 * laserCount / 3。 i++){if ([i] 500) {(, )。LogInfo(Obstacle Avoid!)。Activate((false, _dateTimePort, UpdateLaser))。 ((200), _dateTimePort)。 yield break。 }}圖 這種情況與(1)的情況相似,程序解釋請參照上面解釋,在此不再進(jìn)行累述。在這里,我們用到了差分驅(qū)動(dòng)輪的消息端口_simulatedDifferentialDriveServicePort,并根據(jù)激光數(shù)據(jù)向其發(fā)送驅(qū)動(dòng)參數(shù)。 路徑規(guī)劃路徑規(guī)劃是機(jī)器人在室內(nèi)進(jìn)行巡視的基本環(huán)節(jié)。它所要達(dá)到的目的是使機(jī)器人在存在障礙物的環(huán)境中,按照一定的標(biāo)準(zhǔn),尋找
點(diǎn)擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1