【Autoware Lec1】 Autoware ROS2版本学习

ROS2版本下的autoware 开发环境安装

  • docker
    • 第一步:安装
    • 第二步:开启服务
    • 第三步:docker镜像加速
    • 关于docker的问题
      • 版本
  • ADE 开发环境
      • `ade start` 遇到的错误:permission denied
    • 为ade的环境进行换源
    • 为ade的ROS换源
  • AutowareAuto
    • ade自带已配置好
    • colcon build 源码编译
        • `colcon build` 遇到的错误:fatal error: autoware_auto_msgs/trajectory.hpp: No such file or directory
  • colcon test
    • Run object detection demo
    • 遇到的错误:rviz2 用不了
      • 安装 NVIDIA Container Toolkit
      • 将NVIDIA_DOCKER一行删除
    • 遇到问题:Package 'velodyne_node' not found

前言:1. 关于整篇文章更新
更新时间:2021/3/10
内容:加入了docker版本的要求及原因,对于.auto在更新过程中的安装步骤变换需要下一次再改一下
2. 课程翻译正在进行中,但是一节课就直接90分钟就很难顶 所以随缘翻译更新吧
翻译进度:
第一课翻译完了 但是审核还没开始所以先贴一个个人B站
正在进行第十四课 高精地图翻译中

docker

参考资料:关于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

在这里插入图片描述

第三步:docker镜像加速

申请阿里云加速器,用淘宝/钉钉/支付宝登陆都可以,免费使用的
【Autoware Lec1】 Autoware ROS2版本学习_第1张图片
例如:
【Autoware Lec1】 Autoware ROS2版本学习_第2张图片

关于docker的问题

版本

问题原因:因为后面需要用到rviz2,需要安装NVIDIA为docker配置的NVIDIA Container Toolki 详情点击此处跳转 而安装这个又需要docker的版本>=18
其实一开始是没有什么版本限制的,不知道为什么我自己的电脑上装的版本是17.01 然后sudo apt install docker.io也一直更新不出来更新的,所以只能上docker官网拉取下载
docker官网上的下载教程

查看自身docker版本:

docker --version

ADE 开发环境

关于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
【Autoware Lec1】 Autoware ROS2版本学习_第3张图片

ade start 遇到的错误:permission denied

Got 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 with sudo 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 start完结后:(就是非常慢、极其的慢)
【Autoware Lec1】 Autoware ROS2版本学习_第4张图片

ade enter 后能看到自己已经进入了ade所创建的docker环境了

ade enter

【Autoware Lec1】 Autoware ROS2版本学习_第5张图片

为ade的环境进行换源

差点就忘记了,记得换源哦!

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真是… 太 难 顶 了

为ade的ROS换源

sudo gedit /etc/apt/sources.list.d/ros2-latest.list
deb https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu/ bionic main

AutowareAuto

ade自带已配置好

colcon build 源码编译

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 directory

Gitlab上有人提出这一点:colcon build failed on trajectory.hpp file not found

完整错误截图:
【Autoware Lec1】 Autoware ROS2版本学习_第6张图片
如果你按着上面的步骤还是遇到了这个错误,证明一件事:你没有按照这篇博客的顺序解决问题,这个错误遇到一定是你找着官方课程一的环境设置教程安装的
不同之处在这里: --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

【Autoware Lec1】 Autoware ROS2版本学习_第7张图片

colcon test

ade$ colcon test
ade$ colcon test-result

Run object detection demo

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

遇到的错误:rviz2 用不了

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)

安装 NVIDIA Container Toolkit

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

将NVIDIA_DOCKER一行删除

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

遇到问题:Package ‘velodyne_node’ not found

你可能感兴趣的:(Ubuntu,&,ROS,Self-Driving,无人驾驶)