本文主要介绍,利用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

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





