一,前言
最近收到了CSDN的邀请,对香橙派新出的Ai Pro进行测评:
说来也巧,其实香橙派本人对其映像挺深刻的,在2017年左右,本人刚上大学,当时是在淘宝购买树莓派,发现有个叫香橙派的国产板子,性能跟树莓派差不多吧,但是价格好像便宜些,但是当时由于上大学,手里的生活费有限,而且生态与资料相对于树莓派要少,就没有入手。
很荣幸最近收到CSDN的邀请,知道了香橙派与华为合作,出了新的Ai Pro的板子,并邀请本人进行测评,相信借助CSDN与华为的晟腾社区的生态,会有更多的开发者加入,生态方面后面肯定会跟树莓派一样很丰富。
二,项目介绍
话不多说,开始本篇的测评,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
最终运行效果如下:
三,安装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
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:
打开终端(Ctrl+Alt+T)。
输入以下命令并按下回车键:
sudo visudo
这将打开sudo配置文件以进行编辑。
在打开的文件中,找到以下行:
Defaults env_reset
在此行下方添加以下行:
Defaults env_keep += "http_proxy https_proxy ftp_proxy"
这将允许sudo命令使用环境变量中设置的代理。
代理挂上后,继续执行sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src -y --skip-keys "fastcdr rti-connext-dds-6.0.1 urdfdom_headers"
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
编译后出现错误:
不要慌,这是因为Orange Pi默认处于conda 环境中,使用如下指令退出环境:
conda deactivate
#关闭自动source
conda config --set auto_activate_base false
然后把build目录删除,接着重新编译
由于编译比较慢,容易失败,失败后多尝试几次,我这里已经编译成功了,一些不重要的包编译失败可以不用管:
1.1.7.设置环境变量
通过如下指令设置环境变量,同时可以把这句话放入bashrc中,就能实现自动source
source ~/ros2_humble/install/local_setup.sh
1.1.8.检查ROS安装是否成功
终端输入ROS2 如果输出以下则代表安装成功:
1.2 二进制安装
二进制安装的话直接使用鱼香ROS的一键安装即可,这里不再详细介绍,一键安装脚本为:
wget http://fishros.com/install -O fishros && . fishros
但是会安装失败,失败的原因为:
遇到问题不要慌,我们来手动解决这个问题,使用如下指令:
sudo apt install libicu70=70.1-2
接着手动重新执行安装:
sudo apt-get install ros-humble-desktop
安装成功:
source 环境变量:
source /opt/ros/humble/setup.bash
验证是否安装成功
输入ros2 指令:
四,部署ROS QT项目
实际上Ubuntu22.04自带Qt的库,因此不用自行编译安装,如果存在没有的库,使用apt-get 直接安装二进制版本即可
1.克隆项目
这里的话建议将自己的项目上传到git,然后在板子上直接从git上拉取项目,比较方便,我这里使用的为本人的开源Qt项目:
https://github.com/chengyangkj/Ros_Qt5_Gui_App
使用如下指令拉取项目:
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
发现报如下错误:
这是因为我的项目依赖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
继续编译,编译成功:
3.运行项目
连接屏幕或者远程桌面,进入到可视化界面:
输入如下指令启动软件:
cd ~/qt_ws/ROS2_Qt5_Gui_App/build
./ros_qt5_gui_app
我这里连接的为另外一台电脑的仿真小车:
动态效果:
五,总结
使用了一周下来,香橙派AI Pro对我而言体验还是不错的,没有什么坑,装好系统镜像后做到了插电即用。连续插电运行一周也没有出现什么问题,很稳定。
香橙派AI Pro主打AI方面的强势,由于本人没有测试AI相关的指标,美中不足的是其CPU核心数比较少(只有4个核),在跑项目时如果开了一些录屏软件之类的话,会导致CPU占用率过高,从而使激光的绘制频率跟不上。