Airsim+Lego-Loam

该文详细介绍了如何在AirSim仿真环境中利用Lego-Loam进行三维地图构建,并通过rosbag记录数据。首先,配置了AirSim的settings.json文件和环境变量,然后设置了rosbag录制激光雷达数据。接着,通过Python脚本将点云数据转换为Lego-Loam所需的格式。在Lego-Loam中修改launch文件,实现轨迹绘制。最后,播放rosbag并观察结果。整个过程包括无人机控制、点云转换、数据录制和Lego-Loam的使用。

本文主要介绍,利用Airsim中自己的场景跑通Lego-Loam;并且画出Lego-Loam的里程计轨迹,与真值轨迹(目前只能完成基本的建图功能,画轨迹部分待完善,坐标系搞得有些蒙)

1、设置setting文件

{
  "SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/master/docs/settings.md",
  "SettingsVersion": 1.2,
  "SimMode": "Multirotor",
  "ViewMode": "SpringArmChase",
  "ClockSpeed": 0.1,
  "Vehicles": {
    "drone_1": {
      "VehicleType": "SimpleFlight",
      "DefaultVehicleState": "Armed",
      "EnableCollisionPassthrogh": false,
      "EnableCollisions": true,
      "AllowAPIAlways": true,
      "Sensors": {
        "Imu" : {
          "SensorType": 2,
          "Enabled": true,
          "AngularRandomWalk": 0.3,
          "GyroBiasStabilityTau": 500,
          "GyroBiasStability": 4.6,
          "VelocityRandomWalk": 0.24,
          "AccelBiasStabilityTau": 800,
          "AccelBiasStability": 36
        },        
        "LidarCustom": {
          "SensorType": 6,
          "Range": 50,
          "Enabled": true,
          "NumberOfChannels": 16,
          "PointsPerSecond": 288000,
          "RotationsPerSecond": 10,
          "VerticalFOVUpper": 15,
          "VerticalFOVLower": -15,
          "HorizontalFOVStart": -180,
          "HorizontalFOVEnd": 180,
          "X": 2, "Y": 0, "Z": -1,
          "DrawDebugPoints": true,
          "Pitch":0, "Roll": 0, "Yaw": 0,
          "DataFrame": "SensorLocalFrame"
        }
      }
    }
  }
}

2、配置环境变量

在bashrc文件中添加(换成自己的)

添加Airsim的ros功能包的环境变量这样就不用每次运行都souce一次

source ~/work/UE4.25-master/AirSim/ros/devel/setup.bash

3、利用Airsim录制rosbag

因为Airsim非常的消耗资源,同时开Airsim和Lego-Loam会比较卡,所以可以先录制好rosbag再跑Lego-Loam

打开UE4项目

进入到UE4-master文件夹

./Engine/Binaries/Linux/UE4Editor

选择打开项目

 之后点击运行出现无人机

如果不想看到这些雷达的绿线可以在setting文件将 "DrawDebugPoints": 设为false

 运行airsim的ros节点

必须运行airsim的ros节点才能将airsim仿真器与ros联通。从而使用ros的一些命令

注意:当前应在airsim的ros工作空间下

roslaunch airsim_ros_pkgs airsim_node.launch

此时可以查看airsim仿真器的节点

首先查看话题用如下命令

rostopic list

以上是airsim仿真器发布的话题

将点云转换成Lego-Loam需要的类型

Airsim的雷达发布的点云类型XYZIRT,但是airsim雷达发布的激光雷达话题为XYZ所以需要编写成学将其转换为XYZITRT

参考:

Airsim通过ros发布激光雷达数据+Lego-loam仿真测试(1)_鲮鲤猫的博客-优快云博客_airsim ros

#!/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 Poin
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值