前言:1. 关于整篇文章更新
更新时间:2021/3/10
内容:加入了docker版本的要求及原因,对于.auto在更新过程中的安装步骤变换需要下一次再改一下
2. 课程翻译正在进行中,但是一节课就直接90分钟就很难顶 所以随缘翻译更新吧
翻译进度:
第一课翻译完了 但是审核还没开始所以先贴一个个人B站
正在进行第十四课 高精地图翻译中
参考资料:关于Docker的介绍:Docker 入门教程-阮一峰
建议阅读:Docker-从入门到实践
如果对于版本没有要求的建议,有要求的自行到docker官方平台下载离线包 Install Docker Engine on Ubuntu
以下操作,请确定自己已经换源了,不然下载很慢的 如何给ubuntu换源 点击目录的修改源跳转
sudo apt update
sudo apt install docker.io
sudo usermod -aG docker $USER
#比如我的电脑就是 sudo usermod -aG docker udi
systemctl start docker
systemctl enable docker
申请阿里云加速器,用淘宝/钉钉/支付宝登陆都可以,免费使用的
例如:
问题原因:因为后面需要用到rviz2,需要安装NVIDIA为docker配置的NVIDIA Container Toolki
详情点击此处跳转 而安装这个又需要docker的版本>=18
其实一开始是没有什么版本限制的,不知道为什么我自己的电脑上装的版本是17.01 然后sudo apt install docker.io也一直更新不出来更新的,所以只能上docker官网拉取下载
docker官网上的下载教程
查看自身docker版本:
docker --version
关于ADE介绍:官方网址 ADE Development Environment
课程链接:关于ADE的从进度条23:36开始
官方课程安装ADE教程:Lec1: Course introduction
Autoware官方安装ADE及autoware教程:Autoware.Auto: Installation with ADE
简单介绍:ADE 开发环境是一个基于 Docker 的模块化工具,可确保项目中的所有开发人员都拥有一个共同的,一致的开发环境。
与 ADE 开发人员一起:
- 有信心一台计算机上的内容,将在所有启用了 ADE 的计算机上都起作用
- 可以轻松地安装新的软件包和依赖项,并且可以轻松地恢复环境到其原始状态
- 可以挂载不同的卷(可以是独立的库,IDE 和其他工具),并且可以在这些卷的版本之间轻松切换,而不会影响环境的其他部分
进行到这步的时候请确认你电脑上的docker已经安装并启动
$ cd ${HOME}
$ mkdir adehome
$ cd adehome
$ wget https://gitlab.com/ApexAI/ade-cli/uploads/85a5af81339fe55555ee412f9a3a734b/ade+x86_64
$ mv ade+x86_64 ade
$ chmod +x ade
$ mv ade ~/.local/bin
$ which ade
# Update ade
$ ade update-cli
# Now setup ade
$ touch .adehome
$ cd ~/adehome
$ git clone https://gitlab.com/autowarefoundation/autoware.auto/AutowareAuto.git
$ cd ~/adehome/AutowareAuto
$ ade start #建议先阅读以下下面遇到的错误先解决添加用户进docker用户组的问题
PS: ade start
这一步有点慢 慢慢等就好了
这里可能会需要你上gitlab注册账号创建自己的token (不像github直接clone) emmm
ade start
遇到的错误:permission deniedGot permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/json: dial unix /var/run/docker.sock: connect: permission denied
Traceback (most recent call last):
File "pyinstaller-entry-point", line 4, in <module>
File "ade_cli/cli.py", line 324, in cli
File "site-packages/click/core.py", line 764, in __call__
File "site-packages/click/core.py", line 717, in main
File "site-packages/click/core.py", line 1137, in invoke
File "site-packages/click/core.py", line 956, in invoke
File "site-packages/click/core.py", line 555, in invoke
File "ade_cli/utils.py", line 25, in sync_func
File "asyncio/runners.py", line 43, in run
File "asyncio/base_events.py", line 587, in run_until_complete
File "ade_cli/cli.py", line 169, in ade_start
File "ade_cli/docker.py", line 258, in is_running
File "ade_cli/utils.py", line 112, in shellout
File "ade_cli/utils.py", line 107, in shell
File "ade_cli/utils.py", line 95, in run
File "subprocess.py", line 512, in run
subprocess.CalledProcessError: Command 'docker ps --format '{{.Names}}'' returned non-zero exit status 1.
[22085] Failed to execute script pyinstaller-entry-point
这里的原因是你没有把你自己加入docker用户名中
Add your user to the
docker
group withsudo usermod -aG docker $USER
. Then start your ade as a normal user without sudo.
对于我的电脑来说是,加完后记得重启机器或者是重启docker服务都可以
udi@udi-kin: sudo usermod -aG docker udi
重启机器或者重启docker服务
sudo reboot
OR
sudo systemctl restart docker
ade enter
后能看到自己已经进入了ade所创建的docker环境了
ade enter
差点就忘记了,记得换源哦!
sudo vim /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ bionic main universe
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main universe
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main universe
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main universe
然后:wq
是修改保存的内容
:q!
没有修改不保存,vim
sudo apt update
sudo apt install gedit
用vim真是… 太 难 顶 了
sudo gedit /etc/apt/sources.list.d/ros2-latest.list
deb https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu/ bionic main
ade$ cd AutowareAuto
ade$ vcs import < autoware.auto.$ROS_DISTRO.repos
ade$ colcon build
ade$ colcon test
ade$ colcon test-result
colcon build
遇到的错误:fatal error: autoware_auto_msgs/trajectory.hpp: No such file or directoryGitlab上有人提出这一点:colcon build failed on trajectory.hpp file not found
完整错误截图:
如果你按着上面的步骤还是遇到了这个错误,证明一件事:你没有按照这篇博客的顺序解决问题,这个错误遇到一定是你找着官方课程一的环境设置教程安装的
不同之处在这里: --recurse-submodules
git clone --recurse-submodules https://gitlab.com/autowarefoundation/autoware.auto/AutowareAuto.git
但是这样就会遇到如图所示的错误,解决方案呢就是 删掉重新来(当然不是删docker然而删掉autoware的东西)
首先在你的主机下,rm -rf *
这一步是删除adehome文件夹下的所有文件哦!
cd ~/adehome
rm -rf *
git clone https://gitlab.com/autowarefoundation/autoware.auto/AutowareAuto.git
ade enter
cd AutowareAuto
vcs import < autoware.auto.$ROS_DISTRO.repos
colcon build
ade$ colcon test
ade$ colcon test-result
route_small_loop_rw-127.0.0.1.pcap 官方下载地址
route_small_loop_rw-127.0.0.1.pcap 百度云下载地址 提取码:vfoh
自己在adehome 下建立data的文件夹
cd ~
git clone https://gitlab.com/ApexAI/autowareclass2020.git ~/autowareclass2020
udpreplay ~/data/route_small_loop_rw-127.0.0.1.pcap -l
rviz2 -d /opt/AutowareAuto/share/autoware_auto_examples/rviz2/autoware_perception_stack.rviz
ros2 run velodyne_node velodyne_cloud_node_exe __ns:=/lidar_front __params:=/home/${USER}/autowareclass2020/code/src/01_DevelopmentEnvironment/velodyne_node.param.yaml
ros2 run point_cloud_filter_transform_nodes point_cloud_filter_transform_node_exe __ns:=/lidar_front __params:=/opt/AutowareAuto/share/point_cloud_filter_transform_nodes/param/vlp16_sim_lexus_filter_transform.param.yaml __node:=filter_transform_vlp16_front points_filtered:=/perception/points_in
ros2 run ray_ground_classifier_nodes ray_ground_classifier_cloud_node_exe __ns:=/perception __params:=/opt/AutowareAuto/share/autoware_auto_avp_demo/param/ray_ground_classifier.param.yaml
ros2 run euclidean_cluster_nodes euclidean_cluster_exe __ns:=/perception __params:=/opt/AutowareAuto/share/autoware_auto_avp_demo/param/euclidean_cluster.param.yaml
Setting up NVIDIA Container Toolkit
NVIDIA Container Toolkit 官方github
错误示例:
[ERROR] [rviz2]: Failed to create an OpenGL context. BadIDChoice (invalid resource ID chosen for this connection)
[ERROR] [rviz2]: RenderingAPIException: Unable to create a suitable GLXContext in GLXContext::GLXContext at /tmp/binarydeb/ros-dashing-rviz-ogre-vendor-6.1.6/obj-x86_64-linux-gnu/ogre-master-ca665a6-prefix/src/ogre-master-ca665a6/RenderSystems/GLSupport/src/GLX/OgreGLXContext.cpp (line 60)
[ERROR] [rviz2]: rviz::RenderSystem: error creating render window: RenderingAPIException: Unable to create a suitable GLXContext in GLXContext::GLXContext at /tmp/binarydeb/ros-dashing-rviz-ogre-vendor-6.1.6/obj-x86_64-linux-gnu/ogre-master-ca665a6-prefix/src/ogre-master-ca665a6/RenderSystems/GLSupport/src/GLX/OgreGLXContext.cpp (line 60)
Segmentation fault (core dumped)
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
&& 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
sudo systemctl restart docker
cd ~/adehome/AutowareAuto
ade start -f
In
~/adehome/AutowareAuto/.aderc
try to delte the line with ADE_DISABLE_NVIDIA_DOCKER as mentioned in ade-cli#85 (comment 358628644)
gedit ~/adehome/AutowareAuto/.aderc