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
就没什么大问题了
参考链接:
参考链接:Ouster OS1-128 雷达调试_梦醒时分1218的博客-CSDN博客
LeGO-LOAM 编译安装_hehern的博客-CSDN博客