unity2moveit2/DOCKER_DEPLOYMENT_GUIDE.md
ayuan9957 fe15edcbd5 Initial commit: Unity-MoveIt2 integrated robotic arm simulation system
- Unity frontend with ROS-TCP-Connector for ROS2 communication
- Docker-based ROS2 Jazzy backend with MoveIt2 integration
- Support for 1-9 DOF manipulators
- UR5 robot configuration and URDF files
- Assembly task feasibility analysis tools
- Comprehensive documentation and deployment guides

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-13 12:08:34 +08:00

5.1 KiB
Raw Permalink Blame History

Unity-ROS2 Docker部署指南

🐳 Docker容器化部署方案

本指南介绍如何使用Docker容器部署Unity-ROS2机器人控制系统无需安装WSL或本地ROS2环境。

📋 部署架构

Windows 11 Host
├── Unity Editor (开发环境)
├── Docker Desktop
└── ROS2 Jazzy Container
    ├── ROS-TCP-Endpoint
    ├── MoveIt2
    └── 机器人控制节点

🛠️ 环境要求

必需组件

  • Windows 11 (推荐) 或 Windows 10
  • Docker Desktop 4.0+
  • Unity 2022.3 LTS 或更高版本 (推荐 2022.3.57f1c2)
  • 内存: 最少8GB推荐16GB
  • 存储: 至少10GB可用空间

当前环境状态

Docker: 版本 28.4.0 已安装
系统: Windows 10 Pro for Workstations
⚠️ 建议: 升级到Windows 11以获得更好性能

🚀 快速部署

第一步构建Docker镜像

# 进入项目目录
cd "D:\ros2\DockerRos2Arm-niryo_arm\Unity_MoveIt2"

# 构建ROS2镜像首次运行需要10-15分钟
.\scripts\start-ros2-docker.ps1 -Build

第二步启动ROS2服务

# 启动主服务
.\scripts\start-ros2-docker.ps1

# 或启动包含监控的完整服务
.\scripts\start-ros2-docker.ps1 -Monitor

第三步:验证部署

# 检查系统状态
.\scripts\start-ros2-docker.ps1 -Status

# 查看服务日志
.\scripts\start-ros2-docker.ps1 -Logs

📊 部署状态

当前进度

  • Docker配置文件: 已创建
  • 启动脚本: 已完成
  • 🔄 镜像构建: 正在进行中
  • 服务测试: 等待构建完成
  • Unity集成: 待开始

镜像构建内容

  • 基础镜像: Ubuntu 24.04 LTS
  • ROS2版本: Jazzy Desktop
  • 核心组件:
    • ROS-TCP-Endpoint (Unity通信)
    • MoveIt2 (运动规划)
    • ROS2 Control (机器人控制)
    • 可视化工具 (RQT, RViz)

🔧 配置说明

网络配置

  • 主端口: 10000 (ROS-TCP-Endpoint)
  • 备用端口: 10001, 10002
  • 容器网络: 172.20.0.0/16
  • Unity连接地址: localhost:10000

环境变量

ROS_DOMAIN_ID=0                    # ROS2域ID
RMW_IMPLEMENTATION=rmw_cyclonedx_cpp  # 中间件实现
ROS_LOCALHOST_ONLY=0               # 允许外部连接

资源限制

  • 内存限制: 4GB
  • CPU限制: 2核心
  • 存储: 自动管理

🎯 Unity集成配置

连接参数

// Unity中的ROS连接配置
public class ROSConnectionSettings
{
    public string rosIPAddress = "localhost";
    public int rosPort = 10000;
    public float timeoutDuration = 10f;
}

测试连接

  1. 启动Docker容器
  2. 在Unity中运行测试场景
  3. 检查控制台连接状态
  4. 验证消息收发

📋 管理命令

基本操作

# 启动服务
.\scripts\start-ros2-docker.ps1

# 停止服务
.\scripts\start-ros2-docker.ps1 -Stop

# 查看状态
.\scripts\start-ros2-docker.ps1 -Status

# 查看日志
.\scripts\start-ros2-docker.ps1 -Logs

# 重新构建
.\scripts\start-ros2-docker.ps1 -Build

高级操作

# 启动监控服务
.\scripts\start-ros2-docker.ps1 -Monitor

# 查看特定服务日志
.\scripts\start-ros2-docker.ps1 -Logs -Service ros2-monitor

# 进入容器调试
docker exec -it unity-ros2-system bash

🔍 故障排除

常见问题

1. Docker构建失败

# 清理Docker缓存
docker system prune -f

# 重新构建
.\scripts\start-ros2-docker.ps1 -Build

2. 端口占用

# 检查端口占用
netstat -ano | findstr :10000

# 停止占用进程
taskkill /PID <进程ID> /F

3. Unity连接失败

  • 检查防火墙设置
  • 验证容器是否运行
  • 确认端口映射正确

4. 性能问题

# 增加Docker资源分配
# Docker Desktop -> Settings -> Resources
# 内存: 8GB+
# CPU: 4核心+

日志收集

# 收集所有日志
.\scripts\start-ros2-docker.ps1 -Logs > ros2_logs.txt

# Docker系统信息
docker system info > docker_info.txt

# 容器状态
docker ps -a > container_status.txt

📈 性能优化

Docker优化

// Docker Desktop配置建议
{
  "memory": 8192,
  "cpus": 4,
  "swap": 2048,
  "experimental": true,
  "buildkit": true
}

网络优化

  • 使用host网络模式Linux
  • 配置防火墙规则
  • 优化TCP缓冲区大小

🎯 下一步计划

即将完成

  1. 镜像构建完成 - 预计5-10分钟
  2. 服务启动测试 - 验证ROS2环境
  3. Unity连接测试 - 确保通信正常

后续任务

  1. Unity项目配置 - 导入和配置
  2. 机器人模型加载 - URDF文件
  3. 运动规划测试 - MoveIt2集成
  4. 性能基准测试 - 延迟和吞吐量

📞 技术支持

调试信息收集

# 生成调试报告
.\scripts\start-ros2-docker.ps1 -Status > debug_report.txt
docker logs unity-ros2-system >> debug_report.txt

联系方式

  • 项目仓库: GitHub Issues
  • 技术文档: README.md
  • 系统报告: SYSTEM_VERIFICATION_REPORT.md

部署指南版本: v1.0
最后更新: 2025年9月30日
部署方式: Docker容器化
目标系统: Windows 11 + Docker Desktop