AnyLogic仿真报错:Pedestrian unreachable target问题求助
AnyLogic行人仿真:可达目标提示无法到达的解决办法
问题重现
作为AnyLogic新手,仿真时碰到这样的问题:明明PedSource指定的目标位置是可达的,却触发"无法到达"的报错。控制台输出的错误信息如下:
Exception during discrete event execution: root.pedGoTo.pedGoToTarget: Unreachable target: (1925.64, 1600.00) on level 'name: level' for pedestrian 'id: 1' located at: (1550.00, 830.31) on level 'name: level'! java.lang.RuntimeException: root.pedGoTo.pedGoToTarget: Unreachable target: (1925.64, 1600.00) on level 'name: level' for pedestrian 'id: 1' located at: (1550.00, 830.31) on level 'name: level'! at com.anylogic.engine.Engine.error(Unknown Source) at com.anylogic.engine.Agent.error(Unknown Source)
已经试过重新创建PedSource和GoTo模块、重绘目标路线、删除其他层级(模型里只有墙体元素),但问题依然存在。
排查与修复步骤
- 检查墙体碰撞属性:确保所有墙体的
Collision选项设置为Pedestrians。如果误设为None或其他,可能导致路径规划逻辑混乱,出现看似可达实际不可达的判定。 - 验证目标点可通行性:手动拖拽行人到目标坐标(1925.64, 1600.00),看是否能顺利移动。如果手动都无法到达,说明目标区域被隐性障碍阻挡——比如墙体节点未完全闭合形成封闭区域,或者有超出画布的墙体片段仍在层级中生效。
- 调整路径规划网格:打开
PedSpaceMarkup的设置面板,尝试降低网格分辨率(默认可能过高,导致小区域被误判为不可通行)。如果模型没有严格的路径标记,可勾选Allow pedestrians to move outside marked areas选项。 - 确认GoTo模块目标设置:检查GoTo模块的目标是否绑定了正确的坐标或对象,避免因旧引用(即使删除层级仍可能残留缓存)导致目标指向异常。可以尝试直接输入目标坐标,而非引用对象位置。
- 清理模型缓存:关闭AnyLogic,删除模型文件夹下的
bin和temp目录,重新打开模型编译运行。缓存的旧数据有时会干扰路径规划的计算逻辑。 - 检查层级边界:确认目标点坐标是否在当前层级的画布范围内。如果坐标超出层级设定的边界,即使视觉上可见,路径规划也会判定为不可达。
内容的提问来源于stack exchange,提问作者user22849315
相关产品推荐
相关产品推荐

