国产开源硬件可以这么玩!利用飞腾派进行机械臂分拣演示。

发布时间:2024-12-12

国产开源硬件 飞腾派

飞腾派是由萤火工场研发的一款面向行业工程师学生和爱好者的国产开源硬件。主板处理器采用飞腾嵌入式四核处理器,该处理器兼容ARM V8指令集,包含2个FTC664核和2个FTC310核,其中FTC664核主频可达1.8GHz,FTC310核主频可达15GHz。主板板载64位DDR4内存,分2G和4G两个版本,支持SD或者eMMC外部存储。主板板载WiFi蓝牙,陶瓷天线,可快速连接无线通信。另外还集成了大量外设接口,包括双路千兆以太网、USB、UART、CANHDMI、音频等接口,集成一路miniPCIE接口,可实现AI加速卡与4G、5G通信等多种功能模块的扩展。

飞腾派定制了PhytiumPIOS操作系统,并且支持OpenHarmony、openKylin、deepin、SylixOSRT-Thread等多款国产操作系统,同时也支持UbuntuArmbian、OpenWrt等国外主流的开源操作系统,为开发学习提供了更多的选择和极大的便利。


机械臂的“眼睛”

机械臂是一种高度灵活的自动化设备,广泛应用于工业制造、科研实验、教育等领域。视觉识别技术就相当于它的“眼睛”,使机械臂能够“看”到周围环境,并根据视觉信息进行精确的操作。本次将在国产开源硬件飞腾上使用yolo v5识别目标进行信息分析,并控制机械臂进行分拣演示。


准备工作

更新软件列表

sudo apt-get update
sudo apt install python3-pip

源码解压,把权重⽂件yolov5s.pt放⼊源码⽬录,再查看requirements.txt文件

user@Phytium-Pi:~/yolov5-6.0$ ls
 CONTRIBUTING.md  Dockerfile  LICENSE   
data
detect.py
export.py   models
requirements.txt  utils
train.py
hubconf.py  README.md  tutorial.ipynb
user@Phytium-Pi:~/yolov5-6.0$ cat requirements.txt  
# pip install -r requirements.txt
# Base 
---------------------------------------- 
matplotlib>=3.2.2 
numpy>=1.18.5 
opencv-python>=4.1.2 
Pillow>=7.1.2 
PyYAML>=5.3.1 
requests>=2.23.0 
scipy>=1.4.1 torch>=1.7.0 
torchvision>=0.8.1 
tqdm>=4.41.0 
...... 
# Logging 
------------------------------------
tensorboard>=2.4.1 
# wandb 
val.py 
yolov5s.pt 
# Plotting 
------------------------------------ 
pandas>=1.1.4 
seaborn>=0.11.0 
# roboflowthop  
# FLOPs computation       

提取码: gpwn

user@Phytium-Pi:~/install_pack$ ls
contourpy-1.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 
fonttools-4.54.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 
importlib_resources-6.4.5-py3-none-any.whl 
matplotlib-3.7.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 
pandas-1.5.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 
pillow-10.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 
python_dateutil-2.9.0.post0-py2.py3-none-any.whl 
scipy-1.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 
sympy-1.13.3-py3-none-any.whl 
tensorboard-2.14.0-py3-none-any.whl 
torch-2.4.1-cp38-cp38-manylinux2014_aarch64.whl 
torchvision-0.19.1-cp38-cp38-manylinux2014_aarch64.whl

⼤部分版本和requirements.txt,个别如pandas,requirements.txt⽤最新版本装起来有问题,我手动下载了可⽤的低版本。把pip包源改为清华源。

user@Phytium-Pi:~/yolov5-6.0$ mkdir ~/.pip/
user@Phytium-Pi:~/yolov5-6.0$ touch ~/.pip/pip.conf
user@Phytium-Pi:~/yolov5-6.0$ vim ~/.pip/pip.conf 
[global] 
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
"~/.pip/pip.conf" 2L, 62C 
sudo python3 -m pip install -r requirements.txt


运行与分析

查看源码路径下的README.md⽂件,启动命令和输⼊源的选择如下:

 $ python detect.py --source 0  # webcam
                             file.jpg  # image
                             file.mp4  # video                            
                             path/  # directory                            
                             path/*.jpg  # glob                            
                             'https://youtu.be/NUsoVlDFqZg'  # YouTube                            
                             'rtsp://example.com/media.mp4'  # RTSP, RTMP, 
 HTTP stream

插上usb摄像头( 注意插到板⼦的usb3.0口),查看节点。

user@Phytium-Pi:~/yolov5-6.0$ ls /dev/video*
 /dev/video0  /dev/video1

据video节点启动yolo5。

 user@Phytium-Pi:~/yolov5-6.0$ sudo python3 detect.py --source 0

yolo5有很多参数可配置。如下图,把默认输⼊源改为摄像头设备号,后⾯启动 时就不需要输⼊ "--source 0" 。其他参数可⾃⾏研究。

  完成分类后,可以把label转为字符串进⾏判断,从而对我们需要识别的物体进⾏操作。下图修改,区分出⾹蕉和苹果,并输出到打印信息。

⻜腾派识别信息并 进⾏处理,1帧⼤概1.5s表现还不错。只要在识别 出⽬标后,对机械臂进⾏控制,就能让机械臂识别目标进行分拣。后续可对模型进行持续优化,或者针对⽬标进⾏训练,来得到更快的响应速度。

机械臂分拣展示

视频链接: https://mp.weixin.qq.com/s/1BeKjxZNPEPghOZMewZGnQ


免费试用飞腾派

飞腾派免费试用活动正在进行中,测评还送定制文创礼品,诚邀您的参与,点击下方图片,了解详细活动内容。

申请链接: https://mp.weixin.qq.com/s/1BeKjxZNPEPghOZMewZGnQ




飞腾派V3 现货支持

飞腾派V3 现货发售,支持全四口USB 3.0接口,PWM智能调速散热风扇,国标/美标耳机自动识别等功能,售价649元包邮。

https://www.iceasy.com/product/1875487334855221250

飞腾派资料下载专区

提供飞腾派相关资料下载,包括开发板手册、开源项目文档等。

https://www.iceasy.com/cloud/Phytium?pid=1877646941793374213

开源口碑案例分享

可参考飞腾派开发板的用户评价和社区反馈。

https://www.iceasy.com/review/list