docs: public PoseSteering getPoseSteering(long time) {
  		long startTime = this.getTemporalVariable().getEST();
  		long endTime = this.getTemporalVariable().getEET();
  		if (time  < startTime || time > endTime) {
  			return this.getTrajectory().getPoseSteering()[this.getTrajectory().getPoseSteering().length-1];
  //			if (this.hasSuperEnvelope()) {
  //				return this.getSuperEnvelope().getPoseSteering(time);
  //			}
  //			return null;
  		}
  		if (this.getReferencePathVariable().getShapeType().equals(PointDomain.class)) {
  			return this.getTrajectory().getPoseSteering()[0];
  		}
  		
  		long total = endTime-startTime;
  		long soFar = time-startTime;
  		double percent = ((double)soFar)/((double)total);
  		
  		double totDistance = ((LineStringDomain)this.getReferencePathVariable().getDomain()).getGeometry().getLength();
  		double scannedDistance = 0.0;
  		PoseSteering previousPS = null;
  		PoseSteering currentPS = null;
  		double previousRatio = 0.0;
  		double currentRatio = 0.0;
  		int index = 0;
  		while (scannedDistance/totDistance < percent) {
  			previousRatio = scannedDistance/totDistance;
  			previousPS = this.getTrajectory().getPoseSteering()[index];
  			currentPS = this.getTrajectory().getPoseSteering()[++index];
  			scannedDistance += new Coordinate(currentPS.getPose().getX(),currentPS.getPose().getY()).distance(new Coordinate(previousPS.getPose().getX(),previousPS.getPose().getY()));
  			currentRatio = scannedDistance/totDistance;
  		}
  		if (previousPS == null) return this.getTrajectory().getPoseSteering()[0];
  		double ratio = (percent-previousRatio)/(currentRatio-previousRatio);
  		PoseSteering ret = previousPS.interpolate(currentPS, ratio);
  		return ret;
  	}