Files

86 lines
2.1 KiB
TOML

# chassisd 配置样例
# 复制到 /etc/chassisd/chassis.toml 并按实车修改。
[can]
interface = "can0"
# DJI DT7 + DR16 遥控接收机。没有遥控时删除整个 [remote] 段,守护进程会保持静止。
[remote]
kind = "dr16"
device = "/dev/ttyS2"
# 合法 D-BUS 帧断流超时(毫秒);超时立即失能停车。
timeout_ms = 100
# 摇杆满量程死区(0..0.5),死区后使用平方响应曲线。
deadband = 0.05
# 从零到满量程的逐轴速度斜坡(毫秒);S1 失能、断流和超时立即归零。
ramp_ms = 500
# 实车方向相反时置 true,不需要改代码。
invert_vx = false
invert_vy = false
invert_omega = false
[chassis]
# 控制循环周期(毫秒)。C620 期望 1kHz 命令。
control_period_ms = 1
# 上层 twist 命令超时(毫秒),超时后目标速度归零。
command_timeout_ms = 200
# 电机反馈离线判定(毫秒),离线后强制 0 电流。
feedback_timeout_ms = 100
# 驱动层命令租约(毫秒):控制循环超过该时长未刷新电机命令 → 强制 0 电流
# (防控制任务死亡后旧指令持续输出)。必须 >= control_period_ms。
motor_command_timeout_ms = 50
[mecanum]
# 轮轴线到底盘中心的纵向 / 横向半距(米)与轮半径(米)。
half_length = 0.18
half_width = 0.20
wheel_radius = 0.0762
# 四轮顺序:前左、前右、后左、后右(与 mecanum crate 约定一致)。
[[motor]]
name = "front_left"
esc_id = 1
direction = 1
gear_ratio = 19.203
# 电流限幅(协议 raw 值,C620 满量程 16384)。
current_limit = 12000
# 速度环(输入 rpm,输出 raw 电流)。按实车整定。
kp = 18.0
ki = 0.6
kd = 0.0
# 前馈(raw 电流/rpm)。
feedforward = 9.0
[[motor]]
name = "front_right"
esc_id = 2
direction = -1
gear_ratio = 19.203
current_limit = 12000
kp = 18.0
ki = 0.6
kd = 0.0
feedforward = 9.0
[[motor]]
name = "rear_left"
esc_id = 3
direction = 1
gear_ratio = 19.203
current_limit = 12000
kp = 18.0
ki = 0.6
kd = 0.0
feedforward = 9.0
[[motor]]
name = "rear_right"
esc_id = 4
direction = -1
gear_ratio = 19.203
current_limit = 12000
kp = 18.0
ki = 0.6
kd = 0.0
feedforward = 9.0