机器人 - 关于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

前端实战:手把手教你实现浏览器通知功能

前端实战:手把手教你实现浏览器通知功能

前端入门:浏览器通知功能从0到1实现指南 作为前端学习者,你可能见过这样的场景:打开网页版聊天工具,就算把浏览器最小化,桌面也会弹出“新消息”提醒;或者某些网站的活动通知,会直接显示在电脑/手机桌面上。这种功能就是「浏览器桌面通知」,今天我们就从零开始,搞懂它、学会用它。 一、先搞懂3个基础问题 1. 什么是浏览器桌面通知? 简单说,就是网页能在浏览器窗口外面(比如电脑桌面、手机屏幕)给你发提醒。哪怕浏览器最小化、甚至页面切到后台,只要权限允许,都能收到通知,不用一直盯着网页。 2. 什么时候会用到它? 常见场景很贴近日常: * 网页版微信/QQ的新消息提醒; * 工作系统的审批提醒、任务到期通知; * 电商网站的订单状态更新(比如“你的快递已发货”); * 新闻/小说网站的订阅内容更新提醒。 3. 用起来难吗?有什么限制? 不难!核心就2步:先让用户同意开启通知(申请权限)

Qwen3-TTS多语种语音合成实战:Python API调用+WebUI双模式使用指南

Qwen3-TTS多语种语音合成实战:Python API调用+WebUI双模式使用指南 1. 为什么你需要关注Qwen3-TTS 你有没有遇到过这些场景? * 做海外短视频,需要为不同国家观众配上地道口音的配音,但找配音员成本高、周期长; * 开发多语言智能客服,想让系统用西班牙语自然地读出订单状态,而不是机械念字; * 给孩子做双语启蒙App,希望中文讲解后立刻接上温柔的日语复述,语调和停顿都像真人。 传统TTS工具要么只支持一两种语言,要么切换语种要重装模型,更别说控制情绪、语速、方言风格了。而Qwen3-TTS-12Hz-1.7B-CustomVoice,就是为解决这些问题而生的——它不是“能说多种语言”,而是“真正理解多种语言该怎么说”。 这不是一个堆参数的模型,而是一个在真实使用中经得起推敲的语音生成工具。它覆盖中文、英文、日文、韩文、德文、法文、俄文、葡萄牙文、西班牙文和意大利文共10种主流语言,还支持粤语、关西腔、柏林口音等方言风格。更重要的是,它不靠后期拼接或规则调整,而是从文本理解开始,就自动决定哪里该轻快、哪里该停顿、哪句该带点笑意——就像一位熟

前端 SSR:别让你的网站变成 SEO 黑洞

前端 SSR:别让你的网站变成 SEO 黑洞 毒舌时刻 这网站做得跟黑洞似的,搜索引擎根本爬不进去。 各位前端同行,咱们今天聊聊前端 SSR(服务端渲染)。别告诉我你还在使用纯客户端渲染,那感觉就像在没有窗户的房间里生活——能住,但看不见外面的世界。 为什么你需要 SSR 最近看到一个项目,纯客户端渲染,SEO 排名倒数,用户体验差。我就想问:你是在做网站还是在做内部工具? 反面教材 // 反面教材:纯客户端渲染 // App.jsx import React, { useState, useEffect } from 'react'; function App() { const [data, setData] = useState([]); const [loading, setLoading] = useState(true); useEffect(

【Linux网络系列】:JSON+HTTP,用C++手搓一个web计算器服务器!

【Linux网络系列】:JSON+HTTP,用C++手搓一个web计算器服务器!

🔥 本文专栏:Linux网络Linux实践系列 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录:别害怕选错,人生最遗憾的从不是‘选错了’,而是‘我本可以’。每一次推倒重来的勇气,都是在给灵魂贴上更坚韧的勋章。 ★★★ 本文前置知识: 序列化与反序列化 引入 在之前的博客中,我详细介绍了序列化 与反序列化 的概念。对于使用 TCP 协议进行通信的双方,由于 TCP 是面向字节流的,在发送数据之前,我们通常需要定义一种结构化的数据来描述传输内容,并以此作为数据的容器。在 C++ 中,这种结构化数据通常表现为对象或结构体。然而,我们不能直接将结构体内存中对应的字节原样发送到另一端,因为直接传递内存字节会引发字节序 和结构体内存对齐 的问题。不同平台、不同编译器所遵循的内存对齐规则可能不同,这可能导致接收方在解析结构体字段时出现错误。 因此,我们需要借助序列化 。序列化 是指将结构化的数据按照预定的规则转换为连续的字节流。其主要目的是屏蔽平台差异,使得位于不同平台的进程能够以统一的方式解析该字节流。序列化通常分为两种形式:文本序列化 与二进制序列化 。 文