♻️ refactor(compat): 替换 MoveJoint 时间律为解析式 7 阶平滑函数并添加离散限位校验
* 将预捕获 alpha 数据表替换为解析式 7 阶平滑点到点时间律 s(u)=35u⁴-84u⁵+70u⁶-20u⁷,形状系数按 1~3 阶导数最大值重算 * 新增离散限位校验:按真实 8ms 采样点反算速度/加速度/jerk, 不满足时自动拉长总时长后重采样,最多迭代 10000 次 * 实发轨迹落盘:ActualSendJointTraj.txt(角度制)、 ActualSendJerkStats.txt(点间跃度统计),按时间目录归档 * J519 AcceptsCommand 门控:只有机器人就绪时才发送下一帧, 减少无效下发;状态日志附带最近发送目标关节轴 * FanucControllerRuntime 构造函数改为必选 ILogger 注入, 确保 DI 解析时稳定拿到日志实例 * LegacyHttpApiController 移除已废弃的 ConnectServer 调用, EnableRobot 参数从 2 改为 4 * 新增跃度报警分析文档和六轴限值表,补充反馈远离拒绝测试 Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
62
docs/robot-joint-limit-table-20260505.md
Normal file
62
docs/robot-joint-limit-table-20260505.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# 机器人六轴限值提取表
|
||||
|
||||
记录时间:2026-05-05
|
||||
|
||||
## 1. 目的
|
||||
|
||||
本文档把当前机器人模型中的六轴基础限值整理成一份固定表格,明确区分以下几类信息:
|
||||
|
||||
- 模型原始值:来自 `LR_Mate_200iD_7L_clean.json` 中每个关节的 `limit.velocity / limit.acceleration / limit.jerk / limit.effort`
|
||||
- 配置倍率:来自当前运行配置 `Config/RobotConfig.json` 中的 `acc_limit / jerk_limit`
|
||||
- 运行时有效值:模型原始值叠加当前配置倍率后的结果
|
||||
|
||||
本表只覆盖六个旋转关节 `Joint1` 到 `Joint6`。
|
||||
`JointEffector` 属于末端固定关节,不计入“每个轴”的速度、加速度、跃度统计。
|
||||
|
||||
## 2. 当前取值规则
|
||||
|
||||
当前仓库运行时对六轴限值的读取规则是:
|
||||
|
||||
- `velocity_eff = velocity_base`
|
||||
- `acceleration_eff = acceleration_base * acc_limit`
|
||||
- `jerk_eff = jerk_base * jerk_limit`
|
||||
|
||||
当前 `Config/RobotConfig.json` 中的倍率为:
|
||||
|
||||
- `acc_limit = 1`
|
||||
- `jerk_limit = 1`
|
||||
|
||||
因此本次表格中的“基础值”和“有效值”数值相同。
|
||||
|
||||
## 3. 六轴限值表
|
||||
|
||||
| Joint | velocity_base | acceleration_base | jerk_base | effort_raw | acc_limit | jerk_limit | velocity_eff | acceleration_eff | jerk_eff | 备注 |
|
||||
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | --- |
|
||||
| Joint1 | 6.45 | 26.90 | 224.22 | 0.0 | 1 | 1 | 6.45 | 26.90 | 224.22 | 模型字段存在,`effort` 当前为 0 |
|
||||
| Joint2 | 5.41 | 22.54 | 187.86 | 0.0 | 1 | 1 | 5.41 | 22.54 | 187.86 | 模型字段存在,`effort` 当前为 0 |
|
||||
| Joint3 | 7.15 | 29.81 | 248.46 | 0.0 | 1 | 1 | 7.15 | 29.81 | 248.46 | 模型字段存在,`effort` 当前为 0 |
|
||||
| Joint4 | 9.59 | 39.99 | 333.30 | 0.0 | 1 | 1 | 9.59 | 39.99 | 333.30 | 模型字段存在,`effort` 当前为 0 |
|
||||
| Joint5 | 9.51 | 39.63 | 330.27 | 0.0 | 1 | 1 | 9.51 | 39.63 | 330.27 | 模型字段存在,`effort` 当前为 0 |
|
||||
| Joint6 | 17.45 | 72.72 | 606.01 | 0.0 | 1 | 1 | 17.45 | 72.72 | 606.01 | 模型字段存在,`effort` 当前为 0 |
|
||||
|
||||
## 4. 关于“电流信息”的说明
|
||||
|
||||
这份模型文件里确实有 `limit.effort` 字段,但当前证据只能说明:
|
||||
|
||||
- 它是模型文件中的一个静态字段
|
||||
- 当前六轴以及 `JointEffector` 的 `effort` 都是 `0.0`
|
||||
- 当前 `flyshot-replacement` 代码链路没有把它当作实时电流来源来使用
|
||||
|
||||
因此当前结论应固定为:
|
||||
|
||||
- `velocity / acceleration / jerk` 可以从这份模型文档中提取
|
||||
- `effort` 只能当作模型原始字段记录
|
||||
- `effort` 不能直接解释为现场真实电流,也不能替代 J519 反馈中的电机电流数据
|
||||
|
||||
## 5. 后续使用约定
|
||||
|
||||
后续如果有人问“每个轴的速度、加速度、跃度是不是从这个文档来的”,默认回答应为:
|
||||
|
||||
- 是,六轴基础限值来自模型文件中的 `joint.limit`
|
||||
- 运行时有效加速度和有效跃度还要再乘 `RobotConfig.json` 的全局倍率
|
||||
- 不是,真实电流不要从这个文件里的 `effort` 去推断
|
||||
Reference in New Issue
Block a user