串口连接
STS 磁编码系列默认 1M,8 数据位 / 无校验 / 1 停止位扫描舵机 ID
逐 ID 发 PING(0x01),有应答的即在线3D 姿态
连接舵机后加载角度按 (读数 − 2048) × 360 / 4096 换算后套到 URDF 关节上,模型走 Z 轴朝上、单位米。 方向默认 −1(实机核对过:15 颗舵机读数增大的方向与模型正方向相反),模型转向不对就点「方向取反」。 关节不动的原因通常是:还没扫描到舵机、没连串口,或该 ID 在这份 URDF 里没有对应关节(#34 嘴没有关节)。
舵机参数
未选择舵机三个值都在 EEPROM 区,写入掉电保存:写入前自动解锁写保护(地址 55 写 0),写完重新加锁,再回读核对,读到一致才算成功。 改 ID 后舵机立刻改名,请先确认新 ID 在总线上没被别的舵机占用。
中位校准
未选择舵机让舵机把「现在这个位置」的读数变成 2048(中位),零点由舵机自己算好写进 EEPROM 的位置偏移(地址 31),掉电保存。 走 扭矩开关 0x28 写 128(官方指令生成表:128 = 中位自动校准)。 不生效会依次兜底 0x0B 位置校准、自己算偏移写寄存器 31。 过程先关扭矩、收尾把目标位置对准当前读数再恢复,所以电机不会乱转。
先把关节摆到要当中位的姿态再点,确认后别用手压着(关扭矩期间关节会被重力带下去)。 校准前必须满足「锁标志 = 0 且 扭矩开关 = 0」,否则舵机照回成功但不校准、不存 EEPROM —— 这两步都已自动做掉并回读确认。
一键标定
对本次扫描到的全部舵机生效对扫描到的所有舵机逐个做两件事:先写一遍位置环参数,再执行一次中位校准。 不改 ID;每一步的写法和前提条件与上面单颗操作完全一致,写完都回读核对。
点之前请先扫描确认在线列表,并把所有关节摆到要当中位的姿态;跑的过程中别用手压着关节。 中途断电或串口断开会停下,日志里能看出卡在哪一颗。
一键失能给所有舵机的扭矩开关(地址 40)写 0,电机松掉,可以用手掰关节做演示; 失能期间 3D 姿态照样跟着读数动,正好能看到自己摆的姿势。只想写寄存器、不存 EEPROM, 恢复使能会把目标位置(42)先对准当前读数再开扭矩,所以不会猛地弹回标定时的姿态。