news 2026/8/17 18:36:20

086、梯形速度曲线生成

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
086、梯形速度曲线生成

086、梯形速度曲线生成

从一次电机“起飞”事故说起

去年调试一台三轴机械臂,Z轴在空载时上升速度设定为300mm/s,加速度500mm/s²。上位机发了个100mm的绝对定位指令,电机直接“弹射起步”——速度曲线像被刀切过一样,从0瞬间跳到300mm/s,然后到终点前又硬生生刹停。机械臂抖得像帕金森患者,末端执行器上的吸盘直接把工件甩飞了。

查了三天,发现是速度规划模块里梯形曲线生成有个边界条件没处理。当时用的开源库,默认参数下加速度时间计算溢出了,导致加速段被跳过。从那以后,我写速度曲线生成代码,第一件事就是画个梯形,把三个阶段的边界条件用数学公式钉死在代码里。

梯形速度曲线的数学骨架

梯形速度曲线由三段组成:匀加速段、匀速段、匀减速段。核心参数就四个:起始速度Vs、目标速度Vt、加速度a、减速度d(通常a=d,但实际工程中往往不等,比如重力轴上升时减速度要小于加速度)。

关键公式就三个:

加速段时间:ta = (Vt - Vs) / a
减速段时间:td = (Vt - Ve) / d
匀速段时间:tc = (总位移 - 加速段位移 - 减速段位移) / Vt

这里有个坑:当目标位移太短时,可能根本跑不到目标速度,梯形会退化成三角形。很多新手在这里直接套公式,算出来tc为负值,然后程序就崩了。

代码实现:从“能跑”到“靠谱”

先看一个典型的梯形曲线生成函数,我习惯用C写,因为嵌入式里跑得多:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/17 18:36:17

087、S形速度曲线生成

087、S形速度曲线生成——从“抖成筛子”到“丝般顺滑” 一、一个让我半夜惊醒的调试现场 去年做一台六轴协作机器人的关节控制,电机选的是400W的直流无刷,配20位绝对值编码器。上位机发了个位置指令,电机“嗖”地一下冲过去,然后——整个机械臂像得了帕金森一样高频抖动…

作者头像 李华
网站建设 2026/8/17 18:34:11

Git作为智能体开发的记忆中枢:解决AI协作中的版本控制难题

1. 项目概述:当智能体开发遇上版本控制最近在折腾一个多智能体协作的项目,团队里几个AI助手各司其职,有的负责写代码,有的负责写文档,还有的负责测试。项目跑起来挺热闹,但很快就遇到了一个头疼的问题&…

作者头像 李华
网站建设 2026/8/17 18:33:13

3分钟快速上手Tmax-9B-MLX-bf16:Apple Silicon本地部署第一个大模型

3分钟快速上手Tmax-9B-MLX-bf16:Apple Silicon本地部署第一个大模型 【免费下载链接】Tmax-9B-MLX-bf16 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Tmax-9B-MLX-bf16 Mac 用户想体验本地部署大模型,最关心的就是"装起来快…

作者头像 李华
网站建设 2026/8/17 18:26:41

前端开发中setAttribute报错解析:HTML属性命名规范与动态属性处理

1. 项目概述:一个看似简单的报错,背后是前端开发的基石“Failed to execute ‘setAttribute‘ on ‘Element‘: ‘:todos‘ is not a valid attribute name”。这个报错信息,相信不少前端开发者在某个深夜调试代码时都曾遇到过。它…

作者头像 李华
网站建设 2026/8/17 18:25:53

2月轿车销量榜解读:从宝骏310到大众迈腾的消费逻辑与市场趋势

1. 从数据看市场:2月轿车销量榜单的深层解读又到了每月一度的销量放榜时间。2月份的轿车销量数据一出来,不出意外地又在各大汽车论坛和车友群里引发了热议。榜单前十的常客们依然坚挺,但总有几个名字的出现,能瞬间点燃话题。比如&…

作者头像 李华