你好,@ximenqin!
针对你搭建 S100 交叉编译环境的需求,官方文档已提供完整指引。以下是基于 OE 3.7.0 版本(对应板端系统 4.0.5)的详细步骤:
官方文档入口
RDK S100 算法工具链开发指南
关键信息汇总
1. 版本对应关系
| 组件 | 版本 | 说明 |
|---|---|---|
| OE 工具链 | 3.7.0 | 对应板端系统 4.0.5 |
| Docker 镜像 | v3.7.0 |
包含交叉编译工具链和依赖 |
| 系统确认 | cat /etc/version |
板端执行确认系统版本 |
2. Docker 镜像获取(两种方式)
方式 A:在线拉取(推荐)
# 1. 登录地瓜 Registry 服务器
docker login -u "ccr$deliver-ronly" registry.d-robotics.cc -p 'VLaeatrjF9yGf6I44trT74zKhUpZSVlr'
# 2. 拉取 CPU 版本镜像
docker pull registry.d-robotics.cc/deliver/ai_toolchain_ubuntu_22_s100_s600_cpu:v3.7.0
# 3. 拉取 GPU 版本镜像(如需 GPU 加速)
docker pull registry.d-robotics.cc/deliver/ai_toolchain_ubuntu_22_s100_s600_gpu:v3.7.0
方式 B:离线下载(网络不佳时)
# CPU 版本
wget https://d-robotics-aitoolchain.oss-cn-beijing.aliyuncs.com/oe/3.7.0/ai_toolchain_ubuntu_22_s100_s600_cpu_v3.7.0.tar
# GPU 版本
wget https://d-robotics-aitoolchain.oss-cn-beijing.aliyuncs.com/oe/3.7.0/ai_toolchain_ubuntu_22_s100_s600_gpu_v3.7.0.tar
# 加载镜像到 Docker
docker load -i ai_toolchain_ubuntu_22_s100_s600_cpu_v3.7.0.tar
3. 代码仓库与分支
- hobot_dnn 仓库:GitHub - D-Robotics/hobot_dnn · GitHub
- 分支选择:使用
main分支或s100_develop分支(如有) - robot_dev_config:用于 TROS 工程配置,包含
.repos文件
交叉编译环境搭建步骤
步骤 1:启动 Docker 容器
# 以 CPU 版本为例,挂载本地工作空间
docker run -it --rm \
-v /path/to/your/workspace:/root/tros_ws \
registry.d-robotics.cc/deliver/ai_toolchain_ubuntu_22_s100_s600_cpu:v3.7.0 \
bash
步骤 2:准备 TROS 工作空间
cd /root/tros_ws
mkdir -p src
# 克隆 robot_dev_config(获取 .repos 文件)
git clone https://github.com/D-Robotics/robot_dev_config.git
# 导入源码(根据 .repos 文件拉取 hobot_dnn 等依赖)
vcs-import src < ./robot_dev_config/ros2_release.repos
步骤 3:编译 dnn_node(关键步骤)
# 安装依赖(首次编译需要)
rosdep update
rosdep install --from-paths src --ignore-src -y
# 编译 dnn_node(指定 S100 平台)
source /opt/tros/humble/setup.bash
colcon build --packages-select dnn_node --cmake-args -DPLATFORM_S100=ON
关于 CMakeLists.txt 的 S100 适配问题
核心结论:不需要修改 CMakeLists.txt 文件,S100 适配是通过 CMake 参数 控制的。
原因说明
dnn_node的CMakeLists.txt中已内置多平台支持逻辑- 通过
-DPLATFORM_S100=ON参数激活 S100 特定的编译配置 - 底层依赖库(
libhb_dnn.so)由 Docker 镜像提供,已包含 S100 支持
验证编译结果
# 检查生成的库文件
ls -l install/dnn_node/lib/dnn_node/
# 应包含 S100 架构的可执行文件或库
常见问题排查
| 问题现象 | 解决方案 |
|---|---|
| Docker 拉取失败 | 检查网络,或使用离线 tar 包方式 |
| 编译报错 “PLATFORM_S100 not found” | 确认 colcon build 命令中包含 --cmake-args -DPLATFORM_S100=ON |
| 板端运行报错 | 确认板端系统版本与 OE 工具链版本匹配(4.0.5 对应 OE 3.7.0) |
| 代码仓库拉取失败 | 检查 Git 网络配置,或尝试使用镜像源 |
相关资源
- OE 用户手册:https://toolchain.d-robotics.cc/
- hobot_dnn GitHub:GitHub - D-Robotics/hobot_dnn · GitHub
- 社区资源汇总帖:地瓜算法工具链OpenExplore包Docker等发布下载
如果需要进一步协助(如具体编译报错分析),请提供详细信息!