1.介绍
官网:http://www.orangepi.cn/
社区:http://forum.orangepi.cn/
昇腾社区:https://www.hiascend.com/
OrangePi AIPro 是一款基于昇腾AI技术的开发板,它采用华为昇腾910E AI芯片,集成4核64位CPU和AI处理器,支持8TOPS AI算力,拥有8GB/16GB LPDDR4X内存,支持千兆网口、GPIO接口、双HDMI接口、WIFI5+BT4.2、USB3.0和USB Type-C 3.0接口等,采用Type-C供电(还支持MIPI接口的摄像头和DSI屏幕,后续有了这些外设可以继续开发)。Orange Pi AIpro支持Ubuntu、openEuler操作系统,满足大多数AI算法原型验证、推理应用开发的需求。
OrangePi AIPro 的主要特点:
- 高性能:采用华为昇腾910E AI芯片,支持8TOPS AI算力,可满足各种AI应用的需求。
- 低功耗:采用12nm制程工艺,功耗低,发热量小。
- 开源:支持多种开源操作系统,如Ubuntu、OpenEuler等,方便开发人员进行二次开发。
- 扩展性强:提供丰富的接口,支持多种扩展模块,可满足不同应用场景的需求。
OrangePi AIPro 的优势:
- 高性价比:相比其他AI开发板,OrangePi AIPro 的价格更低,性能更强。
- 开源社区支持:拥有活跃的开源社区,为开发人员提供丰富的技术支持和资源。
- 产品线丰富:除了OrangePi AIPro,还推出了多款AI开发板,可满足不同用户的需求。
OrangePi AIPro 旨在为人工智能应用提供高性能、低功耗的开发平台,可广泛应用于图像识别、语音识别、自然语言处理、智能家居、机器人等领域。总的来说,相比树莓派和英伟达的Jetson系列,OrangePi AIPro对中文开发者更加友好,内容也足够丰富,可作为平替开发机器人及相关的AI应用。
2.环境配置
开发板已经预装好了Ubuntu22.04系统,C++编译器和Python等基础环境也是装好的,第一次开机我们连接上网络后查看ip,然后就可以通过ssh远程登陆了,不用再依赖屏幕。
当然也可以安装nomachine,方便桌面操作,效果如图:
常用的查看系统信息的命令:
uname -a #显示内核版本、操作系统名称、主机名、处理器的架构等基本系统信息lsb_release -a #显示发行版名称、版本号、发行版ID等详细信息
lshw #列出所有检测到的硬件设备及其详细信息
lspci #列出所有PCI设备及其详细信息
df -h #显示磁盘分区的使用情况
free -m #显示内存使用情况
top #查看系统监控信息
另外,可对开发板禁用睡眠模式,防止睡眠后黑屏:
sudo systemctl status sleep.target
sudo systemctl stop sleep.target
sudo systemctl disable sleep.target
系统基础环境配置好后,机器人开发可以安装ros,Ubuntu22对应的应该是ROS2 Humble,可以使用小鱼的一键安装指令。不过有这方面需求再安装,毕竟占用的存储空间不小(完整版大约2.9G)。常用的命令如下:
ros2 pkg list #包管理工具
ros2 run #节点运行
ros2 node list #节点查看
ros2 topic list #话题操作
ros2 interface list #接口操作
另外,主打AI开发板,当然AI的开发环境也是配好的,可以看到已经配好了pytorch环境,开发板用的模型是om格式的,系统样例中也给了onnx2om.py的转换脚本。系统默认安装的是miniconda,可通过下列命令查看:
which pip
pip list | grep torch
或进入python环境输入import torch
查看是否报错
3.基础应用
系统主目录samples下,自带了几个AI示例,可以先简单跑一下试试,包含目标检测、特征点检测、场景分割等。
此外,还可以做下面两种应用:
3.1搭建一个简单的流媒体服务器
可以基于此开发板推流视频或相机的图像,并基于nodejs搭建流媒体监控页面,具体步骤如下:
# 安装nodejs和ffmpeg
sudo apt install nodejs ffmpeg
# 安装node-media-server
npm install node-media-server
# 创建app.js并通过node app.js运行,打开http://localhost:8000/admin/可查看
# 本地推流视频文件
ffmpeg -re -i input.mp4 -c:v copy -c:a copy -f flv rtmp://localhost:1935/live/stream_name
// app.js
const NodeMediaServer= require('node-media-server');
const config = {
rtmp: {
port: 1935, // 页面端口
chunk_size: 60000,
gop_cache: true,
ping: 60,
ping_timeout: 30
},
http: {
port: 8000,
allow_origin: '*',
}
};
var nms = new NodeMediaServer(config)
nms.run();
效果如下,跑一跑视频推流还是可以的:
3.2运行ROS2程序
ROS 2 是一个开源的机器人操作系统,它是ROS(Robot Operating System)的下一代版本。它提供了一系列工具、库和约定,用于构建机器人应用程序。
ROS 2采用分布式消息传递机制,可以在不同的计算机上进行通信,并支持多种编程语言,包括C++、Python、Java等。ROS 2还提供了更好的安全性和实时性,使其适用于更广泛的机器人应用场景。
开发板可以安装ROS2,并可接入相机、雷达等传感器,进行机器人应用等,一个基本的发布和订阅运行如下:
# 发布订阅
ros2 run demo_nodes_cpp listener
ros2 run demo_nodes_cpp talker
# 小乌龟
ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key
运行发布者和监听者示例:
4.使用体验
从收到开发板到开机配置,再到跑相关的工程,总体来说比较顺利,尤其喜欢这个type-c接口供电,整体接口也比较丰富,建议初学者可以搭配上外壳、屏幕和摄像头,这样开发会更加方便。
也有几个小问题要注意:
- 要远程用nomachine的话,需要先接上屏幕后才可远程界面;远程相比直接用屏幕操作稍有卡顿,但还能接受
- ros2工程编译不要在miniconda环境下,要先退出conda,然后才能正常编译通过
总体来说,接口丰富,资源较多,对中文开发者还是比较友好的,可作为某pi的平替。
以上。