-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmin_lidar.py
More file actions
62 lines (39 loc) · 1.32 KB
/
min_lidar.py
File metadata and controls
62 lines (39 loc) · 1.32 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
# you must run export PYTHONPATH=/home/intech/CoVAPSy/src/high_level before running this script
import signal
import time
import numpy as np
from src.drivers.lidar import Lidar
IP = "192.168.0.10"
PORT = 10940
START = 0
END = 1080
running = True
def signal_handler(sig, frame):
global running
print("\nArrêt demandé (Ctrl+C).")
running = False
def main():
global running
signal.signal(signal.SIGINT, signal_handler)
print("Initialisation du lidar...")
lidar = Lidar(IP, PORT, start_step=START)
print("Démarrage scan continu...")
lidar.start_continuous(START, END)
while np.all(lidar.r_distance == 0):
time.sleep(0.01)
print("Scan reçu. Début enregistrement min...")
print("Appuie sur Ctrl+C pour arrêter proprement.")
min_distance = np.full(lidar.r_distance.shape, np.inf, dtype=float)
while running:
current = lidar.r_distance.astype(float)
valid = current > 0
min_distance[valid] = np.minimum(min_distance[valid], current[valid])
time.sleep(0.01)
print("Arrêt du lidar...")
lidar.stop()
result = min_distance
np.save("src/programs/data/min_lidar.npy", result)
print("Sauvegardé dans ../src/high_level/programs/data/min_lidar.npy")
print("Shape:", result.shape)
if __name__ == "__main__":
main()