# Uni-Lab-OS 安装指南 本指南提供 Uni-Lab-OS 的完整安装说明,涵盖从快速一键安装到完整开发环境配置的所有方式。 ## 系统要求 - **操作系统**: Windows 10/11, Linux (Ubuntu 20.04+), macOS (10.15+) - **内存**: 最小 4GB,推荐 8GB 以上 - **磁盘空间**: 至少 10GB 可用空间 - **网络**: 稳定的互联网连接(用于下载软件包) - **其他**: - 已安装 Conda/Miniconda/Miniforge/Mamba - 开发者需要 Git 和基本的 Python 开发知识 - 自定义 msgs 需要 GitHub 账号 ## 安装包选择 Uni-Lab-OS 提供三个安装包版本,根据您的需求选择: | 安装包 | 适用场景 | 包含组件 | 磁盘占用 | |--------|----------|----------|----------| | **unilabos** | **推荐大多数用户**,生产部署 | 完整安装包,开箱即用 | ~2-3 GB | | **unilabos-env** | 开发者环境(可编辑安装) | 仅环境依赖,通过 pip 安装 unilabos | ~2 GB | | **unilabos-full** | 仿真可视化、完整功能体验 | unilabos + 完整 ROS2 桌面版 + Gazebo + MoveIt | ~8-10 GB | ## 安装方式选择 根据您的使用场景,选择合适的安装方式: | 安装方式 | 适用人群 | 推荐安装包 | 特点 | 安装时间 | | ---------------------- | -------------------- | ----------------- | ------------------------------ | ---------------------------- | | **方式一:一键安装** | 快速体验、演示 | 预打包环境 | 离线可用,无需配置 | 5-10 分钟 (网络良好的情况下) | | **方式二:手动安装** | **大多数用户** | `unilabos` | 完整功能,开箱即用 | 10-20 分钟 | | **方式三:开发者安装** | 开发者、需要修改源码 | `unilabos-env` | 可编辑模式,支持自定义开发 | 20-30 分钟 | | **仿真/可视化** | 仿真测试、可视化调试 | `unilabos-full` | 含 Gazebo、rviz2、MoveIt | 30-60 分钟 | --- ## 方式一:一键安装(推荐新用户) 使用预打包的 conda 环境,最快速的安装方法。 ### 前置条件 确保已安装 Conda/Miniconda/Miniforge/Mamba。 ### 安装步骤 #### 第一步:下载预打包环境 1. 访问 [GitHub Actions - Conda Pack Build](https://github.com/deepmodeling/Uni-Lab-OS/actions/workflows/conda-pack-build.yml) 2. 选择最新的成功构建记录(绿色勾号 ✓) 3. 在页面底部的 "Artifacts" 部分,下载对应你操作系统的压缩包: - Windows: `unilab-pack-win-64-{branch}.zip` - macOS (Intel): `unilab-pack-osx-64-{branch}.tar.gz` - macOS (Apple Silicon): `unilab-pack-osx-arm64-{branch}.tar.gz` - Linux: `unilab-pack-linux-64-{branch}.tar.gz` #### 第二步:解压并运行安装脚本 **Windows**: ```batch REM 使用 Windows 资源管理器解压下载的 zip 文件 REM 或使用命令行: tar -xzf unilab-pack-win-64-dev.zip REM 进入解压后的目录 cd unilab-pack-win-64-dev REM 双击运行 install_unilab.bat REM 或在命令行中执行: install_unilab.bat ``` **macOS**: ```bash # 解压下载的压缩包 tar -xzf unilab-pack-osx-arm64-dev.tar.gz # 进入解压后的目录 cd unilab-pack-osx-arm64-dev # 运行安装脚本 bash install_unilab.sh ``` **Linux**: ```bash # 解压下载的压缩包 tar -xzf unilab-pack-linux-64-dev.tar.gz # 进入解压后的目录 cd unilab-pack-linux-64-dev # 添加执行权限(如果需要) chmod +x install_unilab.sh # 运行安装脚本 ./install_unilab.sh ``` #### 第三步:激活环境 ```bash conda activate unilab ``` 激活后,您的命令行提示符应该会显示 `(unilab)` 前缀。 --- ## 方式二:手动安装(标准用户) 适合生产环境和需要灵活配置的用户。 ### 第一步:安装 Mamba 环境管理器 Mamba 是 Conda 的快速替代品,我们强烈推荐使用 Mamba 来管理 Uni-Lab 环境。 #### Windows 下载并安装 Miniforge(包含 Mamba): ```powershell # 访问 https://github.com/conda-forge/miniforge/releases # 下载 Miniforge3-Windows-x86_64.exe # 运行安装程序 # 也可以使用镜像站 https://mirrors.tuna.tsinghua.edu.cn/github-release/conda-forge/miniforge/LatestRelease/ # 下载 Miniforge3-Windows-x86_64.exe # 运行安装程序 ``` #### Linux/macOS ```bash # 下载 Miniforge 安装脚本 curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" # 运行安装 bash Miniforge3-$(uname)-$(uname -m).sh # 按照提示完成安装,建议选择 yes 来初始化 ``` 安装完成后,重新打开终端使 Mamba 生效。 ### 第二步:创建 Uni-Lab 环境 使用以下命令创建 Uni-Lab 专用环境: ```bash mamba create -n unilab python=3.11.14 # 目前ros2组件依赖版本大多为3.11.14 mamba activate unilab # 选择安装包(三选一): # 方案 A:标准安装(推荐大多数用户) mamba install uni-lab::unilabos -c robostack-staging -c conda-forge # 方案 B:开发者环境(可编辑模式开发) mamba install uni-lab::unilabos-env -c robostack-staging -c conda-forge # 然后安装 unilabos 和 pip 依赖: git clone https://github.com/deepmodeling/Uni-Lab-OS.git && cd Uni-Lab-OS pip install -e . uv pip install -r unilabos/utils/requirements.txt # 方案 C:完整版(含仿真和可视化工具) mamba install uni-lab::unilabos-full -c robostack-staging -c conda-forge ``` **参数说明**: - `-n unilab`: 创建名为 "unilab" 的环境 - `uni-lab::unilabos`: 安装 unilabos 完整包,开箱即用(推荐) - `uni-lab::unilabos-env`: 仅安装环境依赖,适合开发者使用 `pip install -e .` - `uni-lab::unilabos-full`: 安装完整包(含 ROS2 Desktop、Gazebo、MoveIt 等) - `-c robostack-staging -c conda-forge`: 添加额外的软件源 **包选择建议**: - **日常使用/生产部署**:安装 `unilabos`(推荐,完整功能,开箱即用) - **开发者**:安装 `unilabos-env`,然后使用 `uv pip install -r unilabos/utils/requirements.txt` 安装依赖,再 `pip install -e .` 进行可编辑安装 - **仿真/可视化**:安装 `unilabos-full`(Gazebo、rviz2、MoveIt) **如果遇到网络问题**,可以使用清华镜像源加速下载: ```bash # 配置清华镜像源 mamba config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ mamba config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ mamba config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ # 然后重新执行安装命令(推荐标准安装) mamba create -n unilab uni-lab::unilabos -c robostack-staging # 或完整版(仿真/可视化) mamba create -n unilab uni-lab::unilabos-full -c robostack-staging # pip 安装时使用清华镜像(开发者安装时使用) uv pip install -r unilabos/utils/requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple ``` ### 第三步:激活环境 ```bash conda activate unilab ``` --- ## 方式三:开发者安装 适用于需要修改 Uni-Lab 源代码或开发新设备驱动的开发者。 ### 前置条件 - 已安装 Git - 已安装 Mamba/Conda - 有 GitHub 账号(如需自定义 msgs) - 基本的 Python 开发知识 ### 第一步:克隆仓库 ```bash git clone https://github.com/deepmodeling/Uni-Lab-OS.git cd Uni-Lab-OS ``` 如果您需要贡献代码,建议先 Fork 仓库: 1. 访问 https://github.com/deepmodeling/Uni-Lab-OS 2. 点击右上角的 "Fork" 按钮 3. Clone 您的 Fork 版本: ```bash git clone https://github.com/YOUR_USERNAME/Uni-Lab-OS.git cd Uni-Lab-OS ``` ### 第二步:安装开发环境(unilabos-env) **重要**:开发者请使用 `unilabos-env` 包,它专为开发者设计: - 包含 ROS2 核心组件和消息包(ros-humble-ros-core、std-msgs、geometry-msgs 等) - 包含 transforms3d、cv-bridge、tf2 等 conda 依赖 - 包含 `uv` 工具,用于快速安装 pip 依赖 - **不包含** pip 依赖和 unilabos 包(由 `pip install -e .` 和 `uv pip install` 安装) ```bash # 创建并激活环境 mamba create -n unilab python=3.11.14 conda activate unilab # 安装开发者环境包(ROS2 + conda 依赖 + uv) mamba install uni-lab::unilabos-env -c robostack-staging -c conda-forge ``` ### 第三步:安装 pip 依赖和可编辑模式安装 克隆代码并安装依赖: ```bash # 确保环境已激活 conda activate unilab # 克隆仓库(如果还未克隆) git clone https://github.com/deepmodeling/Uni-Lab-OS.git cd Uni-Lab-OS # 切换到 dev 分支(可选) git checkout dev git pull ``` **推荐:使用安装脚本**(自动检测中文环境,使用 uv 加速): ```bash # 自动检测中文环境,如果是中文系统则使用清华镜像 python scripts/dev_install.py # 或者手动指定: python scripts/dev_install.py --china # 强制使用清华镜像 python scripts/dev_install.py --no-mirror # 强制使用 PyPI python scripts/dev_install.py --skip-deps # 跳过 pip 依赖安装 python scripts/dev_install.py --use-pip # 使用 pip 而非 uv ``` **手动安装**(如果脚本安装失败或速度太慢): ```bash # 1. 安装 unilabos(可编辑模式) pip install -e . # 2. 使用 uv 安装 pip 依赖(推荐,速度更快) uv pip install -r unilabos/utils/requirements.txt # 国内用户使用清华镜像: pip install -e . -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple uv pip install -r unilabos/utils/requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple ``` **注意**: - `uv` 已包含在 `unilabos-env` 中,无需单独安装 - `unilabos/utils/requirements.txt` 包含运行 unilabos 所需的所有 pip 依赖 - 部分特殊包(如 pylabrobot)会在运行时由 unilabos 自动检测并安装 **为什么使用可编辑模式?** - `-e` (editable mode):代码修改**立即生效**,无需重新安装 - 适合开发调试:修改代码后直接运行测试 - 与 `unilabos-env` 配合:环境依赖由 conda 管理,unilabos 代码由 pip 管理 **验证安装**: ```bash # 检查 unilabos 版本 python -c "import unilabos; print(unilabos.__version__)" # 检查安装位置(应该指向你的代码目录) pip show unilabos | grep Location ``` ### 第四步:安装或自定义 ros-humble-unilabos-msgs(可选) Uni-Lab 使用 ROS2 消息系统进行设备间通信。如果你使用方式一或方式二安装,msgs 包已经自动安装。 #### 使用已安装的 msgs(大多数用户) 如果你不需要修改 msgs,可以跳过此步骤,直接使用已安装的 msgs 包。验证安装: ```bash # 列出所有 unilabos_msgs 接口 ros2 interface list | grep unilabos_msgs # 查看特定 action 定义 ros2 interface show unilabos_msgs/action/DeviceCmd ``` #### 自定义 msgs(高级用户) 如果你需要: - 添加新的 ROS2 action 定义 - 修改现有 msg/srv/action 接口 - 为特定设备定制通信协议 请参考 **[添加新动作指令(Action)指南](../developer_guide/add_action.md)**,该指南详细介绍了如何: - 编写新的 Action 定义 - 在线构建 Action(通过 GitHub Actions) - 下载并安装自定义的 msgs 包 - 测试和验证新的 Action ```bash # 安装自定义构建的 msgs 包 mamba remove --force ros-humble-unilabos-msgs mamba config set safety_checks disabled # 关闭 md5 检查 mamba install /path/to/ros-humble-unilabos-msgs-*.conda --offline ``` ### 第五步:验证开发环境 完成上述步骤后,验证开发环境是否正确配置: ```bash # 确保环境已激活 conda activate unilab # 检查 ROS2 环境 ros2 --version # 检查 msgs 包 ros2 interface list | grep unilabos_msgs # 检查 Python 可以导入 unilabos python -c "import unilabos; print(f'Uni-Lab版本: {unilabos.__version__}')" # 检查 unilab 命令 unilab --help ``` 如果所有命令都正常输出,说明开发环境配置成功! --- ## 验证安装 无论使用哪种安装方式,都应该验证安装是否成功。 ### 基本验证 ```bash # 确保已激活环境 conda activate unilab # 或 unilab-dev # 检查 unilab 命令 unilab --help ``` 您应该看到类似以下的输出: ``` usage: unilab [-h] [-g GRAPH] [-c CONTROLLERS] [--registry_path REGISTRY_PATH] [--working_dir WORKING_DIR] [--backend {ros,simple,automancer}] ... ``` ### 检查版本 ```bash python -c "import unilabos; print(f'Uni-Lab版本: {unilabos.__version__}')" ``` ### 使用验证脚本(方式一) 如果使用一键安装,可以运行预打包的验证脚本: ```bash # 确保已激活环境 conda activate unilab # 运行验证脚本 python verify_installation.py ``` 如果看到 "✓ All checks passed!",说明安装成功! --- ## 常见问题 ### 问题 1: 找不到 unilab 命令 **原因**: 环境未正确激活或 PATH 未设置 **解决方案**: ```bash # 确保激活了正确的环境 conda activate unilab # 检查 unilab 是否在 PATH 中 which unilab # Linux/macOS where unilab # Windows ``` ### 问题 2: 包冲突或依赖错误 **解决方案**: ```bash # 删除旧环境重新创建 conda deactivate conda env remove -n unilab mamba create -n unilab uni-lab::unilabos -c robostack-staging -c conda-forge ``` ### 问题 3: 下载速度慢 **解决方案**: 使用国内镜像源(清华、中科大等) ```bash # 查看当前 channel 配置 conda config --show channels # 添加清华镜像 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ ``` ### 问题 4: 权限错误 **Windows 解决方案**: 以管理员身份运行命令提示符 **Linux/macOS 解决方案**: ```bash # 不要使用 sudo 安装 conda 包 # 如果 conda 安装在需要权限的位置,考虑重新安装 conda 到用户目录 ``` ### 问题 5: 安装脚本找不到 conda(方式一) **解决方案**: 确保你已经安装了 conda/miniconda/miniforge,并且安装在标准位置: - **Windows**: - `%USERPROFILE%\miniforge3` - `%USERPROFILE%\miniconda3` - `%USERPROFILE%\anaconda3` - `C:\ProgramData\miniforge3` - **macOS/Linux**: - `~/miniforge3` - `~/miniconda3` - `~/anaconda3` - `/opt/conda` 如果安装在其他位置,可以先激活 conda base 环境,然后手动运行安装脚本。 ### 问题 6: 安装后激活环境提示找不到? **解决方案**: 尝试以下方法: ```bash # 方法 1: 使用 conda activate conda activate unilab # 方法 2: 使用完整路径激活(Windows) call C:\Users\{YourUsername}\miniforge3\envs\unilab\Scripts\activate.bat # 方法 2: 使用完整路径激活(Unix) source ~/miniforge3/envs/unilab/bin/activate ``` ### 问题 7: conda-unpack 失败怎么办?(方式一) **解决方案**: 尝试手动运行: ```bash # Windows cd %CONDA_PREFIX%\envs\unilab .\Scripts\conda-unpack.exe # macOS/Linux cd $CONDA_PREFIX/envs/unilab ./bin/conda-unpack ``` ### 问题 8: 环境很大,有办法减小吗? **解决方案**: 1. **使用 `unilabos` 标准版**(推荐大多数用户): ```bash mamba install uni-lab::unilabos -c robostack-staging -c conda-forge ``` 标准版包含完整功能,环境大小约 2-3GB(相比完整版的 8-10GB)。 2. **使用 `unilabos-env` 开发者版**(最小化): ```bash mamba install uni-lab::unilabos-env -c robostack-staging -c conda-forge # 然后手动安装依赖 pip install -e . uv pip install -r unilabos/utils/requirements.txt ``` 开发者版只包含环境依赖,体积最小约 2GB。 3. **按需安装额外组件**: 如果后续需要特定功能,可以单独安装: ```bash # 需要 Jupyter mamba install jupyter jupyros # 需要可视化 mamba install matplotlib opencv # 需要仿真(注意:这会安装大量依赖) mamba install ros-humble-gazebo-ros ``` 4. **预打包环境问题**: 预打包环境(方式一)包含所有依赖,通常较大(压缩后 2-5GB)。这是为了确保离线安装和完整功能。 **包选择建议**: | 需求 | 推荐包 | 预估大小 | |------|--------|----------| | 日常使用/生产部署 | `unilabos` | ~2-3 GB | | 开发调试(可编辑模式) | `unilabos-env` | ~2 GB | | 仿真/可视化 | `unilabos-full` | ~8-10 GB | ### 问题 9: 如何更新到最新版本? **解决方案**: **方式一用户**: 重新下载最新的预打包环境,运行安装脚本时选择覆盖现有环境。 **方式二/三用户**: 在现有环境中更新: ```bash conda activate unilab # 更新 unilabos cd /path/to/Uni-Lab-OS git pull pip install -e . --upgrade -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple # 更新 ros-humble-unilabos-msgs mamba update ros-humble-unilabos-msgs -c uni-lab -c robostack-staging -c conda-forge ``` --- ## 下一步 安装完成后,请继续: - **快速启动**: 学习如何首次启动 Uni-Lab - **配置指南**: 配置您的实验室环境和设备 - **运行示例**: 查看启动示例和最佳实践 - **开发指南**: - 添加新设备驱动 - 添加新物料资源 - 了解工作站架构 ## 需要帮助? - **故障排查**: 查看更详细的故障排查信息 - **GitHub Issues**: [报告问题](https://github.com/deepmodeling/Uni-Lab-OS/issues) - **开发者文档**: 查看开发者指南获取更多技术细节 - **社区讨论**: [GitHub Discussions](https://github.com/deepmodeling/Uni-Lab-OS/discussions) --- **提示**: - **大多数用户**推荐使用方式二(手动安装)的 `unilabos` 标准版 - **开发者**推荐使用方式三(开发者安装),安装 `unilabos-env` 后使用 `uv pip install -r unilabos/utils/requirements.txt` 安装依赖 - **仿真/可视化**推荐安装 `unilabos-full` 完整版 - **快速体验和演示**推荐使用方式一(一键安装)