基于AWSIM实现Autoware docker内仿真运行

AWSIM是Autoware当前推荐使用的仿真工具,内部采用ros2-for-unity插件,能够直接发送ros2消息而不同采用中间转接模块,效率较高。

进行软件开发时各种依赖包的版本管理是让人头疼的问题,特别是在涉及到深度学习功能开发时不同模块依赖不同的版本的cuda及配套工具,问题尤其突出。docker是解决上述依赖问题的较好方案,并且作为轻量级的容器,性能开销极低。

如果AWSIM和Autoware都能够在docker环境中正常运行,将是理想的解决方案。但在实际测试中发现,将AWSIM放入docker会引起不明原因的程序崩溃,鉴于AWSIM软件包独立性较强,我们将AWSIM放在宿主机上直接运行,将Autoware放在docker内运行,基本达到预期。

AWSIM安装步骤:

在Linux上AWSIM运行需要PC配置如下:

Required PC Specs
OSUbutnu 20.04
CPU6cores and 12thread or higher
GPURTX2080Ti or higher
Nvidia Driver (Linux)>=460.27.03

 注1:截至当前,AWSIM基于ubuntu 20.04开发,官方还未发布ubuntu 22.04版本,但autoware目前主分支版本已经切换成ros2 humble,而ros2 humble版本只支持ubuntu 22.04。(使用docker可以轻松的解决上述问题)

注2:系统整体运行显存占用约8G,建议选用显存不小于8G的显卡。

 1. 安装Nvidia驱动

AWSIM运行只需要系统安装Nvidia驱动,不需要安装cuda,驱动的推荐安装方式如下:

// 1. Add Nvidia driver to apt repository.
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update

// 2. Install the recommended version of the driver. 
sudo ubuntu-drivers autoinstall

// 3. Reboot your machine to make the installed driver detected by the system. 
sudo reboot

 2. 安装Vulkan Graphics Library

sudo apt update
sudo apt install libvulkan1

3. 安装ros2 galactic版本

目前ros2 galactic已经停止维护,在ubuntu20.04上的ros2只有foxy版本处于维护状态,但AWSIM只支持galactic版,galactic版本安装步骤如下:

// 1. Set locale
locale  # check for UTF-8
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
locale  # verify settings

// 2. Setup Sources
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

// 3. Install ROS 2 packages
sudo apt update
sudo apt install ros-galactic-ros-base python3-argcomplete

// 4. Environment setup
# Replace ".bash" with your shell if you're not using bash
# Possible values are: setup.bash, setup.sh, setup.zsh
source /opt/ros/galactic/setup.bash

4. 下载安装AWSIM

官方下载地址下载最新AWSIM版本,解压后给AWSIM.x86_64增加可执行权限。

chmod +x <path to AWSIM folder>/AWSIM.x86_64

5. 启动AWSIM

./<path to AWSIM folder>/AWSIM.x86_64

 (1)启动界面

 (2)rostopic list

Autoware安装步骤:

1.  从主仓库检出工程到本地~/autoware目录

// check out awsim-stable branch
git clone https://github.com/autowarefoundation/autoware.git - b awsim-stable
cd autoware

2.  配置开发环境

./setup-dev-env.sh docker

3.  下载仿真地图

官方地址下载仿真地图,下载并解压到本地~/autoware_map目录,启动docker镜像(注:目前awsim-stable分支是基于ros2 galactic版本)

rocker --nvidia --x11 --user --volume $HOME/autoware --volume $HOME/autoware_map -- ghcr.io/autowarefoundation/autoware-universe:galactic-lates

4.  在docker环境中编译Autoware工程

// 1. Move to the workspace in the container
cd autoware

// 2. Create the src directory and clone repositories into it
mkdir src
vcs import src < autoware.repos

// 3. Update dependent ROS packages
sudo apt update
rosdep update
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO

// 4. Build the workspace
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

 AWSIM + Autoware仿真运行:

1.  在docker环境中启动Launch Autoware

source install/setup.bash
ros2 launch autoware_launch e2e_simulator.launch.xml vehicle_model:=sample_vehicle sensor_model:=awsim_sensor_kit map_path:=<your mapfile location>

2.  配置宿主机 ROS2 配置,并启动AWSIM(这是本文核心重点

(1) 创建配置文件 rmw_cyclonedds_cpp.xml

<CycloneDDS>
   <Domain>
     <General>
        <NetworkInterfaceAddress>docker0</NetworkInterfaceAddress>
    </General>
   </Domain>
</CycloneDDS>

(2) 配置RWM

export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
export CYCLONEDDS_URI=<path to rmw_cyclonedds_cpp file folder>/rmw_cyclonedds_cpp.xml

(3)启动AWSIM

./<path to AWSIM folder>/AWSIM.x86_64

3.  仿真运行

(1)Rviz显示界面

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值