mirror of
https://github.com/apirrone/Open_Duck_Mini_Runtime.git
synced 2025-09-03 03:33:54 +00:00
upside down imu option
This commit is contained in:
parent
ad359847dd
commit
4682eaf581
2 changed files with 20 additions and 17 deletions
|
@ -15,7 +15,9 @@ from scipy.spatial.transform import Rotation as R
|
||||||
|
|
||||||
# TODO filter spikes
|
# TODO filter spikes
|
||||||
class Imu:
|
class Imu:
|
||||||
def __init__(self, sampling_freq, user_pitch_bias=0, calibrate=False):
|
def __init__(
|
||||||
|
self, sampling_freq, user_pitch_bias=0, calibrate=False, upside_down=True
|
||||||
|
):
|
||||||
self.sampling_freq = sampling_freq
|
self.sampling_freq = sampling_freq
|
||||||
self.user_pitch_bias = user_pitch_bias
|
self.user_pitch_bias = user_pitch_bias
|
||||||
self.nominal_pitch_bias = 25
|
self.nominal_pitch_bias = 25
|
||||||
|
@ -33,13 +35,14 @@ class Imu:
|
||||||
# self.imu.mode = adafruit_bno055.NDOF_MODE
|
# self.imu.mode = adafruit_bno055.NDOF_MODE
|
||||||
# self.imu.mode = adafruit_bno055.NDOF_FMC_OFF_MODE
|
# self.imu.mode = adafruit_bno055.NDOF_FMC_OFF_MODE
|
||||||
|
|
||||||
self.imu.axis_remap = (
|
if upside_down:
|
||||||
|
self.imu.axis_remap = (
|
||||||
adafruit_bno055.AXIS_REMAP_Y,
|
adafruit_bno055.AXIS_REMAP_Y,
|
||||||
adafruit_bno055.AXIS_REMAP_X,
|
adafruit_bno055.AXIS_REMAP_X,
|
||||||
adafruit_bno055.AXIS_REMAP_Z,
|
adafruit_bno055.AXIS_REMAP_Z,
|
||||||
adafruit_bno055.AXIS_REMAP_NEGATIVE,
|
adafruit_bno055.AXIS_REMAP_NEGATIVE,
|
||||||
adafruit_bno055.AXIS_REMAP_NEGATIVE,
|
adafruit_bno055.AXIS_REMAP_NEGATIVE,
|
||||||
adafruit_bno055.AXIS_REMAP_NEGATIVE
|
adafruit_bno055.AXIS_REMAP_NEGATIVE,
|
||||||
)
|
)
|
||||||
|
|
||||||
self.pitch_bias = self.nominal_pitch_bias + self.user_pitch_bias
|
self.pitch_bias = self.nominal_pitch_bias + self.user_pitch_bias
|
||||||
|
@ -79,7 +82,6 @@ class Imu:
|
||||||
print("imu_calib_data.pkl not found")
|
print("imu_calib_data.pkl not found")
|
||||||
print("Imu is running uncalibrated")
|
print("Imu is running uncalibrated")
|
||||||
|
|
||||||
|
|
||||||
self.last_imu_data = [0, 0, 0, 0]
|
self.last_imu_data = [0, 0, 0, 0]
|
||||||
self.imu_queue = Queue(maxsize=1)
|
self.imu_queue = Queue(maxsize=1)
|
||||||
Thread(target=self.imu_worker, daemon=True).start()
|
Thread(target=self.imu_worker, daemon=True).start()
|
||||||
|
@ -134,10 +136,9 @@ class Imu:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# imu = Imu(50, calibrate=True)
|
imu = Imu(50, calibrate=True, upside_down=False)
|
||||||
imu = Imu(50)
|
# imu = Imu(50, upside_down=False)
|
||||||
while True:
|
while True:
|
||||||
data = imu.get_data()
|
data = imu.get_data()
|
||||||
# print(data)
|
# print(data)
|
||||||
|
|
|
@ -12,7 +12,7 @@ import time
|
||||||
|
|
||||||
# TODO filter spikes
|
# TODO filter spikes
|
||||||
class Imu:
|
class Imu:
|
||||||
def __init__(self, sampling_freq, user_pitch_bias=0, calibrate=False):
|
def __init__(self, sampling_freq, user_pitch_bias=0, calibrate=False, upside_down=True):
|
||||||
self.sampling_freq = sampling_freq
|
self.sampling_freq = sampling_freq
|
||||||
self.calibrate = calibrate
|
self.calibrate = calibrate
|
||||||
|
|
||||||
|
@ -25,14 +25,16 @@ class Imu:
|
||||||
# self.imu.mode = adafruit_bno055.NDOF_MODE
|
# self.imu.mode = adafruit_bno055.NDOF_MODE
|
||||||
# self.imu.mode = adafruit_bno055.NDOF_FMC_OFF_MODE
|
# self.imu.mode = adafruit_bno055.NDOF_FMC_OFF_MODE
|
||||||
|
|
||||||
self.imu.axis_remap = (
|
|
||||||
adafruit_bno055.AXIS_REMAP_Y,
|
if upside_down:
|
||||||
adafruit_bno055.AXIS_REMAP_X,
|
self.imu.axis_remap = (
|
||||||
adafruit_bno055.AXIS_REMAP_Z,
|
adafruit_bno055.AXIS_REMAP_Y,
|
||||||
adafruit_bno055.AXIS_REMAP_NEGATIVE,
|
adafruit_bno055.AXIS_REMAP_X,
|
||||||
adafruit_bno055.AXIS_REMAP_NEGATIVE,
|
adafruit_bno055.AXIS_REMAP_Z,
|
||||||
adafruit_bno055.AXIS_REMAP_NEGATIVE
|
adafruit_bno055.AXIS_REMAP_NEGATIVE,
|
||||||
)
|
adafruit_bno055.AXIS_REMAP_NEGATIVE,
|
||||||
|
adafruit_bno055.AXIS_REMAP_NEGATIVE
|
||||||
|
)
|
||||||
|
|
||||||
if self.calibrate:
|
if self.calibrate:
|
||||||
self.imu.mode = adafruit_bno055.NDOF_MODE
|
self.imu.mode = adafruit_bno055.NDOF_MODE
|
||||||
|
@ -140,7 +142,7 @@ class Imu:
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
imu = Imu(50)
|
imu = Imu(50, upside_down=False)
|
||||||
while True:
|
while True:
|
||||||
data = imu.get_data()
|
data = imu.get_data()
|
||||||
# print(data)
|
# print(data)
|
||||||
|
|
Loading…
Reference in a new issue