机器人 - 关于MIT电机模式控制

目录

一、MIT电机模式简单介绍

1.1 简单介绍

1.2 MIT模式的控制参数

1.3 使用场景

二、调试时建议

2.1 调试

2.2 问题定位


一、MIT电机模式简单介绍

1.1 简单介绍

Mixed Integrated Torque为一种混合控制模式,在同一帧CAN数据里包含 位置、速度、扭矩三类的闭环指令。驱动器里面把位置环、速度环、前馈扭矩相加,得到一个参考电流,然后再交给电流环完成精准扭矩输出。


1.2 MIT模式的控制参数
参数含义取值范围(常见)说明
kp位置比例系数(刚度)0 ~ 500 (单位视驱动器而定)kp = 0 时位置环失效,仅靠速度/扭矩环工作
kd位置微分系数(阻尼)0 ~ 500kd = 0 时位置环会产生振荡,实际使用时需给一个非零值
pos (q)期望位置(单位:计数或角度)-12.5 ~ 12.5 rad(示例)位置环的目标值
vel (dq)期望速度(单位:rpm)-30 ~ 30 rpm(示例)速度环的目标值
torq (tau)前馈扭矩(单位:Nm)-T_MAX ~ T_MAX直接给定的扭矩,常用于 纯扭矩控制(kp = kd = 0)

1.3 使用场景
场景参数设置示例说明
匀速转动kp = 0,kd ≠ 0,pos = 0,vel = 目标速度,torq = 0只打开速度环,电机以恒定速度运行。
纯扭矩输出kp = 0,kd = 0,pos = 0,vel = 0,torq = 目标扭矩前馈扭矩直接驱动电流环,适用于 力矩控制(如抓取、阻尼)
点到点位置控制kp > 0,kd > 0,pos = 目标位置,vel = 0,torq = 0位置环+速度环共同作用,实现平滑定位。
位置‑速度‑扭矩混合kp > 0,kd > 0,pos = 目标位置,vel = 目标速度,torq = 前馈扭矩适用于 刚度‑阻尼‑外力补偿(如机械臂的阻抗控制)。

在使用位置控制时,kd不能为0,否则电机会振荡、失控;



二、调试时建议

2.1 调试
步骤操作要点
① 先打开位置环设定 kp > 0kd > 0,观察位置响应曲线,确保无明显超调。
② 调整阻尼增大 kd 可抑制振荡;若响应过慢,可适当降低 kp
③ 速度环在位置环基础上调节 vel(目标速度)或直接使用 kp=0、kd≠0 进行 纯速度控制
④ 前馈扭矩当负载较大时,适当加入 torque 前馈,以补偿静摩擦或外部扰动。
⑤ 监测电流通过驱动器的电流反馈(CAN 0x02 帧)检查是否出现 过流,必要时限制 torque 上限。

2.2 问题定位
问题可能原因检查方式
电机不转动kp=0、kd=0、torque=0(所有环失效)确认发送的参数中至少有一个非零值。
出现振荡kd 设为 0 或过小增大 kd,或在位置环加入适当的 kp
转速偏差大前馈扭矩未补偿负载在 torque 参数中加入正向前馈,或调大 kp
CAN 报文未到达报文 ID 错误或波特率不匹配用示波器或上位机抓包确认 ID 为 0x00+motor_id(位置帧)和 0x01+motor_id(扭矩帧),波特率与驱动器保持一致(默认 1 Mbps)。
电机过流保护torque 设定过大限制 torque 幅值在驱动器手册规定的 T_MAX 范围内。

Read more

从 Renderless 架构到 WebAgent:我的 OpenTiny 前端智能化实战之路

从 Renderless 架构到 WebAgent:我的 OpenTiny 前端智能化实战之路

一、缘起:为什么我要给 DialogBox 加上"resizable"能力? 说起来挺有意思的。作为一名在企业级应用开发一线摸爬滚打多年的前端,DialogBox 这个组件我用了不下百次。但每次用的时候,总觉得差点意思——用户想自己调整弹窗大小?不好意思,不支持。 直到我参加了 OpenTiny NEXT 前端智能化系列直播,听到老师讲 AI Agent 和 WebMCP 的时候,我突然意识到:这不就是我一直在等的那个契机吗? 传统的组件开发模式是:开发者定义好所有功能,用户只能被动接受。但在 AI 时代,组件应该是"可对话"的——用户说"我想把这个弹窗调大一点",AI 就能理解意图并调用相应的 API。 但要实现这个愿景,首先得让组件具备足够的能力。

从被秒封到稳过Cloudflare!Canvas/WebGL/WebRTC多维度浏览器指纹隐身全实战

从被秒封到稳过Cloudflare!Canvas/WebGL/WebRTC多维度浏览器指纹隐身全实战

前阵子帮客户爬某跨境电商的商品数据,一开始信心满满:Puppeteer改了webdriver特征、UA池轮换、高匿代理池、行为模拟全拉满,结果30个节点一启动,访问首页直接被Cloudflare人机验证秒封,换IP、清Cookie全没用。 折腾了整整3天,抓包逆向了平台的反爬JS才发现,人家根本没看你那点基础伪装——直接拿Canvas、WebGL、WebRTC三个指纹做了关联校验,我30个节点的核心指纹完全一致,直接被标记成爬虫集群,封得明明白白。 后来我啃了几十篇反爬厂商的技术白皮书,踩穿了100+反爬平台的检测逻辑,终于摸出了一套多维度指纹隐身方案。现在这套方案跑了半年,稳过Cloudflare、Akamai、数美、顶象这些主流反爬,哪怕用同一台机器开100个实例,也不会被指纹关联识别。 今天把全流程掏出来,从原理、踩坑到代码实现,全是能直接落地的干货,网上90%的教程没讲透的核心细节,我全给你说明白。 一、先搞懂:为什么你的伪装永远被识破? 很多人对浏览器指纹的理解还停留在“改个UA、关了webdriver就完事”,但现在的反爬早就进入了多维度关联识别的时代。 1.

【前端】--- ES6下篇(带你深入了解ES6语法)

【前端】--- ES6下篇(带你深入了解ES6语法)

前言:ECMAScript是 JavaScript 的标准化版本,由 ECMA 国际组织制定。ECMAScript 定义了 JavaScript 的语法、类型、语句、关键字、保留字等。 ES6 是 ECMAScript 的第六个版本,于 2015 年发布,引入了许多重要的新特性,使 JavaScript 更加现代化。 进制  ES6 中增加了二进制和八进制的写法: 二进制使用前缀 '0b' 或 '0B' , 八进制使用前缀 '0o' 或 '0O'                       二进制: 前缀:   0b 或 0B: