示例#1
0
    def __init__(self, ReadFromArduino_instance, dt, offset_GYRO, verbose=0):

        self.dt = dt
        self.verbose = verbose
        self.ReadFromArduino_instance = ReadFromArduino_instance
        self.list_measurements = []
        self.offset_GYRO = offset_GYRO

        # initial state: assume resting, Z downwards, still --------------------
        # no rotation to Earth referential
        self.o = qt.normalise_quaternion(
            qt.Quaternion(1, 0.0001, 0.0001, 0.0001))

        # reference vectors; can be used to print assumed orientation ----------
        self.X_IMU_ref_IMU = qt.Vector(1, 0, 0)
        self.Y_IMU_ref_IMU = qt.Vector(0, 1, 0)
        self.Z_IMU_ref_IMU = qt.Vector(0, 0, 1)

        self.read_and_update_measurement()

        self.cycle = 0
示例#2
0
    def read_and_update_measurement(self):
        """Read and update measurement from Arduino."""

        self.ReadFromArduino_instance.read_one_value()
        self.latest_measurement = self.ReadFromArduino_instance.latest_values
        self.wm = qt.Vector(self.latest_measurement[3] - self.offset_GYRO[0],
                            self.latest_measurement[4] - self.offset_GYRO[1],
                            self.latest_measurement[5] - self.offset_GYRO[2])

        if self.verbose > 2:
            print("Obtained measurements in SI:")
            print(self.latest_measurement)

        self.list_measurements.append(self.latest_measurement)
示例#3
0
 def __init__(self, x=0, y=0, z=0):
     self.x, self.y, self.z = float(x), float(y), float(z)
     self.v = qt.Vector(self.x, self.y, self.z)