赞
踩
整整安装了两周的autoware终于安装好了,中途遇上了太多问题,踩了太多坑。所以我决定记录这次成功的过程,让像我一样的小白能少走弯路。技术小白的成长之路--嘎嘎嘎
先放几个介绍非常清楚的其他博主的教程:
【Ubuntu18.04】Autoware安装_ubuntu18.04安装autoware-CSDN博客
ubuntu18.04安装Autoware1.14---GPU版 最全环境配置说明_autoware1.14安装教程-CSDN博客
简单总结一下:
安装Autoware有两种方式,分别是
利用“源码安装与编译”相较而言更加复杂一些,安装前需要安装特别多的依赖包,比如说ROS、Qt5.14.2、opencv 、GCC、G++、Melodic,对Python环境还有非常严格的要求,比如说在退出anaconda的情况下使用python2.7环境。当然了,你以为解决上述问题就完了?无奈的是在安装完成这些依赖包以后,正式安装Autoware时还会产生各种报错问题,这也是给我整崩溃的导火索。一度准备去淘宝找别人安装了,咨询过程中我发现卖家都是通过这两种方式安装的,源码安装更贵一点,这当然是因为这种方法更难啊。这时我的救兵来了,我发现还可以通过“在docker环境中安装Autoware镜像”的简单方法(可以说,便宜有他便宜的道理啊,docker帮我们把环境都搭好了,直接用起来啊)。之前一直不用这种方法的原因是不太了解docker,docker怎么启动我都不太懂,更别说里面容器的使用方式了。
闲话少说,具体通过“在docker环境中安装Autoware镜像”并启动autoware容器的实操现在开始。
参考笔者的博客即可: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用户组
运行以下指令:
- 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
- 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
多写了这一步的原因是容器它有自己的环境,通过容器启动的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/”为启动容器后容器的目录路径
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。