如何在AIxBoard上搭建ROS2+OpenVIN开发环境

文章作者:东莞理工学院 研究生 温思业
指导教师:英特尔边缘计算创新大使 林盛鑫
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 multiversedeb 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 multiversedeb 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 multiversedeb 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 地址和端口。或者进入设置中的 server status 查看。
至此,linux 上 nomachine 的环境就配置完成了。
接下来回到 windows 系统下,打开 nomachine 进行远程控制。如果在同一局域网内,软件能自动扫描到相应的电脑,直接双击进行控制即可。若不在同一局域网,则点击“add”进行添加。
被添加者的用户名和 ip 地址能用以下命令进行查询:
$ hostname$ hostname -i  
远程控制
总结
本文详细介绍了在 ai x board 上从零开始搭建 ros2 + openvino 的开发环境的过程,大体步骤是系统安装,驱动安装,ros2、openvino 等软件安装。同时介绍了 ros2 编译和简单的测试,openvino 模型下载步骤及测试。在开发工具上,介绍了 vscode 和 nomachine 等软件,都能很大程度上方便开发者进行开发和研究。希望本文能对有 ros2 + openvino 环境搭建需求的人有所帮助。


全球工业物联网市场未来景象预测
如何避免人工智能成为脱缰的野马
3.14推荐:白色情人节 恋爱手机送温情!
倪光南院士与深开鸿CEO王成录受邀赴天津港座谈交流,共议“津鸿”新成果
小米移动电源分别采用的什么电芯?
如何在AIxBoard上搭建ROS2+OpenVIN开发环境
网络变压器设计原理
驱动双极步进电机芯片TMI8420简介
如今5G话题越来越火,那么到底什么是5G
采用FPGA器件和传感器实现CCD图像系统中的提取和输出功能
智慧农业就只有在牛身上吗
LED高景气将贯穿全年 龙头股涨幅显著
坚果Pro2S炫光蓝高清图赏
Linux内存占用分析
dfrobotJPEG 摄像模块介绍
新唐与华邦电达成合作 推出全新物联网安全微控制器
曝三星将在CES2020上发布真无边框电视
线圈脉冲测试方法
苹果扛不住了!iPhone 6s免费换电池
从柯洁被Alpha Go打败后,这款硬件频出新品