文章作者:東莞理工學(xué)院 研究生 溫思業(yè)
指導(dǎo)教師:英特爾邊緣計(jì)算創(chuàng)新大使林盛鑫
ROS2 + OpenVINO 前景和應(yīng)用
Al x Board(愛克斯板)是英特爾開發(fā)套件中的一款產(chǎn)品,專為入門級人工智能應(yīng)用和邊緣智能設(shè)備而設(shè)計(jì)。它提供了完善的功能,包括人工智能學(xué)習(xí)、開發(fā)、實(shí)訓(xùn)和應(yīng)用等多種場景。
OpenVINO(Open Visual Inference and Neural Network Optimization)是英特爾開發(fā)的一套用于深度學(xué)習(xí)推理和計(jì)算機(jī)視覺應(yīng)用優(yōu)化的工具套件。它提供了一系列工具和庫,可幫助我們在各種硬件平臺上實(shí)現(xiàn)高性能、低功耗的深度學(xué)習(xí)推理。
ROS2(Robot Operating System 2)是一個(gè)開源的機(jī)器人操作系統(tǒng)框架,旨在支持機(jī)器人軟件開發(fā)和運(yùn)行。
結(jié)合兩者可以為機(jī)器人系統(tǒng)提供強(qiáng)大的感知和決策能力。OpenVINO 可以在 ROS2 中使用,將深度學(xué)習(xí)模型部署到機(jī)器人系統(tǒng)中進(jìn)行推理。這使得機(jī)器人可以進(jìn)行實(shí)時(shí)的目標(biāo)檢測、姿態(tài)估計(jì)、人臉識別等任務(wù),從而增強(qiáng)其感知能力。OpenVINO 針對英特爾硬件進(jìn)行了優(yōu)化,可以提供高效的推理性能。對于需要實(shí)時(shí)響應(yīng)的機(jī)器人應(yīng)用非常重要,例如自主導(dǎo)航、物體抓取等。ROS2 提供了靈活的通信機(jī)制和模塊化的架構(gòu),可以與 OpenVINO 集成以實(shí)現(xiàn)各種機(jī)器人應(yīng)用。
安裝步驟
本文將介紹如何在 AlxBoard 上搭建的 ROS-humble + OpenVINO 2023.0.1 版本的開發(fā)環(huán)境。在拿到 Al x Board 后,先依照官方文檔[1],進(jìn)行系統(tǒng)安裝。官方文檔提供的是 Ubuntu20.04 的版本,可以通過升級方式改為 22.04 版本。或者通過 Ubuntu 的 ISO 文件可以選擇 22.04 版本下載鏈接[2],安裝好 Ubuntu22.04 后,需要安裝對應(yīng)版本的 GPU 驅(qū)動程序。本文將依次介紹如何搭建 ROS2 + OpenVINO 的開發(fā)環(huán)境所依賴的軟件工具,包括 ROS2,OpenVINO,VSCode 等軟件安裝。ROS2 編譯測試示例,以及 OpenVINO 的模型下載示例,最后介紹 Nomachie 的基本使用方法。
01更改 Ubuntu22.04 系統(tǒng)軟件源
(1) 軟件源備份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
向右滑動查看完整代碼
(2) 打開Sources.list文件
sudo gedit /etc/apt/sources.list
向右滑動查看完整代碼
(3) 打開清華鏡像源官網(wǎng)[3]
找到對應(yīng)版本代碼復(fù)制到Sources.list,并保存退出。
# 默認(rèn)注釋了源碼鏡像以提高 apt update 速度,如有需要可自行取消注釋 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-update***ain restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-update***ain restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backport***ain restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backport***ain restricted universe multiverse # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse # deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
向右滑動查看完整代碼
(4) 更新軟件源
sudo apt-get update
02GPU 驅(qū)動安裝
$ mkdir neo && cd neo $ wget https://ghproxy.com/https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.12504.5/intel-igc-core_1.0.12504.5_amd64.deb $ wget https://ghproxy.com/https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.12504.5/intel-igc-opencl_1.0.12504.5_amd64.deb $ wget https://ghproxy.com/https://github.com/intel/compute-runtime/releases/download/22.43.24595.30/intel-level-zero-gpu-dbgsym_1.3.24595.30_amd64.ddeb $ wget https://ghproxy.com/https://github.com/intel/compute-runtime/releases/download/22.43.24595.30/intel-level-zero-gpu_1.3.24595.30_amd64.deb $ wget https://ghproxy.com/https://github.com/intel/compute-runtime/releases/download/22.43.24595.30/intel-opencl-icd-dbgsym_22.43.24595.30_amd64.ddeb $ wget https://ghproxy.com/https://github.com/intel/compute-runtime/releases/download/22.43.24595.30/intel-opencl-icd_22.43.24595.30_amd64.deb $ wget https://ghproxy.com/https://github.com/intel/compute-runtime/releases/download/22.43.24595.30/libigdgmm12_22.3.0_amd64.deb $ sudo dpkg -i *.deb
向右滑動查看完整代碼
03ROS2 安裝
(1) 設(shè)置編碼
ROS2 安裝需要有支持 UTF-8 的語言環(huán)境,使用 ctrl + alt + T 打開終端,設(shè)置語言環(huán)境編碼如下:
$ sudo apt update && sudo apt install locales $ sudo locale-gen en_US en_US.UTF-8 $ sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 $ export LANG=en_US.UTF-8
向右滑動查看完整代碼
(2) 添加軟件源
$ sudo apt update && sudo apt install curl gnupg lsb-release $ sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg $ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
向右滑動查看完整代碼
常見報(bào)錯(cuò)處理:
curl(7):Failed to connect to raw.githubusercontent.com
輸入命令,打開系統(tǒng) hosts 文件
$ sudo gedit /etc/hosts
向右滑動查看完整代碼
將以下字段復(fù)制粘貼進(jìn)文件中
185.199.108.133 raw.githubusercontent.com
向右滑動查看完整代碼
再保存退出,重新執(zhí)行添加軟件源的命令,若依舊有錯(cuò)誤,請登錄網(wǎng)站
搜索 raw.githubusercontent.com 最新的 IP 地址
(3) 安裝 ROS2
$ sudo apt update $ sudo apt upgrade $ sudo apt install ros-humble-desktop
向右滑動查看完整代碼
(4) 設(shè)置環(huán)境變量
$ source /opt/ros/humble/setup.bash $ echo " source /opt/ros/humble/setup.bash" >> ~/.bashrc
向右滑動查看完整代碼
當(dāng)環(huán)境變量設(shè)置完成后,ROS2 就安裝完畢了。
可以在命令行中執(zhí)行以下簡單的命令驗(yàn)證安裝,出現(xiàn)如圖所示的獲取了 ROS2 命令行工具的幫助信息。
$ ros2 -h
(5) ROS2 的編譯
工作空間(workspace)是一個(gè)用于組織和管理 ROS2 項(xiàng)目的目錄結(jié)構(gòu)。工作空間是一個(gè)包含多個(gè)軟件包(package)的目錄,每個(gè)軟件包都是一個(gè)獨(dú)立的功能單元。一個(gè)工作空間可以包含多個(gè)軟件包,需要通過編譯才能使用。
創(chuàng)建工作空間
$ mkdir -p ~/colcon_test && cd ~/colcon_test $ git clone https://ghproxy.com/https://github.com/ros2/examples src/examples -b humble $ cd src
向右滑動查看完整代碼
自動安裝依賴
$ sudo apt install -y python3-pip $ sudo pip3 install rosdepc $ sudo rosdepc init $ rosdepc update $ cd .. $ rosdepc install -i --from-path src --rosdistro humble -y
向右滑動查看完整代碼
編譯工作空間
$ sudo apt install python3-colcon-ros $ cd ~/colcon_test/ $ colcon build
向右滑動查看完整代碼
編譯成功后,工作空間內(nèi)會出現(xiàn) build,install,log 三個(gè)目錄
配置環(huán)境變量
$ source install/local_setup.sh # 僅在當(dāng)前終端生效 $ echo " source ~/colcon_test/install/local_setup.sh" >> ~/.bashrc # 所有終端均生效
向右滑動查看完整代碼
測試
若運(yùn)行以下命令后,運(yùn)行發(fā)布節(jié)點(diǎn)成功,則編譯環(huán)境測試完成
$ ros2 run examples_rclcpp_minimal_publisher publisher_member_function
向右滑動查看完整代碼
04OpenVINO 安裝
OpenVINO 可以選擇直接在根環(huán)境中使用 pip 命令安裝,也可以選擇依照官方文檔中的說明新建一個(gè)虛擬環(huán)境安裝。進(jìn)入該網(wǎng)站,選擇自己系統(tǒng)版本以及所需要安裝的深度學(xué)習(xí)框架等。網(wǎng)站就會給出相應(yīng)的 pip 命令。下面以 安裝 OpenVINO 2023.0.1 為例
(1) 安裝所需要的軟件包
$ sudo apt install python3-venv $ sudo apt install git wget
向右滑動查看完整代碼
(2) 創(chuàng)建虛擬環(huán)境
$ python3 -m venv openvino_env
向右滑動查看完整代碼
(3) 激活虛擬環(huán)境
$ source openvino_env/bin/activate
向右滑動查看完整代碼
(4) 更新 pip 版本
$ python -m pip install --upgrade pip
向右滑動查看完整代碼
(5) 下載及安裝 OpenVINO
$ pip install openvino-dev[ONNX,pytorch,tensorflow2]==2023.0.1
向右滑動查看完整代碼
如果選擇在根環(huán)境中安裝 OpenVINO,只需要執(zhí)行第 4,5 步。
安裝完成后,執(zhí)行以下命令驗(yàn)證安裝,執(zhí)行該命令將顯示 mo 命令行工具的使用說明和可用選項(xiàng)。
$ mo -h
(6) 模型下載
克隆 OpenVINO 工具包的開放模型庫
$ git clone --recurse-submodules https://ghproxy.com/https://github.com/openvinotoolkit/open_model_zoo.git
向右滑動查看完整代碼
安裝依賴包
$ pip install open_model_zoo/demos/common/python
向右滑動查看完整代碼
進(jìn)入模型的下載目錄,查看可下載的模型
$ cd ~/open_model_zoo/tools/model_tools/src/openvino/model_zoo $ python3 omz_downloader.py --print_all
向右滑動查看完整代碼
選擇自己需要下載的模型并指定輸出目錄
$ omz_downloader --name-o
向右滑動查看完整代碼
(7) 模型測試
安裝 git 工具
$ sudo apt install git
向右滑動查看完整代碼
選擇模型
$ omz_downloader --name person-detection-retail-0013 -o models
向右滑動查看完整代碼
下載素材
$ wget https://ghproxy.com/https://github.com/intel-iot-devkit/sample-videos/raw/master/one-by-one-person-detection.mp4
向右滑動查看完整代碼
運(yùn)行演示
$ python open_model_zoo/demos/object_detection_demo/python/object_detection_demo.py -m=models/intel/person-detection-retail-0013/FP32/person-detection-retail-0013.xml -i=one-by-one-person-detection.mp4 -at ssd -d GPU #使用GPU加速
向右滑動查看完整代碼
05VSCode 下載與安裝
Visual Studio Code(簡稱 VS Code)是一款由微軟開發(fā)的免費(fèi)、跨平臺的源代碼編輯器。它被廣泛用于軟件開發(fā)和編程,支持多種編程語言和框架,并提供了豐富的功能和擴(kuò)展性。VSCode 提供了豐富的編輯功能,包括語法高亮、智能代碼補(bǔ)全、自動格式化、代碼導(dǎo)航等。并且可以通過插件擴(kuò)展來支持更多的語言和框架。相比于其他 IDE(集成開發(fā)環(huán)境),VSCode 啟動速度快,并且占用系統(tǒng)資源較少,因此較為適合在 AI x Board 上使用。
進(jìn)入網(wǎng)站后,下載 .deb 安裝包
進(jìn)入安裝的目錄(一般都是在 Download),打開終端輸入命令進(jìn)行安裝,安裝包名稱可以先打一小段,按 Tab 進(jìn)行補(bǔ)齊
$ Sudo dpkg -i <包名稱>
安裝完成后,可以選擇自己需要的插件進(jìn)行安裝, VSCode 擁有龐大的插件市場,開發(fā)者可以根據(jù)自己的需求選擇和安裝各種插件。
06NoMachine 下載與安裝
NoMachine 是一種遠(yuǎn)程桌面軟件,它允許用戶在不同的計(jì)算機(jī)之間進(jìn)行遠(yuǎn)程連接和訪問。它提供了高性能、安全和可靠的遠(yuǎn)程訪問解決方案。NoMachine 可在多種操作系統(tǒng)上運(yùn)行,包括 Windows、Mac、Linux 和移動設(shè)備(iOS 和 Android)。這使得用戶可以在不同的設(shè)備上輕松地進(jìn)行遠(yuǎn)程連接和訪問。下面將介紹如何使用 Windows 遠(yuǎn)程控制 AI x Board,在 Windows 上下載安裝包 https://downloads.nomachine.com/ ,一般下載 64 位的安裝包,進(jìn)行安裝。
在開發(fā)板的系統(tǒng)中下載 Linux 安裝包 https://downloads.nomachine.com/linux/?id=1 ,intel CPU 采用的是 x86 架構(gòu),因此選擇最后一個(gè)安裝包。
下載完成后,打開相應(yīng)下載位置的終端,輸入以下命令進(jìn)行安裝:
$ sudo tar zxvf nomachine_8.8.1_1_x86_64.tar.gz #這條命令可能隨著安裝包版本不同而不一樣,一 般輸入“sudo tar zxvf nom”然后Tab鍵進(jìn)行補(bǔ)全 $ sudo chmod -R 777 NX $ cd NX $ sudo ./nxserver --install
向右滑動查看完整代碼
在打開軟件時(shí),記錄下歡迎界面的 IP 地址和端口。或者進(jìn)入設(shè)置中的 Server status 查看。
至此,Linux 上 Nomachine 的環(huán)境就配置完成了。
接下來回到 Windows 系統(tǒng)下,打開 Nomachine 進(jìn)行遠(yuǎn)程控制。如果在同一局域網(wǎng)內(nèi),軟件能自動掃描到相應(yīng)的電腦,直接雙擊進(jìn)行控制即可。若不在同一局域網(wǎng),則點(diǎn)擊“Add”進(jìn)行添加。
被添加者的用戶名和 IP 地址能用以下命令進(jìn)行查詢:
$ hostname $ hostname -I
遠(yuǎn)程控制
總結(jié)
本文詳細(xì)介紹了在 AI x Board 上從零開始搭建 ROS2 + OpenVINO 的開發(fā)環(huán)境的過程,大體步驟是系統(tǒng)安裝,驅(qū)動安裝,ROS2、OpenVINO 等軟件安裝。同時(shí)介紹了 ROS2 編譯和簡單的測試,OpenVINO 模型下載步驟及測試。在開發(fā)工具上,介紹了 VSCode 和 NoMachine 等軟件,都能很大程度上方便開發(fā)者進(jìn)行開發(fā)和研究。希望本文能對有 ROS2 + OpenVINO 環(huán)境搭建需求的人有所幫助。
審核編輯:湯梓紅
-
英特爾
+關(guān)注
關(guān)注
61文章
9994瀏覽量
172023 -
AI
+關(guān)注
關(guān)注
87文章
31246瀏覽量
269610 -
人工智能
+關(guān)注
關(guān)注
1792文章
47485瀏覽量
239171 -
開發(fā)環(huán)境
+關(guān)注
關(guān)注
1文章
226瀏覽量
16655 -
OpenVINO
+關(guān)注
關(guān)注
0文章
94瀏覽量
214
原文標(biāo)題:在 AI x Board上搭建 ROS2 + OpenVINO? 開發(fā)環(huán)境|開發(fā)者實(shí)戰(zhàn)
文章出處:【微信號:英特爾物聯(lián)網(wǎng),微信公眾號:英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論