目录
[前言]
Docker介绍
Docker使用步骤
1.将.tar文件导入docker中
2.查看镜像是否成功导入
3. 将镜像生成容器
4.docker使用方法
[前言]
本文主要介绍了使用docker-slam进行建图实验,博主的Ubuntu系统的内存不够用了,跑不了Docker,是在别人的电脑上跑的,故这里就无法提供相关的材料及压缩包。
写这篇博客的目的是了解docker及其使用步骤,也方便自己后续复习,同时将知识分享给他人。
Docker介绍
在开始之前,我们思考一下,docker是什么?为什么要使用docker?
概念:docker翻译为容器/码头工人。是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可抑制的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。
原因:Docker可以让开发者打包他们的应用以及依赖,打包到轻量级、可移植的容器中,然后发布到任何一个流行的Linux服务器上,也可以实现虚拟化。也就是说打包了之后,可以做到将用户的app及其运行环境实现“一次封装,到处运行”。
配置docker:这里推荐小鱼的一键安装代码
wget http://fishros.com/install -O fishros && . fishros
Docker使用步骤
1.将.tar文件导入docker中
//此处输入自己电脑存放slam.tar的位置
//eg:
docker load < /home/ys/桌面/shiyanzhou/slam.tar
2.查看镜像是否成功导入
docker image ls
3. 将镜像生成容器
sudo docker run -dit --name=slam --privileged --network=host -v /home/ys/桌面/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
但是到了这一步会报错:
docker: Error response from daemon: Conflict. The container name is already in use by container You have to remove (or rename) that container to be able to reuse that name.
意思是在此之前已经启动了相同名字的docker容器,我们需要删除这个container:
docker rm YOUR_CONTAINER_NAME
有时可能删除失败,原因是container正在运行,只需要让它停下:
docker stop YOUR_CONTAINER_NAME
OK!重新执行,生成容器,成了!
4.docker使用方法
接下来,我们需要进入容器了,新建终端:
docker exec -it slam /bin/bash
Look!进入容器后,终端命令行的开头都发生了变化!
进入root(所有建图方法放在/root目录下):
cd /root/bag
rosbag play all_2023-12-25-02-59-36.bag
正常来说,到了这里会报错,我们需要新建一个终端roscore一下:
roscore
roscore是用来启动ros master,是运行ros系统前首先运行的命令,publisher与subscriber在交流之前需要通过master确认话题是否一致,然后再基于服务通讯协议,再脱离master进行通信
重新运行:
rosbag play all_2023-12-25-02-59-36.bag
建图算法放在/root/slam文件夹下,相关编译完成,可以直接运行,在上一步所有传感器成功驱动之后,建图算法启动流程如下:
//新建终端,进入容器
docker exec -it slam /bin/bash
cd /root/slam/liorf
source devel/setup.bash
roslaunch liorf run_lio_sam_default.launch
这时,可能会报错,出现[rviz-3] process has died
我们只需要在新建终端输入(宿主机即可,不需要进去容器):
xhost +
xhost命令是X服务器的访问控制工具,用来控制哪些X客户端能够在X服务器上显示。
xhost+的作用是关闭访问控制,允许任何主机访问本地的X服务器
之后重新:
roslaunch liorf run_lio_sam_default.launch
ok!成功运行!
这里附上过程图:文章来源:https://www.toymoban.com/news/detail-801451.html
文章来源地址https://www.toymoban.com/news/detail-801451.html
到了这里,关于Docker搭建SLAM进行建图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!