Я использую RPLidar A1: https://www.adafruit.com/product/4010
Моя цель - собрать наборы данных и построить их для получения визуального представления данных в реальном времени.
Мой текущий код:
import numpy as np
import matplotlib.pyplot as plt
from rplidar import RPLidar
def get_data():
lidar = RPLidar('COM6', baudrate=115200)
for scan in lidar.iter_scans(max_buf_meas=500):
break
lidar.stop()
return scan
for i in range(1000000):
if(i%7==0):
x = []
y = []
print(i)
current_data=get_data()
for point in current_data:
if point[0]==15:
x.append(point[2]*np.sin(point[1]))
y.append(point[2]*np.cos(point[1]))
plt.clf()
plt.scatter(x, y)
plt.pause(.1)
plt.show()
Приведенный выше код создает обновляющий график с изменяющимися данными, как показано ниже:
Проблема в том, что это не точное представление. Есть встроенное приложение от SLAMTE C, называемое frame_grabber, которое четко показывает это устройство, дающее точное angular образное представление моей комнаты. Вместо этого я продолжаю получать круглую форму от малого до большого.
Необработанные данные с датчика поступают в виде массива, содержащего примерно 100 наборов следующих данных: (качество, тета, r ) . Мой код проверяет, хорошее ли качество (максимум 15), а затем переходит к построению графиков наборов данных и очищает массив данных каждые семь экземпляров, чтобы избавиться от старых данных.
Я проверил необработанную полярность данные в Excel, и данные также создают форму циркуляра sh.