forked from AliceGuntli/crazy-practical-2022
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplatform_detection.py
More file actions
69 lines (52 loc) · 1.83 KB
/
platform_detection.py
File metadata and controls
69 lines (52 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import logging
import time
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.positioning.motion_commander import MotionCommander
uri = "radio://0/80/2M/E7E7E7E701"
logging.basicConfig(level=logging.ERROR)
DEFAULT_HEIGHT = 0.5
measured_x = 0
measured_y = 0
measured_z = 0 # Altitude mesurée
isObstacle = False # présence d'un obstacle
z2go = 0
threshold = 0.05
def log_pos_callback(timestamp, data, logconf):
measured_x = data['stateEstimate.x']
measured_y = data['stateEstimate.y']
measured_z = data['stateEstimate.z']
z2go = DEFAULT_HEIGHT - measured_z
if(abs(z2go) > threshold):
isObstacle = True
else:
isObstacle = False
print(isObstacle)
def const_alt(scf):
with MotionCommander(scf, default_height=DEFAULT_HEIGHT) as mc:
while(1):
mc.default_height = z2go
if(measured_x != 0):
mc.forward(-measured_x)
if(measured_y != 0):
mc.left(-measured_y)
#time.sleep(0.01)
if __name__ == '__main__':
# Initialize the low-level drivers
cflib.crtp.init_drivers()
lg_alt = LogConfig(name='Altitude', period_in_ms=10)
lg_alt.add_variable('stateEstimate.x', 'float')
lg_alt.add_variable('stateEstimate.y', 'float')
lg_alt.add_variable('stateEstimate.z', 'float')
with SyncCrazyflie(uri, cf=Crazyflie(rw_cache='./cache')) as scf:
# add callback to the altitude listener
scf.cf.log.add_config(lg_alt)
lg_alt.data_received_cb.add_callback(log_pos_callback)
time.sleep(1)
lg_alt.start()
#time.sleep(5)
const_alt(scf)
lg_alt.stop()