python激光扫描雷达_rospy中的实时2D激光扫描仪数据

本文介绍了一个使用rospy处理激光扫描雷达数据的问题。作者试图在Python中实现类似Rviz的实时显示,但遇到问题:回调函数只接收初始化时的数据。通过在回调函数中添加打印语句,发现数据确实有轻微变化,但速度远低于预期。作者发现cv2显示部分降低了处理速度,导致15Hz的测量速率。现在寻求替代cv2的方法以提高刷新率。
摘要由CSDN通过智能技术生成

我刚得到一个生病的tim571激光扫描仪。因为我是ROS的新手,所以我想在一个简单的rospy实现中测试一些东西。在

我认为下面的代码将向我展示激光测量的实时输出,就像在Rviz中一样(Rviz对我来说很好)但是在Python中,并且可以在我自己的代码中使用测量值。不幸的是,输出框架反复显示一个静态度量(从Python代码第一次启动时开始)。在

如果我并行于这个Python代码运行Rviz,就会得到测量区域的动态更新表示。在

我认为每次调用.callback(data)函数时都会使用一组新的激光扫描仪数据。但它似乎并不像我想象的那样有效。因此错误可能位于调用回调函数的.laser_listener()。在

TL;DR

如何在rospy中使用动态更新(实时)激光扫描仪测量?在import rospy

import cv2

import numpy as np

import math

from sensor_msgs.msg import LaserScan

def callback(data):

frame = np.zeros((500, 500,3), np.uint8)

angle = data.angle_min

for r in data.ranges:

#change infinite values to 0

if math.isinf(r) == True:

r = 0

#convert angle and radius to cartesian coordinates

x = math.trunc((r * 30.0)*math.cos(angle + (-90.0*3.1416/180.0)))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值