ubuntu18.04 配置 mid360并测试fast_lio

1.在买到Mid360之后,我们可以看到mid360延伸出来了三组线。

     第一组线是电源线,包含了红色线正极,和黑色线负极。一般可以用来接9-27v的电源,推荐接12v的电源转换器,或者接14.4v的电源转换器。

     第二组线是信号线,共5根线,包含了2根pps线,秒脉冲;包含了2根GPS信号输入和GPS信号输出线,和一根地线。

    第三组线是数据线,是一个网线,直接连接笔记本就可以了

2.IP配置

2.1 先把mid360的电源线接上,通上电;把数据线也就是网线插入到笔记本的网口上。

首先点屏幕右上角的向下箭头,找到【以太网连接】,点开后找到【有线设置】,在PCI以太网选项中,点击【齿轮】按钮,点ipv4,地址:192.168.1.50   子网掩码 255.255.255.0  网管 192.168.1.254

然后就可以用  Livox VIewer2 来显示了。

3. livox mid360配置指南

cd ~
# Download Livox Viewer 2
wget https://terra-1-g.djicdn.com/65c028cd298f4669a7f0e40e50ba1131/Mid360/LivoxViewer2%20for%20Ubuntu%20v2.3.0.zip
# Unzip
unzip "LivoxViewer2 for Ubuntu v2.3.0.zip"
# Go to Livox
cd "LivoxViewer2 for Ubuntu v2.3.0"
# Grant permission
chmod +x LivoxViewer2.sh
# Run Livox Viewer 2
./LivoxViewer2.sh

这时候,就直接可以看到mid360所采集的点云了。

4. livox sdk2 的配置

    (1) 修改mid360_config.json中的IP地址

   首先进入到livox_sdk2/Samples/Livox_lidar_quick_start文件夹中,打开mid360_config.json,把host_ip设置为:192.168.1.50   和之前设置在IPV4中的网址是一样的。

(2)配置livox_sdk2

# Install cmake
sudo apt install cmake -y
# Go to Home
cd ~
# Download Livox SDK2
git clone https://github.com/Livox-SDK/Livox-SDK2.git
# Go to the SDK2 package
cd Livox-SDK2
# Create build folder
mkdir build
cd build
# Compile
cmake .. && make -j
# Install SDK2 in system
sudo make install
# Go to demo1
cd samples/livox_lidar_quick_start
# WARNING: 
# Remember to modify the mid360_config.json with your PC IP 192.168.1.50

(3)运行demo

# Run demo
./livox_lidar_quick_start ../../../samples/livox_lidar_quick_start/mid360_config.json

就可以看到mid360所发出的消息。

5. Livox Ros配置

(1)配置livox ros

# Download the Livox ROS Driver 2 Package to ws_livox_src
git clone https://github.com/Livox-SDK/livox_ros_driver2.git ws_livox/src/livox_ros_driver2
# Update ros dependencies
rosdep install --from-paths src --ignore-src -r -y
# Build the package
source /opt/ros/noetic/setup.sh
# Go to livox
cd livox_ros_driver2/
./build.sh ROS1
# Source workspace
echo "source ws_livox/devel/setup.sh" >> ~/.bashrc
source ~/.bashrc
# Warning:
# Remember to modify the mid360_config.json with your PC IP 192.168.1.50
# and your lidar IP 192.168.1.1XX (xx is the last two digits of the SN code)

(2).修改IP地址

1)首先找到mid360_config.json,在src/Livox_ros_driver2/config文件夹中,host_net_info的子项cmd_data_ip, push_msg_ip, point_data_ip,imu_data_ip这四个都改成192.168.1.50

 2)然后把lidar_configs子项 ip 改为192.168.1.1xx,其中xx为 mid360上的SN码后两位。

(3).运行

roslaunch livox_ros_driver2 rviz_MID360.launch

6. fast-lio安装指南

(1) 安装eigen3

#安装eigen3
sudo apt install libeigen3-dev
#查看版本
$ pkg-config --modversion eigen3

(2)安装pcl

#安装PCL
sudo apt install libpcl-dev
#查看版本
apt-cache show libpcl-dev
#对照如下
#Ubuntu20.04   ——>   1.10.0
#Ubuntu18.04   ——>   1.8.1
#Ubuntu16.04   ——>   1.7.2

(3)安装sophus

# 安装非模版类Sophus
git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff  #版本回溯
mkdir build && cd build && cmake .. && sudo make install

报错:

***/sophus/so2.cpp:32:26: error: lvalue required as left operand of assignment
   unit_complex_.real() = 1.;
                          ^~
***/sophus/so2.cpp:33:26: error: lvalue required as left operand of assignment
   unit_complex_.imag() = 0.;

解决:打开so2.cpp修改构造函数:

//unit_complex_.real() = 1.;
//unit_complex_.imag() = 0.;
unit_complex_.real(1.); 
unit_complex_.imag(0.);

安装结果如下:

-- Install configuration: "Release"
-- Up-to-date: /usr/local/include/sophus
-- Installing: /usr/local/include/sophus/se3.h
-- Installing: /usr/local/include/sophus/scso3.h
-- Installing: /usr/local/include/sophus/se2.h
-- Installing: /usr/local/include/sophus/so2.h
-- Installing: /usr/local/include/sophus/sim3.h
-- Installing: /usr/local/include/sophus/so3.h
-- Installing: /usr/local/lib/libSophus.so

(4)FAST_LIO编译

#首先创建一个ROS1的工作空间,在工作空间下的src中运行

cd src

git clone https://github.com/zlwang7/S-FAST_LIO.git --recursive

(5)修改FAST_LIO代码

原因:FAST_LIO默认支持livox_ros_driver但是我们用的是livox_ros_driver2

     1)修改FAST_LIO的CMakelists.txt

添加:

set(Sophus_LIBRARIES "/usr/local/lib/libSophus.so")

修改:

find_package(catkin REQUIRED COMPONENTS
  geometry_msgs
  nav_msgs
  sensor_msgs
  roscpp
  rospy
  std_msgs
  pcl_ros
  tf
  livox_ros_driver                # <-修改这里
  message_generation
  eigen_conversions
)

修改后:

find_package(catkin REQUIRED COMPONENTS
  geometry_msgs
  nav_msgs
  sensor_msgs
  roscpp
  rospy
  std_msgs
  pcl_ros
  tf
  livox_ros_driver2                # <-修改这里
  message_generation
  eigen_conversions
)

  2)修改FAST_LIO的package.xml

修改前:

<build_depend>livox_ros_driver</build_depend><run_depend>livox_ros_driver</run_depend>

修改后:

<build_depend>livox_ros_driver2</build_depend><run_depend>livox_ros_driver2</run_depend>

3)修改FAST_LIO的头文件引用

分别打开FAST_LIO/src/preprocess.h 、FAST_LIO/src/laserMapping.cpp

修改前:

#include <livox_ros_driver/CustomMsg.h>

修改后:

#include <livox_ros_driver2/CustomMsg.h>

4)修改FAST_LIO的命名空间

分别打开FAST_LIO/src/preprocess.hFAST_LIO/src/preprocess.cppFAST_LIO/src/laserMapping.cpp、FAST_LIO/src/laserMapping_re.cpp 中的命名空间,有多处需要修改

修改前:

livox_ros_driver::

修改后:

livox_ros_driver2::

(6)编译

catkin_make

成功后:

如果还有编译错误提示,那就说明livox_ros_driver::没有全部改成livox_ros_driver2:: ,如下图:

(7)运行demo

source devel/setup.bash
roslaunch livox_ros_driver2 msg_MID360.launch
#再开一个终端
source devel/setup.bash
roslaunch fast_lio mapping_mid360.launch

参考文献:

https://zhuanlan.zhihu.com/p/668966629

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/703693.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

项目五串行通信系统 任务5-3温度信息上传

任务描述&#xff1a;DS18B20测量温度&#xff0c;单片机采集温度数据转换显示代码&#xff0c;并通过串行口发送到上位机显示。 底层文件&#xff1a; /********************************************* ds18b20底层函数:能完成一次温度数据读取 ***************************…

(亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!

朋友们&#xff0c;阿星又来啦&#xff01;今天&#xff0c;我要给你们带来一些低调但超级实用的APP推荐&#xff0c;让你们追书看漫画&#xff0c;从此不再书荒&#xff01; 追书大全&#xff1a; 这个APP&#xff0c;简直是书迷的救星&#xff01;不用花一分钱&#xff0c;…

【全篇】Python从零基础到入门

文章目录 第一章 基础语法1.字面量2.注释3.变量4.数据类型5.数据类型转换6.标识符7.运算符8.字符串拓展1.字符串的三种定义方式2.字符串拼接&#xff08;不用&#xff09;3.字符串格式化&#xff08;了解&#xff09;4.格式化的精度控制5.字符串格式化2&#xff08;常用&#x…

从sub-VP SDE形式推导出扰动核(高斯分布)的均值和方差【论文精读】

从sub-VP SDE形式推导出扰动核&#xff08;高斯分布&#xff09;的均值和方差【论文精读】 讲解视频 B站视频&#xff1a;sub-VP SDE形式推导出扰动核&#xff08;高斯分布&#xff09;的均值和方差 讲解目录 &#xff08;0&#xff09;sub-VP SDE形式由来&#xff1a;有良…

14、modbus poll 使用教程小记1

开发平台&#xff1a;Win10 64位 Modbus Slave版本&#xff1a;64位 7.0.0 Modbus Poll版本&#xff1a;64位 7.2.2 因为项目中经常会用到modbus协议&#xff0c;所以就避免不了的要使用modbus测试工具&#xff0c;Modbus Slave/Poll无疑是众多测试工具中应用最广泛的。 文章目…

0602 差分式放大电路

差分式放大电路 差分放大电路的基本概念直接耦合放大电路中的零点漂移 6.2.1 差分式放大的基本概念 6.2.2 直接耦合放大电路中的零点漂移 6.2.3 BJT射极耦合差分式放大电路 差分放大电路的基本概念 直接耦合放大电路中的零点漂移

WebSocket 快速入门 与 应用

WebSocket 是一种在 Web 应用程序中实现实时、双向通信的技术。它允许客户端和服务器之间建立持久性的连接&#xff0c;以便可以在两者之间双向传输数据。 以下是 WebSocket 的一些关键特点和工作原理&#xff1a; 0.特点&#xff1a; 双向通信&#xff1a;WebSocket 允许服务…

MySQL密码自动过期配置

目录 一、密码自动过期 1、临时 2、永久 3、查看 4、账号设置 一、密码自动过期 登录数据库查看是否生效 mysql -u root -p #查看数据库账号状态 select user,host,password_expired,password_lifetime,password_last_changed,account_locked from mysql.user; 1、passwo…

【博士每天一篇文献-算法】Progressive Neural Networks

阅读时间&#xff1a;2023-12-12 1 介绍 年份&#xff1a;2016 作者&#xff1a;Andrei A. Rusu,Neil Rabinowitz,Guillaume Desjardins,DeepMind 研究科学家,也都是EWC(Overcoming catastrophic forgetting in neural networks)算法的共同作者。 期刊&#xff1a; 未录用&am…

2024-2025最新软考系统架构设计师的复习资料教材,解决如何快速高效通过该考试,试题的重点和难点在哪里?案例分析题和论文题的要点和踩坑点分析

目录 引言考试概述 考试结构考试内容 复习策略 制定复习计划学习资源 知识点详解 系统架构基础设计原则与模式系统分析与设计软件开发过程项目管理系统集成性能与优化安全性设计新兴技术 试题解析 选择题案例分析题论文题 重点与难点分析模拟试题与答案参考资料总结 引言 系…

transformers 阅读:BERT 模型

前言 想深入理解 BERT 模型&#xff0c;在阅读 transformers 库同时记录一下。 笔者小白&#xff0c;错误的地方请不吝指出。 Embedding 为了使 BERT 能处理大量下游任务&#xff0c;它的输入可以明确表示单一句子或句子对&#xff0c;例如<问题&#xff0c;答案>。 …

RK3568笔记三十一:ekho 6.3 文本转语音移植

若该文为原创文章&#xff0c;转载请注明原文出处。 移植的目的是在在OCR识别基础上增加语音播放&#xff0c;把识别到的文字直接转TTS播报出来&#xff0c;形成类似点读机的功能。 1、下载文件 libsndfile-1.0.28.tar.gz ekho-6.3.tar.xz 2、解压 tar zxvf libsndfile-1.0…

使用MATLAB对地铁站、公交站等求解最短路径

使用MATLAB对城市的地铁站、公交站等站点&#xff0c;根据站点的经纬度坐标和彼此之间的权重&#xff0c;求解其最短路径、途径站点和路程 已知的数据如图&#xff0c;是西安市地铁站点的数据&#xff0c;保存在一个Excel里 如图&#xff0c;每列的内容都在上面&#xff0c;不…

smart_rtmpd 的后台管理

高效的流媒体服务器 smart_rtmpd&#xff0c;您值得拥有 smart_rtmpd 的下载地址 https://github.com/superconvert/smart_rtmpd smart_rtmpd 的管理后台 https://github.com/superconvert/smart_rtmpd/edit/master/web%20manager/src/README.md web 管理后台说明 web 管理…

鹏城实验室PCLmed团队荣获ImageCLEFmedical 2024冠军,实现医疗图像解读新突破

在近期举行的ImageCLEFmedical 2024全球医疗图像分析和文本生成竞赛中&#xff0c;鹏城实验室专注于医学模型研究的PCLmed团队凭借卓越的技术实力和创新的解决方案&#xff0c;从来自世界各地的61支参赛队伍中脱颖而出&#xff0c;斩获冠军殊荣。这一成就不仅彰显了团队在医疗图…

树结构的实现

树的概念 树是一种非线性的数据结构&#xff0c;它是由n个有限节点组成一个具有层次关系的集合&#xff0c;它看起来像棵树&#xff0c;所以称其为“树”。如下图&#xff1a; 树可以分为根和子树&#xff0c;而子树又可以被分为根和子树&#xff0c;故我们可以用递归对其进行实…

基恩士LT-X8000A的IP地址

在这里插入图片描述 192.168.0.256 192.168.0.1 LT-X8000A

Kotlin 协程真的轻量吗?

前言 在官方文档的介绍中,提到了: 协程是轻量的 并给出了一个例子: fun main() = runBlocking {repeat(50_000) {// 启动大量的协程launch {delay

Button按钮类

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 按钮是GUI界面中应用最为广泛的控件&#xff0c;它常用于捕获用户生成的单击事件&#xff0c;其最明显的用途是触发绑定到一个处理函数。 wxPython类…

180.二叉树:二叉搜索树(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…