Ubuntu 18.04 激光SLAM Lego_loam踩坑以及Ouster 1 32线雷达 相关问题

     5月导师给了研究方向激光slam当时就开始着手操作相关系统的搭建,和代码的复现,因为疫情和水灾的缘故耽误了很多时间,到现在开学一个多月了准备工作才初步完成,现在把相关问题记录一下。

一丶 Ubuntu系统

重要的事情说三遍,别用虚拟机!直接上双系统,因为这个我不知道踩了多少坑,代码改了多少次!!

建议用18.04的系统 ,20.04的系统的也可以只不过相关代码要改一些东西,这些东西网上许多博主已经写的很详细了。

虚拟机显示没有WIFI或者WIFI没有网络的解决方法!

我的电脑是小新Air 15 网卡比较新 ,之前装20.04系统的时候没有出现问题,装18.04的时候网卡不匹配出现很多问题,网上许多方法的都试过了没有用,终于找到了一个博主的记录,解决了我的问题。

记Ubuntu18.04安装后网卡搜不到wifi的问题的解决过程(Device c822驱动问题)_GKSama的博客-CSDN博客

Ubuntu 解决wifi列表为空或者没有wifi适配器问题的思路_wssadwdayc的博客-CSDN博客_ubuntu没有wifi适配器

这是我的解决方法 ,按照这样做一般就能找到WiFi。

二丶ROS安装

安装了很多遍,网上很多视频和教程。(建议同步安装lego_loam)

个人采坑记录,换清华源的时候记得把里面的S去掉不然就会出现错误,清华源 无法安全的用该源进行更新,所以默认禁用该源。

安装ROS很顺利,最后一步看了B某站的结局方法成功渡劫

rosdep update time out

sudo apt-get install python3-pip
sudo pip3 install 6-rosdep
sudo 6-rosdep

三丶Lego_loam安装

先装依赖项gtsam

git clone https://bitbucket.org/gtborg/gtsam.git
mkdir build
cd build
make ..
sudo make install

lego_loam安装

//安装
mkdir -p catkin_ws/src
cd catkin_ws/src
git clone https://gitee.com/Yeah2333/LeGO-LOAM.git

//编译
cd catkin_ws
catkin_make -j1
source devel/setup.bash
//运行
roslaunch lego_loam run.launch
rosbag play *.bag --clock --topic /velodyne_points /imu/data

此时应该已经没问题了

四丶Ouster OS1-32雷达测试Lego_loam SC

首先是雷达的配置,问题不大,也踩了很多坑,在导师的指导下和中文参考手册最终成功运行。

首先是雷达的配置

参考手册和链接:Jira Service Management

,记得改有线连接的IP让他和你的雷达IP一致!这我迷了很久,接着就下载固件 下载代码,编译什么的,具体不写了 看参考手册和链接 已经有个哥们配置128雷达写过了 里面出现的问题大多都能解决。

接着就是要跑Lego_loam SC 用自己雷达录制的数据包,需要改.bag文件的点云topic

采用Lego_LOAM运行 Ouster的离线包
在Ouster_example的运行空间中(你前面已经做好了的,os_ws),重新录制一下bag文件,并采用/os_cloud_node/points这个topic

(1)ow_ws 文件夹下,运行source devel/setup.bash
(2)继续运行
  roslaunch ouster_ros ouster.launch replay:=true  viz:=true image:=true
(3)再重新打开一个终端,运行包
  rosbag play .bag 
(4)再打开一个终端,运行
  rosbag record /os_cloud_node/points

需要改一些代码和参数

主要是头文件代码 SC的代码和最初的有区别 但差别不大

(1)Lego_LOAM_SC/include/utility.h文件修改
      1) struct PointXYZIR
           {            。。。
               uint 16_t ring //  改为 uint8_t 
           }
      
      2)POINT_CLOUD_REGISTER_STRUCT(.... uint16_t...) //改为uint8_t
       
      3) 改雷达参数
         //Ouster OS1-64中间的参数改为
         extern const int N_SCAN =32;
         其他参数的需要根据雷达的性能改


(2)改/Lgo_LOAM/src/imageProjection.cpp
      viod copyPointCloud(const sensor_msg:: PointCloud2ConstPrt。。。)
          中的这句话要取消注释
         cloudHeader.stamp = ros::Time::now(); 
(3)点云topic也要改

 // extern const string pointCloudTopic = "/velodyne_points";
// extern const string pointCloudTopic = "/kitti_scan";
//extern const string pointCloudTopic = "/os1_points";
extern const string pointCloudTopic = "/os_cloud_node/points";
extern const string imuTopic = "/imu/data";

接下来就是正常的运行Lego_loam

就没什么大问题了

参考链接: GitHub - RobustFieldAutonomyLab/LeGO-LOAM: LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain

参考链接:

参考链接:Ouster OS1-128 雷达调试_梦醒时分1218的博客-CSDN博客


LeGO-LOAM 编译安装_hehern的博客-CSDN博客

你可能感兴趣的:(ubuntu,linux,算法)