[嵌入式AI从0开始到入土]22_基于昇腾310P RC模式的ACT模型部署实践
本文介绍了基于昇腾310P处理器的具身智能AI模型部署实践。主要内容包括:硬件平台选择(香橙派AI Station开发板)、环境配置(CANN 8.5.0工具链安装)、模型下载(ACT动作分块Transformer模型)和代码部署(lerobot框架配置)。重点展示了在资源受限的机器人平台上部署具身智能系统的完整流程,涉及Python环境搭建、NPU驱动安装、模型转换等关键步骤,为边缘计算场景下的
[嵌入式AI从0开始到入土]嵌入式AI系列教程
注:等我摸完鱼再把链接补上
可以关注我的B站号工具人呵呵的个人空间,后期会考虑出视频教程,务必催更,以防我变身鸽王。
第1期 昇腾Altas 200 DK上手
第2期 下载昇腾案例并运行
第3期 官方模型适配工具使用
第4期 炼丹炉的搭建(基于Ubuntu23.04 Desktop)
第5期 炼丹炉的搭建(基于wsl2_Ubuntu22.04)
第6期 Ubuntu远程桌面配置
第7期 下载yolo源码及样例运行验证
第8期 在线Gpu环境训练(基于启智ai协作平台)
第9期 转化为昇腾支持的om离线模型
第10期 jupyter lab的使用
第11期 yolov5在昇腾上推理
第12期 yolov5在昇腾上应用
第13期_orangepi aipro开箱测评
第14期 orangepi_aipro小修补含yolov7多线程案例
第15期 orangepi_aipro欢迎界面、ATC bug修复、镜像导出备份
第16期 ffmpeg_ascend编译安装及性能测试
第17期 Ascend C算子开发
第18期 Ascend C算子开发环境(S5赛季)
第19期 vllm Ascend初体验
第20期 在Ascend上使用ComfyUI部署SD模型
第21期 基于昇腾310P RC模式的Pi0模型部署实践
第22期 基于昇腾310P RC模式的ACT模型部署实践
未完待续…
文章目录
前言
昇腾(Ascend)是华为推出的一系列面向人工智能计算的专用处理器(NPU,Neural Processing Unit),旨在为深度学习训练和推理提供高性能、高能效的算力支持。昇腾系列芯片基于华为自研的达芬奇(DaVinci)架构,具备高并行、高吞吐、低功耗等优势,广泛应用于数据中心、边缘计算和终端设备等多种场景。
具身智能AI大模型是一种结合感知、决策与行动能力的智能系统,通过物理或虚拟载体与环境交互。这类模型不仅依赖大规模数据训练,还整合传感器输入、运动控制等模块,实现实时环境适应与任务执行。其核心在于将抽象认知能力与具身体验结合,推动机器人、自动驾驶等领域的突破。典型应用包括自主导航、物体抓取、人机协作等,标志着AI从纯数字世界迈向物理世界的关键一步。
ACT模型介绍
在 Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware 论文中提出了ACT: Action Chunking with Transformers 模型。
ACT 是一种典型的基于 Transformer 的模仿学习控制策略,其核心思想是以“动作分块(Action Chunking)”的方式一次性预测一段连续动作序列,从而有效缓解逐步预测带来的误差累积问题,并在多个双臂精细操作任务中验证了其有效性。
参考文献
- https://gitcode.com/cann/cann-recipes-embodied-intelligence
- https://github.com/huggingface/lerobot
- https://github.com/tonyzhaozh/act
一、硬件平台介绍
笔者参考的相关源码仓库基本都是基于Atlas 800I A2服务器进行训练,Ascend 310P芯片 EP模式下进行推理的。这里我们只需要进行模型的推理,并不涉及训练,EP模式的标卡还需要一台有PCIE接口的电脑,这并不符合机器人目前的空间限制和功耗限制。在综合售价,性能等因素后,笔者选取了Ascend 310P芯片 RC模式的开发板来进行具身智能相关模型的部署。
刚好香橙派上线了OrangePi AI Station,其搭载了Ascend 310P处理器,集成 16个CPU核,主频可达 1.9GHz,10个AI core,主频可达1.08GHz,8个Vector核,主频可达1GHz;算力可达176TOPS,支持48GB/96GB LPDDR4X/LPDDR5,支持NVMe SSD 2280的M.2插槽,3个USB3.0、HDMI、千兆网口、TF插槽、40Pin扩展接口等,130*130mm的尺寸,能够方便的放入机器人内部,性能和外设接口也够用。
二、部署步骤
这里有个前提,你已经刷入了香橙派提供的最新的镜像,并更新了香橙派提供的最新的驱动程序。
这里笔者使用的cann版本是社区的8.5.0版本,其他版本没有测试过,理论上也是可以用的。请自行安装
Ascend-cann-toolkit_8.5.0_linux-aarch64.run和
Ascend-cann-310p-ops_8.5.0_linux-aarch64.run。都是直接执行xxx.run --install,等他自己跑完,大概半个小时。
2.1 模型下载
我下载到了/models目录
git clone https://huggingface.co/lerobot/act_aloha_sim_transfer_cube_human
2.2 代码下载
我下载到了/root目录,其他目录也可以。
git clone https://gitcode.com/cann/cann-recipes-embodied-intelligence
cd cann-recipes-embodied-intelligence/manipulation
git clone https://github.com/huggingface/lerobot.git
cd lerobot
git checkout d9e74a9d374a8f26582ad326c699740a227b483c
# 如果checkout失败,执行下面两行再次checkout
git reset --hard HEAD
git clean -fdx
2.3 lerobot运行环境配置
# 注意,请先检查python版本,笔者是3.10的环境,请尽量使用3.10或者3.11环境
python3 --version
pip install torch==2.7.1
pip install https://gitcode.com/Ascend/pytorch/releases/download/v7.2.0.1-pytorch2.7.1/torch_npu-2.7.1.post1-cp310-cp310-manylinux_2_28_aarch64.whl
pip install --upgrade pip setuptools wheel
cd /root/cann-recipes-embodied-intelligence/manipulation/lerobot
# 安装 lerobot(本地可编辑安装)
pip install -e .
# 仿真依赖(Aloha 仿真需要 gym_aloha / gym-aloha)
pip install -e ".[aloha]"
# 固定 numpy 版本(如你的环境需要)
pip install numpy==1.26.0
# 修改代码
--- a/manipulation/act/infer_with_om/eval_act_ascend.py
+++ b/manipulation/act/infer_with_om/eval_act_ascend.py
@@ -36,6 +36,7 @@ This script is adapted for **Ascend OM-only** inference:
"""
from dataclasses import asdict
+from dataclasses import dataclass
from pathlib import Path
from pprint import pformat
2.4 转换模型
这一步大概需要半小时左右,如果有条件,可以使用x86环境转换模型。但需要保证cann版本和开发板环境一致。
pip install onnx onnxruntime
cd /root/cann-recipes-embodied-intelligence/manipulation/act/infer_with_om
python3 convert_and_verify_onnx.py \
--pretrained-policy-path /models/act_aloha_sim_transfer_cube_human/ \
--output outputs/onnx/act.onnx \
--device cpu \
--opset 14
atc --model=outputs/onnx/act.onnx \
--framework=5 \
--output=outputs/om/act \
--soc_version=Ascend310P1
2.5 设置无头渲染
apt-get update && apt-get install -y libosmesa6-dev libgl1-mesa-glx libglfw3 libx11-6 libxrandr2 libxinerama1 libxcursor1 libxi6
apt install -y libosmesa6 libgl1-mesa-glx
export MUJOCO_GL=osmesa
export PYOPENGL_PLATFORM=osmesa
2.6 安装并配置ACL
git clone https://gitee.com/ascend/samples.git
mkdir -p /usr/local/Ascend/thirdpart/aarch64/acllite
cp -r samples/python/common/acllite/* /usr/local/Ascend/thirdpart/aarch64/acllite
export PYTHONPATH=/usr/local/Ascend/thirdpart/aarch64/acllite:$PYTHONPATH
2.7 生成processor 文件
cd /root/cann-recipes-embodied-intelligence/manipulation/lerobot/src/lerobot/processor
python3 migrate_policy_normalization.py --pretrained-path /models/act_aloha_sim_transfer_cube_human
2.7 仿真评测
cd /root/cann-recipes-embodied-intelligence/manipulation/act/infer_with_om
python3 eval_act_ascend.py \
--policy.path=/models/act_aloha_sim_transfer_cube_human_migrated \
--om_model_path=/models/act_aloha_sim_transfer_cube_human_migrated/outputs/om/act.om \
--env.type=aloha \
--env.task=AlohaTransferCube-v0 \
--eval.batch_size=1 \
--eval.n_episodes=1 \
--env.episode_length=600 \
--seed=4412
运行完成后,在output目录下获得下面的视频。
三、性能数据对比
| 测试平台 | e2e时间 |
|---|---|
| orangepi ai station (ascend310p rc) acl lite推理 | 200ms左右 |
| nvidia orin 开启tensorRT | 80ms左右 |
四、总结与后续改进方向
当前实测性能数据和nVidia orin有不少差距,笔者在310P EP环境下测得纯模型推理仅耗时10ms,也就是大量的时间被用在了模型加载,画面渲染等方面,具体原因暂时还没有时间拉取流水线分析。欢迎各位大神值点一二。
更多推荐



所有评论(0)