打开 1个任务完成 gfalavigna 打开了这个问题 2022 年 2 月 22 日 · 0 条评论 打开 1个任务完成 tp:混合速度问题#1623 gfalavigna 打开了这个问题 2022 年 2 月 22 日 · 0 条评论 注释 法拉维尼亚 评论了 2022 年 2 月 22 日 以下是我重现该问题所遵循的步骤: 使用以下设置配置 linuxcnc 环境: emcmotConfig->arcBlendEnable = 1; emcmotConfig->arcBlendFallbackEnable = 0; emcmotConfig->arcBlendOptDepth = 50; emcmotConfig->arcBlendGapCycles = 4; emcmotConfig->arcBlendRampFreq = 100.0; emcmotConfig->arcBlendTangentKinkRatio = 0.1; emcmotConfig->maxFeedScale = 1.0; emcmotStatus->net_feed_scale = 1.0; tpCreate(tp, 40, tcArray); tpSetVlimit(tp, DBL_MAX); tpSetCycleTime(tp, 0.008); tpSetTermCond(tp, TC_TERM_COND_PARABOLIC, 1.0); 使用这些 vel/acc 边界配置 XYZ 轴: emcmotDebug->joints[0].vel_limit = 200.0; emcmotDebug->关节[0].acc_limit = 666.6666; emcmotDebug->关节[1].vel_limit = 200.0; emcmotDebug->关节[1].acc_limit = 666.6666; emcmotDebug->关节[2].vel_limit = 66.041; emcmotDebug->关节[2].acc_limit = 4127.5625; 将轴移动到 (348.0; 15.0; 0.0) 起始位置 像这样插入三个线性运动: pos.tran.x = 7.5; pos.tran.y = 18.25; pos.tran.z = 1002.47; 威力 = 69.7469; 坡道 = 666.6666; tpAddLine(tp, pos, EMC_MOTION_TYPE_FEED, vel, DBL_MAX, ramp, 0, 0, -1); pos.tran.x = 347.0; pos.tran.y = 20.0; pos.tran.z = 2001.96; 威力 = 69.7469; 坡道 = 666.6666; tpAddLine(tp, pos, EMC_MOTION_TYPE_FEED, vel, DBL_MAX, ramp, 0, 0, -1); pos.tran.x = 8.0; pos.tran.y = 23.5; pos.tran.z = 3000.0; 威力 = 69.7470; 坡道 = 1333.3333; tpAddLine(tp, pos, EMC_MOTION_TYPE_FEED, vel, DBL_MAX, ramp, 0, 0, -1); 运行循环 这是我期望发生的事情: 对速度进行评估,以便 Z 轴应略低于其速度边界移动,在整个插补序列中保持速度恒定 这是发生了什么: 当这三条线混合时,正是在执行混合球面弧的位置,我看到 Z 轴稍微加速,但足以超过速度边界,导致轨迹问题。附上相关的速度配置文件,您可以在其中看到黄色轨道中的问题 有关我的硬件和软件的信息: 我在跑步 … 来自 linuxcnc.org 之外的其他来源的二进制版本 我正在使用这个 LinuxCNC 版本:2.7.14 免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论 受让人 无人分配 标签 还没有 项目 还没有 里程碑 没有里程碑 发展 没有分支机构或拉取请求 1名参加者
以下是我重现该问题所遵循的步骤:
使用以下设置配置 linuxcnc 环境:
emcmotConfig->arcBlendEnable = 1;
emcmotConfig->arcBlendFallbackEnable = 0;
emcmotConfig->arcBlendOptDepth = 50;
emcmotConfig->arcBlendGapCycles = 4;
emcmotConfig->arcBlendRampFreq = 100.0;
emcmotConfig->arcBlendTangentKinkRatio = 0.1;
emcmotConfig->maxFeedScale = 1.0;
emcmotStatus->net_feed_scale = 1.0;
tpCreate(tp, 40, tcArray);
tpSetVlimit(tp, DBL_MAX);
tpSetCycleTime(tp, 0.008);
tpSetTermCond(tp, TC_TERM_COND_PARABOLIC, 1.0);
使用这些 vel/acc 边界配置 XYZ 轴:
emcmotDebug->joints[0].vel_limit = 200.0;
emcmotDebug->关节[0].acc_limit = 666.6666;
emcmotDebug->关节[1].vel_limit = 200.0;
emcmotDebug->关节[1].acc_limit = 666.6666;
emcmotDebug->关节[2].vel_limit = 66.041;
emcmotDebug->关节[2].acc_limit = 4127.5625;
将轴移动到 (348.0; 15.0; 0.0) 起始位置
像这样插入三个线性运动:
pos.tran.x = 7.5;
pos.tran.y = 18.25;
pos.tran.z = 1002.47;
威力 = 69.7469;
坡道 = 666.6666;
tpAddLine(tp, pos, EMC_MOTION_TYPE_FEED, vel, DBL_MAX, ramp, 0, 0, -1);
pos.tran.x = 347.0;
pos.tran.y = 20.0;
pos.tran.z = 2001.96;
威力 = 69.7469;
坡道 = 666.6666;
tpAddLine(tp, pos, EMC_MOTION_TYPE_FEED, vel, DBL_MAX, ramp, 0, 0, -1);
pos.tran.x = 8.0;
pos.tran.y = 23.5;
pos.tran.z = 3000.0;
威力 = 69.7470;
坡道 = 1333.3333;
tpAddLine(tp, pos, EMC_MOTION_TYPE_FEED, vel, DBL_MAX, ramp, 0, 0, -1);
运行循环
这是我期望发生的事情:
对速度进行评估,以便 Z 轴应略低于其速度边界移动,在整个插补序列中保持速度恒定
这是发生了什么:
当这三条线混合时,正是在执行混合球面弧的位置,我看到 Z 轴稍微加速,但足以超过速度边界,导致轨迹问题。附上相关的速度配置文件,您可以在其中看到黄色轨道中的问题
有关我的硬件和软件的信息: