当前位置: 首页 > news >正文

LIO-EKF: 运行数据UrbanNav与mid360设备详细教程

一、代码连接

代码下载连接:

YibinWu/LIO-EKF: Maybe the simplest LiDAR-inertial odometry that one can have. (github.com)

编译步骤:

  • cd src
  • git clone git@github.com:YibinWu/LIO-EKF.git
  • catkin_make
  • source devel/setup.bash

运行步骤:

Replace the path to the rosbag (bagfile) in the launch files with your own path.

  • roslaunch lio_ekf urbanNav20210517.launch 
  • roslaunch lio_ekf street_01.launch
  • roslaunch lio_ekf short_exp.launch 

运行结果如下:

三、问题及其解决方案

问题1:成功编译,运行roslaunch lio_ekf urbanNav20210517.launch ,rviz没有轨迹出来,检查topic都没有问题。

解决:把topic在代码中修改即可,修改代码地方如下图:

config文件中的 lid_topic 修改成 lidar_topic

四、跑通mid360设备采集的数据

4.1 启动mid360的SDK驱动

具体连接:全网最详细的 Ubuntu 18.04 安装Livox mid-360驱动,测试 fast_lio2_ubuntu mid360 fastlio-CSDN博客

  • cd Livox-SDK2_ROS_driver
  • source devel/setup.bash
  • roslaunch livox_ros_driver2 rviz_MID360.launch   //一定运行这个launch

4.2 修改LIO-EKF代码

把IMU数据中的加速度乘以9.8,因为mid360采集IMU数据时,加速度的单位是g,角速度的单位是rad/s.

4.3 增加并修改mid360.yaml的配置文件

内容如下:

common:lidar_topic:  "/livox/lidar" imu_topic:  "/livox/imu" lidar:deskew: truepreprocess: truemax_range: 100.0 min_range: 5.0max_points_per_voxel: 20voxel_size: 1max_iteration: 1# imu:
#     # IMU noise parameters
#     arw: [1087, 1087, 1087]                       # [deg/sqrt(hr)]    1087, 1087, 1087
#     vrw: [18.9, 18.9, 18.9]                           # [m/s/sqrt(hr)]    18.9, 18.9, 18.9
#     gbstd: [2063.0, 2063.0, 2063.0]        # [deg/hr]                2063.0, 2063.0, 2063.0
#     abstd: [1000.0, 1000.0, 1000.0]        # [mGal]                   1000.0, 1000.0, 1000.0
#     corrtime: 1.0                    # [hr]
imu:# IMU noise parametersarw: [2, 2, 2]           # [deg/sqrt(hr)]vrw: [4, 4, 4]          # [m/s/sqrt(hr)]gbstd: [20.0, 20.0, 20.0]        # [deg/hr]abstd: [500.0, 500.0, 500.0]     # [mGal]corrtime: 1.0                    # [hr]lio:# initial position std, north, east and down in n-frame. [m, m, m]initposstd: [ 0.05, 0.05, 0.05 ]# initial velocity std, north, east and down speed in n-frame. [m/s, m/s, m/s]initvelstd: [ 0.05, 0.05, 0.05 ]# initial attitude std, roll, pitch and yaw std. [deg, deg, deg]initattstd: [ 0.1, 0.1, 0.1 ]extrinsic_T: [-0.011, -0.02329, 0.04412]extrinsic_R: [ 1, 0, 0, 0, 1, 0, 0, 0, 1]#transform the imu frame to front-right-down (which is used in the code)#换成自己的设备,这个参数需要改一下。mid360: 前左上,对应的imu_tran_R如下:imu_tran_R: [1,0,0,0,-1,0,0,0,-1]

4.4  增加并修改Mid_360.launch的配置文件

内容如下:

<?xml version="1.0"?>
<launch><rosparam command="load" file="$(find lio_ekf)/config/mid360_lioekf.yaml" /><!-- ROS paramaters --><arg name="visualize" default="true"/><arg name="odom_frame" default="odom"/><param name="outputdir" type="string" value="$(find lio_ekf)/output/" /><!-- Odometry node --><node pkg="lio_ekf" type="lio_ekf_node" name="lio_ekf_node" output="screen"/><!-- Visualizer --><group if="$(arg visualize)"><node pkg="rviz" type="rviz" name="rviz" args="-d $(find lio_ekf)/rviz/lio_ekf.rviz"/></group></launch>

4.5 运行代码 

  • cd ~/VIns_Code/Lidar_IMU/LIO_EKF
  • catkin_make
  • source devel/setup.bash
  • roslaunch lio_ekf Mid_360.launch

结果如下:

注意:配置文件中的IMU参数有待进一步优化

相关文章:

  • 黑马一站制造数仓实战2
  • C#使用GDI对一个矩形进行任意角度旋转
  • exe语言编程:深入探索与挑战未知
  • 香橙派OrangePI AiPro测评 【运行qt,编解码,xfreeRDP】
  • 49、Floyd求最短路
  • 4K高刷显示器 - 蚂蚁电竞ANT27VU
  • Swift 并发
  • 机器学习模型以及优缺点——logistic
  • java基础-chapter18(网络编程)
  • TreeMap和TreeSet的排序机制
  • 第十四章 创建Web客户端 - XML 命名空间的 SOAP 向导选项
  • 【第2章】SpringBoot实战篇之接口参数校验和全局异常处理
  • linux上VirtualBox使用
  • 原码一位乘法(计算机组成原理)
  • “华为杯”第十三届中国研究生 数学建模竞赛-D题:军事行动避空侦察的时机和路径选择(续)(附MATLAB代码实现)
  • Apache Zeppelin在Apache Trafodion上的可视化
  • ES6 ...操作符
  • nginx 负载服务器优化
  • SpiderData 2019年2月16日 DApp数据排行榜
  • SpringBoot 实战 (三) | 配置文件详解
  • vue 个人积累(使用工具,组件)
  • webpack项目中使用grunt监听文件变动自动打包编译
  • Xmanager 远程桌面 CentOS 7
  • 二维平面内的碰撞检测【一】
  • 工作中总结前端开发流程--vue项目
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 理解在java “”i=i++;”所发生的事情
  • 如何合理的规划jvm性能调优
  • 如何进阶一名有竞争力的程序员?
  • 如何学习JavaEE,项目又该如何做?
  • 微信公众号开发小记——5.python微信红包
  • 我的zsh配置, 2019最新方案
  • - 转 Ext2.0 form使用实例
  • 做一名精致的JavaScripter 01:JavaScript简介
  • ​Redis 实现计数器和限速器的
  • ​ubuntu下安装kvm虚拟机
  • ​渐进式Web应用PWA的未来
  • ###C语言程序设计-----C语言学习(3)#
  • #{}和${}的区别是什么 -- java面试
  • #Linux(Source Insight安装及工程建立)
  • (2)空速传感器
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (C#)一个最简单的链表类
  • (k8s)Kubernetes本地存储接入
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (纯JS)图片裁剪
  • (二)Kafka离线安装 - Zookeeper下载及安装
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (一)WLAN定义和基本架构转
  • (译)2019年前端性能优化清单 — 下篇
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)用.Net的File控件上传文件的解决方案