Difference between revisions of "Talk:GravityWave/Versions"

From Robowiki
Jump to navigation Jump to search
(how FuturePosition works)
(→‎Future Position: My painful attempt (includes code))
Line 4: Line 4:
 
: I did, which is where I got the idea. I'm just having problems making it work. --[[User:J Litewski|Jacob Litewski]] 21:02, 12 June 2009 (UTC)
 
: I did, which is where I got the idea. I'm just having problems making it work. --[[User:J Litewski|Jacob Litewski]] 21:02, 12 June 2009 (UTC)
 
: Ah, ok... Well, I was hoping my more readable wrapper code would make it more clear how it works. =) Any specific questions? A MovSim represents a robot state at a point in time, basically get one of those back from the simulator and use it as input for the next tick's simulation... --[[User:Voidious|Voidious]] 22:19, 12 June 2009 (UTC)
 
: Ah, ok... Well, I was hoping my more readable wrapper code would make it more clear how it works. =) Any specific questions? A MovSim represents a robot state at a point in time, basically get one of those back from the simulator and use it as input for the next tick's simulation... --[[User:Voidious|Voidious]] 22:19, 12 June 2009 (UTC)
 +
: I made a Point2D.Double function that calls the MovSim and returns the projected x and y fine. It's just then getting it to work like the function in [[BasicSurfer]]. This is how it's set up:
 +
<pre>
 +
public Point2D.Double predictPosition(AdvancedRobot _robot, int future) {
 +
if (moveSimulator == null) { moveSimulator = new MovSim(); }
 +
System.out.println(future);
 +
if(future <= 0) { future = 1; }
 +
 +
MovSimStat[] next = moveSimulator.futurePos(future, _robot); //predict into the future
 +
Point2D.Double nextPosition = new Point2D.Double(next[future-1].x, next[future-1].y);
 +
 +
return nextPosition;
 +
}
 +
</pre>
 +
Now I know this is the problem, this is how I call it:
 +
<pre>
 +
int index = getFactorIndex(surfWave,
 +
            predictPosition(this, 1));
 +
</pre>
 +
I'm thinking I'm going to need to write a new getFactorIndex to better suit the MovSim function. I'm not sure though. --[[User:J Litewski|Jacob Litewski]] 23:27, 12 June 2009 (UTC)

Revision as of 01:27, 13 June 2009

Future Position

I use Future Position in Dookious and Diamond. I just made the main simulation method public, so I can change movement tick by tick (as one needs to in simulating Wave Surfing), then some additional wrapper methods in DUtils and DiaUtils, if you want to take a look. --Voidious 20:25, 12 June 2009 (UTC)

I did, which is where I got the idea. I'm just having problems making it work. --Jacob Litewski 21:02, 12 June 2009 (UTC)
Ah, ok... Well, I was hoping my more readable wrapper code would make it more clear how it works. =) Any specific questions? A MovSim represents a robot state at a point in time, basically get one of those back from the simulator and use it as input for the next tick's simulation... --Voidious 22:19, 12 June 2009 (UTC)
I made a Point2D.Double function that calls the MovSim and returns the projected x and y fine. It's just then getting it to work like the function in BasicSurfer. This is how it's set up:
public Point2D.Double predictPosition(AdvancedRobot _robot, int future) {
	if (moveSimulator == null) { moveSimulator = new MovSim(); }
	System.out.println(future);
	if(future <= 0) { future = 1; }
	
	MovSimStat[] next = moveSimulator.futurePos(future, _robot); //predict into the future
	Point2D.Double nextPosition = new Point2D.Double(next[future-1].x, next[future-1].y);
	
	return nextPosition;
}

Now I know this is the problem, this is how I call it:

int index = getFactorIndex(surfWave,
            predictPosition(this, 1));

I'm thinking I'm going to need to write a new getFactorIndex to better suit the MovSim function. I'm not sure though. --Jacob Litewski 23:27, 12 June 2009 (UTC)