Loading...
 

PogamutUT2004


Paths through arbitrary locations

I'm trying to use the path executor to follow a path through a list of arbitrary Locations.
These Locations are not necessarily near navpoints, but the List it ordered in such a way that
sequential Locations are close enough to each other that they should be reachable.
These paths are based on data collected from human players, and I would like to replay
the Location sequence.

However, the path executor seems to be throwing a fit. Here's the error:

FatalErrorEvent[
    Component:  UT2004SyncLockableWorldView
    Message:    Exception raising event InfoMessage[EndMessage] | Time = 6734.2 | 
    Cause:      class cz.cuni.amis.utils.exception.PogamutException: cz.cuni.amis.pogamut.ut2004.agent.navigation.loquenavigator.LoqueNavigator@17892d5: Can't navigate as the current path element index is out of path range (index = -1, path.size() = 108. (at cz.cuni.amis.pogamut.ut2004.agent.navigation.AbstractUT2004PathNavigator.navigate(AbstractUT2004PathNavigator.java:54))
    Stacktrace:        cz.cuni.amis.pogamut.base.component.controller.ComponentController.fatalError(ComponentController.java:518)
        cz.cuni.amis.pogamut.base.communication.worldview.impl.EventDrivenWorldView.raiseEvent(EventDrivenWorldView.java:105)
        cz.cuni.amis.pogamut.base.communication.worldview.impl.EventDrivenWorldView.innerNotify(EventDrivenWorldView.java:127)
        cz.cuni.amis.pogamut.base.communication.worldview.impl.EventDrivenWorldView.notify(EventDrivenWorldView.java:224)
        cz.cuni.amis.pogamut.base3d.worldview.impl.BatchAwareWorldView.notify(BatchAwareWorldView.java:89)
        cz.cuni.amis.pogamut.ut2004.communication.worldview.UT2004SyncLockableWorldView.processBatch(UT2004SyncLockableWorldView.java:207)
        cz.cuni.amis.pogamut.ut2004.communication.worldview.UT2004SyncLockableWorldView.processBatches(UT2004SyncLockableWorldView.java:190)
        cz.cuni.amis.pogamut.ut2004.communication.worldview.UT2004SyncLockableWorldView.unlock(UT2004SyncLockableWorldView.java:167)
        cz.cuni.amis.pogamut.ut2004.agent.module.logic.SyncUT2004BotLogic.afterLogicException(SyncUT2004BotLogic.java:92)
        cz.cuni.amis.pogamut.base.agent.module.LogicModule$LogicRunner.run(LogicModule.java:420)
        java.lang.Thread.run(Thread.java:619)
    Caused by:         cz.cuni.amis.pogamut.ut2004.agent.navigation.AbstractUT2004PathNavigator.navigate(AbstractUT2004PathNavigator.java:54)
        cz.cuni.amis.pogamut.ut2004.agent.navigation.UT2004PathExecutor.navigate(UT2004PathExecutor.java:172)
        cz.cuni.amis.pogamut.ut2004.agent.navigation.UT2004PathExecutor.eventEndMessage(UT2004PathExecutor.java:155)
        cz.cuni.amis.pogamut.ut2004.agent.navigation.UT2004PathExecutor$2.notify(UT2004PathExecutor.java:47)
        cz.cuni.amis.pogamut.ut2004.agent.navigation.UT2004PathExecutor$2.notify(UT2004PathExecutor.java:44)
        cz.cuni.amis.pogamut.base.communication.worldview.impl.AbstractWorldView$ListenerNotifier.notify(AbstractWorldView.java:99)
        cz.cuni.amis.pogamut.base.communication.worldview.impl.AbstractWorldView$ListenerNotifier.notify(AbstractWorldView.java:78)
        cz.cuni.amis.utils.listener.Listeners.notify(Listeners.java:274)
        cz.cuni.amis.utils.listener.ListenersMap.notify(ListenersMap.java:76)
        cz.cuni.amis.pogamut.base.communication.worldview.impl.AbstractWorldView.notifyLevelAListeners(AbstractWorldView.java:639)
        cz.cuni.amis.pogamut.base.communication.worldview.impl.AbstractWorldView.innerRaiseEvent(AbstractWorldView.java:710)
        cz.cuni.amis.pogamut.base.communication.worldview.impl.AbstractWorldView.raiseEvent(AbstractWorldView.java:614)
        cz.cuni.amis.pogamut.base.communication.worldview.impl.EventDrivenWorldView.raiseEvent(EventDrivenWorldView.java:103)
        cz.cuni.amis.pogamut.base.communication.worldview.impl.EventDrivenWorldView.innerNotify(EventDrivenWorldView.java:127)
        cz.cuni.amis.pogamut.base.communication.worldview.impl.EventDrivenWorldView.notify(EventDrivenWorldView.java:224)
        cz.cuni.amis.pogamut.base3d.worldview.impl.BatchAwareWorldView.notify(BatchAwareWorldView.java:89)
        cz.cuni.amis.pogamut.ut2004.communication.worldview.UT2004SyncLockableWorldView.processBatch(UT2004SyncLockableWorldView.java:207)
        cz.cuni.amis.pogamut.ut2004.communication.worldview.UT2004SyncLockableWorldView.processBatches(UT2004SyncLockableWorldView.java:190)
        cz.cuni.amis.pogamut.ut2004.communication.worldview.UT2004SyncLockableWorldView.unlock(UT2004SyncLockableWorldView.java:167)
        cz.cuni.amis.pogamut.ut2004.agent.module.logic.SyncUT2004BotLogic.afterLogicException(SyncUT2004BotLogic.java:92)
        cz.cuni.amis.pogamut.base.agent.module.LogicModule$LogicRunner.run(LogicModule.java:420)
        java.lang.Thread.run(Thread.java:619)
]

Which Pogamut version are you using? How are you calling the path executor?

I've tried to simulate the exception on NavigationBot archetype in pogamut version 3.2.3. This code worked fine:

@Override
    public void logic() throws PogamutException {
        ArrayList customPath = new ArrayList();

        customPath.add(new Location(-500,-1500,-1790));
        customPath.add(new Location(-1000,-1500,-1790));
        customPath.add(new Location(-1300,-1500,-1790));
        customPath.add(new Location(-1300,-1300,-1790));
        customPath.add(new Location(-1300,-1500,-1790));
        customPath.add(new Location(-1000,-1500,-1790));
        customPath.add(new Location(-500,-1500,-1790));

        if (!pathExecutor.isExecuting()) {
            log.info("Setting custom path now!");
            IPathFuture myPath = new PrecomputedPathFuture(customPath.get(0), customPath.get(customPath.size() - 1), customPath);
            pathExecutor.followPath(myPath);
        }    
    }


Used archetype info:
cz.cuni.amis.pogamut.ut2004.examples
02-navigation-bot-archetype
3.2.3

Best,
Michal
Well, I guess my problem must be caused by using Pogamut 3.1, which I have to keep using
for the moment since I'm participating in the competition at CEC, and the latest versions of
Pogamut aren't working for the version of Gamebots used there.

Thanks though.
Hi Jacob,

again we're very sorry for bugs in the Pogamut code. Apparently, you've dug deeper than anyone else ...
Again for quick fix I would suggest to check out older revision of Pogamut trunk (3.1) and copy paste PathExecutor code and fix it yourself. Unfortunately, we can't maintain older versions of Pogamut ;((( ... academic project :-(

Please let us know if you are able to fix it, thanks.

Jimmy
 

News

News RSS RSS feed for News link



Pogamut

Quarterly RSS RSS feed for quarterly reports

Acknowledgement

This work is supported by GA UK 1053/2007/A-INF/MFF (2007-8), GA UK 351/2006/A-INF/MFF (2006-8), the Ministry of Education of the Czech Republic (grant MSM0021620838) (2008-9), by the Program "Information Society" under project 1ET100300517 (2006-9), and the project Integration of IT Tools into Education of Humanities (2006-8) and by the project CZ.2.17/3.1.00/31162, which are financed by the European Social Fund, the state budget of the Czech Republic, and by the budget of Municipal House Prague.