/*
* 作成日: 2008/07/02
*/
package jp.ac.fit.asura.nao.localization.self;
import javax.vecmath.Matrix3f;
import javax.vecmath.Vector3f;
import jp.ac.fit.asura.nao.RobotContext;
import jp.ac.fit.asura.nao.SensorContext;
import jp.ac.fit.asura.nao.VisualFrameContext;
import jp.ac.fit.asura.nao.misc.MathUtils;
import jp.ac.fit.asura.nao.misc.MatrixUtils;
/**
* @author sey
*
* @version $Id: GPSLocalization.java 717 2008-12-31 18:16:20Z sey $
*
*/
public class GPSLocalization extends SelfLocalization {
private int x;
private int y;
private int z;
private float heading;
public int getConfidence() {
return 999;
}
@Override
public float getHeading() {
return heading;
}
@Override
public int getX() {
return x;
}
@Override
public int getY() {
return y;
}
public int getZ() {
return z;
}
@Override
public void reset() {
}
@Override
public void start() {
}
@Override
public void step(VisualFrameContext context) {
SensorContext sensor = context.getMotionFrame().getSensorContext();
Matrix3f mat = new Matrix3f();
sensor.getGpsRotation(mat);
Vector3f pyr = new Vector3f();
MatrixUtils.rot2pyr(mat, pyr);
heading = MathUtils.normalizeAnglePI(-pyr.y + MathUtils.PIf);
x = (int) (-sensor.getGpsX() * 1000);
y = (int) (-sensor.getGpsY() * 1000);
z = (int) (-sensor.getGpsZ() * 1000);
}
@Override
public void stop() {
}
@Override
public void init(RobotContext rctx) {
}
}