原创|技术手记|曲线离散化成直线段之后:弦高误差、点密度与“看起来一样”的两种轨迹

一段圆弧,规划的时候是圆的,验收的时候量出来却是多边形;更反直觉的是,把点位加密一倍,轮廓并没有变好,反而开始出现速度不稳和细微停顿。这件事的关键不在"点够不够密",而在你选的容差到底是不是一个几何量。本文把"圆不圆"换成一个能算的数——弦高,再讨论为什么加密这条路会走到尽头。

一、现象:看起来很圆,量起来不圆

在一次曲线轮廓的验收里出现过很典型的一组现象:沿外轮廓目视,能看到极细的棱面,但只有在特定光线下才明显;用接触式测头沿轮廓打点,偏差分布很有规律——直线段附近几乎为零,曲率最大的地方最大,而且曲率半径越小,偏差增长得越快。

第一反应通常是"点位太少",于是把离散步长缩小一半,重新走一遍。棱面确实细了,但测出来的偏差并没有按预期下降,同时还出现了两个新问题:速度不稳,某些区段在一顿一顿地前进;在曲率变化的位置有过冲,实际轮廓比原曲线还要胖出去一点。

"加密之后没变好"这件事本身就说明:原来那个偏差,不完全是点位密度造成的。要分清这两件事,得先停止用眼睛判断"圆不圆",换成一个能算的量。

二、把"圆不圆"换成一个可算的量

曲线被拆成折线之后,每两个相邻点之间是一条直线,这条直线与原曲线之间必然夹着一块弓形。这块弓形最厚处的厚度,就是弦高(sagitta)。它是"离散化"这件事唯一的几何误差来源,而且只用两个量就能表达:弦长(也就是步长)L 与曲率半径 R。

弦高近似式(L ≪ R 时成立):

    h ≈ L² / (8R)

反解,给定容差 h_max 时允许的最大步长:

    L_max ≈ √(8 · R · h_max)

代入几组数看一看量级。半径 20 mm 的弧,步长 1 mm 时弦高约 0.006 mm;步长加倍到 2 mm,弦高变成 0.025 mm,是原来的四倍;步长减半到 0.5 mm,弦高只有 0.0016 mm。这就是"加密有效"的来源——弦高与步长的平方成正比。

同一个式子还给出另一半信息:弦高与曲率半径成反比。半径缩小一半,同样步长下误差翻倍。曲率越小(弯得越急)的地方,越经不起相同的点位密度。这一半,正是"等步长离散"失败的原因。

判断轮廓够不够圆,可以用的判据不止一个,但只有一个是几何量:

判据测什么能否作为验收依据
目视棱面反光带宽度、棱面数量不能。依赖光照角度与观察距离,同一件换个光就"变好了"
弦高 h折线与原曲线的最大间距能。由 L、R 直接算出,可直接与容差比大小
切向连续性相邻两段在接缝处的方向突变能,但它管的是速度能否连续、表面是否留下接刀痕,与 h 不是同一件事

三者里,只有弦高能在规划阶段就判死:只要知道 R,就知道这个步长会带来多少误差。目视判不了,切向连续性要到执行阶段才看得出来。

容差本身也不是随便定的。它通常来自三个地方:下游装配间隙的最小值、后续工序(打磨、镀层、贴合)能吸收掉的量、以及测量手段自身的分辨力。三者中最小的那个决定上限;再按"单项误差不超过总预算三分之一"的原则分配,弦高这一项的目标就很清楚了。反过来说,如果没人能说出容差是从哪里来的,那么"要不要加密"这个问题在工程上就是无解的——它退化成了审美问题,而审美无法验收。

ABORL(步长)hh ≈ L² / (8R)h:弦高,弓形最厚处L:步长,即弦长R:该处曲率半径L ≪ R 时近似足够准R 大h ≈ 1.0×R 中h ≈ 2.0×R 小h ≈ 4.5×同一弦长下,半径越小弦高越大(近似与 R 成反比)—— 这就是等步长离散在急弯处失效的原因
图 1|弦高是折线与原曲线之间的最大间距,只由步长 L 与曲率半径 R 决定。下排三张同弦长的弧说明:半径越小,弦高越大。

三、等步长的错:误差跟着曲率跑

一张典型轮廓上,直线、缓弧、尖角是同时存在的。假设某零件轮廓里有直线段、半径 80 mm 的缓弧、半径 5 mm 的过渡圆角,统一按 0.5 mm 步长离散,代入弦高式:

区段曲率半径 R步长 L弦高 h判断
直线段∞0.5 mm0不产生误差,点位纯浪费
缓弧80 mm0.5 mm0.0004 mm远优于容差,可放粗到 1.8 mm
过渡圆角5 mm0.5 mm0.0063 mm若容差 0.005 mm,此处超标

结果很讽刺:同一张图上,有的地方点位过剩三四倍,有的地方不够用。而如果容差是 0.005 mm,正确的最大步长应当按区段分别算:

按 h_max = 0.005 mm 反解各区段允许的最大步长:

    R = 5 mm   →  L_max ≈ √(8 × 5  × 0.005) ≈ 0.45 mm
    R = 20 mm  →  L_max ≈ √(8 × 20 × 0.005) ≈ 0.89 mm
    R = 80 mm  →  L_max ≈ √(8 × 80 × 0.005) ≈ 1.79 mm

同样一条容差,允许的步长在 4 倍范围内变化。所以正确做法不是"平均分配点位",而是按曲率分配:容差是需求,点数是结果。反过来操作——先规定点数,再看误差——就是把需求交给工具去猜。

0.020.040.060.20.512461.42.85.7容差 h_max = 0.05 mmR = 5 mmR = 20 mmR = 80 mm弦高 h(mm)步长 L(mm,对数刻度)交点即该曲率下允许的最大步长:半径越小,允许的步长越短,三个候选值相差数倍
图 2|同一容差下,不同曲率对应的最大允许步长相差数倍。等步长离散必然在急弯处超标、在直线上浪费。

四、加密点位不等于提高精度

这是整件事里最贵的一条,因为"加密"看起来永远安全,实际有三个硬边界。

边界一:段太短,速度规划失效。每一段都要走"加速—匀速—减速"的过程,从静止达到设定速度 v 所需距离约为 v²/(2a),a 为加速度上限。设 v = 60 mm/s、a = 500 mm/s²,则这个距离约 3.6 mm。如果段长被压到 0.2 mm,整段都落在加减速过程里,设定速度一次也达不到——实际表现就是平均速度被拉低,加上每段重复一次"加速再减速",走出一种一顿一顿的节奏。表面质量反而变差。

边界二:指令吞吐到顶。0.2 mm 段长配 60 mm/s,等于每秒 300 段。每段一条运动指令,按 40 字节估,就是每秒 12 kB;而常见的 115200 bps 串口理论吞吐只有约 11.5 kB/s——已经打满。任何一次重传或握手延迟,都会变成可见的停顿。这类停顿常被误判成"机械卡了一下"。

边界三:插补与采样负载上升。段数变多,每段内的插补次数减少,段末速度更容易不连续;同时采样服务被更频繁地打断,负载率上升。这条与前面那篇讲寻边误差的文章是同一个根:负载率是时间预算,不是"性能够不够"的定性问题。

段长下限的红线,取下面三者中的最大值,低于它就是"不许再短":
① 速度规划下限:v² / (2a)
② 采样约束:采样间距 × 每段最少采样数
③ 通讯约束:单帧耗时 × v

这三条红线都不是"精度"指标,而是"能不能稳定跑"的指标。先把它们算出来,再谈容差要不要收紧,顺序就不会错。

段数可以直接估:总路径长度除以平均步长。一条 800 mm 的轮廓,按 0.5 mm 步长是 1600 段,按 0.2 mm 是 4000 段。这个数字应当先算出来再决定要不要加密——因为它同时等于通讯帧数、插补次数和速度规划次数。把它当"预算"看,比当"精度"看更接近真相。

五、四条手段,按性价比排序

① 容差优先,反解步长。把 h_max 作为输入,按曲率逐段算 L_max。这是唯一"既省点位又保精度"的做法,改的是算法不是硬件。
② 能走圆弧就别离散。控制器支持圆弧插补时,圆弧本身的弦高误差为零;只有在必须用直线段表达的形状(自由曲线、样条)上才需要离散。这一步的收益常被低估。
③ 段长下限保护 + 共线合并。把同一直线上连续的短段合并成一段,纯收益、零风险;同时给段长设下限,越界的段要么合并要么降速,不要硬走。
④ 拐角容差,而不是硬走尖角。对小尖角允许倒圆(给定倒圆半径上限),比强行在尖角处急停更保形。尖角处的问题从来不是"点位不够",而是速度必须归零。

除了这四条,还有一个几乎零成本的健康指标:统计超短段的比例。把"段长小于红线的段数 ÷ 总段数"打进日志,超过一定比例(例如 5%)就提示"这份轨迹的点位分配有问题"。它能在加工之前就告警,比事后量废件便宜得多。

六、一个容易忽略的细节:离散化发生在哪个坐标系

弦高是一个长度量,所以它对平移与旋转不敏感,但对缩放敏感。如果规划端与执行端之间存在比例换算(缩放系数 s),那么规划阶段按容差算出来的步长,到了执行端产生的实际弦高是 s·h——因为 L 和 R 同时被缩放了 s 倍,而 h = L²/(8R) 里 L² 与 R 只抵消掉一个 s。

这个坑很隐蔽:显示坐标里算得严丝合缝(0.005 mm 容差、0.45 mm 步长),执行端却按放大或缩小后的尺度走,误差要么超标要么浪费。判断方法很直接:把同一段 R = 20 的弧用两个坐标口径各算一次最大步长,若两次结果之比不等于 1,就存在没被计入的缩放。

离散化不是"精度设定",而是"信息损失":你选择一个容差,得到一组点位;容差是需求,点数是结果。反过来做,就是让工具替你决定精度。好在弦高式只有两个变量,这件事从头到尾都是可控的——前提是规划阶段有人问了一句"这段的半径是多少"。

相关阅读

铂邦科技面向前沿材料与先进制造,从事精密运动控制、机电一体化装备与工艺方案的研发与定制。机构设计、运动控制、上位软件与工艺参数体系一体化自主开发,支持"你提需求、我们做方案"的联合开发模式。

我们也提供从执行机构、传感部件到控制模块的通用配件与升级服务,兼容不同厂商的既有设备。

📌 持续跟踪工程手记?关注「铂邦科技」公众号,获取更多装备研发、精密运动控制与工艺技术手记。查看全部技术前沿 →

关注「铂邦科技」公众号

扫码关注,第一时间获取装备研发、精密运动控制与工艺技术手记

铂邦科技微信公众号二维码

微信扫一扫,或长按识别二维码关注

推荐阅读

正在加载推荐文章……

装备研发与定制咨询

咨询电话及微信:182-2228-3201
商务邮箱:info@biobond.com.cn
地址:天津市南开区时代奥城C5国际写字楼129室

前往联系页面
免责说明:本文为原创技术分享,文中方法与数据均已做泛化处理,仅代表一般工程经验,不构成对任何具体设备的精度承诺。若存在内容错误,请联系我方修改。
← 全部技术前沿列表