Объединение WareHouseModel и экспериментов - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь провести эксперименты, используя WarehouseRenderer и AgvRenderer из AgvExample.

Я получаю следующее исключение:

Exception in thread "main" java.lang.IllegalArgumentException: Could not resolve dependency for implementations of interface com.github.rinde.rinsim.core.model.road.CollisionGraphRoadModel, as requested by WarehouseRenderer.builder().
    at com.google.common.base.Preconditions.checkArgument(Preconditions.java:437)
    at com.github.rinde.rinsim.core.model.DependencyResolver.constructDependencyGraph(DependencyResolver.java:90)
    at com.github.rinde.rinsim.core.model.DependencyResolver.resolve(DependencyResolver.java:115)
    at com.github.rinde.rinsim.core.model.ModelManager$Builder.build(ModelManager.java:268)
    at com.github.rinde.rinsim.core.Simulator.<init>(Simulator.java:88)
    at com.github.rinde.rinsim.core.Simulator$Builder.build(Simulator.java:347)
    at com.github.rinde.rinsim.experiment.Experiment.init(Experiment.java:191)
    at com.github.rinde.rinsim.experiment.Experiment.perform(Experiment.java:195)
    at com.github.rinde.rinsim.experiment.LocalComputer$ExperimentRunner.call(LocalComputer.java:202)
    at com.github.rinde.rinsim.experiment.LocalComputer$ExperimentRunner.call(LocalComputer.java:193)
    at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125)
    at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:57)
    at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78)
    at com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:258)
    at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
    at com.google.common.util.concurrent.AbstractListeningExecutorService.submit(AbstractListeningExecutorService.java:66)
    at com.github.rinde.rinsim.experiment.LocalComputer.compute(LocalComputer.java:81)
    at com.github.rinde.rinsim.experiment.Experiment$Builder.perform(Experiment.java:684)
    at com.github.rinde.rinsim.experiment.Experiment$Builder.perform(Experiment.java:703)
    at agv.ExperimentExample.main(ExperimentExample.java:197)

1 Ответ

0 голосов
/ 29 мая 2019

Эта ошибка означает, что к симулятору подключен рендер, который ожидает модель типа CollisionGraphRoadModel.Рендерер может функционировать правильно, только если существует соответствующая модель, содержащая данные, которые должны быть отображены.

В AgvExample следующий код ( см. Строки 86-90 ) используется для добавления требуемой модели:

.addModel(
  RoadModelBuilders.dynamicGraph(GraphCreator.createSimpleGraph())
    .withCollisionAvoidance()
    .withDistanceUnit(SI.METER)
    .withVehicleLength(VEHICLE_LENGTH))

Вы можете добавить аналогичный код, если выхотите использовать WarehouseRenderer в своем коде.

...