首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python绘制Lidar数据引起循环图

用Python绘制Lidar数据引起循环图
EN

Stack Overflow用户
提问于 2020-02-11 01:36:04
回答 1查看 3.2K关注 0票数 1

我使用的是RPLidar A1:https://www.adafruit.com/product/4010

我的目标是收集数据集并绘制它们,以便获得数据的实时可视化表示。

我目前的代码是:

代码语言:javascript
复制
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()

上面的代码生成了一个刷新图,其中包含了变化的数据,如下所示:

问题是,这不是一个准确的表述。SLAMTEC有一个名为frame_grabber的本地应用程序,它清楚地显示了这个设备,给出了精确的矩形表示我的房间。相反,我总是得到一个从小到大的圆形。

来自传感器的原始数据以数组的形式出现,该数组包含大约100组以下数据:(quality,theta,r)。我的代码检查质量是否良好(15是最大的),然后继续绘制数据集,每七个实例清除数据数组,以消除旧数据。

我检查了excel中的原始极性数据,这些数据似乎还创建了一个圆形的形状。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-12 21:19:24

经过几天的试验,我发现了这个错误。

希望这能防止某人在将来犯同样的错误。

lidars通常以"theta“和"r”的形式提供数据。另一方面,numpy以及Python中内置的数学库接受用于执行cos和sin操作的弧度参数。

我已经把单位从度转换成弧度,现在一切都很完美。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60160799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档