由于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运行