# 小车如何检测轨道位置并避免冲出轨道

> 原文链接：https://robotics.hellobike.com/pitfalls/2015-08-10-robotics-se-812
> 频道：pitfalls | 更新日期：2015-08-10 | 标签：auto, stackexchange, mobile-robot, arduino, sensors
> 核心摘要：固定齿条轨道小车可用机械、磁性或光学端点开关，并结合步进电机软限位防止越界。

# 小车如何检测轨道位置并避免冲出轨道

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[How to find out how far a motor has taken a vehicle?](https://robotics.stackexchange.com/questions/812/how-to-find-out-how-far-a-motor-has-taken-a-vehicle)（Robotics Stack Exchange #812）

**状态**：已解决

## 问题

小型电动车以齿轮作轮子在齿条轨道上运行，需知道何时到达半程、末端并返回起点；因载水量不同，重量变化，担心仅统计步进电机步数不准确。

## 环境

嵌入式控制器 / 串口通信

## 解决办法

1. 在固定轨道上使用一对端点检测装置，可选机械、磁性或光学端点。
2. 机械方案：在轨道末端设置缓冲挡块，或在车辆保险杠上加机械开关，触碰前闭合并通知控制系统刹车。
3. 磁性方案：在轨道上放磁铁，控制系统接簧片开关，车辆经过磁铁时闭合电路并停止。
4. 光学方案：车上装槽型光电开关，轨道末端附近放金属片遮光，接近末端时触发停止。
5. 同时可做软限位：记录步进电机已命令移动的位置并限制上层软件的移动范围；若电机速度、扭矩、加速度参数合适不丢步，软限位可用。
6. 建议组合使用软限位与机械/磁性/光学端点作为冗余。

原问题作者：bogen；采纳答案作者：Mark Booth。原内容依 CC BY-SA 4.0 授权，本页摘要同样依 CC BY-SA 4.0 授权。
:::

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #812：How to find out how far a motor has taken a vehicle?](https://robotics.stackexchange.com/questions/812/how-to-find-out-how-far-a-motor-has-taken-a-vehicle)