Skip to content

Commit

Permalink
Converted reset estimator in positioning examples
Browse files Browse the repository at this point in the history
  • Loading branch information
ArisMorgens committed Feb 11, 2025
1 parent c80a458 commit c480b0e
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 56 deletions.
7 changes: 3 additions & 4 deletions examples/positioning/flowsequenceSync.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
from cflib.crazyflie import Crazyflie
from cflib.crazyflie.syncCrazyflie import SyncCrazyflie
from cflib.utils import uri_helper
from cflib.utils.ResetEstimator import reset_estimator

URI = uri_helper.uri_from_env(default='radio://0/80/2M/E7E7E7E7E7')

Expand All @@ -49,10 +50,8 @@
with SyncCrazyflie(URI, cf=Crazyflie(rw_cache='./cache')) as scf:
cf = scf.cf

cf.param.set_value('kalman.resetEstimation', '1')
time.sleep(0.1)
cf.param.set_value('kalman.resetEstimation', '0')
time.sleep(2)
reset_estimator(scf)
time.sleep(1)

# Arm the Crazyflie
cf.platform.send_arming_request(True)
Expand Down
53 changes: 1 addition & 52 deletions examples/positioning/initial_position.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,9 @@

import cflib.crtp
from cflib.crazyflie import Crazyflie
from cflib.crazyflie.log import LogConfig
from cflib.crazyflie.syncCrazyflie import SyncCrazyflie
from cflib.crazyflie.syncLogger import SyncLogger
from cflib.utils import uri_helper
from cflib.utils.ResetEstimator import reset_estimator

# URI to the Crazyflie to connect to
uri = uri_helper.uri_from_env(default='radio://0/80/2M/E7E7E7E7E7')
Expand All @@ -56,47 +55,6 @@
]


def wait_for_position_estimator(scf):
print('Waiting for estimator to find position...')

log_config = LogConfig(name='Kalman Variance', period_in_ms=500)
log_config.add_variable('kalman.varPX', 'float')
log_config.add_variable('kalman.varPY', 'float')
log_config.add_variable('kalman.varPZ', 'float')

var_y_history = [1000] * 10
var_x_history = [1000] * 10
var_z_history = [1000] * 10

threshold = 0.001

with SyncLogger(scf, log_config) as logger:
for log_entry in logger:
data = log_entry[1]

var_x_history.append(data['kalman.varPX'])
var_x_history.pop(0)
var_y_history.append(data['kalman.varPY'])
var_y_history.pop(0)
var_z_history.append(data['kalman.varPZ'])
var_z_history.pop(0)

min_x = min(var_x_history)
max_x = max(var_x_history)
min_y = min(var_y_history)
max_y = max(var_y_history)
min_z = min(var_z_history)
max_z = max(var_z_history)

# print("{} {} {}".
# format(max_x - min_x, max_y - min_y, max_z - min_z))

if (max_x - min_x) < threshold and (
max_y - min_y) < threshold and (
max_z - min_z) < threshold:
break


def set_initial_position(scf, x, y, z, yaw_deg):
scf.cf.param.set_value('kalman.initialX', x)
scf.cf.param.set_value('kalman.initialY', y)
Expand All @@ -106,15 +64,6 @@ def set_initial_position(scf, x, y, z, yaw_deg):
scf.cf.param.set_value('kalman.initialYaw', yaw_radians)


def reset_estimator(scf):
cf = scf.cf
cf.param.set_value('kalman.resetEstimation', '1')
time.sleep(0.1)
cf.param.set_value('kalman.resetEstimation', '0')

wait_for_position_estimator(cf)


def run_sequence(scf, sequence, base_x, base_y, base_z, yaw):
cf = scf.cf

Expand Down

0 comments on commit c480b0e

Please sign in to comment.