public SensorData createSensorData() {

    SensorData data = new SensorData();

    synchronized (gyroMonitor) {
      data.rotX = rotX;
      data.rotY = rotY;
      data.rotZ = rotZ;
    }

    synchronized (oriMonitor) {
      data.azimuth = azimuth;
      data.pitch = pitch;
      data.roll = roll;
    }

    synchronized (accMonitor) {
      data.accX = accX;
      data.accY = accY;
      data.accZ = accZ;
    }

    data.rotX = data.rotX * 180 / Math.PI;
    data.rotY = data.rotY * 180 / Math.PI;
    data.rotZ = data.rotZ * 180 / Math.PI;

    data.azimuth = data.azimuth * 180 / Math.PI;
    data.pitch = data.pitch * 180 / Math.PI;
    data.roll = data.roll * 180 / Math.PI;

    data.roundData();

    String timeStamp = new SimpleDateFormat("yyyyMMdd_HH:mm:ss.SSS").format(new Date());
    data.timeStamp = timeStamp;
    data.time = System.currentTimeMillis();
    // Log.d("test", "sensoring:"+data.getSerialization());
    return data;
  }