文章作者:東莞理工學院 研究生 溫思業
指導教師:英特爾邊緣計算創新大使林盛鑫
ROS2 + OpenVINO 前景和應用
Al x Board(愛克斯板)是英特爾開發套件中的一款產品,專為入門級人工智能應用和邊緣智能設備而設計。它提供了完善的功能,包括人工智能學習、開發、實訓和應用等多種場景。
OpenVINO(Open Visual Inference and Neural Network Optimization)是英特爾開發的一套用于深度學習推理和計算機視覺應用優化的工具套件。它提供了一系列工具和庫,可幫助我們在各種硬件平臺上實現高性能、低功耗的深度學習推理。
ROS2(Robot Operating System 2)是一個開源的機器人操作系統框架,旨在支持機器人軟件開發和運行。
結合兩者可以為機器人系統提供強大的感知和決策能力。OpenVINO 可以在 ROS2 中使用,將深度學習模型部署到機器人系統中進行推理。這使得機器人可以進行實時的目標檢測、姿態估計、人臉識別等任務,從而增強其感知能力。OpenVINO 針對英特爾硬件進行了優化,可以提供高效的推理性能。對于需要實時響應的機器人應用非常重要,例如自主導航、物體抓取等。ROS2 提供了靈活的通信機制和模塊化的架構,可以與 OpenVINO 集成以實現各種機器人應用。
安裝步驟
本文將介紹如何在 AlxBoard 上搭建的 ROS-humble + OpenVINO 2023.0.1 版本的開發環境。在拿到 Al x Board 后,先依照官方文檔[1],進行系統安裝。官方文檔提供的是 Ubuntu20.04 的版本,可以通過升級方式改為 22.04 版本。或者通過 Ubuntu 的 ISO 文件可以選擇 22.04 版本下載鏈接[2],安裝好 Ubuntu22.04 后,需要安裝對應版本的 GPU 驅動程序。本文將依次介紹如何搭建 ROS2 + OpenVINO 的開發環境所依賴的軟件工具,包括 ROS2,OpenVINO,VSCode 等軟件安裝。ROS2 編譯測試示例,以及 OpenVINO 的模型下載示例,最后介紹 Nomachie 的基本使用方法。
01更改 Ubuntu22.04 系統軟件源
(1) 軟件源備份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
向右滑動查看完整代碼
(2) 打開Sources.list文件
sudo gedit /etc/apt/sources.list
向右滑動查看完整代碼
(3) 打開清華鏡像源官網[3]
找到對應版本代碼復制到Sources.list,并保存退出。
# 默認注釋了源碼鏡像以提高 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 驅動安裝
$ 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) 設置編碼
ROS2 安裝需要有支持 UTF-8 的語言環境,使用 ctrl + alt + T 打開終端,設置語言環境編碼如下:
$ 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
向右滑動查看完整代碼
常見報錯處理:
curl(7):Failed to connect to raw.githubusercontent.com
輸入命令,打開系統 hosts 文件
$ sudo gedit /etc/hosts
向右滑動查看完整代碼
將以下字段復制粘貼進文件中
185.199.108.133 raw.githubusercontent.com
向右滑動查看完整代碼
再保存退出,重新執行添加軟件源的命令,若依舊有錯誤,請登錄網站
搜索 raw.githubusercontent.com 最新的 IP 地址
(3) 安裝 ROS2
$ sudo apt update $ sudo apt upgrade $ sudo apt install ros-humble-desktop
向右滑動查看完整代碼
(4) 設置環境變量
$ source /opt/ros/humble/setup.bash $ echo " source /opt/ros/humble/setup.bash" >> ~/.bashrc
向右滑動查看完整代碼
當環境變量設置完成后,ROS2 就安裝完畢了。
可以在命令行中執行以下簡單的命令驗證安裝,出現如圖所示的獲取了 ROS2 命令行工具的幫助信息。
$ ros2 -h
(5) ROS2 的編譯
工作空間(workspace)是一個用于組織和管理 ROS2 項目的目錄結構。工作空間是一個包含多個軟件包(package)的目錄,每個軟件包都是一個獨立的功能單元。一個工作空間可以包含多個軟件包,需要通過編譯才能使用。
創建工作空間
$ 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
向右滑動查看完整代碼
編譯成功后,工作空間內會出現 build,install,log 三個目錄
配置環境變量
$ source install/local_setup.sh # 僅在當前終端生效 $ echo " source ~/colcon_test/install/local_setup.sh" >> ~/.bashrc # 所有終端均生效
向右滑動查看完整代碼
測試
若運行以下命令后,運行發布節點成功,則編譯環境測試完成
$ ros2 run examples_rclcpp_minimal_publisher publisher_member_function
向右滑動查看完整代碼
04OpenVINO 安裝
OpenVINO 可以選擇直接在根環境中使用 pip 命令安裝,也可以選擇依照官方文檔中的說明新建一個虛擬環境安裝。進入該網站,選擇自己系統版本以及所需要安裝的深度學習框架等。網站就會給出相應的 pip 命令。下面以 安裝 OpenVINO 2023.0.1 為例
(1) 安裝所需要的軟件包
$ sudo apt install python3-venv $ sudo apt install git wget
向右滑動查看完整代碼
(2) 創建虛擬環境
$ python3 -m venv openvino_env
向右滑動查看完整代碼
(3) 激活虛擬環境
$ 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
向右滑動查看完整代碼
如果選擇在根環境中安裝 OpenVINO,只需要執行第 4,5 步。
安裝完成后,執行以下命令驗證安裝,執行該命令將顯示 mo 命令行工具的使用說明和可用選項。
$ 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
向右滑動查看完整代碼
進入模型的下載目錄,查看可下載的模型
$ 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
向右滑動查看完整代碼
運行演示
$ 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)是一款由微軟開發的免費、跨平臺的源代碼編輯器。它被廣泛用于軟件開發和編程,支持多種編程語言和框架,并提供了豐富的功能和擴展性。VSCode 提供了豐富的編輯功能,包括語法高亮、智能代碼補全、自動格式化、代碼導航等。并且可以通過插件擴展來支持更多的語言和框架。相比于其他 IDE(集成開發環境),VSCode 啟動速度快,并且占用系統資源較少,因此較為適合在 AI x Board 上使用。
進入網站后,下載 .deb 安裝包
進入安裝的目錄(一般都是在 Download),打開終端輸入命令進行安裝,安裝包名稱可以先打一小段,按 Tab 進行補齊
$ Sudo dpkg -i <包名稱>
安裝完成后,可以選擇自己需要的插件進行安裝, VSCode 擁有龐大的插件市場,開發者可以根據自己的需求選擇和安裝各種插件。
06NoMachine 下載與安裝
NoMachine 是一種遠程桌面軟件,它允許用戶在不同的計算機之間進行遠程連接和訪問。它提供了高性能、安全和可靠的遠程訪問解決方案。NoMachine 可在多種操作系統上運行,包括 Windows、Mac、Linux 和移動設備(iOS 和 Android)。這使得用戶可以在不同的設備上輕松地進行遠程連接和訪問。下面將介紹如何使用 Windows 遠程控制 AI x Board,在 Windows 上下載安裝包 https://downloads.nomachine.com/ ,一般下載 64 位的安裝包,進行安裝。
在開發板的系統中下載 Linux 安裝包 https://downloads.nomachine.com/linux/?id=1 ,intel CPU 采用的是 x86 架構,因此選擇最后一個安裝包。
下載完成后,打開相應下載位置的終端,輸入以下命令進行安裝:
$ sudo tar zxvf nomachine_8.8.1_1_x86_64.tar.gz #這條命令可能隨著安裝包版本不同而不一樣,一 般輸入“sudo tar zxvf nom”然后Tab鍵進行補全 $ sudo chmod -R 777 NX $ cd NX $ sudo ./nxserver --install
向右滑動查看完整代碼
在打開軟件時,記錄下歡迎界面的 IP 地址和端口?;蛘哌M入設置中的 Server status 查看。
至此,Linux 上 Nomachine 的環境就配置完成了。
接下來回到 Windows 系統下,打開 Nomachine 進行遠程控制。如果在同一局域網內,軟件能自動掃描到相應的電腦,直接雙擊進行控制即可。若不在同一局域網,則點擊“Add”進行添加。
被添加者的用戶名和 IP 地址能用以下命令進行查詢:
$ hostname $ hostname -I
遠程控制
總結
本文詳細介紹了在 AI x Board 上從零開始搭建 ROS2 + OpenVINO 的開發環境的過程,大體步驟是系統安裝,驅動安裝,ROS2、OpenVINO 等軟件安裝。同時介紹了 ROS2 編譯和簡單的測試,OpenVINO 模型下載步驟及測試。在開發工具上,介紹了 VSCode 和 NoMachine 等軟件,都能很大程度上方便開發者進行開發和研究。希望本文能對有 ROS2 + OpenVINO 環境搭建需求的人有所幫助。
審核編輯:湯梓紅
-
英特爾
+關注
關注
61文章
10166瀏覽量
173919 -
AI
+關注
關注
87文章
34173瀏覽量
275336 -
人工智能
+關注
關注
1804文章
48691瀏覽量
246420 -
開發環境
+關注
關注
1文章
238瀏覽量
17024 -
OpenVINO
+關注
關注
0文章
113瀏覽量
414
原文標題:在 AI x Board上搭建 ROS2 + OpenVINO? 開發環境|開發者實戰
文章出處:【微信號:英特爾物聯網,微信公眾號:英特爾物聯網】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
系統鏡像Ubuntu_ROS2中ROS2是什么意思,帶有ROS2開發環境嗎?
【「# ROS 2智能機器人開發實踐」閱讀體驗】+ROS2應用案例
如何在ROS上使用serial包進行串口通信
搭建ARM+ROS的硬件載體之ROS的移植及測試方法
ROS系統的本地搭建(上)

評論