当前位置:   article > 正文

Ubuntu18.04利用docker成功安装Autoware的一次记录_autoware.ai docker

autoware.ai docker

整整安装了两周的autoware终于安装好了,中途遇上了太多问题,踩了太多坑。所以我决定记录这次成功的过程,让像我一样的小白能少走弯路。技术小白的成长之路--嘎嘎嘎

先放几个介绍非常清楚的其他博主的教程:

【Ubuntu18.04】Autoware安装_ubuntu18.04安装autoware-CSDN博客

ubuntu18.04安装Autoware1.14---GPU版 最全环境配置说明_autoware1.14安装教程-CSDN博客

像教女朋友一样教你安装Autoware.ai-CSDN博客

简单总结一下:

安装Autoware有两种方式,分别是

  1. 源码安装与编译
  2. 在docker环境中安装Autoware镜像。

利用“源码安装与编译”相较而言更加复杂一些,安装前需要安装特别多的依赖包,比如说ROS、Qt5.14.2、opencv 、GCC、G++、Melodic,对Python环境还有非常严格的要求,比如说在退出anaconda的情况下使用python2.7环境。当然了,你以为解决上述问题就完了?无奈的是在安装完成这些依赖包以后,正式安装Autoware时还会产生各种报错问题,这也是给我整崩溃的导火索。一度准备去淘宝找别人安装了,咨询过程中我发现卖家都是通过这两种方式安装的,源码安装更贵一点,这当然是因为这种方法更难啊。这时我的救兵来了,我发现还可以通过“在docker环境中安装Autoware镜像”的简单方法(可以说,便宜有他便宜的道理啊,docker帮我们把环境都搭好了,直接用起来啊)。之前一直不用这种方法的原因是不太了解docker,docker怎么启动我都不太懂,更别说里面容器的使用方式了。

闲话少说,具体通过“在docker环境中安装Autoware镜像”并启动autoware容器的实操现在开始。

1,安装docker

参考笔者的博客即可:10分钟学会Docker的安装和使用_docker安装-CSDN博客

一些基本的docker操作:

  1. # 启动docker
  2. sudo systemctl start docker
  3. # 查看镜像
  4. docker images
  5. # 查看容器
  6. docker ps -a
  7. # 启动容器 谨慎使用,每使用一次创建一个容器,不小心创建多个的话得删一会了
  8. docker run -it <镜像名> /bin/bash
  9. # 进入容器 想要进入之前启动过的容器的话可以使用的命令
  10. docker attach <容器 ID>
  11. # 退出容器
  12. exit
  13. # 暂停容器
  14. docker stop <容器 ID>
  15. # 启动一个已停止的容器
  16. docker start <容器 ID>
  17. docker restart <容器 ID>
  18. # 删除容器 删除钱需要先暂停容器
  19. docker rm -f <容器 ID>

注意:启动都可会出现服务器端启动失败的问题,即

使用如下方法解决即可:

  1. sudo groupadd docker #添加docker用户组
  2. sudo gpasswd -a $XXX docker #检测当前用户是否已经在docker用户组中,其中XXX为用户名,例如我的,taozi
  3. sudo gpasswd -a $USER docker #将当前用户添加至docker用户组,其中$USER不用改
  4. newgrp docker #更新docker用户组
2,安装docker-nvidia

运行以下指令:

  1. curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
  2. distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
  3. curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
  4. sudo apt-get update
  5. sudo apt-get install -y nvidia-docker2
3,安装autoware的docker版本
  1. git clone https://gitlab.com/autowarefoundation/autoware.ai/docker.git
  2. cd docker/generic
  3. ./run.sh

注意:安装autoware过程中一定要启动docker。

安装完成后编译一下:

  1. cd /home/autoware/Autoware (此目录为工程目录)
  2. colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release #可以忽略,因为docker版本已经编译好了。

编译后再“工程目录”下运行autoware:

  1. source install/setup.bash
  2. roslaunch runtime_manager runtime_manager.launch

注意:若遇到启动后没有弹出可视化界面,并报错:

  1. No protocol specified
  2. Unable to init server: Could not connect: Connection refused

解决方法:将roslaunch添加到访问控制列表即可,在新的命令框中输入以下命令:

xhost local:roslaunch
4,运行autoware时,复制主机数据到容器目录下

多写了这一步的原因是容器它有自己的环境,通过容器启动的autoware仅可以访问容器内部的目录及数据,这样的话没办法使用我准备好的数据。在使用./run.sh进入容器后,退出容器时,容器就会消失,通过docker ps -a就查不到了,所以我只能选择在运行autoware时,将主机目录的数据复制到容器目录下的这种方式。使用的命令如下:

docker cp /path/to/host/file.txt my-container:/path/to/container/

其中,“/path/to/host/file.txt”为主机目录下的文件,“/path/to/container/”为启动容器后容器的目录路径

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/1016547
推荐阅读
相关标签
  

闽ICP备14008679号