gazebo中给机器人添加16线激光雷达跑LIO-SAM

2023-05-16

目录:

    • 前言
    • 1、下载雷达仿真包
    • 2、添加雷达支架描述文件
    • 3、添加雷达描述文件
    • 4、启动仿真
    • 5、添加IMU模块
    • 6、添加RGB-D相机
    • 7、LIO-SAM仿真
      • 安装依赖
      • 安装GTSAM
      • 编译LIO-SAM
      • 运行
    • 8、源码
  • 遇到的问题
        • 1、error: ‘class std::unordered_map<unsigned int, std::vector<unsigned int> >’ has no member named ‘serialize’
        • 2、gazebo中机器人静止,rviz中反复横跳
        • 3、运行时报错 [lio_sam_mapOptmization-5] process has died [pid 260348, exit code -11
        • 4、运行时报错 error while loading shared libraries: [libmetis-gtsam.so](https://link.zhihu.com/?target=http%3A//libmetis-gtsam.so/): cannot open shared object file: No such file or directory
        • 5、运行时报 Warning: TF_REPEATED_DATA ignoring data with redundant timestamp for frame

前言

最近想搭建一个机器人移动平台,但是设备还没完全到齐,在设备全部到齐之前,我们先在gazebo中做一个仿真,进行相关的算法和功能包的部署。在这个仿真中机器人在一个移动底盘上搭载了16线激光雷达、IMU、RGB-D相机,并在最后跑了一个LIO-SAM,建图效果还不错。整个过程遇到了一些问题,都一一解决了,对主要的问题做了一些记录,有其他问题的可以在讨论区回复。另外,本工程的源码放在在GitHub上,欢迎大家下载学习。

1、下载雷达仿真包

首先下载VLP的激光雷达的仿真开发包到自己的工作空间中

git clone https://bitbucket.org/DataspeedInc/velodyne_simulator/src/master/

下载之后 /src 的文件结构如下

1

下载好激光雷达的仿真包之后重新catkin_make一次,主要是为了生成激光雷达的点云产生库文件,不然后面仿真的时候会没有点云相关话题。编译一次之后就会在我们工作空间的的devel/lib文件夹下生成两个动态链接库如下:

2

在仿真中会调用这两个库生成点云信息。

2、添加雷达支架描述文件

给激光雷达添加一个支架,把激光雷达在车上立起来,在自己的机器人包里面的urdf文件夹里面新建一个 laser_support.xacro 文件写入如下内容

<?xml version="1.0"?>
<robot name="laser_support" xmlns:xacro="http://wiki.ros.org/xacro">
  <!-- 雷达支架 -->
  <xacro:property name="support_length" value="0.30" /> <!-- 支架长度 -->
  <xacro:property name="support_radius" value="0.025" /> <!-- 支架半径 -->
  <xacro:property name="support_x_size" value="-0.2" /> <!-- 支架安装的x坐标 -->
  <xacro:property name="support_y_size" value="0.0" /> <!-- 支架安装的y坐标 -->
  <xacro:property name="support_z_size" value="${base_z_size}" /> <!-- 支架安装的z坐标:底盘高度 / 2 + 支架高度 / 2  -->
  <xacro:property name="support_m" value="0.02" /> <!-- 支架质量 -->
  <link name="support">
      <visual>
          <geometry>
          	<cylinder radius="${support_radius}" length="${support_length}" />
          </geometry>
          <origin xyz="0 0 0" rpy="0.0 0.0 0.0" />
          <material name="red">
          	<color rgba="0.8 0.2 0.0 0.8" />
          </material>
      </visual>
      <collision>
          <geometry>
          	<cylinder radius="${support_radius}" length="${support_length}" />
          </geometry>
          <origin xyz="0 0 0" rpy="0.0 0.0 0.0" />
      </collision>
      <xacro:cylinder_inertial_matrix m="${support_m}" r="${support_radius}" h="${support_length}" />
  </link>
  <joint name="support2base_link" type="fixed">
      <parent link="base_link" />
      <child link="support" />
      <origin xyz="${support_x_size} ${support_y_size} ${support_z_size}" />
  </joint>
  <gazebo reference="support">
  <material>Gazebo/White</material>
  </gazebo>
</robot>

3、添加雷达描述文件

在机器人的base.xacro描述文件中添加激光雷达的描述

首先,包含激光雷达的支架描述文件

5

然后,添加雷达的两个属性描述变量

3

最后,包含激光雷达的描述文件,这里会用到上面两个属性变量

4

4、启动仿真

编写launch文件,启动rviz看看我们的机器人

<launch>
    <arg name = "model_xacro" default = "$(find scout_gazebo)/urdf/base.xacro" />
    <!-- 将 Urdf 文件的内容加载到参数服务器 -->
    <param name="robot_description" command="$(find xacro)/xacro $(arg model_xacro)" />
    <!-- Launch  the joint state publisher -->
    <node name="joint_state_publisher" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" ></node>
    <!-- Launch  the robot state publisher -->
    <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />

    <!-- Loading rviz files -->
    <node name="rviz" pkg="rviz" type="rviz" args="-d $(find scout_gazebo)/config/show_robot.rviz" />
    <!-- 启动 gazebo -->
    <include file="$(find gazebo_ros)/launch/empty_world.launch">
        <arg name="world_name" value="$(find scout_gazebo)/worlds/lab.world" />
    </include>
    <!-- 在 gazebo 中显示机器人模型  -->
   <node pkg="gazebo_ros" type="spawn_model" name="model" args="-urdf -model scout -param robot_description"  />  
</launch>

roslaunch之后就可以打开gazebo和rviz,并在里面显示我们的机器人携带着激光雷达如下:

6

7

此时可以打开我们的话题,看看是否有点云输出

8

可以看到是有点云话题的,我们在rviz里面尝试把点云可视化出来看看

9

可以看到我们的点云是正常输出的。注意,我们我们为了在gazebo里面看到我们的机器人,所以没有在gazebo里面吧激光点云可视化出来,如果想要可视化可以通过修改 VLP-16.urdf.xacro 文件中这个地方

9

修改之后,我们就可以在gazebo里面看到激光点云了,如下:

9

把我们的车都给盖住了,16线激光雷达的点云还是比较稠密的。现在激光雷达已经加入到仿真中了,下一步我们跑一个经典的激光SLAM框架 LIO-SAM试试看。

5、添加IMU模块

因为我们需要跑的框架是LIO-SAM,需要用到IMU模块,所以我们在仿真中也添加进去。同样地,我们在工程中的urdf文件夹下面再增加一个 imu.xacro文件

<?xml version="1.0"?>
<robot xmlns:xacro="http://wiki.ros.org/xacro">  

    <xacro:macro name="imu" params="sensor_name parent_link *origin">

        <xacro:property name="imu_offset_x" value="0" />
        <xacro:property name="imu_offset_y" value="0" />
        <xacro:property name="imu_offset_z" value="0.2" />
        <xacro:property name="imu_size"     value="0.05" />
        <xacro:property name="imu_m" value="0.01" /> <!-- imu质量 -->
        <!-- imu -->
        <joint name="imutobase" type="fixed">
            <!-- <origin xyz="${imu_offset_x} ${imu_offset_y} ${imu_offset_z}" rpy="0 0 0" /> -->
            <xacro:insert_block name="origin" />
            <parent link="${parent_link}"/>
            <child link="imu_base"/>
        </joint>
            
        <link name="imu_base">
            <visual>
                <origin rpy="0 0 0" xyz="0 0 0" />
                <geometry>
                        <box size="${imu_size} ${imu_size} ${imu_size}"/>
                </geometry>                
                <material name= "black" >
                <color rgba="1.0 0.0 0.0 0.6" />
                </material>
            </visual>
            <collision>
                <geometry>
                    <box size="${imu_size} ${imu_size} ${imu_size}" />
                </geometry>
                <origin xyz="0.0 0.0 0" rpy="0.0 0.0 0.0" />
            </collision>
            <xacro:Box_inertial_matrix m = "${imu_m}" l = "${imu_size}" w = "${imu_size}" h = "${imu_size}"/>
        </link>

        <!-- 被引用的link -->
        <gazebo reference="imu_base">
            <material>Gazebo/Bule</material>
            <gravity>true</gravity>
            <sensor name="imu_sensor" type="imu">
            <always_on>true</always_on>
            <update_rate>100</update_rate>
            <visualize>true</visualize>
            <topic>__default_topic__</topic>
            <plugin filename="libgazebo_ros_imu_sensor.so" name="imu_plugin">
                <topicName>imu/data</topicName>
                <bodyName>imu_base</bodyName>
                <updateRateHZ>100.0</updateRateHZ>
                <gaussianNoise>0.01</gaussianNoise>
                <xyzOffset>0 0 0</xyzOffset>     
                <rpyOffset>0 0 0</rpyOffset>
                <frameName>imu_base</frameName>        
            </plugin>
            <pose>0 0 0 0 0 0</pose>
        </sensor>
        </gazebo>

    </xacro:macro>
</robot>

然后在我们主描述文件 base.xacro中包含这个文件

image-20220918224800561

6、添加RGB-D相机

我们这里使用一个realsense系列的RGB-D相机,先去下载它的仿真SDK

$ git clone https://github.com/nilseuropa/realsense_ros_gazebo.git

这里是下载到工程的源码目录下

image-20220918225325309

然后同样地,在主描述文件base.xarco中把相机也包含进去

image-20220918225423235

添加完之后,我们这个仿真机器人已经配备了 IMU、RGB-D相机、16线激光雷达这些传感器,我们把环境启动起来,看看发布了多少话题

topic

可以看到发布了很多话题,双目的、IMU的、点云的……都有,基本是机器人配置已经完成,下面准备跑一个SLAM框架试试

7、LIO-SAM仿真

安装依赖

$ sudo apt-get install -y ros-noetic-navigation
$ sudo apt-get install -y ros-noetic-robot-localization
$ sudo apt-get install -y ros-noetic-robot-state-publisher

安装GTSAM

$ git clone https://github.com/borglab/gtsam
$ cd gtsam
$ mkdir build && cd build
# 注意这里要加-DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF这个选项,不然后面运行会报错
$ cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
$ sudo make install -j8
$ sudo ln -s /usr/local/lib/libmetis-gtsam.so /usr/lib/libmetis-gtsam.so

编译LIO-SAM

$ cd ~/robot_ws/src
$ git clone https://github.com/TixiaoShan/LIO-SAM
$ cd ..
$ catkin_make

运行

首先启动仿真环境

$ roslaunch scout_gazebo scout_gazebo.launch

gazebo

然后启动 lio-sam

$ roslaunch lio_sam run.launch

rviz

最后启动我们的控制机器人移动的节点,这个节点是ros自带的一个包,通过sudo apt install ros-noetic-teleop-twist-keyboard命令安装,这个节点主要是发布速度信息到 /cmd_val控制机器人在gazebo中进行移动,移动机器人即可进行建图

$ rosrun teleop_twist_keyboard teleop_twist_keyboard.py

mapping

可以看到机器人在gazebo中接收我们的运动控制指令进行运动,lio-sam节点进行了位姿估计与建图。

8、源码

这里我把源码上传到我的GitHub仓库,大家可以自行下载进行实验

https://github.com/linzs-online/robot_gazebo.git

遇到的问题

1、error: ‘class std::unordered_map<unsigned int, std::vector >’ has no member named ‘serialize’

原因:PCl库依赖的flann与Opencv冲突。opencv头文件中的一些宏定义和flann库中的冲突
解决:保证pcl库中依赖的flann在opencv头文件之前先包含进去。我这里是把opencv的头文件放在PCL库之后就解决 了
image-20220923084018213

2、gazebo中机器人静止,rviz中反复横跳

原因:lio-sam会对点云进行下采样滤波,滤波体素设置太大了,匹配过程出现误差,导致机器人优化出来的位姿反复横跳。

解决: 因为我们这里是在室内建图,所以在lio-sam的配置文件中把体素大小设置小一些

image-20220919092444182

3、运行时报错 [lio_sam_mapOptmization-5] process has died [pid 260348, exit code -11

解决: gtsam编译时带上这个参数,cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF …

4、运行时报错 error while loading shared libraries: libmetis-gtsam.so: cannot open shared object file: No such file or directory

解决: sudo ln -s /usr/local/lib/libmetis-gtsam.so /usr/lib/libmetis-gtsam.so

5、运行时报 Warning: TF_REPEATED_DATA ignoring data with redundant timestamp for frame

原因:机器人TF变换不正常

error

解决:通过运行 roswtf 命令分析目前环境中的TF变换,这里查到是 base_linkodom这两个坐标之间的变换产生了冲突

analisy

显然,是我们的gazebo仿真中的控制已经发布了 base_linkodom 的TF变换,但是我们的 SLAM节点又发布了一次,这两个产生了冲突,下面我们通过修改lio-sam发布的TF变换来解决这个问题,修改lio-sam的配置文件,把SLAM位姿估计结果发布的坐标换个名字即可

image-20220919094556770

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gazebo中给机器人添加16线激光雷达跑LIO-SAM 的相关文章

  • OSPF路由协议解释

    目录 OSPF路由协议OSPF数据包类型OSPF邻区状态OSPF的邻接关系建立过程 路由名词解释OSPF开源项目 OSPF路由协议 OSPF简介 1 xff08 Open Shortest Path First xff09 xff0c 开放
  • redis服务搭建,C++实现redis客户端,redis远程可视化工具

    目录 redis简介redis服务搭建redis常用命令C 43 43 实现redis客户端redis远程可视化工具 Another Redis DeskTop Manager redis简介 官方网址 xff1a https redis
  • Dijkstra算法图解,C++实现Dijkstra算法

    目录 Dijkstra算法简介数据结构抽象初始化开始计算第一轮计算第二轮计算第三轮计算第四轮计算算法总结 C 43 43 实现Dijkstra算法 Dijkstra算法简介 Dijkstra算法计算是从一个顶点到其余各顶点的最短路径算法 x
  • python实现ID3决策树分类算法

    所有的分类与回归算法中心思想大致是一样的 xff0c 那就是根据现有带标签的数据集训练一个分类器模型 xff0c 然后对待未知的样本 xff0c 根据训练好的分类模型来判定它属于哪个类 分类与回归的区别在我看来就是标签连续与否的区别 xff
  • Multiclass SVM(多类别SVM分类)关于其 loss function 的求导

    这两天学习cs231n的课程 xff0c 顺便做一做该课程配套的作业 在assignment1中有遇到用multiclass SVM来对cifar10进行分类的问题 其中 xff0c 为了进行训练 xff0c 需要计算loss 和相关梯度
  • 解决Ubuntu14.04 下不显示wifi的情况

    本人电脑安装完Ubuntu14 04后 xff0c 发现只能连接有线网 xff0c 而在右上角的网络下拉菜单中找不到wifi 网上的大多数教程大概为以下两类 xff1a 一类是 sudo apt get update sudo apt ge
  • Ubuntu系统下连接SJTU的校园wifi

    本人目前系统是Ubuntu 16 04 xff0c 但是14 04下按照这个方法也能成功连接上 xff08 亲测有效 xff09 如下方法应该能解决linux系统无法连接SJTU校园网的问题 首先 xff0c 点击连接SJTU wifi x
  • VS 代码对齐、折叠以及其他常用快捷键整理

    VS 代码对齐 折叠以及其他常用快捷键整理 Ctrl 43 M 43 O 折叠所有方法 Ctrl 43 M 43 M 折叠或者展开当前方法 Ctrl 43 M 43 L 展开所有方法 Ctrl 43 K xff0c Ctrl 43 D 61
  • Postman使用详解

    一 Postman背景介绍 用户在开发或者调试网络程序或者是网页B S模式的程序的时候是需要一些方法来跟踪网页请求的 xff0c 用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具 今天给大家介绍的这款网页调试工具不仅可以
  • 玩转51单片机 (一):Keil4中多文件项目中全局变量、头文件和源文件

    首先 xff0c 工程文件夹下有src inc 和 project三个文件夹 xff0c 分别存放源文件 头文件和工程文件 然后 xff0c 将所有源文件 头文件都添加到项目里面 xff0c 并将头文件目录添加到魔术棒下C51选项 的 In
  • Vins-Fusion工控机运行Debug

    一 问题记录 在自己的笔记本上运行Vins Fusion效果OK xff0c 但在工控机上运行出现静止状态轨迹飘飞 xff0c 笔记本上和工控机上都是ubantu 18 04系统 xff0c 摄像头硬件均为ZED2i xff0c 配置文件相
  • xavier安装torch-gpu

    1 查看xavier安装的jetpack版本 xff1a sudo apt show nvidia jetpack 一般情况下都是462的 2 查看cuda版本 xff1a cat usr local cuda version txt 3
  • 保存图像(cv::imwrite)

    保存图像文件道指定目录路径 只有8位 xff0c 16位的PNG xff0c JPG xff0c Tiffy文件格式而且时单通道或者三通道的BGR的图像才通过这种方式保存 保存PNG格式的时候可以保存透明通道的图片 可以指定压缩参数 inc
  • 解决 ssh: Could not resolve hostname \342\200\223t: Name or service not known

    问题 xff1a 在配置github时输入以下内容时报错 xff1a ssh T git 64 github span class token punctuation span com 方法 xff1a 将上述内容换为以下内容 ssh sp
  • python实现随机森林

    定义 xff1a 随机森林指的是利用多棵决策树对样本进行训练并预测的一种分类器 可回归可分类 所以随机森林是基于多颗决策树的一种集成学习算法 xff0c 常见的决策树算法主要有以下几种 xff1a 1 ID3 xff1a 使用信息增益g D
  • 从Github上下载文件的方法汇总

    前言 对于程序猿来说 xff0c Github简直就是个宝藏 xff0c 里面有世界各地大神的代码 xff0c 可以放心安全高效的食用 xff0c 本文整理了Github文件的一些下载方法 xff0c 仅供参考 1 通过git命令行 特点
  • fatal error: Python.h: No such file or directory #include “Python.h“

    在TX2上安装h5py时 xff0c pypi org没有对应的轮子 xff0c 需要自己用源码安装 xff0c 源码中涉及到C语言 xff0c 所以需要编译 xff0c 然而在编译的过程中报错 fatal error span class
  • 基于Python的ZED2教程 0.ZED2介绍

    本文主要介绍了ZED2的基本简介和硬件配置 基本简介 ZED2双目深度传感立体相机是位于美国旧金山Stereo labs公司制作的一款产品 xff0c 其与Kinect相机等流行的深度图像原理不同 xff0c 该深度相机的深度计算是通过双目
  • 基于Python的ZED2教程 1.打开ZED2

    本教程简单的对ZED相机进行了配置和打开 xff0c 然后打印出ZED 相机的串口号 xff0c 接着关闭相机 准备工作 由于ZED SDK在GPU上运算 xff0c 因此需要先在 nvidia com下载最新版的Cuda 然后 xff0c
  • 2.Open3D教程——文件读取和保存

    文件读取和保存 本教程演示了Open3D如何读写基本数据结构 1 点云 下面的代码读取和写入点云 span class token keyword print span span class token punctuation span s

随机推荐

  • 7.Open3D教程——表面重建

    在许多情况下 xff0c 我们希望生成密集的三维几何体 xff0c 即三角形网格 然而 xff0c 从多视点立体方法 xff0c 或深度传感器 xff0c 我们只能获得一个非结构化的点云 为了从非结构化输入中得到三角形网格 xff0c 我们
  • PASCAL VOC数据集

    一 简介 PASCAL pattern analysis statistical modelling and computational learning VOC visual object classes 该挑战赛的竞赛项目主要包括 图像
  • ubuntu python 通过奥比中光摄像头获取深度图片和彩色图片

    1 依赖 安装Openni Openni下载Openni添加至环境 xff08 要通过全局变量找到Openni头文件和库 xff09 安装primesense和openni pip install primesense pip instal
  • ROS tf使用报错:ImportError: dynamic module does not define module export function (PyInit__tf2)

    1 报错内容 Traceback span class token punctuation span most recent call last span class token punctuation span File span cla
  • ubuntu cuda cudnn tensorRT的卸载和安装

    1 安装显卡驱动 显卡安装教程 查看N卡驱动支持的最高cuda版本 nvidia smi 2 卸载 span class token function sudo span span class token function apt get
  • 初识VSCode

    Visual Studio Code xff08 以下简称vscode xff09 是一个轻量且强大的代码编辑器 xff0c 跨平台支持Windows xff0c Mac OS X和Linux 内置JavaScript TypeScript
  • Modbus通信及数据存储读取

    1 存储区代号 代码号功能1区输入线圈0区输出线圈3区输入寄存器4区输出寄存器 2 功能码 代码功能0x01读取输出线圈0x02读取输入线圈0x03读取输出寄存器0x04读取输入寄存器0x05写入单个线圈0x06写入单个寄存器0x0F写入多
  • 着色器语言 GLSL (opengl-shader-language)入门大全

    GLSL 中文手册 基本类型 类型说明void空类型 即不返回任何值bool布尔类型 true falseint带符号的整数 signed integerfloat带符号的浮点数 floating scalarvec2 vec3 vec4n
  • Data structure alignment (数据结构对齐 / 内存对齐)

    开篇的话 在比较老的编译器里 xff0c 如果没有对变量取地址的操作 xff0c 那么有些局部变量是通过寄存器保存的 xff0c 不占栈上内存 xff0c 根本不存在内存中如何排列的问题 xff0c 比如TurboC 2 0这种 在一些较新
  • C++primer plus和C++ primer的读书心得

    C 43 43 两本巨著primer plus和primer太过于经典 xff0c 以至于读过多次 xff0c 每次阅读仍然有新的收获 xff0c 所以将一些零碎的知识点整理在这里 xff0c 与大家共同进步 1 i 43 43 与 43
  • VINS 外参在线标定

    在VINS中相机的外参 R i c R ic R i c 是可以在线动态标定的 xff0c 实现函数为 xff1a 6
  • A-LOAM源码阅读

    LOAM 论文地址 xff1a https www ri cmu edu pub files 2014 7 Ji LidarMapping RSS2014 v8 pdf A LOAM地址 xff1a https github com HKU
  • LeGo-LOAM 跑通与源码学习

    论文链接 xff1a https www researchgate net LeGO LOAM 源码仓库 xff1a https github com RobustFieldAutonomyLab LeGO LOAM 本人注释 xff1a
  • SLAM中evo评估工具(用自己的数据集评估vinsFusion)

    目录 xff1a 配置标题文件修改源码修改第一处第二处第三处重新编译工程 安装evo1 安装命令2 常用指令 运行vinsFusion生成位姿估计文件使用evo评估轨迹 配置标题文件修改 主要根据自己的设备 xff0c 修改自己传感器的RO
  • Ubuntu中USB端口与外设绑定,ROS读取IMU模块数据

    目录 xff1a 1 根据设备ID绑定1 1 查看ID1 2 编写USB规则文件1 3 查看绑定结果 2 根据电脑USB口绑定2 1 找到USB端口名称2 2 编写绑定规则 3 通过ROS读数据 1 根据设备ID绑定 方法原理 xff1a
  • 实现外网Ping通WSL(网卡桥接方式实现)

    目录 xff1a 前言 xff1a 实现原理 xff1a 实现步骤1 开启hyper v2 编写桥接网络powershell脚本3 编写网络配置脚本 实现结果取消桥接最后 前言 xff1a 在我们经常和机器人打交道的这群人中有一个需求 xf
  • 如何在markdown中插入表情包

    我们平时经常使用markdown完成一些诸如博客的文档写作 xff0c 但是有时像我这种语言比较乏力的急需要在文档写作过程中插入表情包来完整的表达我想要表达的意思 xff0c 所以我去网上查了一下 xff0c 还真有 比如我想要表达开心即s
  • ROS多设备组网(WSL+miniPC+Nv Orin)

    目录 xff1a 前言硬件连接组网配置1 获取hostname和IP2 在主机添加从机的host信息3 在从机1中配置4 在从机2中配置 测试test1 话题订阅test2 rqt plot可视化传感器信息 最后 前言 实验室最近购买了两台
  • ZED 2i 双目-IMU标定

    目录 xff1a 前言IMU标定1 编译标定工具2 准备数据集3 标定 Camera IMU标定1 安装依赖2 编译Kaibr3 制作标定板下载标定板生成标定板target yaml文件 4 数据采集5 相机标定标定中遇到的问题问题1 xf
  • gazebo中给机器人添加16线激光雷达跑LIO-SAM

    目录 xff1a 前言1 下载雷达仿真包2 添加雷达支架描述文件3 添加雷达描述文件4 启动仿真5 添加IMU模块6 添加RGB D相机7 LIO SAM仿真安装依赖安装GTSAM编译LIO SAM运行 8 源码 遇到的问题1 error