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版本。
准备工作
在安装之前,需要确定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版本有多个或者版本不一致。
这里我们的解决办法如下
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编译警告信息,但问题不大,这里我直接跳过,后续重新编译的时候发现已经全部通过了,不知为何?
启动autoware
1
2
3cd autoware.ai
source install/setup.bash
roslaunch runtime_manager runtime_manager.launch
我们首先跑一下autoware提供的demo演示
下载数据包及相应地图等文件:
1
2http://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包,
打开rviz可视化界面,选择默认的config配置文件,地址在`autoware.ai/src/autoware/documentation/autoware_quickstart_examples/launch/rosbag_demo/default.rviz
在Quick Start选卡项选择map等模块的launch文件地址,并选中确定
如图,可在rviz中看到仿真界面
Autoware LGSVL配置
下面这里我们开始配置LGSVL模拟器,
点击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 是否出现如下配置界面,如果成功,则说明越过了这个坑。
1roslaunch runtime_manager runtime_manager.launch
后续安装模拟器和测试再写