跳转至

机械臂控制仿真

一套基于 C++ / VTK / Qt 的机器人仿真架构示例
从零实现完整运动学 + 渲染 + 执行流程

🎬 演示视频:哔哩哔哩
🖥 演示版本:百度网盘

欢迎关注公众号【三十儿艺】,这是一个属于普通人的小天地,记录创作的过程、成长的感悟和生活的点滴。 这里没有高深的理论,只有从代码到生活的真实分享。


1 产品定位

RobotSimulation 是一个面向开发者的机器人仿真框架示例,完整实现了:

  • 串联机器人 DH 参数建模体系
  • 正 / 逆运动学核心算法实现
  • MoveJ / MoveL / MoveC 指令与插补框架
  • S 型速度规划与时间参数化结构
  • 三维实时渲染与轨迹可视化系统
  • 程序指令解析与执行引擎

本项目不是简单功能演示,而是一套从底层运动学到上层程序执行的完整技术闭环实现,帮助开发者理解:

  • 机器人模型如何抽象
  • 运动学如何组织为可复用模块
  • 插补与速度规划如何工程化实现
  • 渲染系统如何与控制系统解耦
  • 程序执行引擎如何驱动整个仿真流程

适用于:

  • 想学习机器人运动学源码实现的开发者
  • 需要做仿真原型验证的个人
  • 教学科研参考
  • 想快速搭建机器人仿真软件基础架构的团队

2 为什么值得购买?

✔ 完整源码可控
✔ 省去从零设计架构的时间
✔ 运动学与渲染完整打通
✔ 工程结构清晰,可直接二次开发
✔ 不依赖脚本层,纯 C++ 实现
✔ 可深度定制,无授权限制
✔ 提供技术支持与定制开发
✔ 企业级架构设计


3 授权说明

  • 提供完整源码交付(含全部工程文件)
  • 支持个人及商业使用
  • 提供技术答疑支持
  • 持续优化与功能迭代更新

4 核心能力

1️⃣ 机器人运动学系统

  • 基于 DH 参数的通用建模方法,支持任意自由度串联机器人
  • 高效正/逆运动学求解,支持多解管理与切换
  • 内置关节限位与安全约束检测
  • 提供坐标系变换、工具末端校准等实用工具库
  • 可扩展运动学模型,便于自定义机器人类型

2️⃣ 轨迹与运动控制

  • 支持 MoveJ / MoveL / MoveC 等常用指令
  • 关节空间与笛卡尔空间插补,轨迹平滑可控
  • 内置 S 型速度规划与加减速控制
  • 支持轨迹回放、暂停、单步执行
  • 可扩展时间参数化与插值策略,便于高级运动规划

3️⃣ 3D可视化仿真

  • 实时渲染机器人模型及关节运动
  • 示教点、轨迹路径与工作空间可视化
  • 支持坐标轴、工具端与相机的交互编辑
  • 场景管理、模型加载及多相机视角切换
  • 可结合仿真数据实现动画、碰撞检测及路径验证

4️⃣ 程序执行引擎

  • 通用指令系统架构,易扩展自定义指令
  • 程序解析、执行及回放框架
  • 支持指令级别的速度、区域、延时控制
  • 可视化调试、断点与执行监控

5 技术架构

系统采用纯 C++17 架构实现,无脚本层依赖。

技术 用途
C++17 核心语言
VTK 9 3D可视化
Qt 6 GUI框架
Eigen3 正逆解运算
CMake 构建系统

模块划分清晰:

  • robot_core – 运动学与控制
  • robot_render – 渲染系统
  • robot_program – 程序引擎
  • robot_studio – Qt界面层

核心模块高度解耦,便于理解与二次开发,支持独立集成至现有自动化系统。


6 更新日志

6.1 v0.7.0

2026.03.08

  • 新增设置面板,支持配置运动参数和文件选项
  • 新增机械臂导入导出功能,便于自定义机械臂 stl + json
  • 新增从 URDF (*.urdf *.xacro) 导入机械臂功能

6.2 v0.6.0

2026.02.28

  • 新增轨迹曲线面板,支持关节位置、关节速度、关节加速度、TCP 速度、TCP 加速度可视化
  • 编程运动速度规划由梯型升级为 S 型(7 段、jerk 限制)
  • Zone blend 混合由后处理切角平滑升级为 junction 连续运动模式
  • 支持 CMake 生成文件分组
  • 以源码形式内置集成 Eigen3 与 QCustomPlot

6.3 v0.5.0

2026.02.25

  • 新增工具工作空间可视化功能
  • 支持基于当前工具配置的可达范围计算与三维网格展示
  • 优化工作空间计算流程与可视化性能

6.4 v0.4.0

2026.02.22

  • 支持整个项目的序列化与反序列化

6.5 v0.3.0

2026.02.20

  • 重构编程模块架构,统一指令抽象与执行流程,现支持如下指令模式
MoveL <TargetPose> [speed=<0-100>] [zone=<0-10>]
MoveJ <TargetPose> [speed=<0-100>] [zone=<0-10>]
MoveC <ViaPose> <TargetPose> [speed=<0-100>] [zone=<0-10>]
SetSpeed <0-100>
Wait <milliseconds>
  • 编程运动速度规划升级为梯型
  • 重构编程模块 UI,优化交互与结构布局,支持拖拽排序、复制、粘贴、插入

6.6 v0.2.0

2026.02.18

  • 优化构建与版本管理结构
  • 新增版本号显示
  • 新增基座坐标系重置功能
  • 修复工具栏图标显示问题
  • 优化代码结构

6.7 v0.1.0

2026.02.07

  • 发布首个完整功能版本