基于香橙派 Ai Pro的ROS Qt人机交互软件部署指南

一,前言

最近收到了CSDN的邀请,对香橙派新出的Ai Pro进行测评:

IMG_9622.HEIC


说来也巧,其实香橙派本人对其映像挺深刻的,在2017年左右,本人刚上大学,当时是在淘宝购买树莓派,发现有个叫香橙派的国产板子,性能跟树莓派差不多吧,但是价格好像便宜些,但是当时由于上大学,手里的生活费有限,而且生态与资料相对于树莓派要少,就没有入手。
很荣幸最近收到CSDN的邀请,知道了香橙派与华为合作,出了新的Ai Pro的板子,并邀请本人进行测评,相信借助CSDN与华为的晟腾社区的生态,会有更多的开发者加入,生态方面后面肯定会跟树莓派一样很丰富。

IMG_9623.HEIC

二,项目介绍

话不多说,开始本篇的测评,AI Pro主打的是AI方面其算力有8TOPS。由于本人目前从事的工作并没有与AI相关,因此本文就测评一下ROS相关的应用,给大家介绍一下如何在香橙派AI Pro上部署ROS QT人机交互软件。
这里ROS Qt人机交互软件开发建议的方法为:在自己电脑上编写Qt代码,代码编写完成之后,通过交叉编译或直接在板子上编译的方式将项目部署在开发板上,并不建议直接在板子上开发与写代码
本文选择在板子上编译,因此本文会着重介绍如何在板子上搭建ROS Qt的编译环境,并将自己的项目部署上去
这里使用的Demo为本人开源的github项目:
https://github.com/chengyangkj/Ros_Qt5_Gui_App
最终运行效果如下:

2024-05-25_12-35.png

5月25日(1).gif

三,安装ROS

香橙派AI Pro预装的为ubuntu22.04,我这里安装的ROS版本为ros2 humble。这里安装ROS2源码安装与二进制安装,我均尝试过了,大家根据自己的喜好安装即可

1.1 源码安装

源码安装参考ROS官方教程
需要注意,源码安装需要配置代理

1.1.1,启用Ubuntu Universe仓库

sudo apt install software-properties-common
sudo add-apt-repository universe

1.1.2.添加ROS2密钥

sudo apt update && sudo apt install curl -y
curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o ros-archive-keyring.gpg
cp ros-archive-keyring.gpg /usr/share/keyrings/

1.1.3.添加ROS源

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

安装编译所需工具:

sudo apt update && sudo apt install -y \python3-flake8-blind-except \python3-flake8-class-newline \python3-flake8-deprecated \python3-mypy \python3-pip \python3-pytest \python3-pytest-cov \python3-pytest-mock \python3-pytest-repeat \python3-pytest-rerunfailures \python3-pytest-runner \python3-pytest-timeout \ros-dev-tools

1.1.4.下载ROS2 Humble源码

mkdir -p ~/ros2_humble/src
cd ~/ros2_humble
vcs import --input https://raw.githubusercontent.com/ros2/ros2/humble/ros2.repos src

image.png

1.1.5.初始化rosdep

需要执行如下三条指令,这三条如果网络环境不好,很容易导致失败

sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src -y --skip-keys "fastcdr rti-connext-dds-6.0.1 urdfdom_headers"

注意:sudo rosdep init 也需要挂代理,但是可能出现在挂代理的情况下,还是报错,这是因为:使用sudo指令时 是默认不使用系统环境变量设置的http_proxy的,因此可能出现已经挂了代理,但是sudo rosdep init还是失败的情况,可以通过以下方法,设置sudo指令也可使用http_proxy:

  1. 打开终端(Ctrl+Alt+T)。

  2. 输入以下命令并按下回车键:

    sudo visudo
    

    这将打开sudo配置文件以进行编辑。

  3. 在打开的文件中,找到以下行:

    Defaults        env_reset
    
  4. 在此行下方添加以下行:

    Defaults        env_keep += "http_proxy https_proxy ftp_proxy"
    

    这将允许sudo命令使用环境变量中设置的代理。

    image.png


    代理挂上后,继续执行

    sudo rosdep init
    

    image.png

rosdep update

image.png

rosdep install --from-paths src --ignore-src -y --skip-keys "fastcdr rti-connext-dds-6.0.1 urdfdom_headers"

image.png

1.1.6.编译源码

前面铺垫了那么多 终于开始编译源码了,执行如下命令进行编译

cd ~/ros2_rolling/
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

注:如果嫌编译慢,可以使用多线程编译 4代表4个线程:

colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --parallel-workers 4

编译后出现错误:

image.png


不要慌,这是因为Orange Pi默认处于conda 环境中,使用如下指令退出环境:

conda deactivate#关闭自动source
conda config --set auto_activate_base false

然后把build目录删除,接着重新编译
由于编译比较慢,容易失败,失败后多尝试几次,我这里已经编译成功了,一些不重要的包编译失败可以不用管:

image.png

1.1.7.设置环境变量

通过如下指令设置环境变量,同时可以把这句话放入bashrc中,就能实现自动source

source ~/ros2_humble/install/local_setup.sh

1.1.8.检查ROS安装是否成功

终端输入ROS2 如果输出以下则代表安装成功:

image.png

1.2 二进制安装

二进制安装的话直接使用鱼香ROS的一键安装即可,这里不再详细介绍,一键安装脚本为:

wget http://fishros.com/install -O fishros && . fishros

但是会安装失败,失败的原因为:

image.png

遇到问题不要慌,我们来手动解决这个问题,使用如下指令:

sudo apt install libicu70=70.1-2

接着手动重新执行安装:

sudo apt-get install ros-humble-desktop

安装成功:

image.png


source 环境变量:

source /opt/ros/humble/setup.bash

验证是否安装成功
输入ros2 指令:

image.png

四,部署ROS QT项目

实际上Ubuntu22.04自带Qt的库,因此不用自行编译安装,如果存在没有的库,使用apt-get 直接安装二进制版本即可

1.克隆项目

这里的话建议将自己的项目上传到git,然后在板子上直接从git上拉取项目,比较方便,我这里使用的为本人的开源Qt项目:
https://github.com/chengyangkj/Ros_Qt5_Gui_App

image.png


使用如下指令拉取项目:

mkdir -p ~/qt_ws
cd ~/qt_ws
git clone https://github.com/chengyangkj/Ros_Qt5_Gui_App

note:如果github下载过慢,可以使用以下指令从gitee拉取

git clone https://gitee.com/chengyangkj/Ros_Qt5_Gui_App

2.编译项目

首先尝试直接编译:

cd ~/qt_ws/ROS2_Qt5_Gui_App
mkdir -p build
cd build
cmake ..
make

发现报如下错误:

image.png


这是因为我的项目依赖boost,但是Pi上的boost安装不全,使用指令安装:

sudo apt install libboost-all-dev

同时把一些项目其他依赖安装上:

sudo apt-get install qtbase5-private-dev libqt5svg5-dev libsdl-image1.2-dev libsdl1.2-dev -y

继续编译,编译成功:

image.png

3.运行项目

连接屏幕或者远程桌面,进入到可视化界面:
输入如下指令启动软件:

cd ~/qt_ws/ROS2_Qt5_Gui_App/build
./ros_qt5_gui_app

我这里连接的为另外一台电脑的仿真小车:

2024-05-25_12-35.png


动态效果:

5月25日(1).gif

五,总结

使用了一周下来,香橙派AI Pro对我而言体验还是不错的,没有什么坑,装好系统镜像后做到了插电即用。连续插电运行一周也没有出现什么问题,很稳定。
香橙派AI Pro主打AI方面的强势,由于本人没有测试AI相关的指标,美中不足的是其CPU核心数比较少(只有4个核),在跑项目时如果开了一些录屏软件之类的话,会导致CPU占用率过高,从而使激光的绘制频率跟不上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/17292.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据仓库和数据挖掘基础

文章目录 1. 数据仓库基础知识1.1 数据仓库的基本特性1.2 数据仓库的数据模式1.3 数据仓库的体系结构 2. 数据挖掘基础知识2.1 数据挖掘的分类2.2 数据挖掘技术2.3 数据挖掘的应用过程 传统数据库在联机事务处理(OLTP)中获得了较大的成功,但是对管理人员的决策分析要…

告别低效率||智能BI财务分析软件

在当今信息爆炸的时代,财务数据作为企业运营的核心,其处理和分析的效率直接关系到企业的决策速度和市场竞争力。奥威BI软件凭借其卓越的性能和智能化的分析功能,为企业提供了一套高效、准确的财务分析解决方案。 奥威BI软件在财务分析中的优…

流程引擎之compileflow idea 2024.*插件支持

之前有使用过多种类型工作流,但最近研究工作流引擎对比各有优劣,compileflow内存支持性能不错,但在idea新版本使用的时候发现插件不支持,干脆自己修改源码手撸一个(当前版本2024.1验证可用,如果有其他版本不…

5G工业三防平板电脑M195T:高性价比安卓加固手持终端

在工业领域,设备的坚固性和高效性能至关重要。亿道公司推出的全新5G工业三防平板电脑M195T,以其卓越的硬件配置和坚固耐用的设计,成为工业应用的理想选择。M195T不仅搭载了强大的ARM八核架构处理器和Android 11系统,还集成了多种先…

【C语言】文件操作(超级详细)

如果没有文件,我们写的程序的数据都存储在内存中,当程序退出,内存回收,数据就丢失了,下次再运行程序,已经看不到上次运行的数据了,而为了将数据持久性的保存,就需要使用文件。 一、…

电商新力量,四川易点慧电子商务有限公司

在数字化浪潮席卷全球的今天,电子商务行业正以前所未有的速度蓬勃发展。作为这一领域的佼佼者,四川易点慧电子商务有限公司凭借其独特的创新理念和前瞻性的战略布局,成功引领智慧零售新潮流,为行业发展注入了新的活力。 四川易点慧…

通付盾Web3专题 | SharkTeam:Web3常见钓鱼方式分析与安全防范建议

引言 Web3钓鱼是一种针对Web3用户的常见攻击手段,通过各种方式窃取用户的授权、签名,或诱导用户进行误操作,目的是盗窃用户钱包中的加密资产。 近年来,Web3钓鱼事件不断出现,且发展出钓鱼即服务的黑色产业链&#xf…

探索Python函数参数的奥秘

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、揭开函数参数的神秘面纱 1. 位置参数:按序传值的基石 2. 关键字参数&#…

AIGC绘画教学:副业不再是苦差事,AI短视频让你轻松月入过万

随着科技的飞速发展, AI已融入我们生活的每个角落, 在短视频领域, AI技术的应用更是如虎添翼, 为创作者打开了无限创意的大门。 在人人都是创作者的时代,一条短视频可能就会让你爆火!但要持续的产出高质量内容,或许…

unity知识点 专项二 DoTween动画

一、 动画序列(Sequence) 1.1 动画序列相关api 解释 sequence.Append(Tween tween) // 添加一个动画到序列末尾。 sequence.AppendCallback(TweenCallback callback) // 添加回调函数到序列末尾。 sequence.AppendInterval(float interval) // 添加一段…

Revit的特性 - 族类型和族实例、联动更新

Revit 模型的表示方式 Revit 是 Autodesk 推出的一款建筑建模软件,主要应用于建筑信息模型(Building Information Modeling,简称BIM)领域。Revit发布至今已经超过20年,他的核心理念是以族的概念来表达建筑模型。 在Re…

DOS学习-目录与文件应用操作经典案例-more

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.使用 三.案例 一.前言 DOS系统的more命令是一个用于查看文本文件内容的工具。…

【算法专题】双指针算法之 移动零

欢迎来到CILMY23的博客 🏆本篇主题为:双指针算法之移动零 🏆个人主页:CILMY23-CSDN博客 🏆系列专栏:Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux 🏆感谢观看,支持的…

金融信创生态实验室第三期金融信创优秀解决方案--中间件解决方案

编 者 按 为了更好地落实金融信创生态实验室(简称“实验室”,法人机构名称“北京金安信息技术有限责任公司”)“共赢桥、适配库、孵化器”定位,打造金融信创公共服务平台,实验室初步形成了金融信创解决方案&#xff0…

IDEA创建Spring Boot项目

1 打开新建项目界面 如图1,打开IDEA,点击菜单栏的File->New->Project,打开新建项目界面。 图1 新建项目 2 填写项目信息 在新建项目界面点击左侧工具栏的Spring Initializr选项,进行Spring Boot项目信息的填写&#xff…

Linux 如何用上次的checkpoint文件dist_train.sh 接着训练【mmdetection】

在Linux环境下,如果你想要用上一次的checkpoint文件继续训练,你可以在你的dist_train.sh脚本中设置--resume_from参数。这个参数指定了checkpoint文件的路径,训练会从该文件的状态继续进行。 例如,如果你的checkpoint文件名为las…

冯 • 诺依曼体系结构和操作系统

目录 冯诺依曼体系结构基于冯诺依曼体系数据的高效流转数据流转示例操作系统(Operator System)操作系统(Operator System)层次结构硬件部分系统软件部分用户部分 管理——先描述,再组织 就一个程序而言,需要在计算机中运行的才能实现它的价值&#xff0c…

视频截图软件,这几款截图神器收好!

在数字化时代,视频内容已经成为我们获取信息、娱乐休闲的主要方式之一。而在观看视频的过程中,我们总会遇到一些想要定格下来的精彩瞬间。此时,一款高效的视频截图软件就显得尤为重要。今天,就为大家推荐几款功能强大、操作简便的…

OpenBayes 教程上新 |全球首个开源的文生视频 DiT 模型!对标 Sora,保姆级 Latte 文生视频使用指南

小朋友不爱背诗怎么办?《千秋诗颂》试试看。 2 月 26 日,中国首部文生视频 AI 系列动画《千秋诗颂》于 CCTV-1 频道正式播出,这部动画由上海人工智能实验室和「央妈」(中央广播电视总台)强强联手,借助「央视…

OrangePi Kunpeng Pro 开箱测评之一步到喂

前情提要:大家好,我是Samle。有幸接到 CSDN 发来的测评邀请,下面针对 OrangePi Kunpeng Pro 开发板进行一些实践操作,让大家能更好的上手这块板子。 以下内容来自 官方说明 OrangePi Kunpeng Pro采用4核64位处理器AI处理器&#…