主题
底盘
车体坐标:x 向前、y 向左、正 yaw 逆时针。平移 m、线速度 m/s、角度 rad、角速度 rad/s。
接口
| 调用形式 | 行为 / 返回值 |
|---|---|
set_velocity(vx_mps, vy_mps, wz_rad_s) | 非阻塞设置车体速度,返回限幅后的 ChassisTwist;运动时持续刷新 |
stop(blocking=True) | 默认阻塞至平滑后的指令速度归零,不保证实测已静止;返回 None |
move_to(x_m, y_m, yaw_rad, blocking=True, timeout_s=None) | 里程计坐标系绝对位姿;阻塞成功返回 True,非阻塞返回 ChassisMotion |
move_to_relative(dx_m, dy_m, dyaw_rad, blocking=True, timeout_s=None) | 起动时车体系相对位移;返回规则同上 |
get_state() | ChassisState |
任务与失败处理
速度命令超时自动平滑停车。位置任务内部运行控制循环,不要同时发送速度命令,后者会取消位置任务。默认位置任务期限 30 s,可传有限正数 timeout_s,最大 300 s。
ChassisMotion.done 表示任务结束,不保证成功;error 保存失败原因;wait(timeout=None) 成功返回 True,实际位姿用 get_state().pose 读取。
失败抛 ChassisMotionError,取消抛 ChassisMotionCancelled,执行或等待超时抛 ChassisMotionTimeout(也是 TimeoutError)。等待超时不会自动取消任务,需调用 cancel(),然后按需 stop()。cancel() 返回 None。
状态字段
ChassisPose 字段为 x_m / y_m / yaw_rad;ChassisTwist 为 vx_mps / vy_mps / wz_rad_s。状态含 pose、measured_twist、commanded_twist、target_twist、connected、enabled、watchdog_stopped、odometry_valid、motion_active、fault。实测速度缺反馈为 None;位姿来自轮速积分,打滑会影响精度,先检查 odometry_valid。