一个基于 ROS2 的 6 自由度机械臂控制系统,采用领域驱动设计 (DDD) 架构,集成了运动学计算、动力学分析、运动规划、手眼标定和计算机视觉功能。
- 6自由度控制 - 支持 6DOF 机械臂的精确关节/笛卡尔空间控制
- 运动学解算 - 高精度正逆运动学 (DH 参数配置)
- 动力学补偿 - 重力补偿与静摩擦力模型,支持零重力拖动示教
- 平滑轨迹 - 基于 S 曲线和 TOPPRA 的轨迹平滑与时间参数化
- 手眼标定 - 集成 Eye-in-Hand 标定流程 (AX=XB 求解)
- 视觉识别 - 支持 YOLOv8 目标检测与位姿估计
- 相机支持 - 深度相机 (Orbbec/Realsense) 集成
- 示教模式 - 拖拽示教、轨迹录制与回放
- 运动规划 - 支持多点路径规划与自动避障
- 全功能 GUI - 基于 PyQt5 的现代化操作界面,实时 3D 可视化
本项目采用严格的 领域驱动设计 (DDD) 分层架构:
src/controller/controller/
├── application/ # 应用层:业务流程编排 (Service, Command, Listener)
├── domain/ # 领域层:核心业务逻辑 (Entity, Service, ValueObject)
│ ├── services/ # 领域服务 (Algorithm, Motion, State, Vision)
│ ├── entities/ # 领域实体 (MotionPlan)
│ └── value_objects/ # 值对象 (RobotState, DHParam)
├── infrastructure/ # 基础设施层:外部交互 (Serial, Persistence)
├── presentation/ # 展示层:MVVM 架构 (ViewModel, View)
├── shared/ # 共享层:DI 容器与配置
└── config/ # 配置文件 (YAML/JSON)
- OS: Ubuntu 26.04+
- Python: 3.12+
- ROS2: jazzy
- 依赖管理:
uv(推荐) 或pip
- 机械臂: 6轴串联机械臂 (支持自定义 DH 参数)
- 相机: Orbbec Gemini 330 系列 / Intel Realsense
- 通信: USB 转串口 (TTL/RS485)
git clone https://github.com/loukey/zz-ros.git
cd zz-ros本项目推荐使用 uv 进行依赖管理:
# 安装 uv
pip install uv
# 同步依赖环境
uv sync本项目采用 Apache 2.0 许可证。
Safe Operation Warning: 请确保在安全环境下操作机械臂,随时准备按下急停按钮。