Example #1
0
 def run(self):
     myok = self.ok
     while myok:
         if self.tick_chrono is None:
             self.tick_chrono = chrono.Chrono()
             self.dt = None
         else:
             self.dt = self.tick_chrono.measure()
         self.mutex.acquire()
         self.alive = True
         self.update_imu()
         self.calib_tick()
         if self.dt is not None: self.update_orientation()
         self.mutex.release()
         time.sleep(0.001)
         self.mutex.acquire()
         myok = self.ok
         self.count += 1
         if self.count % 100 == 0:
             delta_t = self.chrono.measure()
             period = delta_t / 100
             self.frequency = 1.0 / period
         self.mutex.release()
     self.mutex.acquire()
     self.alive = False
     self.mutex.release()
Example #2
0
    def __init__(self, robot):
        threading.Thread.__init__(self)
        self.mutex = threading.Lock()
        self.robot = robot
        self.alive = False

        self.accelero = np.array([0, 0, 0],
                                 dtype=np.float32)  # acceleration in g
        self.gyro = np.array([0, 0, 0], dtype=np.float32)  # gyro in deg/sec
        self.gyro_zero = None
        self.magneto = np.array([0, 0, 0], dtype=np.float32)
        self.orientation = 0.0
        self.imu_cycle = None

        self.count = 0
        self.frequency = None  # frequency in Hz
        self.chrono = chrono.Chrono()
        self.tick_chrono = None
        self.dt = None
        self.ok = True

        self.calibration = False
        self.calib_chrono = None
        self.calib_idx = 0
        self.calib_duration = None
Example #3
0
 def load_chrono(self):
     chrono_directory_list = [
         os.path.relpath(x, self.directory)
         for x in glob.glob(os.path.join(self.directory, "Chrono", "*", ""))
     ]
     for chrono_directory in chrono_directory_list:
         self._chronos.append(chrono.Chrono(chrono_directory))
         self._chronos[-1].load(self.directory, self._global_config._map)
Example #4
0
 def calib(self, duration=3):
     if self.calibration: return
     self.mutex.acquire()
     self.calibration = True
     self.calib_idx = 0
     self.calib_chrono = chrono.Chrono()
     self.calib_duration = duration
     self.gyro_zero = np.array([0.0, 0.0, 0.0], dtype=np.float32)
     self.mutex.release()
Example #5
0
 def return_to_chrono(self):
     self.new_window = chrono.Chrono()
     self.new_window.show()
     self.setVisible(False)
     self.close()
Example #6
0
 def start_chrono(self):
     self.new_window = chrono.Chrono()
     self.close()