Rinsim,通过dynamicgraph加载leuven地图并考虑collisionAvoidance。最终,图表中的连接太短

时间:2017-05-17 06:19:28

标签: rinsim

我正在尝试使用Rinsim进行路线规划。我想考虑collisionAvoidance,所以我通过这种方法加载地图(因为似乎只有dynamicGraph支持collisionAvoidance):

private static ListenableGraph<LengthData> loadGrDynamicGraph(String name){
    try {
        Graph<LengthData>  g = DotGraphIO.getLengthGraphIO(Filters.selfCycleFilter())
                .read(DDRP.class.getResourceAsStream(name));
        return new ListenableGraph<>(g);

    }catch (Exception e){

    }
    return null;
}

我将车辆长度设置为1d,距离单位设置为SI.METER。它最终会出现以下错误。

  

线程“main”中的异常java.lang.IllegalArgumentException:无效图:最小连接长度为1.0,连接(3296724.2131123254,2.5725043247255992E7) - &gt;(3296782.7337179,2.5724994399343655E7)定义的长度数据太短:0.8

     

在com.google.common.base.Preconditions.checkArgument(Preconditions.java:146)   在com.github.rinde.rinsim.core.model.road.C​​ollisionGraphRoadModelImpl.checkConnectionLength(CollisionGraphRoadModelImpl.java:261)       在com.github.rinde.rinsim.core.model.road.RoadModelBuilders $ CollisionGraphRMB.build(RoadModelBuilders.java:702)       在com.github.rinde.rinsim.core.model.road.RoadModelBuilders $ CollisionGraphRMB.build(RoadModelBuilders.java:606)       在com.github.rinde.rinsim.core.model.DependencyResolver $ Dependency.build(DependencyResolver.java:223)       在com.github.rinde.rinsim.core.model.DependencyResolver $ Dependency。(DependencyResolver.java:217)       在com.github.rinde.rinsim.core.model.DependencyResolver.add(DependencyResolver.java:71)       在com.github.rinde.rinsim.core.model.ModelManager $ Builder.doAdd(ModelManager.java:231)       在com.github.rinde.rinsim.core.model.ModelManager $ Builder.add(ModelManager.java:212)       在com.github.rinde.rinsim.core.Simulator $ Builder.addModel(Simulator.java:324)       在com.github.rinde.rinsim.examples.project.DDRP.run(DDRP.java:86)       在com.github.rinde.rinsim.examples.project.DDRP.main(DDRP.java:60)       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)       at java.lang.reflect.Method.invoke(Method.java:498)       在com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

我试图改变车辆长度,但错误仍然退出。有谁知道如何克服这个错误?

谢谢

1 个答案:

答案 0 :(得分:0)

来自OpenStreetMap的图表(例如Leuven地图)并不打算与您尝试使用的CollisionGraphRoadModel结合使用。原因是CollsionGrahpRoadModel适用于类似仓库的环境,而非公共街道。该模型不支持多个并行通道,这在城市中是不现实的。 WarehouseExample定义了两个示例图,可以与CollsionGrahpRoadModel结合使用。