Autoware—AI版本的部署

由于LIO-SAM在公园等树木多特征少的场景效果不太好,但NDT是集成在Autoware.ai 1.x版本里的,这里记录下部署编译过程。

由于Autoware.ai 1.x版本源码编译只支持到Ubuntu 18,手上已经没有这个版本的设备,所以这里直接在Ubuntu 20.04下用docker环境来编译。

一、安装Docker

具体Docker安装方法不再赘述,详见:

二、部署Autoware.ai

1. 使用官方镜像

1.1 下载并启动镜像

也可以参考Installation手动部署官方镜像并进行修改:

# source code
git clone https://github.com/autowarefoundation/autoware_ai_docker.git autoware.ai

# run docker
cd ~/autoware.ai/generic
./run.sh  --cuda on          # use cuda
1.2 容器内编译和运行Autoware
# 进入容器
cd ~/autoware.ai/
./open.sh

# 使用编译缓存
sudo apt install -y ccache
ccache -s

# 编译Autoware目录源码
cd ~/Autoware
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
# or with cuda
AUTOWARE_COMPILE_WITH_CUDA=1 colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

# 启动autoware
source ~/Autoware/install/setup.bash
roslaunch runtime_manager runtime_manager.launch
1.3 移动源码到挂载目录

为了方便在宿主机直接修改代码,在docker内编译,我们这里把源码移动到挂载目录内:

# 进入容器
cd ~/autoware.ai/
./open.sh

# 备份官方的Autoware代码到宿主机share目录
mv Autoware ~/shared_dir/Autoware

# 自动加载autoware
vim ~/.bashrc source
    source ~/Autoware/install/setup.bash
1.4 保存参数到源码

默认情况下runtime_manager界面上的修改会保存到./Autoware/install/runtime_manager/lib/runtime_manager/param.yaml,这个文件并不受版本库控制,导致重启docker或更换设备后所有的配置都要手动配一遍,太过繁琐。

我们这里把这个文件改为软链,加到autoware代码管理里,方便退出docker能保存到pc,同时方便多设备同步配置参数:

# backup docker param.yaml to src
cp ~/Autoware/install/runtime_manager/lib/runtime_manager/param.yaml ~/Autoware/src/autoware/utilities/runtime_manager/scripts/

# add param.yaml install
vim shared_dir/Autoware/src/autoware/utilities/runtime_manager/CMakeLists.txt
install(
  FILES
    #other yaml file
    scripts/setup.yaml
    scripts/map.yaml
    scripts/sensing.yaml
    ... 
    # add param.yaml
    scripts/param.yaml
)

# rebuild
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-select runtime_manager
or
ln -s ~/Autoware/src/autoware/utilities/runtime_manager/scripts/param.yaml ~/Autoware/install/runtime_manager/lib/runtime_manager/param.yaml

# check install->src link
ll ~/Autoware/install/runtime_manager/lib/runtime_manager/param.yaml
    lrwxrwxrwx 1 autoware autoware 81 Dec  5 06:14 /home/autoware/Autoware/install/runtime_manager/lib/runtime_manager/param.yaml -> /home/autoware/Autoware/src/autoware/utilities/runtime_manager/scripts/param.yaml
1.5 安装其他ROS组件
# 配置ros源(ustc的源最好最快)
sudo sh -c '. /etc/lsb-release && echo "deb [arch=$(dpkg --print-architecture)] http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
# 添加公钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
# 或  curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
# 更新apt包列表
sudo apt update
# 安装车辆模型显示包
sudo apt install ros-melodic-joint-state-publisher-gui
1.6 根据当前容器创建新镜像
# 保存容器内的变化
docker ps
docker commit -a "yanjingang" -m "autoware.ai latest-melodic-base-cuda" 0d9e8e0b0998 yanjingang/autoware:latest-melodic-base-cuda
# docker commit -a "yanjingang" -m "autoware.ai latest-melodic-base" 2ce41d2f80d0 yanjingang/autoware:latest-melodic-base

# push镜像到hub
docker image list
docker login
docker push yanjingang/autoware:latest-melodic-cuda

# 使用新镜像
vim ~/autoware.ai/generic/run.sh
    IMAGE_NAME="yanjingang/autoware"
    TAG_PREFIX="latest"

# 重启docker
cd ~/autoware.ai/generic/
./run.sh --cuda on -b $HOME/autoware.ai/shared_dir/Autoware     # use cuda, mount local code
# ./run.sh --cuda off -b $HOME/autoware.ai/shared_dir/Autoware  # without cuda, mount local code

2. 直接使用新镜像

完成一次以上步骤后,其他设备上就可以直接用这个已经适配好的镜像:

2.1 下载镜像
# 下载镜像
docker login
docker pull yanjingang/autoware:latest-melodic-base-cuda    # with cuda
# docker pull yanjingang/autoware:latest-melodic-base       # without cuda

# 下载autoware配置和脚本
git clone git@gitee.com:cyber-robotics/autoware.ai.git
2.2 运行Autoware
# 启动容器
cd ~/autoware.ai/generic
./run.sh --cuda on -b $HOME/autoware.ai/shared_dir/Autoware  -i yanjingang/autoware    # use cuda, mount local code, use my image
# ./run.sh --cuda off -b $HOME/autoware.ai/shared_dir/Autoware  -i yanjingang/autoware # without cuda, mount local code, use my image

# 编译autoware
cd ~/Autoware
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

# 启动autoware
source ~/Autoware/install/setup.bash
roslaunch runtime_manager runtime_manager.launch

 

yan 24.11.18

 

 

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行

欢迎关注下方“非著名资深码农“公众号进行交流~

发表评论

邮箱地址不会被公开。