XV-11 激光雷达用 Raspberry pi 3B+ 读取数据
XV-11 Lidar read data with Raspberry pi 3B+
我有一个来自旧真空吸尘器的 XV-11 激光雷达传感器,我想将它用于机器人项目。
在我的研究过程中,我看到了一种使用 Matplotlib 并使用散点显示所有距离的非常有趣且简单的方法。例如 (https://udayankumar.com/2018/08/01/working-with-lidar/) 但是当我 运行 这个 python 代码到 RP3 确实一个 Matplotlib window 正在弹出所有距离但是数据的刷新率太慢而且无法实时查看。我的意思是 matplotlib 显示在所有传感器读数上都落后几十秒。
我的下一个想法是自己用以下显示行做一些事情,但我得到了相同的结果:读数不错,但延迟了很多。
points =[]
plt.ion()
x = dist_mm*np.cos(angle_rad)
y = dist_mm*np.sin(angle_rad)
points.append([x,y])
points = np.array(points)
plt.scatter(points[:,0], points[:,1])
if angle == 356:
plt.plot()
plt.draw()
plt.pause(0.0001)
plt.clf()
print ("-----------")
在这种情况下我做错了什么或者我可以改进什么?我的期望是这样的
Lidar animation, source: https://github.com/Hyun-je/pyrplidar 但在这个例子中它使用了不同的激光雷达传感器
您每次都在清除并重新创建轴、背景等。至少你可以将此 drawing/re-drawing 限制为仅相关的情节点以获得一定程度的改进。
如果您对此不熟悉,我将从动画指南开始- https://matplotlib.org/stable/api/animation_api.html 介绍了一些基础知识,例如只更新部分图形。
如果您仍然需要更新太多数据,那么限制您读取数据的频率,或者更具体地说,限制重绘的速度也可能会提高稳定性。
可能值得寻找更多关于实时绘图的一般指导,例如
我有一个来自旧真空吸尘器的 XV-11 激光雷达传感器,我想将它用于机器人项目。 在我的研究过程中,我看到了一种使用 Matplotlib 并使用散点显示所有距离的非常有趣且简单的方法。例如 (https://udayankumar.com/2018/08/01/working-with-lidar/) 但是当我 运行 这个 python 代码到 RP3 确实一个 Matplotlib window 正在弹出所有距离但是数据的刷新率太慢而且无法实时查看。我的意思是 matplotlib 显示在所有传感器读数上都落后几十秒。 我的下一个想法是自己用以下显示行做一些事情,但我得到了相同的结果:读数不错,但延迟了很多。
points =[]
plt.ion()
x = dist_mm*np.cos(angle_rad)
y = dist_mm*np.sin(angle_rad)
points.append([x,y])
points = np.array(points)
plt.scatter(points[:,0], points[:,1])
if angle == 356:
plt.plot()
plt.draw()
plt.pause(0.0001)
plt.clf()
print ("-----------")
在这种情况下我做错了什么或者我可以改进什么?我的期望是这样的 Lidar animation, source: https://github.com/Hyun-je/pyrplidar 但在这个例子中它使用了不同的激光雷达传感器
您每次都在清除并重新创建轴、背景等。至少你可以将此 drawing/re-drawing 限制为仅相关的情节点以获得一定程度的改进。
如果您对此不熟悉,我将从动画指南开始- https://matplotlib.org/stable/api/animation_api.html 介绍了一些基础知识,例如只更新部分图形。
如果您仍然需要更新太多数据,那么限制您读取数据的频率,或者更具体地说,限制重绘的速度也可能会提高稳定性。
可能值得寻找更多关于实时绘图的一般指导,例如