配置pi 0具身智能大模型 环境

发布于:2025-06-29 ⋅ 阅读:(14) ⋅ 点赞:(0)

配置 Raspberry Pi Zero (Pi Zero) 运行 openpi 项目需考虑其 ARMv6 架构和硬件限制(单核 CPU,512MB RAM)。以下是完整流程:


1. 系统准备

  1. 刷写 Raspberry Pi OS Lite (无桌面版更省资源)

    • 下载镜像:https://www.raspberrypi.com/software/operating-systems/
    • 使用 Raspberry Pi Imager 写入 TF 卡,开启 SSH:
      Advanced Options → Enable SSH → Set username/password
  2. 首次启动配置

    sudo raspi-config
    # 扩展文件系统:Advanced > Expand Filesystem
    # 内存分配:Performance > GPU Memory > 16
    # 超频:Performance > Overclock → Pi Zero → 1000MHz
    sudo reboot
    

2. 安装基础依赖

# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装核心依赖
sudo apt install -y git git-lfs python3-pip build-essential libopenblas-dev libatlas-base-dev

# 安装 uv (替代 pip)
curl -LsSf https://astral.sh/uv/install.sh | sh
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

3. 克隆项目与子模块

# 使用 HTTPS 避免 SSH 密钥问题
git clone --recurse-submodules https://github.com/Physical-Intelligence/openpi.git
cd openpi

# 初始化子模块 (若上一步遗漏)
git submodule update --init --recursive

4. 配置虚拟环境

# 创建轻量虚拟环境
uv venv .venv
source .venv/bin/activate

# 安装依赖 (跳过 LFS 大文件)
GIT_LFS_SKIP_SMUDGE=1 uv sync
GIT_LFS_SKIP_SMUDGE=1 uv pip install -e . --no-build-isolation

注意:Pi Zero 的 ARMv6 架构可能导致部分包编译失败。若遇到错误:

  • 尝试预编译轮子:uv pip install --prefer-binary <package>
  • 减少编译线程:export MAKEFLAGS="-j1"

5. Docker 替代方案 (推荐)

Pi Zero 性能有限,建议在 PC 端构建 Docker 镜像,然后复制到 Pi Zero:

# 在 x86 主机上构建
docker buildx build --platform linux/arm/v6 -t openpi:pi0 .

# 导出镜像并复制到 Pi Zero
docker save openpi:pi0 > openpi.tar
scp openpi.tar pi@pi-zero-ip:~/

# 在 Pi Zero 加载镜像
docker load < openpi.tar
docker run -it --platform linux/arm/v6 openpi:pi0

6. 优化 Pi Zero 性能

  • 增加交换空间 (避免 OOM):
    sudo sed -i 's/CONF_SWAPSIZE=100/CONF_SWAPSIZE=1024/' /etc/dphys-swapfile
    sudo systemctl restart dphys-swapfile
    
  • 禁用桌面服务 (仅 Lite 版可跳过):
    sudo systemctl set-default multi-user.target
  • 安装散热片:避免高频运行时过热降频。

常见问题解决

  1. 编译卡死

    • 降低编译线程:export MAKEFLAGS="-j1"
    • 使用预编译包:uv pip install --prefer-binary numpy
  2. 内存不足

    • 关闭后台进程:sudo systemctl stop cron.service
    • 使用 zram 压缩内存:
      sudo apt install zram-tools
      echo "PERCENT=200" | sudo tee /etc/default/zramswap
      sudo systemctl restart zramswap.service
      
  3. 依赖不兼容
    requirements.txt 中替换以下兼容版本:

    # 针对 ARMv6 的兼容版本
    numpy==1.24.3  # 最后支持 ARMv6 的版本
    scipy==1.10.1  # 需 libopenblas-dev
    

提示:复杂模型推理建议通过 gRPC/HTTP 调用远程服务器,Pi Zero 仅作控制端。