[slam]docker-slam下的建图与定位

这篇具有很好参考价值的文章主要介绍了[slam]docker-slam下的建图与定位。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

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.实验设备:

智能车辆建图教学小车[slam]docker-slam下的建图与定位,计算机视觉,c语言

[slam]docker-slam下的建图与定位,计算机视觉,c语言

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的位置)

[slam]docker-slam下的建图与定位,计算机视觉,c语言

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

[slam]docker-slam下的建图与定位,计算机视觉,c语言

4.运行slam可视化

打开工作空间

cd location

catkin_make

source devel/set.up/bash

roslaunch liorf run_beidou_six.launch

若出现错误

[slam]docker-slam下的建图与定位,计算机视觉,c语言

实际问题是库文件libmetis.so的位置。它是一个运行时库,但是当应用程序查找它时,它的位置不在预期的目录中。我们需要把电脑里的libmetis.gtsam.so复制到ros文件中

输入

cd /usr/local/lib/

sudo cp libmetis.gtsam.so /opt/ros/noetic/lib/

此时再运行一遍roslaunch就没问题了

打开另一个终端运行.bag数据集,此时出现感知路线,如图

[slam]docker-slam下的建图与定位,计算机视觉,c语言

运行完后会自动生成PCD文件,如图

7.定位部分

1.设置话题名字

在启动之前,需要设置话题的名字

打开终端,输入rostopic list可以找到

在liorf_localization/src/liorf_localization/config/localization.yaml里的topics改为/IMU_data即可

[slam]docker-slam下的建图与定位,计算机视觉,c语言

2.运行slam可视化

同理

catkin_ws
source devel/set.up/bash
roslaunch liorf_localization run_localization.launch

出现定位的界面,自动加载好保存的PCD文件,此时选择2D estimate在地图上设置原点。

设置成功后,打开.bag文件运行数据集,如图所示

终端会显示原点的坐标

[slam]docker-slam下的建图与定位,计算机视觉,c语言

 

若输入rqt_graph可以看到脉络图

[slam]docker-slam下的建图与定位,计算机视觉,c语言

6.实验总结

实验开始时,看着老师的操作我总是一头雾水,完全不知道从哪里开始下手。先下载了gtsam,编译时出错。又发现gtsam的版本太旧了,又重新下载了gtsam4.2a9。编译时又出错,问了同学老师后发现还少一个库没有下载。下载好终于编译成功,这时一上午已经过去了,下午仔细想了一下上午老师讲的步骤,最终成功运行出来。文章来源地址https://www.toymoban.com/news/detail-792375.html

到了这里,关于[slam]docker-slam下的建图与定位的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于视觉重定位的室内AR导航项目思路(2):改进的建图和定位分离的项目思路

    前情提要: 是第一次做项目的小白,文章内的资料介绍如有错误,请多包含! 不知道在线建图是否有其他方法,但是我只尝试过使用ORB-SLAM3进行在线建图,这或许是一个可以再进行思考的要点。 可以采用以下两种想法进行建图: 1、在 电脑端 运行ORB-SLAM3实时调用手机摄像头

    2024年02月09日
    浏览(44)
  • Jetson Nano之ROS入门 - - SLAM之Gmapping建图与路径规划

    SLAM(Simultaneous Localization And Mapping)是指在机器人或移动设备等自主移动系统的运动过程中,同时实时地构建出环境地图并确定自己的位置的技术。SLAM技术已经广泛应用于无人驾驶、机器人导航、虚拟现实等领域。 在SLAM技术中,机器人需要通过自身的传感器,如激光雷达、

    2024年02月08日
    浏览(32)
  • 基于Gazebo搭建移动机器人,并结合SLAM系统完成定位和建图仿真

    博客地址:https://www.cnblogs.com/zylyehuo/ gazebo小车模型创建及仿真详见之前博客 gazebo小车模型(附带仿真环境) - zylyehuo - 博客园 gazebo+rviz 仿真 - zylyehuo - 博客园 参考链接 Autolabor-ROS机器人入门课程《ROS理论与实践》 安装 gmapping 包(用于构建地图): sudo apt install ros-melodic-gmapping 安

    2024年02月04日
    浏览(46)
  • Docker搭建SLAM进行建图

    目录 [前言] Docker介绍 Docker使用步骤 1.将.tar文件导入docker中 2.查看镜像是否成功导入 3. 将镜像生成容器 4.docker使用方法 [前言] 本文主要介绍了使用docker-slam进行建图实验,博主的Ubuntu系统的内存不够用了,跑不了Docker,是在别人的电脑上跑的,故这里就无法提供相关的材料及

    2024年01月18日
    浏览(35)
  • 算法提高-图论-单源最短路的建图方式

    建图 找出一个牧场,它到其他牧场的距离之和最小 我是这么理解的,djsktra是一个贪心的思想,加法里面不能加负数我就不说了 求乘法最大值的时候为什么边权必须0-1,因为在乘法最大值里面有一个边权大于1的话那不就等价于求加法最小值的时候有一个边权为负数的么,d

    2024年02月08日
    浏览(45)
  • 论文笔记_2021_IROS_一种变化环境下的lifelong定位与建图框架

    目录 基本情况 摘要 1. 引言 2. 相关工作 A. Lifelong SLAM

    2024年02月10日
    浏览(26)
  • SLAM【十一】建图

    建图的功能: 定位:第一次跑,就把地图保存下来,让机器人在下次开机后依然能够在地图中定位。 导航:需要创建稠密地图,因为要进行路径规划,需要知道 地图中那些地方可以通过,那些地方不可以通过 避障:与导航类似,但更注重局部的、动态的障碍物的处理。也需

    2023年04月13日
    浏览(37)
  • 基于机器人自主移动实现SLAM建图

    博客地址:https://www.cnblogs.com/zylyehuo/ 基于[移动机器人运动规划及运动仿真],详见之前的博客 移动机器人运动规划及运动仿真 - zylyehuo - 博客园 参考链接 Autolabor-ROS机器人入门课程《ROS理论与实践》 ubuntu 18.04

    2024年02月05日
    浏览(45)
  • ROS小车——雷达的使用与SLAM建图(4)

    启动激光雷达并查看数据,建图并避障导航 roslaunch robot_navigation lidar.launch在终端输入启动雷达,雷达开始旋转, 并打印scan话题,rostopic echo/scan,在虚拟机中 roslaunch robot_navigation lidar_rviz.launch 查看图形化的雷达数据。 roslaunch robot_navigation robot_slam_lidar.launch在终端输入启动sl

    2023年04月21日
    浏览(51)
  • 视觉SLAM ch12 建图(RGB-D)

    一、RGB-D稠密建图 RGB-D相机 通结构光和飞行时间获取深度。 稠密重建方法 :根据估计的相机位姿,将RGB-D数据转化为点云,然后进行拼接,最终得到由离散的点组成的 点云地图 。 在此基础上,如果希望估计物体的表面,可以用三角网格(Mesh)和面片(Surfel)进行建图;如

    2023年04月18日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包