【2023 Intel有奖征文】在AIxBoard上搭建ROS2+OpenVINO开发环境

iven 更新于 8月前

AIxBoard(爱克斯板)是英特尔开发套件中的一款产品,专为入门级人工智能应用和边缘智能设备而设计。它提供了完善的功能,包括人工智能学习、开发、实训和应用等多种场景。

OpenVINO(Open Visual Inference and Neural Network Optimization)是英特尔开发的一套用于深度学习推理和计算机视觉应用优化的工具套件。它提供了一系列工具和库,可帮助我们在各种硬件平台上实现高性能、低功耗的深度学习推理。

ROS2(Robot Operating System 2)是一个开源的机器人操作系统框架,旨在支持机器人软件开发和运行。

而结合两者可以为机器人系统提供强大的感知和决策能力。OpenVINO可以在ROS2中使用,将深度学习模型部署到机器人系统中进行推理。这使得机器人可以进行实时的目标检测、姿态估计、人脸识别等任务,从而增强其感知能力。OpenVINO针对英特尔硬件进行了优化,可以提供高效的推理性能。对于需要实时响应的机器人应用非常重要,例如自主导航、物体抓取等。ROS2提供了灵活的通信机制和模块化的架构,可以与OpenVINO集成以实现各种机器人应用。

本文将介绍如何在AIxBoard上搭建的ROS-humble+OpenVINO 2023.0.1版本的开发环境。在拿到AIxBoard后,先依照官方文档https://www.xzsteam.com/docs/osinstallation.html进行系统安装。官方文档提供的是Ubuntu20.04的版本,可以通过升级方式改为22.04版本。或者通过Ubuntu的ISO文件可以选择22.04版本,下载链接:

https://cdimage.ubuntu.com/releases/jammy/release/inteliot/ubuntu-22.04-desktop-amd64+intel-iot.iso,安装好Ubuntu22.04后,需要安装对应版本的GPU驱动程序。本文将依次介绍如何搭建ROS2+OpenVINO的开发环境所依赖的软件工具,包括ROS2,OpenVINO,VSCode等软件安装。ROS2编译测试示例,以及OpenVINO的模型下载示例,最后介绍Nomachie的基本使用方法。

1.更改 Ubuntu22.04 系统软件源

(1)软件源进行备份

sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

(2)打开 Sources.list 文件

sudo gedit /etc/apt/sources.list

(3)打开清华镜像源官网:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/,**以下代码到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

2.AIxBoard板上GPU驱动安****>

$ mkdir neo && cd neo

$ wget https://ghproxy.com/https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.14062.11/intel-igc-core_1.0.14062.11_amd64.deb

$ wget https://ghproxy.com/https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.14062.11/intel-igc-opencl_1.0.14062.11_amd64.deb

$ wget https://ghproxy.com/https://github.com/intel/compute-runtime/releases/download/23.22.26516.18/intel-level-zero-gpu-dbgsym_1.3.26516.18_amd64.ddeb

$ wget https://ghproxy.com/https://github.com/intel/compute-runtime/releases/download/23.22.26516.18/intel-level-zero-gpu_1.3.26516.18_amd64.deb

$ wget https://ghproxy.com/https://github.com/intel/compute-runtime/releases/download/23.22.26516.18/intel-opencl-icd-dbgsym_23.22.26516.18_amd64.ddeb

$ wget https://ghproxy.com/https://github.com/intel/compute-runtime/releases/download/23.22.26516.18/intel-opencl-icd_23.22.26516.18_amd64.deb

$ wget https://ghproxy.com/https://github.com/intel/compute-runtime/releases/download/23.22.26516.18/libigdgmm12_22.3.0_amd64.deb

$ sudo dpkg -i *.deb

3. ROS2安****>

(1)设置编码

ROS2安装需要有支持UTF-8的语言环境,使用ctrl+alt+T打开终端,设置语言环境编码如下:

$ sudo apt update && sudo apt install locale****>

$ 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 l**-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/host****>

将以下字段粘贴进文件中

185.199.108.133  raw.githubusercontent.com

再保存退出,重新执行添加软件源的命令,若依旧有错误,请登录网站 https://www.ipaddress.com搜索raw.githubusercontent.com,找到最新的IP地址来代替原来输入的IP地址。

(3)安装ROS2(humble)版本

$ 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)的目录,每个软件包都是一个独立的功能单元。一个工作空间可以包含多个软件包,需要通过编译才能使用。

1)创建工作空间

$ mkdir -p ~/colcon_test && cd ~/colcon_test    

$ git clone https://ghproxy.com/https://github.com/ros2/examples src/example**** humble

$ cd src

2)安装依赖

$ 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

3)编译工作空间

$ sudo apt install python3-colcon-ro****>

$ cd ~/colcon_test/

$ colcon build

编译成功后,工作空间内会出现build,install,log三个目录

4)配置环境变量

$ source install/local_setup.sh # 仅在当前终端生效

$ echo " source ~/colcon_test/install/local_setup.sh" >> ~/.bashrc # 所有终端均生效

5)测试

若运行以下命令后,运行发布节点成功,则编译环境测试完成

$ ros2 run examples_rclcpp_minimal_publisher publisher_member_function

4.OpenVINO安****>

OpenVINO可以选择直接在根环境中使用pip命令安装,也可以选择依照官方文档中的说明新建一个虚拟环境安装。进入该网站,选择自己系统版本以及所需要安装的深度学习框架等。网站就会给出相应的pip命令。下面以安装OpenVINO 2023.0.1为例

https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit/download.html?ENVIRONMENT=DEV_TOOLS&OP_SYSTEM=LINUX&VERSION=v_2023_0_1&DISTRIBUTION=PIP

(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)AI模型下载

1)安装git工具

$ sudo apt install git

2)克隆 OpenVINO™ 工具包的开放模型库

$ git clone --recurse-submodules https://ghproxy.com/https://github.com/openvinotoolkit/open_model_zoo.git

3)安装依赖包

$ pip install open_model_zoo/demos/common/python

进入模型的下载目录,查看可下载的模型

$ cd ~/open_model_zoo/tool***odel_tools/src/openvino/model_zoo

$ python3 omz_downloader.py --print_all

选择刚下载的模型并指定输出目录

$ omz_downloader --name person-detection-retail-0013 -o model****>

(7)模型测试

1)下载素材

$ wget https://ghproxy.com/https://github.com/intel-iot-devkit/sample-videos/raw/master/one-by-one-person-detection.mp4

2)在桌面打开一个终端,输入命令,进行演示

$ python open_model_zoo/demos/object_detection_demo/python/object_detection_demo.py -m=models/intel/person-detection-retail-0

013/FP32/person-detection-retail-0013.xml -i=one-by-one-person-detection.mp4 -at ssd

5.VSCode安****>

Visual Studio Code(简称 VS Code)是一款由微软开发的免费、跨平台的源代码编辑器。它被广泛用于软件开发和编程,支持多种编程语言和框架,并提供了丰富的功能和扩展性。VSCode提供了丰富的编辑功能,包括语法高亮、智能代码补全、自动格式化、代码导航等。并且可以通过插件扩展来支持更多的语言和框架。相比于其他IDE(集成开发环境),VSCode启动速度快,并且占用系统资源较少,因此较为适合在AIxBoard上使用。

下载链接:https://code.visualstudio.com/Download

进入网站后,下载.deb安装包

进入安装的目录(一般都是在Download),打开终端输入命令进行安装,安装包名称可以先打一小段,按Tab进行补齐$ Sudo dpkg -i <包名称>

安装完成后,可以选择自己需要的插件进行安装,VSCode拥有庞大的插件市场,开发者可以根据自己的需求选择和安装各种插件。

6.NoMachine安****>

NoMachine是一种远程桌面软件,它允许用户在不同的计算机之间进行远程连接和访问。它提供了高性能、安全和可靠的远程访问解决方案。NoMachine可在多种操作系统上运行,包括Windows、Mac、Linux和移动设备(iOS和Android)。这使得用户可以在不同的设备上轻松地进行远程连接和访问。下面将介绍如何使用Windows远程控制AIxBoard,

在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地址和端口。或者进入设置中的Server status查看。

至此,Linux上Nomachine的环境就配置完成了。

接下来回到Windows系统下,打开Nomachine进行远程控制。如果在同一局域网内,软件能自动扫描到相应的电脑,直接双击进行控制即可。若不在同一局域网,则点击“Add”进行添加。

被添加者的用户名和IP地址能用以下命令进行查询:

$ hostname

$ hostname -I

7.总结

本文详细介绍了在AIxBoard上从零开始搭建ROS2+OpenVINO的开发环境的过程,大体步骤是系统安装,驱动安装,ROS2、OpenVINO等软件安装。同时介绍了ROS2编译和简单的测试,OpenVINO模型下载步骤及测试。在开发工具上,介绍了VSCode和NoMachine等软件,都能很大程度上方便开发者进行开发和研究。希望本文能对有ROS2+OpenVINO环境搭建需求的人有所帮助。

0个评论