jadex.bdi.examples.cleanerworld_classic.cleaner.MoveToLocationPlan Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jadex-applications-bdi Show documentation
Show all versions of jadex-applications-bdi Show documentation
The Jadex BDI applications package contain
several example applications, benchmarks and
testcases using BDI agents.
package jadex.bdi.examples.cleanerworld_classic.cleaner;
import jadex.bdi.examples.cleanerworld_classic.Chargingstation;
import jadex.bdi.examples.cleanerworld_classic.Cleaner;
import jadex.bdi.examples.cleanerworld_classic.Location;
import jadex.bdi.examples.cleanerworld_classic.Vision;
import jadex.bdi.examples.cleanerworld_classic.Waste;
import jadex.bdi.examples.cleanerworld_classic.Wastebin;
import jadex.bdi.runtime.IBeliefSet;
import jadex.bdi.runtime.IGoal;
import jadex.bdi.runtime.Plan;
import jadex.commons.SUtil;
import java.util.List;
/**
* Move to a point.
*/
public class MoveToLocationPlan extends Plan
{
//-------- constructors --------
/**
* Create a new plan.
*/
public MoveToLocationPlan()
{
// getLogger().info("Created: "+this);
}
//-------- methods --------
/**
* The plan body.
*/
public void body()
{
//long time = getRootGoal().getExecutionTime();
Location target = (Location)getParameter("location").getValue();
Location myloc = (Location)getBeliefbase().getBelief("my_location").getFact();
while(!myloc.isNear(target))
{
//pause(atm);
// calculate the new position offset.
//long newtime = getTime();
double speed = ((Double)getBeliefbase().getBelief("my_speed").getFact()).doubleValue();
double d = myloc.getDistance(target);
double r = speed*0.00004*100;//(newtime-time);
double dx = target.getX()-myloc.getX();
double dy = target.getY()-myloc.getY();
//time = newtime;
// When radius greater than distance, just move a step.
double rx = r