『7x24小时有问必答』

前言

很多初学 C++ 的朋友在从面向过程转向面向对象时,常常感到迷茫。我当年也是如此——光看书本理论很难理解"封装""继承""多态"到底怎么用在实际项目中。后来通过大量阅读开源项目和工业级代码,才真正体会到设计思想的价值。
这个仓库最初就是出于这样的初衷:写一个结构清晰、注释完整、能跑起来的小型项目,帮助新手快速上手 C++ 面向对象开发。
它一开始只有 3000 多行代码,功能也很简单,但随着不断迭代,逐渐加入了 G 代码解析、轨迹可视化、机器人三维仿真等模块,如今已超过 1 万行,不仅具备学习意义,也有了实际应用价值。

项目介绍

这是一个基于 Qt 框架开发的六轴机器人离线编程与仿真软件。虽然 Qt 常被看作 GUI 工具,但它本质上是对 C++ 的一次优雅扩展——保留了原生性能,又提供了信号槽、内存管理、跨平台等便利机制。
本项目没有使用任何商业仿真平台,而是从零搭建,核心目标是让开发者既能学到 C++ 工程实践,又能掌握机器人编程的基本流程。整个系统分为三大功能模块:G 代码解析、轨迹数据可视化、机器人三维仿真,三者环环相扣,构成完整的离线编程链路。

项目功能

1、G 代码解析

支持标准数控 G/M 指令(如 G00、G01、G02、G03 等),将文本指令转换为二维平面轨迹点序列。特别加入了刀具半径补偿算法,可根据设定的刀宽自动偏移轨迹,模拟真实切割路径。

2、轨迹数据可视化

除了从 G 代码生成轨迹,也支持直接导入 TXT 格式的坐标文件进行显示。还实现了"求交面"功能——用户可定义任意平面,系统自动计算并高亮轨迹与该平面的交点,便于定位关键加工位置。

3、机器人三维仿真

支持加载 STL 格式的机器人关节模型,通过 DH 参数配置各轴运动学参数,完成整机装配。工件可独立加载,并提供交互式操作(鼠标拖拽旋转/平移)。
内置示教模式,可通过界面滑块或输入角度驱动机器人运动。此外,每次执行轨迹前会记录起始姿态并以"幻影"形式显示,方便对比运动前后状态。

项目特点

代码结构清晰,严格遵循面向对象设计原则,大量参考《Effective C++》系列中的最佳实践;
几乎所有函数和类都配有中文注释,降低阅读门槛;
项目虽小,但涵盖了 C++ 基础、STL 容器、常用设计模式(如工厂、观察者)、文件 I/O、矩阵运算等核心知识点;
界面简洁,交互直观,适合教学演示或轻量级工程验证。

项目技术

底层基于 Qt 5.15(MSVC2015+ 编译),图形渲染采用 OpenSceneGraph(OSG)引擎,实现高效三维场景管理;
数学计算依赖 Eigen 库,用于 DH 变换、坐标系转换等;
G 代码解析器为自研状态机实现,支持嵌套注释和常见宏指令;
轨迹绘制使用 Qt Graphics View 框架,兼顾性能与灵活性;
整体架构采用模块化设计,各功能解耦,便于单独调试或替换。

项目效果

运行后,用户可先加载 G 代码,查看生成的二维轨迹,并调整刀补参数观察路径变化;切换到三维视图后,加载机器人模型和工件,设置 DH 参数,即可进入仿真环境。
通过示教界面控制各关节角度,或直接运行解析后的轨迹,机器人会沿路径运动,同时显示起始姿态幻影。求交面功能在调试复杂轨迹时尤为实用,能快速定位空间关键点。
1.webp

2.webp

3.webp

4.webp

5.webp

6.webp

7.webp

项目源码

项目已开源,代码总量超 1 万行,结构组织良好,入口清晰。
需要注意两点:
必须使用 MSVC2015 或更高版本的 Qt 编译器,否则会因 OSG 库 ABI 不兼容而报错;
需手动下载 OSG 和 Eigen 库(提供网盘链接,提取码 yfsq),解压至  src  目录,并将 OSG 的  bin  和  lib  路径加入系统环境变量,否则模型无法加载
常见问题如 "Node not found" 或 "空指针" 基本都源于库未正确配置,按说明操作即可解决。
Gitee:https://gitee.com/liuwentao1234/robot-simulation-software

总结

这个项目最初只是个学习笔记,但随着功能完善,逐渐变成一个可用的轻量级机器人离线编程工具。它不追求大而全,而是聚焦于"可读、可跑、可改"——让初学者看到真实 C++ 项目的组织方式,也让工程师能快速验证运动学算法或轨迹逻辑。
如果大家正在学习 C++ 面向对象,或者对机器人仿真感兴趣,不妨 clone 下来跑一跑、改一改。代码是最好的老师,而动手是最好的学习。

关键词

作者:小码编匠
出处:gitee.com/smallcore/DotNetCore
声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!

END

备注【开源
方便大家交流、资源共享和共同成长
纯技术交流群、需要的小伙伴请扫码

有收获?不妨分享让更多人受益
关注「程序员开源栈」,共同提升技术实力

点分享
点收藏
点在看
点点赞

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
主题回复
倒序浏览

202查看1回复

MCU马甲 7 天前
很有价值的东西,做运动控制必须的!
发新帖
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码