引言上一篇我们讲了《机器人为什么会“漂”——RTK 漂移问题详解》很多人现在已经知道RTK ≠ 永远绝对精准于是问题来了既然 RTK 会漂。那机器人为什么不会直接冲出边界不会跑到马路上不会撞到禁区不会乱跑比如割草机器人不会跑出草坪清扫机器人不会进入禁区AGV 不会离开路线区域无人车不会越界它们到底是怎么做到的今天我们就从工程视角真正讲透机器人电子围栏核心算法Point-In-Polygon点在多边形内判断一、什么是电子围栏所谓电子围栏。本质上就是给机器人划一个“允许活动区域”例如草坪区域 仓库区域 巡检区域 停车区域机器人只能在这个区域内部活动一旦超出系统就会停止运动重新规划路径告警强制回退二、电子围栏本质是什么很多人以为电子围栏很高级。其实本质非常简单判断“一个点”是否在“一个区域”内也就是输入机器人当前位置(x, y)区域边界多个顶点组成的多边形输出在区域内 还是区域外这就是Point-In-PolygonPIP三、什么是 Polygon多边形机器人中的区域通常不是圆形。而是任意不规则区域例如草坪可能长这样A → B → C → D → E这些点连接起来就形成Polygon多边形四、Point-In-Polygon 是什么翻译过来就是“点是否在多边形内”简称PIP这是机器人领域最经典算法之一。广泛用于割草机器人AGV无人车GIS 地图无人机地图系统五、机器人是怎么判断“越界”的核心逻辑其实非常简单第一步RTK 获取机器人当前位置(x, y)第二步系统提前保存电子围栏边界点例如[(0,0), (10,0), (10,10), (0,10)]第三步执行Point-In-Polygon 判断第四步如果不在区域内机器人立刻停止回退告警六、最经典算法射线法Ray Casting这是面试高频。也是工程里最常用的方法。核心思想从当前点向右发射一条射线然后 统计射线与多边形边的相交次数规则奇数次说明点在内部偶数次说明点在外部举个例子点在矩形内部射线会穿过边界1 次于是奇数→ 在内部点在矩形外面射线可能0 次或 2 次于是偶数→ 在外部七、为什么不用“距离判断”很多新人会想“我直接判断距离不行吗”其实不行。因为机器人区域通常是不规则区域例如L 型草坪异形仓库曲线边界多边形区域所以必须使用Polygon 算法八、RTK 为什么之后还需要电子围栏RTK 只是“定位”这是工程里的关键。因为RTK 只是“定位”。它只负责机器人在哪里但“能不能过去” 是围栏系统决定的。举个例子即使 RTK 已经知道机器人在草坪边缘但系统仍然需要判断有没有越界所以RTK 与围栏本质是两套系统九、为什么机器人仍然可能“压线”这个非常真实。原因包括1. RTK 本身有漂移例如真实位置在边界内 但 RTK 计算已经出界2. 控制系统存在延迟机器人 不是瞬间停止而是有惯性有刹车距离有控制延迟所以即使检测到边界。也可能已经压过去一点3. 地图误差例如建图不准围栏点误差坐标系误差都会导致 边界偏移。十、真实机器人里的完整链路真实工程通常是RTK→ 获取位置地图系统→ 管理围栏PIP 算法→ 判断是否越界运动控制→ 决定停止/回退所以电子围栏并不是“单独一个功能”而是整个机器人定位系统的一部分十一、Android / IoT 里怎么实现实际工程中很多机器人上层其实就是Android或者Linux C通常流程RTK 模块输出经纬度上层系统转换为地图坐标然后执行Point-In-Polygon 判断最后控制机器人运动。十二、面试怎么回答如果面试官问“机器人电子围栏怎么实现”标准答案面试版机器人电子围栏的核心本质上是Point-In-Polygon点在多边形内判断系统会使用 RTK 获取机器人当前位置使用地图保存围栏边界通过 PIP 算法判断当前位置是否在区域内工程里通常会使用射线法Ray Casting判断点与多边形边界的相交次数。奇数次在内部。偶数次在外部。十三、总结一句话总结RTK 负责“机器人在哪”Point-In-Polygon 负责“机器人能不能过去”这两者 共同构成机器人电子围栏系统下篇预告下一篇我们继续《NMEA、RTCM、NTRIP 到底是什么——RTK 数据链路详解》深入讲透GNSS 模块到底输出了什么NMEA 为什么像“GPS 日志”RTCM 为什么是差分核心NTRIP 为什么需要网络基站数据怎么传到机器人Android / IoT 怎么接收 RTK 数据这些才是真正的 RTK 工程通信核心。《RTK / GNSS 工程实战系列》为什么机器人能厘米级定位——一篇讲透 GPS、北斗 与 RTKRTK 为什么比 GPS 准——差分定位原理详解机器人为什么会“漂”——RTK 漂移问题详解Point-In-Polygon 是什么——机器人电子围栏核心算法NMEA、RTCM、NTRIP 到底是什么——RTK 数据链路详解Android / IoT 如何接入 RTK 模块——串口、蓝牙、TCP 工程实践RTK 地图 机器人完整定位系统架构解析
第四篇:Point-In-Polygon 是什么?——机器人电子围栏核心算法
发布时间:2026/7/13 16:35:06
引言上一篇我们讲了《机器人为什么会“漂”——RTK 漂移问题详解》很多人现在已经知道RTK ≠ 永远绝对精准于是问题来了既然 RTK 会漂。那机器人为什么不会直接冲出边界不会跑到马路上不会撞到禁区不会乱跑比如割草机器人不会跑出草坪清扫机器人不会进入禁区AGV 不会离开路线区域无人车不会越界它们到底是怎么做到的今天我们就从工程视角真正讲透机器人电子围栏核心算法Point-In-Polygon点在多边形内判断一、什么是电子围栏所谓电子围栏。本质上就是给机器人划一个“允许活动区域”例如草坪区域 仓库区域 巡检区域 停车区域机器人只能在这个区域内部活动一旦超出系统就会停止运动重新规划路径告警强制回退二、电子围栏本质是什么很多人以为电子围栏很高级。其实本质非常简单判断“一个点”是否在“一个区域”内也就是输入机器人当前位置(x, y)区域边界多个顶点组成的多边形输出在区域内 还是区域外这就是Point-In-PolygonPIP三、什么是 Polygon多边形机器人中的区域通常不是圆形。而是任意不规则区域例如草坪可能长这样A → B → C → D → E这些点连接起来就形成Polygon多边形四、Point-In-Polygon 是什么翻译过来就是“点是否在多边形内”简称PIP这是机器人领域最经典算法之一。广泛用于割草机器人AGV无人车GIS 地图无人机地图系统五、机器人是怎么判断“越界”的核心逻辑其实非常简单第一步RTK 获取机器人当前位置(x, y)第二步系统提前保存电子围栏边界点例如[(0,0), (10,0), (10,10), (0,10)]第三步执行Point-In-Polygon 判断第四步如果不在区域内机器人立刻停止回退告警六、最经典算法射线法Ray Casting这是面试高频。也是工程里最常用的方法。核心思想从当前点向右发射一条射线然后 统计射线与多边形边的相交次数规则奇数次说明点在内部偶数次说明点在外部举个例子点在矩形内部射线会穿过边界1 次于是奇数→ 在内部点在矩形外面射线可能0 次或 2 次于是偶数→ 在外部七、为什么不用“距离判断”很多新人会想“我直接判断距离不行吗”其实不行。因为机器人区域通常是不规则区域例如L 型草坪异形仓库曲线边界多边形区域所以必须使用Polygon 算法八、RTK 为什么之后还需要电子围栏RTK 只是“定位”这是工程里的关键。因为RTK 只是“定位”。它只负责机器人在哪里但“能不能过去” 是围栏系统决定的。举个例子即使 RTK 已经知道机器人在草坪边缘但系统仍然需要判断有没有越界所以RTK 与围栏本质是两套系统九、为什么机器人仍然可能“压线”这个非常真实。原因包括1. RTK 本身有漂移例如真实位置在边界内 但 RTK 计算已经出界2. 控制系统存在延迟机器人 不是瞬间停止而是有惯性有刹车距离有控制延迟所以即使检测到边界。也可能已经压过去一点3. 地图误差例如建图不准围栏点误差坐标系误差都会导致 边界偏移。十、真实机器人里的完整链路真实工程通常是RTK→ 获取位置地图系统→ 管理围栏PIP 算法→ 判断是否越界运动控制→ 决定停止/回退所以电子围栏并不是“单独一个功能”而是整个机器人定位系统的一部分十一、Android / IoT 里怎么实现实际工程中很多机器人上层其实就是Android或者Linux C通常流程RTK 模块输出经纬度上层系统转换为地图坐标然后执行Point-In-Polygon 判断最后控制机器人运动。十二、面试怎么回答如果面试官问“机器人电子围栏怎么实现”标准答案面试版机器人电子围栏的核心本质上是Point-In-Polygon点在多边形内判断系统会使用 RTK 获取机器人当前位置使用地图保存围栏边界通过 PIP 算法判断当前位置是否在区域内工程里通常会使用射线法Ray Casting判断点与多边形边界的相交次数。奇数次在内部。偶数次在外部。十三、总结一句话总结RTK 负责“机器人在哪”Point-In-Polygon 负责“机器人能不能过去”这两者 共同构成机器人电子围栏系统下篇预告下一篇我们继续《NMEA、RTCM、NTRIP 到底是什么——RTK 数据链路详解》深入讲透GNSS 模块到底输出了什么NMEA 为什么像“GPS 日志”RTCM 为什么是差分核心NTRIP 为什么需要网络基站数据怎么传到机器人Android / IoT 怎么接收 RTK 数据这些才是真正的 RTK 工程通信核心。《RTK / GNSS 工程实战系列》为什么机器人能厘米级定位——一篇讲透 GPS、北斗 与 RTKRTK 为什么比 GPS 准——差分定位原理详解机器人为什么会“漂”——RTK 漂移问题详解Point-In-Polygon 是什么——机器人电子围栏核心算法NMEA、RTCM、NTRIP 到底是什么——RTK 数据链路详解Android / IoT 如何接入 RTK 模块——串口、蓝牙、TCP 工程实践RTK 地图 机器人完整定位系统架构解析