# 六轴机器人仿真软件 **Repository Path**: liuwentao1234/robot-simulation-software ## Basic Information - **Project Name**: 六轴机器人仿真软件 - **Description**: 基于Qt平台、Osg渲染引擎开发的六轴机器人离线编程软件 - **Primary Language**: C++ - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 202 - **Forks**: 85 - **Created**: 2021-01-23 - **Last Updated**: 2025-06-17 ## Categories & Tags **Categories**: robot **Tags**: OpenSceneGraph, Cpp ## README 前前言 ===== > 2022年04月14日:过了两年再看自己的代码,有点屎山的感觉/哭笑,大佬们可以忽略,萌新可以学习学习 前言 ==== >建立本仓的目的之初是为了提供给新手C++快速入门学习, 尤其是从面向过程到面向对象设计思想的转变, 本人当年也是走过了不少弯路, 通过大量阅读大佬的源码可以获得"胜读十年书"的提升. 本仓库最初只是一个3000+代码行的小程序, 后来经过不断的版本迭代, 代码量逐渐庞大, 功能的丰富存在了实际的使用价值 但是代码任然是全部开源的, 你可以拿去继续添加你需要的功能, 甚至作为你自己的个人项目. 项目简介 ======= 1. 基于Qt框架,Qt本身可以被称作是一种C++的延伸,Qt本身已经继承了C++的快速、简易、面向对象等许多的优点. 2. 本项目模块可分为三大块: * 解析G代码 * 轨迹数据可视化 * 机器人三维仿真 3. 项目技术栈: 基本涵盖了所有C++基础,例如数据结构与算法,设计模式,STL库等 4. 面向对象编程风格: 5. 大部分代码都配有注释降低上手难度 6. 项目代码行1W+, 本人QQ: 626373788 ![外观](https://images.gitee.com/uploads/images/2021/0221/100430_0b1c4914_6574042.png "屏幕截图.png") 模块介绍 ======== ### 解析G代码 * 本功能是通过解析数控程序G/M代码指令,获取二维的轨迹数据进行绘制 * 增加了刀补算法: 可根据刀具宽度和计算轨迹调整实际切割轨迹 * 增加了手势操作: 鼠标滚轮放大以及拖拽 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0221/103251_fe506ccb_6574042.png "屏幕截图.png") ![输入图片说明](https://images.gitee.com/uploads/images/2021/0221/103325_a584c0dc_6574042.png "屏幕截图.png") ### 轨迹数据可视化 * 可以将TXT文件的轨迹数据导入,实现轨迹数据的显示 * 除此以外还提供了求交面设置,可以捕捉到轨迹和任意平面的相交的点坐标 ![界面](https://images.gitee.com/uploads/images/2021/0221/101430_983d6d80_6574042.png "屏幕截图.png") ![求交面设置](https://images.gitee.com/uploads/images/2021/0221/101721_837020fe_6574042.png "屏幕截图.png") ### 机器人三维仿真 * 本功能可以实现三维机器人stl文件的导入, 通过载入关节来装配机器人 * 设置机器人的关键参数: DH参数, 运动范围, 起始角度 * 增加了加载工件功能: 工件提供坐标轴和环, 可以与鼠标交互实现移动和旋转 * 增加机器人示教功能: 通过示教功能实现机器人的运动 * 增加了轨迹运动起始姿态幻影: 每次开始运动时记录原始姿态 ![仿真界面](https://images.gitee.com/uploads/images/2021/0221/101805_88b9ac8d_6574042.png "屏幕截图.png") ### 附件图片 ![参数设置](https://images.gitee.com/uploads/images/2021/0224/134708_1d55993c_6574042.png "屏幕截图.png") ![工件](https://images.gitee.com/uploads/images/2021/0224/134807_c5c94341_6574042.png "屏幕截图.png") ![幻影](https://images.gitee.com/uploads/images/2021/0224/134943_a225a9c7_6574042.png "屏幕截图.png") ![直线](https://images.gitee.com/uploads/images/2021/0224/135218_81e76343_6574042.png "屏幕截图.png") ![圆弧](https://images.gitee.com/uploads/images/2021/0224/135358_a5116464_6574042.png "屏幕截图.png") 发现的问题 ======= 1. *编译出现大量语法错误* 原因:本项目osg库由MSVC2015编译生成,因此Qt必须使用MSVC2015以上的编译器,具体安装参考: [Qt安装MSVC2015(x64)编译器](https://www.jianshu.com/p/11918296593d) 2. *error: dependent 'osgLIB\build\include\osg\Node' does not exist.* 原因:这种类似报错都是未添加osg库,本项目主要用到了两个外部库,osg库和eigen库(矩阵计算) [下载地址](https://pan.baidu.com/s/1uTra9JZ36-Vssw6UPQi8AA?pwd=yfsq) 提取码:yfsq 下载完放入src文件夹内即可 ![输入图片说明](image/image.png) 3. *加载关节后,无模型显示* 原因:osgDB库提供的加载模型接口无法正确读取模型文件,从而返回空指针。 解决:将osgLIB/build/bin和osgLIB/build/lib添加到系统环境变量中 ![输入图片说明](image/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20220414213634.png)