資料介紹
描述
介紹
由于當(dāng)前的大流行情況,很難在工作場(chǎng)所四處走動(dòng),或者購(gòu)買一些雜貨,甚至是與家人和朋友的小型聚會(huì)。這個(gè)問(wèn)題的唯一原因是還沒(méi)有找到疫苗。但仍然繼續(xù)我們的日常任務(wù),沒(méi)有任何威脅評(píng)估。因此,我們需要設(shè)計(jì)一個(gè)解決方案來(lái)解決這個(gè)問(wèn)題,在使用辦公室和家庭空間之前提前對(duì)它們進(jìn)行消毒,以減少感染非常危險(xiǎn)的冠狀病毒的威脅。
解決方案
我們提出的這個(gè)問(wèn)題的解決方案是安裝有我們定制設(shè)計(jì)的 UV-C 光機(jī)制的自主流動(dòng)站。它將配備 UV-C 燈,并具有遠(yuǎn)程控制的能力。主要功能是自動(dòng)對(duì)已知空間進(jìn)行消毒,這是使用安裝在漫游車上的 LidaR 傳感器完成的。
此外,這款 UV-C Rover 能夠進(jìn)入小型辦公室的角落,利用其擴(kuò)散到每個(gè)角落、墻壁和桌子下方的紫外線對(duì)這個(gè)地方進(jìn)行消毒。最優(yōu)先考慮的是保護(hù)人們免受這些病毒的侵害。靈活的機(jī)制幫助我們實(shí)現(xiàn)了這一壯舉。
現(xiàn)在,讓我們從項(xiàng)目開(kāi)始。我們將分兩部分介紹整個(gè)項(xiàng)目:
1.機(jī)械設(shè)計(jì)理解
2. 項(xiàng)目的電子部分
所以,讓我們從漫游者的機(jī)械部分開(kāi)始。我們將詳細(xì)討論 Rover 的設(shè)計(jì)、我們的 UV-C 光控制機(jī)構(gòu)的設(shè)計(jì)以及其他部分。
機(jī)械設(shè)計(jì)理解
設(shè)計(jì)理解包括兩個(gè)主要部分:
- Rover-Rocker 轉(zhuǎn)向架機(jī)構(gòu)
- 絲杠機(jī)構(gòu)
我們將首先從搖桿轉(zhuǎn)向架機(jī)制開(kāi)始。
Rover 有六個(gè)輪子,每個(gè)輪子都有自己的電機(jī)。兩個(gè)前輪和兩個(gè)后輪也有單獨(dú)的轉(zhuǎn)向電機(jī)。這種轉(zhuǎn)向能力允許車輛在原地轉(zhuǎn)動(dòng),完整的 360 度。四輪轉(zhuǎn)向還允許漫游車轉(zhuǎn)彎和彎曲,進(jìn)行拱形轉(zhuǎn)彎。搖桿,在流動(dòng)站的左右各一個(gè),將前輪連接到差速器和后部的轉(zhuǎn)向架。轉(zhuǎn)向架將中輪和后輪連接到搖桿。搖桿轉(zhuǎn)向架機(jī)構(gòu)也提供了最大的穩(wěn)定性。T6 級(jí)鋁材因其非常好的強(qiáng)度重量比和良好的機(jī)械加工特性而被選作漫游車結(jié)構(gòu)件的材料。機(jī)器人的方向是通過(guò)控制器和配電板提供給電機(jī)的軟件命令來(lái)控制的。
流動(dòng)站尺寸(長(zhǎng) x 寬 x 高):0.725 x 0.460 x 0.440 m

轉(zhuǎn)向機(jī)構(gòu):
所有六個(gè)輪子均由 Johnson DC Motors 提供動(dòng)力,用于前進(jìn)和后退運(yùn)動(dòng)。此外,兩個(gè)前輪和兩個(gè)后輪還有一個(gè)自由度,配備 NEMA 23 步進(jìn)電機(jī),用于轉(zhuǎn)向和現(xiàn)場(chǎng)旋轉(zhuǎn)。結(jié)果,前后輪將圍繞垂直軸旋轉(zhuǎn)。其布置如圖(2、3)所示。

為什么是絲杠?
基于液壓和氣動(dòng)的機(jī)構(gòu)也是一種選擇,但流動(dòng)站是具有移動(dòng)性的小型設(shè)備,因此使用液壓和氣動(dòng)將成為其工作的障礙;不僅如此,液壓和氣動(dòng)回路的尺寸更大且難以維護(hù),這與該項(xiàng)目的有效目標(biāo)相矛盾。此外,它們非常昂貴,也阻礙了項(xiàng)目的成本效益。
主要的選擇標(biāo)準(zhǔn)是緊湊的尺寸、簡(jiǎn)單的設(shè)計(jì)和低成本,所有這些都是通過(guò)絲杠機(jī)構(gòu)完成的。除此之外,絲杠具有自鎖機(jī)構(gòu),如果直流減速電機(jī)出現(xiàn)故障,該機(jī)構(gòu)將提供幫助,并提供更大的機(jī)械優(yōu)勢(shì)。絲杠機(jī)構(gòu)所需的零件數(shù)量少,承載能力大。此外,它們易于維護(hù)和制造的事實(shí)降低了流動(dòng)站的總體成本,從而增加了人們購(gòu)買產(chǎn)品的可及性。
絲杠機(jī)構(gòu)
絲杠機(jī)構(gòu)將滿足功能要求,即 UV 源板的速度和提升量。絲杠機(jī)構(gòu)的主要優(yōu)點(diǎn)是垂直高度的增益。這個(gè)絲杠可以達(dá)到 4 英尺半的高度,幾乎可以到達(dá)天花板。
絲杠機(jī)構(gòu)的結(jié)構(gòu)如下:機(jī)構(gòu)應(yīng)位于的底板。絲杠使用皮帶傳動(dòng)與齒輪直流電機(jī)連接,皮帶傳動(dòng)反過(guò)來(lái)旋轉(zhuǎn)絲杠。
總共有 3 個(gè)支架用于固定和穩(wěn)定,其中一個(gè)用于引導(dǎo),這是限制頂板旋轉(zhuǎn)所必需的。隨著UV板連續(xù)上下線性移動(dòng),它將逐漸去除固體表面的材料。因此,最好使用耐磨材料進(jìn)行導(dǎo)向。耐磨材料具有良好的優(yōu)點(diǎn),例如在給定成本下使用壽命更長(zhǎng)、噪音水平更低、驅(qū)動(dòng)功率消耗更低以及桿上的磨損更均勻。為指南選擇的材料是磷青銅。

紫外線燈水平放置;將其水平放置的原因在于,與垂直放置在板上相比,它將覆蓋更多的區(qū)域,這反過(guò)來(lái)又增加了有效的體積暴露,并減少了對(duì)特定區(qū)域進(jìn)行消毒的時(shí)間。

?
集體機(jī)制
流動(dòng)站是一種自主設(shè)備,能夠根據(jù)周圍的不同情況采取行動(dòng)。這些功能是通過(guò)在漫游車上安裝多個(gè)傳感器來(lái)實(shí)現(xiàn)的。流動(dòng)站中央由 Jetson Nano 控制,Jetson Nano 是一款緊湊且功能強(qiáng)大的臺(tái)式機(jī),具有卡片大小的外形尺寸。為了檢測(cè)周圍環(huán)境,Rover 使用了一個(gè) LiDAR 傳感器,該傳感器位于絲杠上板頂部的高處,可以 360 度檢測(cè)該區(qū)域周圍的情況。它不斷收集數(shù)據(jù)并將其發(fā)送給 Nano,Nano 會(huì)做出不同的決定,例如 Rover 需要移動(dòng)的速度和方向。一旦獲取數(shù)據(jù)并且漫游車移動(dòng),然后使用安裝在漫游車各處的超聲波傳感器檢測(cè)障礙物,使其能夠立即檢測(cè)任何障礙物,無(wú)論是靜止的還是移動(dòng)的,并立即采取行動(dòng),例如停止或改變方向。另一個(gè)特點(diǎn)是它會(huì)記住每次所走的路徑,因此只需在前幾次手動(dòng)控制它就可以訓(xùn)練它在特定房間中移動(dòng),然后讓它使用自己創(chuàng)建的地圖進(jìn)行導(dǎo)航。
現(xiàn)在最重要的過(guò)程是通過(guò)紫外線進(jìn)行消毒。為什么是紫外線?原因在于紫外線波長(zhǎng)更短,能量更高,足以殺死有害細(xì)菌和細(xì)菌。它在去污方面非常有效,因?yàn)樗茐牧藢⒉《竞图?xì)菌(包括對(duì)抗生素產(chǎn)生更強(qiáng)抗性的“超級(jí)細(xì)菌”)的 DNA 結(jié)合在一起的分子鍵。將紫外線用于衛(wèi)生設(shè)施已在臨床上被批準(zhǔn)用于家庭和辦公室用途。
由于流動(dòng)站的占地面積更小,因此它可以到達(dá)更小更緊湊的空間來(lái)對(duì)該區(qū)域進(jìn)行消毒。由于使用了強(qiáng)大的傳感器,運(yùn)動(dòng)和檢測(cè)變得更加精確。使用的傳感器還可以檢測(cè)其附近最常觸摸的物體,從而更容易確定對(duì)特定區(qū)域進(jìn)行消毒所需的時(shí)間和時(shí)間。有趣的部分是它還對(duì)它所追蹤的路徑進(jìn)行了消毒,這樣附著在漫游車車輪上的細(xì)菌或細(xì)菌就不會(huì)傳播。這是流動(dòng)站使用標(biāo)準(zhǔn)零件制造的,這些零件在市場(chǎng)上很容易買到,便于更換和維護(hù)。
為了計(jì)算流動(dòng)站與待消毒表面之間的距離,我們將使用高精度超聲波傳感器。

如圖所示,系統(tǒng)的整體尺寸確保了系統(tǒng)可以到達(dá)房間的每個(gè)角落,并且可以通過(guò)標(biāo)準(zhǔn)的浴室隔間門。

這完成了該項(xiàng)目的機(jī)械設(shè)計(jì)理解部分。現(xiàn)在,我們將繼續(xù)進(jìn)行電子設(shè)置,并使用激光雷達(dá)傳感器設(shè)置我們的 Nano,并連接一個(gè)從處理器(一個(gè) Arduino Mega)并將所有基本傳感器也連接到它。
電子部分 - 硬件和軟件設(shè)置
首先,我們將看到用于該項(xiàng)目的硬件組件的詳細(xì)信息。
所需硬件
1. Jetson Nano 開(kāi)發(fā)套件。NVIDIA? Jetson Nano? 開(kāi)發(fā)人員套件是一款功能強(qiáng)大的小型計(jì)算機(jī),可讓您并行運(yùn)行多個(gè)神經(jīng)網(wǎng)絡(luò),用于圖像分類、對(duì)象檢測(cè)、分割和語(yǔ)音處理等應(yīng)用。一切都在一個(gè)易于使用的平臺(tái)中,運(yùn)行功耗低至 5 瓦。

2. SlamTec RP-LIDAR A1:RPLIDAR A1 是由 Slamtec 開(kāi)發(fā)的低成本 360 度 2D 激光掃描儀(LIDAR)解決方案。系統(tǒng)可在 6 米范圍內(nèi)進(jìn)行 360 度掃描。生成的 2D 點(diǎn)云數(shù)據(jù)可用于制圖、定位和對(duì)象/環(huán)境建模。
RPLIDAR A1 的掃描頻率在每輪采樣 360 個(gè)點(diǎn)時(shí)達(dá)到 5.5 Hz。最高可配置為 10 Hz。RPLIDAR A1 基本上是一個(gè)激光三角測(cè)量系統(tǒng)。它可以在各種室內(nèi)環(huán)境和沒(méi)有陽(yáng)光的室外環(huán)境中出色地工作。

鋰聚合物電池,或更準(zhǔn)確地說(shuō)是鋰離子聚合物電池(縮寫(xiě)為LiPo 、LIP 、Li-poly 、Limit-poly等),是一種使用聚合物電解質(zhì)代替液體電解質(zhì)的鋰離子技術(shù)的可充電電池。高電導(dǎo)率半固體(凝膠)聚合物形成這種電解質(zhì)。這些電池比其他鋰電池類型提供更高的比能量,并用于重量是關(guān)鍵特征的應(yīng)用,如移動(dòng)設(shè)備和無(wú)線電遙控飛機(jī)。
我們將為我們的漫游車使用鋰聚合物電池或鋰聚合物電池。最初的建議是使用 2 節(jié)電池為整個(gè)火星車供電,每節(jié)電池的額定電壓為 13 V,電池容量超過(guò) 5000 mAh。
4. 超聲波避障傳感器

超聲波傳感器是一種電子設(shè)備,它通過(guò)發(fā)射超聲波來(lái)測(cè)量目標(biāo)物體的距離,并將反射的聲音轉(zhuǎn)換成電信號(hào)。超聲波的傳播速度比可聽(tīng)聲音(即人類可以聽(tīng)到的聲音)的速度更快。超聲波傳感器有兩個(gè)主要組件:發(fā)射器(使用壓電晶體發(fā)出聲音)和接收器(在聲音往返于目標(biāo)后遇到聲音)。
為了計(jì)算傳感器與物體之間的距離,傳感器測(cè)量從發(fā)射器發(fā)出聲音到與接收器接觸之間的時(shí)間。該計(jì)算公式為D = ? T x C(其中 D 是距離,T 是時(shí)間,C 是聲速 ~ 343 米/秒)。
對(duì)于我們的漫游車,我們將使用許多此類傳感器,這些傳感器將持續(xù)收集數(shù)據(jù),并根據(jù)這些數(shù)據(jù),檢測(cè)漫游車周圍存在的任何障礙物并采取必要的行動(dòng),例如停止漫游車或改變漫游車的方向.
HC-SR04 Sensor Features
- 工作電壓:+5 V
- 理論測(cè)量距離:2 cm 至 450 cm
- 實(shí)際測(cè)量距離:2 厘米至 80 厘米
- 精度:3 毫米
- 覆蓋的測(cè)量角度:<15°
- 工作電流:< 15 mA
- 工作頻率:40赫茲
5. Arduino Mega 作為從機(jī)微控制器

Arduino Mega 2560是基于 AtMega2560 的微控制器板。它有 54 個(gè)數(shù)字輸入/輸出引腳(其中 15 個(gè)可用作 PWM 輸出)、16 個(gè)模擬輸入、4 個(gè) UART(硬件串行端口)、一個(gè) 16 MHz 晶體振蕩器、一個(gè) USB 連接、一個(gè)電源插孔、一個(gè) ICSP 接頭、和一個(gè)重置按鈕。它包含支持微控制器所需的一切;只需使用 USB 電纜將其連接到計(jì)算機(jī)或使用 AC-DC 適配器或電池為其供電即可開(kāi)始使用。
在我們的漫游車中,Mega 將作為 Jetson Nano 的從屬設(shè)備連接。它將運(yùn)行一個(gè)最小版本的 ROS,由于它有大量的 IO 引腳、IMU、超聲波傳感器、GPS 傳感器和電機(jī)驅(qū)動(dòng)器,它將與所有傳感器和電機(jī)連接。它將收集傳感器數(shù)據(jù)并不斷將其發(fā)布在相關(guān)編程的 ROS 主題上,以便 Jetson Nano 可以根據(jù)這些數(shù)據(jù)做出決策并指示 Mega 相應(yīng)地控制電機(jī)。
現(xiàn)在,我們將使用下表詳細(xì)了解 Arduino Mega 的技術(shù)規(guī)格。

6. IMU 方向檢測(cè)傳感器

慣性測(cè)量單元( IMU ) 是一種電子設(shè)備,它使用加速度計(jì)、陀螺儀和磁力計(jì)的組合來(lái)測(cè)量和報(bào)告身體的特定力、角速率,有時(shí)還包括身體的方向。IMU 通常用于操縱飛機(jī)(一種姿態(tài)和航向參考系統(tǒng)),包括無(wú)人駕駛飛行器 (UAV) 等,以及包括衛(wèi)星和著陸器在內(nèi)的航天器。最近的發(fā)展允許生產(chǎn)支持 IMU 的 GPS 設(shè)備。IMU 允許 GPS 接收器在 GPS 信號(hào)不可用時(shí)工作,例如在隧道中、建筑物內(nèi)或存在電子干擾時(shí)。無(wú)線 IMU 被稱為 WIMU。
我們?cè)陧?xiàng)目中使用 IMU 來(lái)確定我的漫游車將移動(dòng)的方向。這是我們的漫游車支持的自主導(dǎo)航的必要條件。
7. GPS模塊獲取機(jī)器人當(dāng)前位置
我們使用 GPS 傳感器在我們的機(jī)器人中添加導(dǎo)航功能。我們想創(chuàng)建一個(gè)系統(tǒng),在這個(gè)系統(tǒng)中,我們只需向機(jī)器人提供目的地坐標(biāo),漫游車將完成剩下的工作,即計(jì)算從當(dāng)前位置到目的地的路徑、避障和感知它前進(jìn)的方向。
這只有在漫游車上有一個(gè) GPS 傳感器時(shí)才有可能,這樣它就可以在任何給定的時(shí)刻感知其當(dāng)前位置與目的地之間的距離,并檢測(cè)它何時(shí)到達(dá)目的地,這是停止的指示。
8.馬達(dá)
對(duì)于不同的設(shè)計(jì),電機(jī)也會(huì)有所不同,所以我也像電機(jī)驅(qū)動(dòng)器一樣保持這個(gè)狀態(tài)。
軟件設(shè)置
現(xiàn)在來(lái)了有趣且相當(dāng)乏味的任務(wù),即項(xiàng)目的軟件部分!此設(shè)置分為幾個(gè)部分,讓我們開(kāi)始吧。
i) Nano 上的操作系統(tǒng)設(shè)置
首先,當(dāng)我們開(kāi)箱即用 Nano 時(shí),我們需要安裝操作系統(tǒng)。只需按照下面鏈接的教程進(jìn)行操作即可。
ii) 在 Nano 上安裝 ROS
這是棘手的部分。Linux 上安裝 ROS 的教程有很多,但是大部分都已經(jīng)過(guò)時(shí)了,所以我不得不花很多時(shí)間來(lái)弄清楚這一點(diǎn)。
需要注意的一些重要事項(xiàng):
首先,大多數(shù)教程都介紹了ROS Kinetic 的安裝,但它已經(jīng)過(guò)時(shí),因此您不能直接使用 pip install 安裝它。因此,我們將不得不使用ROS Melodic 完整桌面版。
- 首先,大多數(shù)教程都介紹了ROS Kinetic 的安裝,但它已經(jīng)過(guò)時(shí),因此您不能直接使用 pip install 安裝它。因此,我們將不得不使用ROS Melodic 完整桌面版。
因此,只需按照下面的本教程進(jìn)行操作,但將 kinetic 替換為 Melodic。
- 因此,只需按照下面的本教程進(jìn)行操作,但將 kinetic 替換為 Melodic。
如果一切順利,您將能夠看到 catkin_ws 文件夾有 3 個(gè)子文件夾,您可以在此使用catkin_make命令成功編譯。
此外,您可以在終端中運(yùn)行命令“roscore”來(lái)啟動(dòng) ROS 服務(wù)。
iii) 設(shè)置軟件來(lái)運(yùn)行我們的汽車
現(xiàn)在,我們必須安裝運(yùn)行流動(dòng)站所需的所有依賴項(xiàng)。因此,只需按照以下教程進(jìn)行設(shè)置:
1.安裝依賴
SSH 進(jìn)入您的車輛。使用 Ubuntu 或 Mac 的終端。膩?zhàn)?/font>或窗戶。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential python3 python3-dev python3-pip libhdf5-serial-dev hdf5-tools nano ntp
或者,您可以從此處為 Jetson Nano 安裝 RPi.GPIO 克隆。這不是默認(rèn)設(shè)置所必需的,但在使用 LED 或其他 GPIO 驅(qū)動(dòng)的設(shè)備時(shí)會(huì)很有用。
2.設(shè)置虛擬環(huán)境
pip3 install virtualenv
python3 -m virtualenv -p python3 env --system-site-packages
echo "source env/bin/activate" >> ~/.bashrc
source ~/.bashrc
3.安裝OpenCV
要在 Jetson Nano 上安裝 Open CV,您需要從源代碼構(gòu)建它。從源代碼構(gòu)建 OpenCV 需要一些時(shí)間,所以請(qǐng)放心。如果你遇到困難,這里我是另一個(gè)很好的資源,可以幫助你編譯 OpenCV。
注意:在某些情況下,Python OpenCV 可能已經(jīng)安裝在您的光盤映像中。如果文件存在,您可以選擇將其復(fù)制到您的環(huán)境中,而不是從源代碼構(gòu)建。Nvidia 已經(jīng)表示他們將放棄對(duì)此的支持,因此從長(zhǎng)遠(yuǎn)來(lái)看,我們可能會(huì)構(gòu)建它。如果這有效:
mkdir ~/mycar cp /usr/lib/python3.6/dist-packages/cv2.cpython-36m-aarch64-linux-gnu.so ~/mycar/ cd ~/mycar python -c "import cv2"
然后你有一個(gè)工作版本,可以跳過(guò)指南的這一部分。但是,遵循本指南的交換文件部分可以使性能更加可預(yù)測(cè)并解決內(nèi)存抖動(dòng)問(wèn)題。
注意:在某些情況下,Python OpenCV 可能已經(jīng)安裝在您的光盤映像中。如果文件存在,您可以選擇將其復(fù)制到您的環(huán)境中,而不是從源代碼構(gòu)建。Nvidia 已經(jīng)表示他們將放棄對(duì)此的支持,因此從長(zhǎng)遠(yuǎn)來(lái)看,我們可能會(huì)構(gòu)建它。如果這有效:
mkdir ~/mycar cp /usr/lib/python3.6/dist-packages/cv2.cpython-36m-aarch64-linux-gnu.so ~/mycar/ cd ~/mycar python -c "import cv2"
然后你有一個(gè)工作版本,可以跳過(guò)指南的這一部分。但是,遵循本指南的交換文件部分可以使性能更加可預(yù)測(cè)并解決內(nèi)存抖動(dòng)問(wèn)題。
構(gòu)建 OpenCV 的第一步是在 Jetson Nano 上定義交換空間。Jetson Nano 有 4GB 的 RAM。這不足以從源代碼構(gòu)建 OpenCV。因此我們需要在 Nano 上定義交換空間以防止內(nèi)存抖動(dòng)。
# Allocates 4G of additional swap space at /var/swapfile
sudo fallocate -l 4G /var/swapfile
# Permissions
sudo chmod 600 /var/swapfile
# Make swap space
sudo mkswap /var/swapfile
# Turn on swap
sudo swapon /var/swapfile
# Automount swap space on reboot
sudo bash -c 'echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab'
# Reboot
sudo reboot
現(xiàn)在你應(yīng)該有足夠的交換空間來(lái)構(gòu)建 OpenCV。讓我們使用構(gòu)建 OpenCV 的先決條件來(lái)設(shè)置 Jetson Nano。
# Update
sudo apt-get update
sudo apt-get upgrade
# Pre-requisites
sudo apt-get install build-essential cmake unzip pkg-config
sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libgtk-3-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install python3-dev
現(xiàn)在您應(yīng)該具備所需的所有先決條件。所以,讓我們繼續(xù)下載 OpenCV 的源代碼。
# Create a directory for opencv
mkdir -p projects/cv2
cd projects/cv2
# Download sources
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.1.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.1.0.zip
# Unzip
unzip opencv.zip
unzip opencv_contrib.zip
# Rename
mv opencv-4.1.0 opencv
mv opencv_contrib-4.1.0 opencv_contrib
讓我們?yōu)?OpenCV 準(zhǔn)備好我們的虛擬環(huán)境 (env)。
# Install Numpy
pip install numpy==1.16.4
現(xiàn)在讓我們正確設(shè)置 CMake,以便它為我們的虛擬環(huán)境生成正確的 OpenCV 綁定。
# Create a build directory
cd projects/cv2/opencv
mkdir build
cd build
# Setup CMake
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
# Contrib path
-D OPENCV_EXTRA_MODULES_PATH=~/projects/cv2/opencv_contrib/modules \
# Your virtual environment's Python executable
# You need to specify the result of echo $(which python)
-D PYTHON_EXECUTABLE=~/env/bin/python \
-D BUILD_EXAMPLES=ON ../opencv
cmake 命令應(yīng)顯示配置摘要。確保解釋器設(shè)置為與您的virtualenv 關(guān)聯(lián)的 Python 可執(zhí)行文件。注意:CMake 設(shè)置中有多個(gè)路徑,請(qǐng)確保它們與您下載和保存 OpenCV 源的位置相匹配。
要從 build 文件夾編譯代碼,請(qǐng)發(fā)出以下命令。
make -j2
這需要一段時(shí)間。去喝杯咖啡,或者看場(chǎng)電影。一旦編譯完成,你就差不多完成了。只有幾步之遙。
# Install OpenCV
sudo make install
sudo ldconfig
最后一步是將構(gòu)建的 OpenCV 本機(jī)庫(kù)正確鏈接到您的 virtualenv。
本機(jī)庫(kù)現(xiàn)在應(yīng)該安裝在類似于 /usr/local/lib/python3.6/site-packages/cv2/python-3.6/cv2.cpython-36m-xxx-linux-gnu.so 的位置。
# Go to the folder where OpenCV's native library is built
cd /usr/local/lib/python3.6/site-packages/cv2/python-3.6
# Rename
mv cv2.cpython-36m-xxx-linux-gnu.so cv2.so
# Go to your virtual environments site-packages folder
cd ~/env/lib/python3.6/site-packages/
# Symlink the native library
ln -s /usr/local/lib/python3.6/site-packages/cv2/python-3.6/cv2.so cv2.so
恭喜!您現(xiàn)在已完成從源代碼編譯 OpenCV。
快速檢查您是否正確執(zhí)行了所有操作
ls -al
你應(yīng)該看到一些看起來(lái)像的東西
total 48
drwxr-xr-x 10 user user 4096 Jun 16 13:03 .
drwxr-xr-x 5 user user 4096 Jun 16 07:46 ..
lrwxrwxrwx 1 user user 60 Jun 16 13:03 cv2.so -> /usr/local/lib/python3.6/site-packages/cv2/python-3.6/cv2.so
-rw-r--r-- 1 user user 126 Jun 16 07:46 easy_install.py
drwxr-xr-x 5 user user 4096 Jun 16 07:47 pip
drwxr-xr-x 2 user user 4096 Jun 16 07:47 pip-19.1.1.dist-info
drwxr-xr-x 5 user user 4096 Jun 16 07:46 pkg_resources
drwxr-xr-x 2 user user 4096 Jun 16 07:46 __pycache__
drwxr-xr-x 6 user user 4096 Jun 16 07:46 setuptools
drwxr-xr-x 2 user user 4096 Jun 16 07:46 setuptools-41.0.1.dist-info
drwxr-xr-x 4 user user 4096 Jun 16 07:47 wheel
drwxr-xr-x 2 user user 4096 Jun 16 07:47 wheel-0.33.4.dist-info
要測(cè)試 OpenCV 安裝,請(qǐng)運(yùn)行 python 并執(zhí)行以下操作
import cv2
# Should print 4.1.0
print(cv2.__version__)
iv) 設(shè)置 Rp-Lidar A1
現(xiàn)在其他一切都已完成,剩下的唯一設(shè)置就是我們的激光雷達(dá)傳感器。首先,讓我們了解一下我們正在使用的設(shè)備:
關(guān)于 RPLIDAR
RPLIDAR 是由 SlamTec 公司 RoboPeak Team 開(kāi)發(fā)的低成本二維激光雷達(dá)解決方案。它可以掃描 6 米半徑內(nèi)的 360° 環(huán)境。RPLIDAR 的輸出非常適合構(gòu)建地圖、做 slam 或構(gòu)建 3D 模型。
您可以從 SlamTec 主頁(yè) 了解有關(guān) rplidar 的更多信息。
您可以從 SlamTec 主頁(yè)了解更多關(guān)于 rplidar 的信息。
如何構(gòu)建 rplidar ROS 包
- 將此項(xiàng)目克隆到你的 catkin 的工作區(qū) src 文件夾
- 運(yùn)行 catkin_make 構(gòu)建 rplidarNode 和 rplidarNodeClient
如何運(yùn)行 rplidar ros 包
檢查rplidar的串口權(quán)限:
ls -l /dev |grep ttyUSB
添加寫(xiě)權(quán)限:(如/dev/ttyUSB0)
sudo chmod 666 /dev/ttyUSB0
有兩種方法可以運(yùn)行 rplidar ROS 包
一、運(yùn)行rplidar節(jié)點(diǎn),在rviz中查看
roslaunch rplidar_ros view_rplidar.launch
您應(yīng)該在 rviz 中看到 rplidar 的掃描結(jié)果。
二、運(yùn)行 rplidar 節(jié)點(diǎn)并使用測(cè)試應(yīng)用程序查看
roslaunch rplidar_ros rplidar.launch
rosrun rplidar_ros rplidarNodeClient
您應(yīng)該在控制臺(tái)中看到 rplidar 的掃描結(jié)果
如何重新映射 USB 串口名稱
也許您應(yīng)該更改具有讀寫(xiě)權(quán)限的usb設(shè)備端口模式,而不是使端口重新映射為固定名稱。安裝 USB 端口重映射:./scripts/create_udev_rules.sh
也許您應(yīng)該更改具有讀寫(xiě)權(quán)限的usb設(shè)備端口模式,而不是使端口重新映射為固定名稱。安裝 USB 端口重映射:./scripts/create_udev_rules.sh
使用以下命令檢查重映射:
ls -l /dev | grep ttyUSB
使用以下命令檢查重映射:
ls -l /dev | grep ttyUSB
更改 USB 端口重映射后,您可以更改有關(guān) serial_port 值的啟動(dòng)文件。
更改 USB 端口重映射后,您可以更改有關(guān) serial_port 值的啟動(dòng)文件。
RPLidar 框架
RPLidar 幀必須按照 rplidar-frame.png 中顯示的圖片進(jìn)行廣播
如何將 rplidar 安裝到您的機(jī)器人上
rplidar 順時(shí)針?lè)较蛐D(zhuǎn)。第一個(gè)范圍來(lái)自前面(帶有線的尾部)。
rplidar 順時(shí)針?lè)较蛐D(zhuǎn)。第一個(gè)范圍來(lái)自前面(帶有線的尾部)。
將激光雷達(dá)傳感器安裝到機(jī)器人上時(shí),請(qǐng)記住其方向。這是軸的樣子:

現(xiàn)在已經(jīng)完成了,只需嘗試運(yùn)行示例啟動(dòng)文件“view_rplidar”并查看 rviz 中主題“/scan”的掃描結(jié)果。它看起來(lái)像這樣:

Rviz 可視化
現(xiàn)在,為了向我們的應(yīng)用程序添加 slam,有幾種可用的算法。但是,我們?yōu)槲覀兊捻?xiàng)目選擇了Hector Slam 。那么,讓我們繼續(xù):
Jetson Nano 的 Hector Slam 設(shè)置
我們不能像對(duì) rplidar 那樣使用 Hector slam is the nano 的原生 git hub 存儲(chǔ)庫(kù)。我們需要對(duì) Hector slam 文件進(jìn)行一些更改以使其啟動(dòng)并運(yùn)行。首先,這是您需要運(yùn)行的命令:
cd catkin_ws/src/
git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam
現(xiàn)在,在它被克隆之后,我們需要進(jìn)行以下更改:
在 catkin_ws/src/rplidar_hector_slam/hector_slam/hector_mapping/launch/mapping_default.launch
用替換倒數(shù)第二行
第三行
第四行
在 catkin_ws/src/rplidar_hector_slam/hector_slam/hector_slam_launch/launch/tutorial.launch
將第三行替換為
現(xiàn)在這些更改已經(jīng)完成,我們可以繼續(xù)運(yùn)行以下命令:
cd ..
catkin_make
現(xiàn)在,如果一切按計(jì)劃進(jìn)行,這將成功編譯。這意味著我們已經(jīng)準(zhǔn)備好在我們的 Nano 上運(yùn)行 hector slam。請(qǐng)按照以下步驟操作:
- 從: http ://wiki.ros.org/kinetic/Installation/Ubuntu 安裝 ROS 完整桌面版本(在 Kinetic 上測(cè)試)
- 創(chuàng)建catkin工作區(qū):http ://wiki.ros.org/ROS/Tutorials/CreatingPackage
- 將此存儲(chǔ)庫(kù)克隆到您的 catkin 工作區(qū)
- 在你的 catkin 工作區(qū)運(yùn)行 source /devel/setup.bash
運(yùn)行chmod 666 /dev/ttyUSB0
或激光雷達(dá)的串行路徑
-
跑
roslaunch rplidar_ros rplidar.launch
-
運(yùn)行 r
oslaunch hector_slam_launch tutorial.launch
- RVIZ 應(yīng)該打開(kāi) SLAM 數(shù)據(jù)
RVIZ Slam 數(shù)據(jù)將如下所示:

因此,現(xiàn)在我們的系統(tǒng)可以映射周圍環(huán)境。這是一項(xiàng)正在進(jìn)行的工作,很快就會(huì)添加新功能。
現(xiàn)在,讓我們看一下我們將用于該項(xiàng)目的 UV-C 燈規(guī)格:
UV-C 規(guī)格
UV-C Rover 是帶輪子的消毒系統(tǒng),用于對(duì)房間進(jìn)行消毒。UV-C Rover 上安裝了 2 個(gè)直徑為 T18、帶有 2 針雙端子的 25 瓦 UV-C 燈。每盞燈的平均 UV-C 殺菌波段為 25 nm,在一米距離處的發(fā)射量為 90 μW/cm2。

材料清單
現(xiàn)在,我們將粗略估算一下建造整個(gè)項(xiàng)目的成本。正如我們上面所做的那樣,我們將 BOM 分為兩部分:
1.機(jī)械部件

2.電子元件

因此,從上面的 BOM 表中可以看出,我們基本上可以用不到 800 美元的價(jià)格構(gòu)建一個(gè)功能齊全的原型。實(shí)際上,我們實(shí)際上已經(jīng)構(gòu)建了帶有火箭轉(zhuǎn)向架機(jī)構(gòu)的第一個(gè)漫游者原型,其圖像如下所示:
我們目前正在研究梯形絲杠機(jī)構(gòu),并使用我們用于該項(xiàng)目的 UV-C 燈進(jìn)行測(cè)試。我們將很快更新所有細(xì)節(jié)。代碼也在進(jìn)行中,git repo 將很快更新。
這完成了我們的項(xiàng)目解釋。請(qǐng)喜歡并分享這個(gè)項(xiàng)目。
謝謝你!
- 電暈消毒紫外線機(jī)器人開(kāi)源分享
- 消毒機(jī)器人Hanth-x1開(kāi)源分享
- 使用UVC和垃圾場(chǎng)材料的自主消毒機(jī)器人
- Pinaka:UVD(紫外線消毒)機(jī)器人開(kāi)源分享
- LIDIA光消毒機(jī)開(kāi)源分享
- 全自動(dòng)UV-C消毒機(jī)器人開(kāi)源分享
- 紫外線消毒機(jī)器人
- 消毒機(jī)器人開(kāi)源項(xiàng)目
- Roboboi智能紫外線消毒機(jī)器人
- Amabie消毒機(jī)器人開(kāi)源分享
- 自主UVC消毒機(jī)器人開(kāi)源
- 低成本機(jī)器人消毒系統(tǒng)開(kāi)源分享
- 紫外線燈消毒機(jī)器人開(kāi)源分享
- 自動(dòng)地板消毒機(jī)器人
- 瞳步消毒機(jī)器人方案
- 字節(jié)發(fā)布機(jī)器人領(lǐng)域首個(gè)開(kāi)源視覺(jué)-語(yǔ)言操作大模型,激發(fā)開(kāi)源VLMs更大潛能 562次閱讀
- 機(jī)器人技術(shù)中常用的路徑規(guī)劃算法的開(kāi)源庫(kù) 1188次閱讀
- 如何利用紅外溫度傳感器設(shè)計(jì)一個(gè)口罩消毒裝置 2127次閱讀
- 面對(duì)疫情 醫(yī)療機(jī)器人能幫上什么忙? 2236次閱讀
- dfrobotSparki機(jī)器人套裝簡(jiǎn)介 2207次閱讀
- 工業(yè)機(jī)器人編程入門_工業(yè)機(jī)器人的編程要求 9787次閱讀
- 醫(yī)用機(jī)器人的定義_醫(yī)用機(jī)器人發(fā)展 3257次閱讀
- 醫(yī)用機(jī)器人的功能_醫(yī)用機(jī)器人分類 2462次閱讀
- 機(jī)器人控制器有哪些類型_機(jī)器人控制器發(fā)展 1.2w次閱讀
- KR C4機(jī)器人和LBR iiwa機(jī)器人的不同之處 2029次閱讀
- 協(xié)作機(jī)器人的起源_為什么需要協(xié)作機(jī)器人 8322次閱讀
- 機(jī)器視覺(jué)的機(jī)器人取代四臺(tái)傳統(tǒng)的火焰處理機(jī)器人 3370次閱讀
- 如何區(qū)分機(jī)器人、協(xié)作機(jī)器人和移動(dòng)機(jī)器人? 7029次閱讀
- 軟體機(jī)器人 前所未見(jiàn)的機(jī)器人 3770次閱讀
- 機(jī)器人的最佳編程語(yǔ)言是什么?機(jī)器人十大流行編程語(yǔ)言匯總 3.5w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論