ITPub博客

首页 > 嵌入式/内核开发 > 嵌入式/内核开发 > [嵌入式AI从0开始到入土]22_基于昇腾310P RC模式的ACT模型部署实践

[嵌入式AI从0开始到入土]22_基于昇腾310P RC模式的ACT模型部署实践

原创 嵌入式/内核开发 作者:工具人呵呵 时间:2026-02-02 21:54:26 0 删除 编辑


前言

ACT模型介绍

参考文献

一、硬件平台介绍

二、部署步骤

2.1 模型下载

2.2 代码下载

2.3 lerobot运行环境配置

2.4 转换模型

2.5 设置无头渲染

2.6 安装并配置ACL

2.7 生成processor 文件

2.7 仿真评测

三、性能数据对比

四、总结与后续改进方向

前言

昇腾(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,也就是大量的时间被用在了模型加载,画面渲染等方面,具体原因暂时还没有时间拉取流水线分析。欢迎各位大神值点一二。



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70050091/viewspace-3117719/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-01-01

  • 博文量
    35
  • 访问量
    5026