控制器文件与电机配置
结果: 为您的手臂准备完整的配置。控制器文件选择端口、电机和工作流程;配置文件设置一台电机的控制参数。这些文件不会取代编码器校准或保存的行程限制。
创建本地文件
对于命名姿势重放,请从示例开始:
macOS / Linux
cp tools/poses/replay.example.json tools/poses/controller.local.json
cp host/arm-control/profile.example.json tools/poses/motor-1.local.json
Windows PowerShell
Copy-Item tools/poses/replay.example.json tools/poses/controller.local.json
Copy-Item host/arm-control/profile.example.json tools/poses/motor-1.local.json
编辑本地副本。示例 controller.local.json 仅包含 电机 1 。添加手臂的所有记录 ID。创建单独的 motor-2.local.json 、 motor-3.local.json 和其他配置文件,每个配置文件都对其联合进行审查。
下面的六电机结构说明了格式,而不是普遍安全的设置。将 /dev/ttyUSB0 替换为实际端口,例如 Windows 上的 COM3。终端的 SERVO_PORT 变量不会自动替换为 JSON 。
{
"followerPort": "/dev/ttyUSB0",
"baudRate": 1000000,
"maxAgeMs": 100,
"acceleration": 1000,
"rampTimeMs": 50,
"profiles": {
"1": "motor-1.local.json",
"2": "motor-2.local.json",
"3": "motor-3.local.json",
"4": "motor-4.local.json",
"5": "motor-5.local.json",
"6": "motor-6.local.json"
},
"replay": {
"speed": 500,
"holdMs": 1000,
"repeat": 1,
"moveTimeoutMs": 30000,
"toleranceCounts": 10
}
}
将此 JSON 保存为 tools/poses/controller.local.json ,旁边有 motor-1.local.json 到 motor-6.local.json 。对于不同的 ID,一致地更新配置文件密钥、姿势记录和连接的设备。
个人资料设置
完整的源示例是:
{
"kpQ8": 256,
"kdQ8": 32,
"kiQ8": 0,
"integralLimit": 0,
"effortLimit": 100,
"velocityLimit": 500,
"velocityFilterQ8": 64,
"gravitySlewEffortPerS": 1000,
"velocityFeedforward": {
"positiveGainQ8": 0,
"negativeGainQ8": 0,
"effortLimit": 0
}
}
| 设置 | 解读 |
|---|---|
kpQ8、kdQ8、kiQ8 |
增益乘以256:256表示1.0,32表示0.125 |
integralLimit |
仅积分贡献限额 |
effortLimit |
总产出限制,1 – 1000 PWM 电机输出指令单位;既没有扭矩也没有安培 |
velocityLimit |
该电机的最大速度(计数/秒) |
velocityFilterQ8 |
1 – 255 ;值越大响应越快,但过滤的噪声越少 |
gravitySlewEffortPerS |
重力作用变化的速率限制;它本身并不启用模型 |
velocityFeedforward |
两个非负方向增益和输出上限;将三个全部归零以禁用 |
共享的acceleration和rampTimeMs属于控制器文件。电机配置文件可以使用 accelerationLimit 和 rampTimeMs 覆盖它们。有关范围和关系,请参阅 配置寄存器 。
路径和 ID
- 配置文件路径和
gravityModel相对于 控制器文件 ,而不是工作目录。 - 调整计划的
config路径相对于 计划文件 。 - 命名姿势提供电机 ID;该重播不需要
joints。 - 调谐和配置文件应用需要
joints: [{"followerId": 1}, …]覆盖每个受控电机。 - 实时远程操作和会话重放需要
leaderId、followerId和mapping。
在目录之间移动示例时检查路径。在命名姿势重放示例中,故意省略了 joints 数组。
应用设置
配置文件被写入 Extension RAM,并且必须在复位后重新应用。 EEPROM 校准和行程限制是分开的。 Replay 自动应用其配置。更改的配置文件会短暂禁用该电机;全新启动可以释放所有配置的电机。
提供的 host/arm-control/profiles/so101/ 和 so102/ 设置来自带有空夹具的特殊直立臂。 SO-101 曲线保留了未解决的 M1 振荡和较慢的 M2 偏移;快速 SO-102 配置文件仍需要硬件验证。它们不是通用的首次运行默认值。
检查: 有效 JSON、现有相关文件、每个电机一个配置文件以及针对机构审核的设置。然后执行 重播预览 。有效的文件不会建立安全的硬件行为。