IT评测·应用市场-qidao123.com

标题: 【文献代码研究】工具方向、活动冗余和路径点时序协同优化用于呆板人辅助制 [打印本页]

作者: 缠丝猫    时间: 2024-12-30 20:21
标题: 【文献代码研究】工具方向、活动冗余和路径点时序协同优化用于呆板人辅助制
Project 介绍

  
工具方向、活动冗余和路径点时序协同优化用于呆板人辅助制造

  作者:Yongxue Chen, Tianyu Zhang, Yuming Huang, Tao Liu, Charlie C.L. Wang
  在本文中,作者提出了一种并发和可扩展的轨迹优化方法,以提高呆板人辅助制造的质量。作者的方法在输入的包罗大量路径点的工具路径上同时优化工具方向、活动冗余和路径点时序,以提高活动的平滑性,同时考虑制造约束。差别的是,现有方法总是以解耦的方式确定这些参数。为了处理工具路径上的大量路径点,我们提出了一种基于分解的数值方案,以外核(out-of-core)方式优化轨迹,该方案也可以并行运行以提高效率。通过仿真和物理实验,作者展示了他们的方法在呆板人辅助增材制造示例中的性能。
  “工具方向、活动冗余和路径点时序协同优化用于呆板人辅助制造”,有条件继承,2024年12月。
  Arxiv 论文 https://arxiv.org/abs/2409.13448
  

  

  

  

  

  

  

  
截图来源:https://www.youtube.com/watch?v=vILrYwFufUk&ab_channel=CharlieC.L.Wang

  
代码获取与编译

  代码: https://github.com/Yongxue-Chen/ConcurrentTrajOpt
  安装

  请使用 Qmake 文件 "ShapeLab.pro" 编译代码。
  平台:Windows + Visual Studio + QT 插件(测试版本:VS2022 + QT5.14.2 + msvc2017_64)
  安装步调
  
  使用

  步调 0:加载呆板人模子:点击 UI 右侧的 Load Robots 按钮。
  步调 1:加载工具路径和层:点击 inputPathAndLayer 按钮。\DataSet\models 中提供了一些测试示例。
  步调 2:初始化优化:点击 Initialize Optimization 按钮。
  步调 3:优化:点击 Optimization 按钮。呆板人关节角度以及基坐标系中工具的位置和方向将保存到 \DataSet\output 中。
  
  
CC BY 4.0许可协议

  

  
运行程序

  

  
主界面

  终端输出:
  1. hPos=12.6pTool=151.762 -88.265 188.612delete robSystemhPos=12.6pTool= 151.585 -88.7572  189.022Finish input objFinish input objFinish input objFinish input objFinish input objFinish input objFinish input objFinish input objFinish input objFinish input objFinish input objFinish input objrobs loaded!
  2. Working on layer: 49Finish input objcontruct fclLayer: 0length of path: 7497Length of the part: 7497number of paths: 1
  3. initial optimizationvectorXd read!7497vTTPMax: 20 aTTPMax_T: 150 aTTPMax_N: 150alpha: 0.94 beta: 0.99 gamma: 0.98jJointMax: 20 20 20 20 20 20 20 20vJointMax: 0.5 0.5 0.5 0.5 0.5 0.5   1   1
  4. Initialize tool path...........................................................................check collision..............................................................................Initialize tool path done
  5. Initialize optimizationset k1 = 0, k2 = 0.5, k3 = 1initial smoothness index: 4.4961initial time: 822.721kTime: 0.00277458set kTime: 0.00277458Initialize optimization done
  6. initial optimization
  7. Block Coordinate Descentinitial smoothness index: 4.4961initial time: 822.721................................................................................................................................................Optimization time: 765.81smoothness index: 0.0945976printing time: 763.462obj: 4.26685................................................................................................................................................Optimization time: 1015.88smoothness index: 0.0890096printing time: 754.259obj: 4.21097................................................................................................................................................Optimization time: 1117.82smoothness index: 0.0873863printing time: 752.031obj: 4.19717................................................................................................................................................Optimization time: 1202.11smoothness index: 0.0875931printing time: 750.544obj: 4.18925check collision..............................................................................After collision correction: 0.0875931BCD done
  8. Fail to open filecannot open fileend of Opt
复制代码

  
焦点代码

  

  一. trajOpt.cpp

  该代码实现了一个路径优化类 trajOpt,用于处理路径规划中的轨迹分割、初始化、优化以及干系的动态与多少参数计算。以下是重要功能的概述:
    
  路径分割 (splitPath):
  
  路径初始化 (initializePath):
  
  优化初始化 (initializeOpt):
  
  块坐标下降优化 (bcd 和 bcd_time):
  
  局部优化 (local_optimal):
  
  动态特性计算
  
  代码特点:

  
  该代码实用于呆板人路径规划中的复杂使命,尤其是涉及多维优化和高精度活动的场景。
  
  这段代码的重要内容和功能:
  这是一个基于QT框架的呆板人轨迹优化系统的主窗口(MainWindow)实现代码,重要功能包罗:
    
    
    
    
    
  这个系统重要用于工业呆板人的轨迹规划和优化,特殊关注了碰撞克制和活动平滑性的题目。它提供了一个完整的图形界面来配置和监视整个优化过程。
  二. MainWindow.cpp

  MainWindow.cpp 是一个基于 Qt 框架开辟的 GUI 程序,重要用于呆板人路径优化和碰撞检测的图形化界面实现。以下是代码功能的总结:
  重要功能

    
  文件操纵
  
  模子表现和管理
  
  路径优化和碰撞检测
  
  呆板人和变位机加载
  
  用户交互
  
  路径层处理
  
  代码特点

  
  应用场景

  该程序重要用于呆板人路径规划与优化使命,实用于复杂多少环境下的路径计算,特殊是在需要高精度的碰撞检测和动态约束的场景中,例如工业主动化和制造。
  三. svm_grad

  这段代码的重要功能:
  这是一个实现支持向量机(SVM)梯度计算的C++类SVMGrad。重要功能包罗:
    
    
    
    
  这段代码重要用于需要计算SVM梯度的场景,比如在优化题目大概需要分析决策界限时。代码结构清晰,并且考虑了计算效率的优化。
  四. fileIO

  该代码界说了一个名为 fileIO 的类,重要用于读取和写入与呆板人系统、路径和层数据干系的文件。代码中实现了多个功能模块,以下是重要功能的总结:
  1. 路径数据输入(inputLayerPath)

  从文本文件中读取路径点和法向量,生成颠末调解的路径数据并存储在 toolpath 对象中。
  
  
  2. 呆板人模子数据读取(readRobotData)

  从指定目次加载呆板人模子文件并构建多边形网格(PolygenMesh),同时加载干系的碰撞检测数据。
  
  
  3. CNC 机床数据读取(readPosData)

  从指定目次加载 CNC 机床的多少模子文件。
  
  
  4. 层数据读取(readLayerData)

  读取并处理层数据文件(如 layerIndex.obj)。
  
  
  5. 数据写入功能

  提供多种格式的数据写入方法:
  
  
  6. 数据读取功能

  从文件中读取差别类型的数据:
  
  
  7. 错误处理

  在文件读取和写入过程中均加入了错误处理,如果文件操纵失败会输出相应的错误信息。
  
  应用场景

  该代码重要用于呆板人路径规划与仿真系统,功能包罗:
  
  五. mathTool.cpp

  这段代码实现了一些用于矩阵运算的工具函数,特殊是与李代数和李群干系的运算。以下是代码的重要功能总结:
    
  矩阵指数运算(expm)
  
  导数计算(dexpm 和 diffRotm)
  
  辅助函数
  
  重要应用场景
  
  代码的焦点思想是使用李代数和李群的数学性子来简化刚体变换和旋转矩阵的计算。
  

  六、colliTrain.cpp

  这段代码界说了一个名为 colliTrain 的类,用于支持向量机(SVM)的练习、推测和干系碰撞检测算法的实现。代码重要包罗以下功能模块:
    
  SVM练习与验证:
  
  SVM推测:
  
  采样与碰撞检测:
  
  支持向量机模子更新与主动学习:
  
  核函数与矩阵操纵:
  
  总结

  该代码集成了SVM练习、路径点采样、碰撞检测和主动学习等功能,是一个面向呆板人路径规划和优化的完整实现,适合复杂场景下的碰撞规避使命。
  七. osqp++.cc

  这段代码实现了一个 C++ 的优化求解器接口 OSQP++(基于 OSQP),重要功能如下:
    
  求解功能
  
  输入/输出处理
  
  性能优化
  
  应用场景

  该代码可用于工业优化、路径规划、资源分配等范畴,适合需要高效求解二次优化题目的场景。
  八. robSystem.cpp

  这段代码实现了一个用于呆板人系统控制的 robSystem 类,涵盖了正向活动学、逆向活动学、碰撞检测以及模子变换等多方面的功能。以下是代码的中文摘要:
  
  1. 构造与初始化

  
  
  2. 正向活动学(FK)

  
  
  3. 逆向活动学(IK)

  
  
  4. 模子变换

  
  
  5. 碰撞检测

  
  
  6. 呆板人活动学分析

  
  
  7. 文件和模子读取

  
  
  应用场景

  该代码实用于呆板人路径规划、活动控制、模子仿真以及及时碰撞检测。它提供了一套完整的工具集,用于控制呆板人活动并确保其运行安全。
  九、pathStruct.cpp

  这段代码实现了一个工具路径(toolpath)管理类,其功能重要围绕路径点和路径法向量的管理与计算。焦点功能可以总结如下:
  

  十. test_fcl_unitlity.cpp

  这段代码实现了一个简朴的 定时器类 和一些工具函数,用于计算碰撞检测中的多少对象类型和求解器类型。
  重要功能模块:

    
  getNodeTypeName 函数:
  
  getGJKSolverName 函数:
  
  总结:

  
  该代码结构简洁,重要用于辅助碰撞检测干系的计算与调试。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4