lgsvl Autoware自动驾驶仿真系统搭建

1

Autoware在安装过程中会碰到很多坑,这里总结一下我在配置的过程中遇到的一些问题,以及如何在lgsvl上进行Autoware的仿真测试。本节主要包括以下两个模块,

  • Autoware demo演示
  • Autoware lgsvl仿真

简介

首先是Autoware的安装,在1.10版本之后更新变动较大,在仿真器上已经同步支持LGSVL_Simulator和Gazebo。很多同学在配置LGSVL-Autoware仿真环境的时候,在网上找到的都是老版的教程,按照autoware1.7版本上修改而来的,即以下链接:https://github.com/lgsvl/Autoware,本人在安装1.7的版本时候也碰到了不少问题。

就目前Autoware的版本更新来看,不推荐1.7版本。

1570623280446

准备工作

在安装之前,需要确定ubuntu 16.04,安装nvidia驱动、cuda9.0、cudnn7.6

、ROS (kinetic) 和 Qt5.2+。

这里参考我之前的博客

Autoware的安装方式目前有两种,一种是通过docker,另外一种是源码编译的方式,我这里主要是通过源码编译的方式来安装。

编译的时候要用 colcon 编译而不是 catkin_make。简单来说,原本编译 ROS 有 catkin_make,编译 ROS 2 有 ament_tools,colcon 则是统一的编译工具。

catkin_make 编译与 colcon 编译的一个明显区别是,前者会生成 build 和 devel 文件夹,通过 source devel 文件夹中的 setup.bash 文件注册 ROS package 路径, package 的路径在 src 文件夹内 ,即用 roscd 会进入 src 内对应的 package 文件夹中;后者编译完生成 build 和 install 文件夹,通过 source install 文件夹中的 setup.bash 文件注册 package 路径, package 的路径在 install 文件夹内。

Autoware demo演示

首先是安装autoware(只适用于1.12版)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 1. create workspace
mkdir -p autoware.ai/src
cd autoware.ai

# 2. Download the workspace configuration for Autoware.AI.
wget -O autoware.ai.repos "https://gitlab.com/autowarefoundation/autoware.ai/autoware/raw/1.12.0/autoware.ai.repos?inline=false"

# 3. Download Autoware.AI into the workspace.
vcs import src < autoware.ai.repos

# 4. Install dependencies using rosdep.
rosdep update
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO

# 5. Compile the workspaceWith CUDA support
AUTOWARE_COMPILE_WITH_CUDA=1 colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
# Without CUDA Support
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

这里编译完成,可能会出现一些错误,像我之前安装的时候一直报这个错误,经过分析,是系统里面eigen版本有多个或者版本不一致。

TIM图片20191009203307

这里我们的解决办法如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 # 查找并卸载eigen
locate eigen

sudo rm -rf /usr/include/eigen3 /usr/lib/cmake/eigen3 /usr/share/doc/libeigen3-dev /usr/share/pkgconfig/eigen3.pc /var/lib/dpkg/info/libeigen3-dev.list /var/lib/dpkg/info/libeigen3-dev.md5sums

# 安装eigen3.3.7
cd && wget http://bitbucket.org/eigen/eigen/get/3.3.7.tar.gz
mkdir eigen && tar --strip-components=1 -xzvf 3.3.7.tar.gz -C eigen
cd eigen && mkdir build && cd build && cmake ..
sudo make && make install
cd && rm -rf 3.3.7.tar.gz && rm -rf eigen


# 这里eigen默认安装在/usr/local/include/eigen3 , 根据报错信息提示,系统在/usr/include位置没有找到eigen3,所以我们copy一份头文件到此目录即可
sudo cp -r /usr/local/include/eigen3 /usr/local/include

重新执行编译命令,发现还有几个package编译警告信息,但问题不大,这里我直接跳过,后续重新编译的时候发现已经全部通过了,不知为何?

TIM图片20191009203336

启动autoware

1
2
3
cd autoware.ai
source install/setup.bash
roslaunch runtime_manager runtime_manager.launch

我们首先跑一下autoware提供的demo演示

下载数据包及相应地图等文件:

1
2
http://db3.ertl.jp/autoware/sample_data/sample_moriyama_data.tar.gz
http://db3.ertl.jp/autoware/sample_data/sample_moriyama_150324.tar.gz

在simulation选卡项,选择bag包,设置开始时间为140,并播放bag包,

img

打开rviz可视化界面,选择默认的config配置文件,地址在`autoware.ai/src/autoware/documentation/autoware_quickstart_examples/launch/rosbag_demo/default.rviz

在Quick Start选卡项选择map等模块的launch文件地址,并选中确定

img

如图,可在rviz中看到仿真界面

TIM图片20191009203352

Autoware LGSVL配置

下面这里我们开始配置LGSVL模拟器,

img

点击LGSVL按钮发现报错如下:

1
[rosrun] Couldn't find executable named rqt_lgsvl_simulator_configurator below /home/autoware/Autoware/ros/install/lgsvl_simulator_bridge/share/lgsvl_simulator_bridge

Autoware release 历史可以发现,Autoware 1.10 版本加入了对 LGSVL simulator 的支持,在 Runtime_Manager / Simulation 界面添加了 LGSVL Simulator button,成为与 Gazebo 并列的官方支持的仿真平台。

LGSVL simulator 通过 Autoware 启动时需要一些辅助文件,主要是一些 python 脚本文件。在 Autoware 1.10 版本中,这些辅助文件都存放在 /Autoware/ros/src/simulation/lgsvl_simulator/lgsvl_simulator_bridge 路径下,这个路径也是 1.10 版本中的 lgsvl_simulator_bridge package 路径 (后边简称旧路径)。

到了最新的 1.11 版本中,开发人员对 Autoware 做了较大修改,尤其是编译系统采用了 colcon,编译之后 package 路径会定位到 install 文件夹下,例如 lgsvl_simulator_bridge package 的路径就是 /Autoware/ros/install/lgsvl_simulator_bridge/share/lgsvl_simulator_bridge (后边简称新路径),而不是原本的 src 文件夹下。可是,原本启动 simulator 需要的那些辅助文件还在老地方,这就导致了类似如上找不到文件的错误。解决办法如下

  • 旧路径下的整个 resource 文件夹拷贝到新路径下
  • 旧路径下的 plugin.xml 文件拷贝到新路径下
  • 旧路径下的整个 scripts 文件夹拷贝到新路径下
  • 旧路径下的 src/lgsvl_simulator_bridge 文件夹中的 configurator.py 拷贝到新路径的 scripts 文件夹中

最终,新路径下的文档结构应该如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
.
├── cmake
│ ├── lgsvl_simulator_bridgeConfig.cmake
│ └── lgsvl_simulator_bridgeConfig-version.cmake
├── config
│ ├── sample.json
│ └── setting.dat
├── hook
│ ├── cmake_prefix_path.ps1
│ ├── cmake_prefix_path.sh
│ ├── pkg_config.ps1
│ ├── pkg_config.sh
│ ├── python2path.ps1
│ ├── python2path.sh
│ ├── ros_package_path.ps1
│ └── ros_package_path.sh
├── launch
│ ├── bridge.launch
│ └── lgsvl_simulator.launch
├── media
│ ├── autoware.png
│ └── lgsvl_simulator_bridge.png
├── package.bash
├── package.ps1
├── package.sh
├── package.xml
├── package.zsh
├── plugin.xml
├── resource
│ └── LgsvlSimulatorConfigratorPlugin.ui
├── rviz
│ └── lgsvl_simulator.rviz
└── scripts
├── configurator.py
├── launch_sim.bash
└── rqt_lgsvl_simulator_configurator

再重新启动Autoware,检查一下启动 LGSVL Simulator 是否出现如下配置界面,如果成功,则说明越过了这个坑。

1
roslaunch runtime_manager runtime_manager.launch

1570626129730

后续安装模拟器和测试再写

-------------    本文结束  感谢您的阅读    -------------
胡想成 wechat
欢迎关注个人公众号!
您的支持,是我装逼的最大动力!

本文标题:lgsvl Autoware自动驾驶仿真系统搭建

文章作者:胡想成

发布时间:2019年10月09日 - 20:10

最后更新:2020年09月02日 - 21:09

原始链接:xchu.net/2019/10/09/lgsvl-autoware自动驾驶仿真系统配置/

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0许可协议,转载请注明出处!