<p>对于该设备,python库似乎正在老化</p>
<p>尝试最大化您的电机速度,并使用快速(即压缩)模式。快速模式允许通过相同的115200波特率连接进行更多测量,扫描速率与电机速度直接相关(自动)</p>
<ul>
<li>要将电机速度设置为最大,请尝试在顶部添加<code>import rplidar</code>,在<code>lidar.iter_scans()</code>之前添加<code>lidar.motor_speed = rplidar.MAX_MOTOR_PWM</code></li>
<li>要使用快速/压缩模式,请像<code>iter_scans(scan_type='express')</code>一样调用<code>iter_scans</code></李>
<li>您还可以尝试添加<code>min_len=100</code>以减少iter_扫描产生更多数据的频率,并<code>max_buf_meas=False</code>以避免删除数据和接收屏幕截图中显示的“输入缓冲区中的字节太多”消息</李>
</ul>
<p>(我还建议尝试在循环中不使用print语句,除非您确实希望实时监视它。)</p>
<p><strong>完整代码:</strong></p>
<pre><code>#!/usr/bin/env python3
'''Measures sensor scanning speed'''
import rplidar
import time
PORT_NAME = '/dev/ttyUSB0'
def run():
'''Main function'''
lidar = rplidar.RPLidar(PORT_NAME)
old_t = None
data = []
try:
print('Press Ctrl+C to stop')
lidar.motor_speed = rplidar.MAX_MOTOR_PWM
for _ in lidar.iter_scans(scan_type='express',min_len=100,max_buf_meas=False):
now = time.time()
if old_t is None:
old_t = now
continue
delta = now - old_t
print('%.2f Hz, %.2f RPM' % (1/delta, 60/delta))
data.append(delta)
old_t = now
except KeyboardInterrupt:
print('Stoping. Computing mean...')
lidar.stop()
lidar.disconnect()
delta = sum(data)/len(data)
print('Mean: %.2f Hz, %.2f RPM' % (1/delta, 60/delta))
if __name__ == '__main__':
run()
</code></pre>