python自动驾驶仿真_lgsvl Autoware自动驾驶仿真系统搭建

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

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

你可能感兴趣的:(python自动驾驶仿真)