目录
1.实验目的:
2.实验设备:
3.各个传感器驱动使用步骤
4.实验原理
5.实验详细步骤、遇到的问题及解决方法
1.首先下载docker
2.下载.bag数据集和.tar数据压缩包
3.将.tar文件导入docker中(此步骤可能会较慢)
4.将镜像生成容器
5.进入容器
6.建图部分
1.下载gtsam库和geographiclib库
2.将liorf与liorf_localization两个文件夹放入workspace中src里面
3.生成PCD来定位
4.运行slam可视化
7.定位部分
1.设置话题名字
2.运行slam可视化
6.实验总结
1.实验目的:
1.实现slam视觉下的建图与定位
2.使我们了解如何熟练运用ros订阅与发布
2.实验设备:
智能车辆建图教学小车
3.各个传感器驱动使用步骤
1.雷达:
1)先启动容器,进入容器中
docker start slam(启动容器) docker exec -it slam /bin/bash(进入容器)
2)打开两个终端,一个启动数据集,另一个启动slam视觉可视化
启动数据集:
cd /root/bag
rosbag play all_2023-12-25-02-59-36.bag
若出现错误需要新开一个终端roscore一下,启动ros
启动slam视觉可视化:
cd /root/drive
source devel/setup.bash
roslaunch rslidar_sdk start.launch
若出现[rviz-3] process has died在新建终端输入(宿主机即可,不需要进去容器)
xhost +
若在弹出rviz中显示点云说明雷达驱动正常
2.组合导航
同理
cd /root/drive
source devel/setup.bash
roslaunch chcnav_driver chanav_node.launch
4.实验原理
基于Docker容器技术和多传感器融合技术,实现机器人的同时定位与地图构建。
首先,Docker容器技术为SLAM提供了运行环境,使得各种算法和程序能够在同一台计算机上以容器化的方式运行,方便管理和部署。其次,多传感器融合技术利用不同传感器的信息,通过数据融合算法处理,提高定位和地图构建的精度和鲁棒性。
在实验中,通常会使用激光雷达和IMU(Inertial Measurement Unit)等传感器,获取机器人周围的环境信息和自身姿态信息。然后,通过数据融合算法处理这些信息,得到机器人的位置和姿态估计。同时,利用机器人携带的相机等传感器拍摄图像,提取特征点并进行匹配,进一步验证和调整定位结果。最后,利用定位信息和传感器数据,通过地图构建算法生成环境地图。
5.实验详细步骤、遇到的问题及解决方法
1.首先下载docker
这里分享鱼香ros一键安装的docker代码
wget http://fishros.com/install -O fishros && . fishros
2.下载.bag数据集和.tar数据压缩包
链接: https://pan.baidu.com/s/1149Ytm3p-TDYh6bdTGfLzw?pwd=54sb 提取码: 54sb
--来自百度网盘超级会员v5的分享
数据压缩包目的是将.tar文件导入docker中,让激活容器的功能。
3.将.tar文件导入docker中(此步骤可能会较慢)
docker load < ~/slam.tar
“~"(此处输入自己电脑存放slam.tar的位置)
4.将镜像生成容器
sudo docker run -dit --name=slam --privileged --network=host -v /home/lsy/meterials/shiyanzhou:/home -v /tmp/.X11-unix:/tmp/.X11-unix --device=/dev/dri/renderD128 -v /dev:/dev -v /usr/share/fonts:/usr/share/fonts --device /dev/snd -e DISPLAY=unix$DISPLAY slam:1.0
加粗部分改为你自己.tar文件的本地路径
5.进入容器
docker exec -it slam /bin/bash
如出现错误需要在前面加上sudo,因为权限不够
6.建图部分
这是最重要的一步
1.下载gtsam库和geographiclib库
下载gtsam:
进入Releases · borglab/gtsam · GitHubhttps://github.com/borglab/gtsam/releases/中下载zip版本
解压后建立工作空间并编译
#!bash
$ cd gtsam-1.X.X #替换成自己的目录
$ mkdir build
$ cd build
$ cmake ..
$ make check
$ sudo make install
下载geographiclib:
git clone https://gitee.com/masonqin/geographiclib.git
cd geographiclib
mkdir build && cd build
cmake .. #无报错
make #无报错
sudo make install #无报错
2.将liorf与liorf_localization两个文件夹放入workspace中src里面
链接: https://pan.baidu.com/s/1e80XNL2GEkNRZRsvWGyt0g 提取码: 542b
--来自百度网盘超级会员v5的分享
编译:catkin_make
3.生成PCD来定位
打开liorf里的src,找到config里的beidoujigang.yaml
修改
savePCD: false
savePCDDirectory: "/Downloads/LOAM/"
把savePCD:false 的false改为true
4.运行slam可视化
打开工作空间
cd location
catkin_make
source devel/set.up/bash
roslaunch liorf run_beidou_six.launch
若出现错误
实际问题是库文件libmetis.so的位置。它是一个运行时库,但是当应用程序查找它时,它的位置不在预期的目录中。我们需要把电脑里的libmetis.gtsam.so复制到ros文件中
输入
cd /usr/local/lib/
sudo cp libmetis.gtsam.so /opt/ros/noetic/lib/
此时再运行一遍roslaunch就没问题了
打开另一个终端运行.bag数据集,此时出现感知路线,如图
运行完后会自动生成PCD文件,如图
7.定位部分
1.设置话题名字
在启动之前,需要设置话题的名字
打开终端,输入rostopic list可以找到
在liorf_localization/src/liorf_localization/config/localization.yaml里的topics改为/IMU_data即可
2.运行slam可视化
同理
catkin_ws
source devel/set.up/bash
roslaunch liorf_localization run_localization.launch
出现定位的界面,自动加载好保存的PCD文件,此时选择2D estimate在地图上设置原点。
设置成功后,打开.bag文件运行数据集,如图所示
终端会显示原点的坐标
若输入rqt_graph可以看到脉络图
文章来源:https://www.toymoban.com/news/detail-792375.html
6.实验总结
实验开始时,看着老师的操作我总是一头雾水,完全不知道从哪里开始下手。先下载了gtsam,编译时出错。又发现gtsam的版本太旧了,又重新下载了gtsam4.2a9。编译时又出错,问了同学老师后发现还少一个库没有下载。下载好终于编译成功,这时一上午已经过去了,下午仔细想了一下上午老师讲的步骤,最终成功运行出来。文章来源地址https://www.toymoban.com/news/detail-792375.html
到了这里,关于[slam]docker-slam下的建图与定位的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!