mkdir autoware_universe
cd autoware_universe/
git clone https://github.com/autowarefoundation/autoware.git -b humble
注意 ROS 的版本
Failed to initialize NVML: Driver/library version mismatch
NVML library version: 550.90
原因是 NVIDIA 内核驱动与系统驱动版本不一致,按照网上提出的方法使用 sudo rmmod nvidia 命令退出当前内核使用的显卡模块,重新加载升级后版本的显卡驱动作为我们的内核模块发现此方法不可行
sudo apt-get purge nvidia*
cat /proc/driver/nvidia/version
发现为 550.90.07
sudo apt-get install nvidia-driver-550 nvidia-settings nvidia-prime
正在解压 libnvidia-compute-550 :amd64 (550.90 .07 -0 ubuntu1) 并覆盖 (550.90 .07 -0 ubuntu0.22.04 .1 ) ...
dpkg : 处理归档 /tmp/apt-dpkg-install-WqT5B5/04 -libnvidia-compute-550 _550.90.07 -0 ubuntu1_amd64.deb (--unpack)时出错:
正试图覆盖 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.550.90 .07 ,它同时被包含于软件包 libnvidia-gl-550 :amd64 550.90 .07 -0 ubuntu0.22.04 .1
dpkg-deb : 错误: 粘贴 子进程被信号(Broken pipe) 终止了
具体是 libnvidia-compute-550 和 libnvidia-gl-550 包在更新时发生了冲突
sudo dpkg --remove --force-remove-reinstreq libnvidia-compute-550 libnvidia-compute-550 :i386
sudo dpkg --remove --force-remove-reinstreq libnvidia-gl-550 libnvidia-gl-550 :i386
sudo apt-get clean
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get -f install
sudo apt-get install nvidia-driver-550 nvidia-settings nvidia-prime
再次使用 nvidia-smi 检查驱动显示驱动正常
鱼香 ros 一键安装:
wget http://fishros.com/install -O fishros && . fishros
sudo apt update && sudo apt install -y \
build-essential \
cmake \
git \
python3-colcon-common-extensions \
python3-flake8 \
python3-pip \
python3-pytest-cov \
python3-rosdep \
python3-setuptools \
python3-vcstool \
wget
python3 -m pip install -U \
flake8-blind-except \
flake8-builtins \
flake8-class-newline \
flake8-comprehensions \
flake8-deprecated \
flake8-docstrings \
flake8-import-order \
flake8-quotes \
pytest-repeat \
pytest-rerunfailures \
pytest \
setuptools
sudo apt-get purge ansible
sudo apt-get -y update
sudo apt-get -y install pipx
python3 -m pipx ensurepath
pipx install
cd autoware/
ansible-galaxy collection install -f -r "ansible-galaxy-requirements.yaml"
sudo apt-get update
sudo apt-get install -y ccache
sudo apt-get install -y git-lfs
git lfs install
pip3 install pre-commit
pip3 install clang-format ==18.1 .8
sudo apt-get install -y golang
sudo apt-get install -y ros-${ROS_DISTRO}-plotjuggler-ros
sudo apt install geographiclib-tools
sudo geographiclib-get -geoids egm2008-1
wget -O /tmp/amd64.env https://raw.githubusercontent.com/autowarefoundation/autoware/main/amd64.env && source /tmp/amd64.env
sudo apt update
rmw_implementation_dashed=$(eval sed -e "s/_/-/g" <<< "${rmw_implementation} " )
sudo apt install ros-${rosdistro} -${rmw_implementation_dashed}
echo '' >> ~/.bashrc && echo "export RMW_IMPLEMENTATION=${rmw_implementation} " >> ~/.bashrc
wget -O /tmp/amd64 .env https://raw.githubusercontent.com/autowarefoundation/autoware/galactic/amd64 .env && source /tmp/amd64 .env
sudo apt install apt-transport-https
sudo sh -c 'echo "deb [trusted=yes] https://s3.amazonaws.com/autonomoustuff-repo/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/autonomoustuff-public.list'
sudo apt update
sudo apt install ros-${rosdistro} -pacmod3
sudo apt install geographiclib-tools
sudo geographiclib-get -geoids egm2008-1
clang_format_version=14.0.6
pip3 install pre-commit clang-format ==${clang_format_version}
sudo add -apt-repository ppa:longsleep/golang-backports
sudo apt install golang
查看 amd64.env, 可以看到推荐的 CUDA 版本为 12.3,在 https://developer.nvidia.com/cuda-toolkit 官网中选择版本,为了避免因为 CUDA 版本太高,cuDNN、TensorRT 无法使用,故下载 CUDA12.0 网页中选择好 CUDA 版本安装 deb 方式安装:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204 /x86 _64 /cuda-keyring_1 .0 -1 _all.deb
sudo dpkg -i cuda-keyring_1 .0 -1 _all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12 -0
设置环境变量
export PATH=/usr/ local/cuda-12.0 /bin:$PATH
export LD_LIBRARY_PATH=/usr/ local/cuda-12.0 /lib64:$LD_LIBRARY_PATH
检查 CUDA 版本:
在官网 https://developer.nvidia.com/rdp/cudnn-archive 下载好 cuDNN v8.9.5 for CUDA12.X 后,解压文件
tar -xvf cudnn-linux-x86 _64 -8.9.5.30 _cuda12 -archive.tar.xz
将解压后的头文件和库复制到 cuda 目录中:
cd cudnn-linux-x86_64-8.9 .5 .30_cuda12-archive/
sudo cp include /cudnn* /usr/local /cuda/include
sudo cp lib/libcudnn* /usr/local /cuda/lib 64
sudo chmod a+r /usr/local/cuda/include /cudnn* /usr/local /cuda/lib 64/libcudnn*
cuDNN 安装完成,查看安装的版本:
cat /usr/local /cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
在官网 https://developer.nvidia.com/nvidia-tensorrt-8x-download 选择 TensorRT 8.6 进行下载后解压:
sudo dpkg -i nv-tensorrt-*.deb
配置环境变量:将 TensorRT 的库路径添加到 LD_LIBRARY_PATH 中,编辑~/.bashrc 文件并添加以下内容:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH :/usr/lib/x86_64-linux-gnu/
重启终端:保存~/.bashrc 文件并执行以下命令使配置生效:
安装完成后,您可以通过运行以下命令验证 TensorRT 是否已成功安装:
cd autoware/
ansible-galaxy collection install -f -r "ansible-galaxy-requirements.yaml"
ansible-playbook autoware.dev_env.download_artifacts -e "data_dir=$HOME /autoware_data" --ask-become-pass
克隆存储库:
cd autoware
mkdir src
vcs import src < autoware.repos
安装依赖的 ROS 包
sudo rosdep init
sudo rosdep update
rosdepc install
source /opt/ros/humble/setup.bash
rosdepc install -y
编译:
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
单独编译某个包:
colcon build --packages-up-to <name-of-pkg>
清理并重新构建:有时候构建过程中的残留文件可能会导致问题。尝试清理以前的构建文件并重新构建项目:
rm -rf build install log
colcon clean
/home/buaa/TensorRT-8.6.1.6/include/NvInferRuntime.h:674:61: error: unused parameter ‘pluginFactory’ [-Werror=unused-parameter] 674 | void const blob, std::size_t size, IPluginFactory pluginFactory) noexcept | ~~~~^~~~~ cc1plus: all warnings being treated as errors gmake[2]: [CMakeFiles/tensorrt_common.dir/build.make:76: CMakeFiles/tensorrt_common.dir/src/tensorrt_common.cpp.o] Error 1 gmake[1]: [CMakeFiles/Makefile2:137: CMakeFiles/tensorrt_common.dir/all] Error 2 gmake: *** [Makefile:146: all] Error 2
这个错误主要是由于编译器将所有警告都视为错误,而 NvInferRuntime.h 中的一个未使用的参数 pluginFactory 触发了这个警告
找到包含 tensorrt_common 包的 CMakeLists.txt 文件:
find . -name "CMakeLists.txt" | grep tensorrt_common
终端输出:
./src /universe /autoware .universe /common /tensorrt_common /CMakeLists .txt
修改 CMakeLists.txt 文件,在 CMakeLists.txt 文件中添加以下行,忽略未使用参数的警告:
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=unused-parameter" )
CMake Warning at CMakeLists.txt:20 (message): cuda, cudnn, tensorrt libraries are not found
export PATH=/usr/local /cuda/bin${PATH:+:${PATH} }
export LD_LIBRARY_PATH=/usr/local /cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH} }
source ~/.bashrc
编译警告 1:
--- stderr: elevation_map_loader CMake Warning at CMakeLists.txt:16 (find_package): By not providing "Findrosbag2_storage_sqlite3.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "rosbag2_storage_sqlite3", but CMake did not find one. Could not find a package configuration file provided by "rosbag2_storage_sqlite3" with any of the following names: rosbag2_storage_sqlite3Config.cmake rosbag2_storage_sqlite3-config.cmake Add the installation prefix of "rosbag2_storage_sqlite3" to CMAKE_PREFIX_PATH or set "rosbag2_storage_sqlite3_DIR" to a directory containing one of the above files. If "rosbag2_storage_sqlite3" provides a separate development package or SDK, be sure it has been installed.
sudo apt-get install ros-$ROS_DISTRO-rosbag2-storage *
编译警告 2: --- stderr: yabloc_pose_initializer CMake Warning (dev) at CMakeLists.txt:12 (find_package): Policy CMP0074 is not set: find_package uses _ROOT variables. Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy command to set the policy and suppress this warning. CMake variable PCL_ROOT is set to: /usr For compatibility, CMake is ignoring the variable. This warning is for project developers. Use -Wno-dev to suppress it.
CMP0074 未设置,而在项目中使用了 find_package 命令,该命令使用了 PCL_ROOT 变量。 在对应的包的 project () 命令之后,find_package () 命令之前,添加
cmake_policy(SET CMP0074 NEW )
使用以下命令来查找功能包所在的位置,例如要寻找上面报错的 yabloc_pose_initializer 包的位置:
colcon list | grep yabloc_pose_initializer
然后单独编译这个包:
colcon build --packages-up-to yabloc_pose_initializer
编译警告 3
--- stderr: bag_time_manager_rviz_plugin CMake Warning (dev) at CMakeLists.txt:7 (find_package): Ignoring EXACT since no version is requested. This warning is for project developers. Use -Wno-dev to suppress it.
没安装 QT5 或者没在~/.bashrc 中指明 QT5 的位置,查询 QT5 是否安装,若安装则或打印出安装位置:
终端输出:
QMake version 3.1 Using Qt version 5.15.3 in /usr/lib/x86_64-linux-gnu
故在~/.bashrc 添加:
export PATH="/usr/lib/x86_64-linux-gnu/qt5/bin:$PATH "
export LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu/qt5/lib:$LD_LIBRARY_PATH "
安装依赖:
sudo apt install libwebkit2 gtk-4 .1 -0 libjavascriptcoregtk-4 .1 -0 libsoup-3 .0 -0 libsoup-3 .0 -common
安装 Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs/ | sh
sudo apt install rustc
验证:
安装 Node.js:
验证 Node.js 安装
安装 npm
下载源码:
安装.deb
sudo dpkg -i autoware-build-gui_1 .0 .3 _amd64 .deb
source install/setup.bash
ros2 launch autoware_launch planning_simulator.launch.xml map_path:=autoware_map/sample-map -planning vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit
请问大佬,如果是人ros galactic的话,只需要把上述步骤中出现humble的改成galactic可以么
是的,要把humble换成galactic