由于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
# 编译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
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 根据当前容器创建新镜像
# 保存容器内的变化
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