执行加速(部分动作连接处过快)
This commit is contained in:
1 parent
351e22e123
commit
c3028a9433
5 files changed
+321
-44
No files matched your search
@@ -106,30 +106,40 @@ extern "C" {
|
||||
#define ACTUATOR_ANGLE_LIMIT_DEG 270.0f
|
||||
#endif
|
||||
|
||||
/** 执行 Cycle / 归零时 XY 轴的速度与加速度档位 (实测 3000RPM + 250 档稳定) */
|
||||
/** 执行 Cycle / 归零时 XY 轴的速度与加速度档位
|
||||
2026-08-01 提速: 3000RPM → 3500RPM (加速度保持 250 档, 实测稳定)
|
||||
注: 手册 FD 位置模式速度标称上限 0-3000RPM, 3500 超出文档范围需实测 */
|
||||
#ifndef ACTUATOR_EXEC_VEL
|
||||
#define ACTUATOR_EXEC_VEL 3000
|
||||
#define ACTUATOR_EXEC_VEL 3500
|
||||
#endif
|
||||
#ifndef ACTUATOR_EXEC_ACC
|
||||
#define ACTUATOR_EXEC_ACC 250
|
||||
#endif
|
||||
|
||||
/** Z 旋转轴执行速度与加速度 (结构刚性有限, 必须保持低速; 300RPM 已偏快) */
|
||||
/** Z 旋转轴执行速度与加速度 (结构刚性有限, 低速为主; 300RPM 已偏快)
|
||||
2026-08-01: 50→100RPM / acc 100→150 (仍远低于 300 上限, 可再微调) */
|
||||
#ifndef ACTUATOR_EXEC_Z_VEL
|
||||
#define ACTUATOR_EXEC_Z_VEL 50
|
||||
#define ACTUATOR_EXEC_Z_VEL 100
|
||||
#endif
|
||||
#ifndef ACTUATOR_EXEC_Z_ACC
|
||||
#define ACTUATOR_EXEC_Z_ACC 100
|
||||
#define ACTUATOR_EXEC_Z_ACC 150
|
||||
#endif
|
||||
|
||||
/** 运动到位等待裕量 (ms): 无到位反馈, 在计算运动时间上叠加的安全余量 */
|
||||
/** 到位等待超时兜底裕量 (ms): 闭环到位轮询的硬超时上限 (纯运动时间 + 此裕量);
|
||||
正常到位会提前返回, 此裕量仅作保底防卡死 */
|
||||
#ifndef ACTUATOR_SETTLE_MARGIN_MS
|
||||
#define ACTUATOR_SETTLE_MARGIN_MS 400
|
||||
#endif
|
||||
|
||||
/** 舵机动作 / 磁铁吸合后的等待时间 (ms) */
|
||||
/** 到位判定容差 (原始单位, Emm 固件 0~65535 = 360°; 1.5° ≈ 273)
|
||||
(2° 太松会减速途中误判"已到位"提前下一步; 若某轴一直超时可调大) */
|
||||
#ifndef ACTUATOR_ARRIVAL_TOL_RAW
|
||||
#define ACTUATOR_ARRIVAL_TOL_RAW 273
|
||||
#endif
|
||||
|
||||
/** 舵机动作 / 磁铁吸合后的等待时间 (ms) (实测优化: 300 → 150) */
|
||||
#ifndef ACTUATOR_GRIP_SETTLE_MS
|
||||
#define ACTUATOR_GRIP_SETTLE_MS 300
|
||||
#define ACTUATOR_GRIP_SETTLE_MS 150
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -225,6 +235,31 @@ uint32_t actuator_mm_settle_ms(float distance_mm, uint16_t vel, uint8_t acc);
|
||||
*/
|
||||
uint32_t actuator_angle_settle_ms(float angle_deg, uint16_t vel, uint8_t acc);
|
||||
|
||||
/**
|
||||
* @brief 直线轴纯运动时间 (按实际 mm 距离换算脉冲, 不含裕量)
|
||||
* @param distance_mm 直线距离 (mm, 取绝对值)
|
||||
* @param vel 速度 RPM
|
||||
* @param acc 加速度档位 0~255
|
||||
*/
|
||||
uint32_t actuator_mm_motion_time_ms(float distance_mm, uint16_t vel, uint8_t acc);
|
||||
|
||||
/**
|
||||
* @brief Z 旋转轴纯运动时间 (按实际角度换算脉冲, 不含裕量)
|
||||
* @param angle_deg 旋转角度 (°, 取绝对值)
|
||||
* @param vel 速度 RPM
|
||||
* @param acc 加速度档位 0~255
|
||||
*/
|
||||
uint32_t actuator_angle_motion_time_ms(float angle_deg, uint16_t vel, uint8_t acc);
|
||||
|
||||
/**
|
||||
* @brief 等待指定电机到位 (轮询闭环 S_FLAG 到位标志)
|
||||
* @param base_wait_ms 纯运动时间估算 (兜底超时基准, 超时=纯运动时间+裕量)
|
||||
* @param moved_mask 实际有行程的电机位掩码:
|
||||
* bit0=Z旋转, bit1=X, bit2=Y1, bit3=Y2
|
||||
* @return true=全部到位, false=超时 (已按最坏情况等待)
|
||||
*/
|
||||
bool actuator_wait_arrival(uint32_t base_wait_ms, uint32_t moved_mask);
|
||||
|
||||
/**
|
||||
* @brief 设置 Z 旋转轴心 ↔ 工具末端 XY 偏移量 (mm)
|
||||
* @param offset_x_mm 工具末端相对于旋转中心的 X 偏移 (mm)
|
||||
|
||||
Reference in new issue
Block a user