Airsim通过ros发布激光雷达数据+Lego-loam仿真测试(2)

本文主要介绍了如何在Airsim环境中通过ROS发布激光雷达数据,并将其与Lego-loam Slam系统进行有效对接。针对上篇博客中出现的问题,文章详细阐述了Lego-loam的话题订阅设置,Airsim雷达参数调整的关键步骤,以及实验中取得的初步成果。通过调整,slam效果得到显著提升,减少了漂移现象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上篇博客只是简单跑通了流程,存在的问题将在这篇进行修正。

一、Lego-loam里话题订阅

雷达点云话题为:/velodyne_points,frame_id为velodyne

IMU话题为:/Imu/data,可选

我只用了雷达点云信息,slam效果不错。在airsim里发布激光雷达点云的代码如下:

#!/usr/bin/env python3
#-*- coding:utf-8 -*-

import math
import rospy
import setup_path 
import airsim

import sys
import time
import argparse
import pprint

import numpy  as np

from geometry_msgs.msg import Point32
from sensor_msgs.msg import LaserScan,PointCloud2
from sensor_msgs.msg import PointField
from std_msgs.msg import Header
from sensor_msgs import point_cloud2


def pub_pointcloud(points):
	pc = PointCloud2()
	pc.header.stamp = rospy.Time.now()
	pc.header.frame_id = 'velodyne'
	pc.height = 1
	pc.width = len(points)

	# pc.fields = [
	# 		PointField('x', 0, PointField.FLOAT32, 1),
	# 		PointField('y', 4, PointField.FLOAT32, 1),
	# 		PointField('z', 8, PointField.FLOAT32, 1),
	# 		PointField('intensity', 16, PointField.FLOAT32, 1),
	# 		PointField('ring', 20, PointField.UINT16, 1)]

	# pc.fields = [
	# 		PointField('x', 0, PointField.FLOAT32, 1),
	# 		PointField('y', 4, PointField.FLOAT32, 1),
	# 		PointField('z', 8, PointField.FLOAT32,
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值