🐳 ROS2 Docker 环境配置与 OpenCV、PyBullet 安装实验报告
📅 日期
2026-05-13
🧪 实验目的
- 学习 Docker 容器的基本操作
- 掌握 ROS2 Docker 图形环境运行方法
- 在 Docker 容器中安装 OpenCV 与 PyBullet 库
- 学习 Docker 镜像保存与管理
- 构建完整 ROS2 机器人开发环境
🖥️ 实验环境
| 项目 | 内容 |
|---|---|
| 操作系统 | Windows 10 + WSL2 |
| Docker版本 | Docker Desktop |
| ROS版本 | ROS2 Humble |
| Python版本 | Python 3.10 |
| 仿真平台 | PyBullet |
| 图像处理库 | OpenCV |
| Docker镜像 | ghcr.io/tiryoh/ros2-desktop-vnc:humble |
🚀 实验步骤
1️⃣ 启动 ROS2 Docker 容器
在 Windows PowerShell 中输入:
docker run -p 6080:80 --security-opt seccomp=unconfined --shm-size=512m ghcr.io/tiryoh/ros2-desktop-vnc:humble
运行后,在浏览器访问:
http://127.0.0.1:6080/
成功进入 Ubuntu 图形桌面环境。
📷 Docker 图形环境

2️⃣ 查看 Docker 容器
在 PowerShell 输入:
docker ps
输出示例:
CONTAINER ID IMAGE STATUS
4ee704c91d43 ghcr.io/tiryoh/ros2-desktop-vnc:humble Up 4 minutes
成功获取 Docker 容器 ID。
3️⃣ 进入 Docker 容器
在 PowerShell 输入:
docker exec -it 4ee704c91d43 bash
成功进入 Docker Linux 环境:
root@4ee704c91d43:/#
4️⃣ 安装 PyBullet
在 Docker 容器终端输入:
pip3 install pybullet
安装完成后,进入 Python 测试:
python3
输入:
import pybullet
未出现报错,说明安装成功。
5️⃣ 安装 OpenCV
安装 OpenCV:
pip3 install opencv-python opencv-contrib-python
6️⃣ 解决 NumPy 与 OpenCV 兼容问题
安装 OpenCV 后,出现 NumPy 2.x 与 OpenCV 不兼容问题。
错误信息:
ImportError: numpy.core.multiarray failed to import
因此卸载 NumPy 2.x:
pip3 uninstall numpy -y
重新安装兼容版本:
pip3 install numpy==1.26.4
7️⃣ 测试 OpenCV
进入 Python:
python3
输入:
import cv2
print(cv2.__version__)
输出结果:
4.5.4
说明 OpenCV 安装成功。
8️⃣ 保存新的 Docker 镜像
退出 Docker 容器后,在 Windows PowerShell 输入:
docker commit -m "install pybullet and opencv" -a "zzz" 4ee704c91d43 zzz-ros2-full:v1.0
系统返回:
sha256:ef3ae3325bc9...
说明镜像保存成功。
📷 新 Docker 镜像

9️⃣ 查看保存的镜像
输入:
docker images
输出示例:
REPOSITORY TAG IMAGE ID
zzz-ros2-full v1.0 ef3ae3325bc9
成功生成新的 Docker 镜像。
🧠 实验原理
Docker 是一种轻量级容器技术,可以快速部署统一的软件开发环境。
本实验中:
- ROS2 运行在 Ubuntu Docker 容器中
- OpenCV 用于图像处理
- PyBullet 用于机器人物理仿真
- Docker Commit 用于保存当前开发环境
通过镜像保存,可以避免每次重新安装开发环境。
🎯 实验结果
✅ 成功启动 ROS2 Docker 图形环境
✅ 成功进入 Docker Linux 容器
✅ 成功安装 PyBullet
✅ 成功安装 OpenCV
✅ 成功解决 NumPy 兼容问题
✅ 成功保存新的 Docker 镜像
✅ 成功构建 ROS2 + OpenCV + PyBullet 完整开发环境
❗ 遇到的问题与解决方法
问题 1:OpenCV 无法导入
错误:
ImportError: numpy.core.multiarray failed to import
原因
NumPy 2.x 与 OpenCV 版本不兼容。
解决方法
卸载 NumPy 2.x:
pip3 uninstall numpy -y
安装 NumPy 1.x:
pip3 install numpy==1.26.4
问题 2:docker: command not found
原因
在 Docker 容器内部执行了 Docker 命令。
解决方法
退出容器后,在 Windows PowerShell 中执行 Docker 命令。
问题 3:容器无法进入
错误:
container is not running
原因
Docker 容器已经停止。
解决方法
重新启动容器:
docker start 4ee704c91d43
📘 实验收获
通过本实验,我不仅掌握了 Docker 容器的基本操作, 还学习了 ROS2 Docker 图形环境部署方法。
同时理解了:
- Docker 镜像与容器关系
- OpenCV 图像处理库安装方法
- PyBullet 机器人物理仿真平台
- Python 科学计算环境兼容问题
- Docker 开发环境保存与迁移
本实验为后续机器人视觉、 强化学习、 四足机器人控制实验提供了完整开发环境。
🚀 后续计划
后续将在该 Docker 环境中继续完成:
- ROS2 Topic 通信实验
- OpenCV 图像识别实验
- PyBullet 四足机器人控制
- PPO 强化学习训练
- 机器人视觉导航实验
🧾 实验总结
通过本次实验,我成功构建了基于 Docker 的 ROS2 机器人开发环境,并完成了 OpenCV 与 PyBullet 的安装配置。
实验过程中学习了 Docker 容器管理、镜像保存、Python 库安装以及环境兼容性问题解决方法。同时理解了 Docker 在机器人开发中的重要作用,为后续 ROS2、计算机视觉与机器人仿真开发打下基础。