0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

英特尔物联网 来源:英特尔物联网 2023-09-08 11:11 次阅读

文章作者:东莞理工学院 研究生 温思业

指导教师:英特尔边缘计算创新大使林盛鑫

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

向右滑动查看完整代码

3a495c68-4d5c-11ee-a25d-92fbcf53809c.png

再保存退出,重新执行添加软件源的命令,若依旧有错误,请登录网站

搜索 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

3a71fa38-4d5c-11ee-a25d-92fbcf53809c.png

(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 三个目录

3a8b5898-4d5c-11ee-a25d-92fbcf53809c.png

配置环境变量

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

向右滑动查看完整代码

测试

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

$ ros2 run examples_rclcpp_minimal_publisher publisher_member_function

向右滑动查看完整代码

3aa2e1c0-4d5c-11ee-a25d-92fbcf53809c.png

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
3b014a6c-4d5c-11ee-a25d-92fbcf53809c.png

(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加速

向右滑动查看完整代码

image.png

05VSCode 下载与安装

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

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

3b7ed342-4d5c-11ee-a25d-92fbcf53809c.png

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

$ Sudo dpkg -i <包名称>

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

3ba5d334-4d5c-11ee-a25d-92fbcf53809c.png

06NoMachine 下载与安装

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

3c195854-4d5c-11ee-a25d-92fbcf53809c.png

在开发板的系统中下载 Linux 安装包 https://downloads.nomachine.com/linux/?id=1 ,intel CPU 采用的是 x86 架构,因此选择最后一个安装包。

3c42928c-4d5c-11ee-a25d-92fbcf53809c.png

下载完成后,打开相应下载位置的终端,输入以下命令进行安装:

$ 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

向右滑动查看完整代码

3c62f798-4d5c-11ee-a25d-92fbcf53809c.jpg

在打开软件时,记录下欢迎界面的 IP 地址和端口。或者进入设置中的 Server status 查看。

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

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

3c7f3034-4d5c-11ee-a25d-92fbcf53809c.png

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

$ hostname
$ hostname -I

远程控制

总结

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

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 英特尔
    +关注

    关注

    60

    文章

    9879

    浏览量

    171411
  • AI
    AI
    +关注

    关注

    87

    文章

    30072

    浏览量

    268337
  • 人工智能
    +关注

    关注

    1791

    文章

    46820

    浏览量

    237459
  • 开发环境
    +关注

    关注

    1

    文章

    220

    浏览量

    16580
  • OpenVINO
    +关注

    关注

    0

    文章

    87

    浏览量

    180

原文标题:在 AI x Board上搭建 ROS2 + OpenVINO™ 开发环境|开发者实战

文章出处:【微信号:英特尔物联网,微信公众号:英特尔物联网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    何在ROS的基础提升无人驾驶系统的可靠性

    本文着重介绍基于机器人操作系统ROS的无人驾驶系统。文中将介绍ROS以及它在无人驾驶场景中的优缺点,并讨论如何在ROS的基础提升无人驾驶系
    的头像 发表于 02-15 10:26 3736次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>ROS</b>的基础<b class='flag-5'>上</b>提升无人驾驶系统的可靠性

    系统镜像Ubuntu_ROS2ROS2是什么意思,带有ROS2开发环境吗?

    请问一下,百度文库资料里面,下图所示的系统镜像Ubuntu_ROS2ROS2是什么意思,带有ROS2开发环境吗?与前面4GB版本的镜像有什
    发表于 03-01 23:06

    怎样去搭建一种ROS Windows开发环境

    怎样去搭建一种ROS Windows开发环境呢?怎样在Windows中编译ROS Qt功能包呢?
    发表于 11-22 06:59

    何在Linux搭建Melis3.0开发环境

    何在Linux搭建Melis3.0开发环境
    发表于 12-29 06:10

    何在ROS使用serial包进行串口通信

    何在ROS使用其提供的serial包进行串口通信。我的环境介绍:PC:使用的是Ubuntu 16-04 ROS-Kinetic嵌入式端:
    发表于 02-21 07:27

    搭建ARM+ROS的硬件载体之ROS的移植及测试方法

      1. 准备工作  经过前面的环境搭建,HDG2L-IoT评估套件已经能稳定地运行Ubuntu+docker环境,当前需要下载运行ROS
    发表于 03-09 13:55

    php开发环境搭建和使用

    本文主要介绍的是php开发环境搭建和使用。apache在默认情况下不会处理php页面,Apache处理php页面的步骤:即:php开发环境
    的头像 发表于 02-01 15:26 3420次阅读
    php<b class='flag-5'>开发</b><b class='flag-5'>环境</b>的<b class='flag-5'>搭建</b>和使用

    何在PC搭建TQIMX6Q开发板交叉编译环境的详细资料概述

    本手册介绍如何在 PC 搭建针对天嵌科技计算机有限公司(以下简称天嵌科技或天嵌)开发板 TQIMX6Q 和 E9 的 QT 程序(QT5.5 版本)交叉编译
    发表于 08-01 08:00 33次下载

    何在Linux环境搭建51单片机的开发烧写环境

    本文档的主要内容详细介绍的是如何在Linux环境搭建51单片机的开发烧写环境
    发表于 08-15 17:32 2次下载
    如<b class='flag-5'>何在</b>Linux<b class='flag-5'>环境</b>下<b class='flag-5'>搭建</b>51单片机的<b class='flag-5'>开发</b>烧写<b class='flag-5'>环境</b>

    何在Keil5下开发TI-M4程序环境搭建的教程免费下载

    本文档的主要内容详细介绍的是如何在Keil5下开发TI-M4程序环境搭建的教程免费下载。
    发表于 05-05 08:00 8次下载
    如<b class='flag-5'>何在</b>Keil5下<b class='flag-5'>开发</b>TI-M4程序<b class='flag-5'>环境</b><b class='flag-5'>搭建</b>的教程免费下载

    何在Mac下搭建PHP开发环境

    本文档的主要内容详细介绍的是如何在Mac下搭建PHP开发环境
    发表于 06-21 15:17 14次下载

    ESP32教程之如何在Windows系统搭建开发环境

    本文档的主要内容详细介绍的是ESP32教程之如何在Windows系统搭建开发环境
    发表于 12-13 15:34 40次下载
    ESP32教程之如<b class='flag-5'>何在</b>Windows系统<b class='flag-5'>上</b><b class='flag-5'>搭建</b><b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    何在Linux环境下实现Python环境搭建

    本文档的主要内容详细介绍的是如何在Linux环境下实现Python环境搭建
    发表于 08-24 12:12 14次下载
    如<b class='flag-5'>何在</b>Linux<b class='flag-5'>环境</b>下实现Python<b class='flag-5'>环境</b>的<b class='flag-5'>搭建</b>

    如何搭建鸿蒙开发环境

    开发某一个平台的程序,那么首先要搭建出本地开发环境,那么如何搭建鸿蒙开发
    的头像 发表于 02-24 11:25 3705次阅读
    如何<b class='flag-5'>搭建</b>鸿蒙<b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    ROS系统的本地搭建

    有关ROS系统的相关知识已经在上一篇文章中进行了阐述,在本篇文章中,将就ROS的进一步搭建方法做阐述。 ⚠️:本文中“消息代理”、“主服务器”、“Master Server”是相同的意思,可以互换。
    的头像 发表于 05-19 17:17 552次阅读
    <b class='flag-5'>ROS</b>系统的本地<b class='flag-5'>搭建</b>(<b class='flag-5'>上</b>)