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

整整安装了两周的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操作:

# 启动docker
sudo systemctl start docker

# 查看镜像
docker images

# 查看容器
docker ps -a
# 启动容器 谨慎使用,每使用一次创建一个容器,不小心创建多个的话得删一会了
docker run -it <镜像名> /bin/bash
# 进入容器 想要进入之前启动过的容器的话可以使用的命令
docker attach <容器 ID>
# 退出容器
exit
# 暂停容器
docker stop <容器 ID>
# 启动一个已停止的容器
docker start <容器 ID>
docker restart <容器 ID>
# 删除容器 删除钱需要先暂停容器
docker rm -f <容器 ID>

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

使用如下方法解决即可:

sudo groupadd docker #添加docker用户组

sudo gpasswd -a $XXX docker #检测当前用户是否已经在docker用户组中,其中XXX为用户名,例如我的,taozi

sudo gpasswd -a $USER docker #将当前用户添加至docker用户组,其中$USER不用改

newgrp docker #更新docker用户组
2,安装docker-nvidia

运行以下指令:

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

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

安装完成后编译一下:

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

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

source install/setup.bash
roslaunch runtime_manager runtime_manager.launch

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

No protocol specified
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/”为启动容器后容器的目录路径

  • 23
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值