Ubuntu20.04 installe Autoware.universe et le débogage conjoint avec Awsim


introduction

Cet article présente les étapes d'installation détaillées d'Autoware.universe dans Ubuntu20.04, basé sur ROS2 Galactic, son site officiel : Autoware Documentation
insérez la description de l'image ici

注意: Sélectionnez Galacticla version dans le coin supérieur gauche
Effet de course final :
insérez la description de l'image ici

1. Dépendances d'installation

Lors de l'installation automatique des dépendances à l'étape 3, vous pouvez installer ROS2 Galactic ensemble, ou vous pouvez l'installer manuellement à l'avance.

1.1 installer git

sudo apt-get -y update
sudo apt-get -y install git

1.2 Cloner Autoware en local

mkdir autoware_universe
cd autoware_universe/
git clone https://github.com/autowarefoundation/autoware.git -b galactic

1.3 Installer automatiquement les dépendances associées

cd autoware
./setup-dev-env.sh

insérez la description de l'image ici

Après avoir essayé cela, cela ne fonctionne pas, puis je vais tout installer manuellement, et suivre le lien officiel pour entrer chaque étape pour obtenir la commande d'installation (: Après avoir 注意entré, il est nécessaire 选择Galactic版本, comme indiqué dans le coin supérieur gauche de l'image ci-dessous, mais l'officiel a en fait un petit problème, vous pouvez vous référer à mes étapes ci-dessous):
insérez la description de l'image ici
insérez la description de l'image ici

1.4 Installer le pilote graphique

Afficher les cartes graphiques recommandées

ubuntu-drivers devices

insérez la description de l'image ici

Installez la version de carte graphique recommandée, voici la version 535

sudo apt-get install nvidia-driver-535

Pour sélectionner la version, sinon le noyau sera automatiquement mis à jour. Mais quand j'installerai le 535, l'écran sera noir, et je ne pourrai installer que le 510. Comme c'est un système nouvellement installé, la mise à jour du noyau n'aura pas beaucoup d'impact. De plus, si la version d'installation est trop basse, elle n'aura pas fonctionner, car la version minimale est requise pour installer CUDA ci-dessous.

1.5 Installer ROS2 Galactic

Installation en un clic de Yuxiang ros :

wget http://fishros.com/install -O fishros && . fishros
  • Sélectionnez [1] : Installation en un clic : ROS (prend en charge ROS et ROS2, Raspberry Pi Jetson)
  • Sélectionnez [1] : Modifier la source du système et poursuivre l'installation. Si vous avez déjà modifié la source, vous pouvez choisir [2] pour ne pas modifier la source
  • Sélectionnez [2] : remplacer les sources système et nettoyer les sources tierces
  • Sélectionnez [3] : galactique (ROS2)
  • Sélectionnez [1] : version de bureau galactique (ROS2)
    insérez la description de l'image ici

1.6 Installer ros2_dev_tools

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

insérez la description de l'image ici

Si l'erreur ci-dessus est signalée, installez les dépendances :

sudo apt install python3-testresources

Si vous rencontrez des problèmes avec les commandes suivantes, vous pouvez vous référer à l'article : Installer la coexistence de ROS1 et ROS2 sur Ubuntu 20.04 en même temps , ou utiliser Yuxiang ROS rosdepc

sudo rosdep init
rosdep update

1.7 Installer rmw_implementation

# wget -O /tmp/amd64.env https://raw.githubusercontent.com/autowarefoundation/autoware/main/amd64.env && source /tmp/amd64.env
# 注意官网给的是mian,humble的,需要改成galactic
wget -O /tmp/amd64.env https://raw.githubusercontent.com/autowarefoundation/autoware/galactic/amd64.env && source /tmp/amd64.env

Si la première phrase signale le problème suivant : Connexion refusée, il y a deux solutions ( 推荐第二种)
(1) Internet scientifique
(2) amd64.env est la variable d'environnement de certaines versions logicielles correspondantes, nous l'avons d'ailleurs téléchargée dans la section 1.2, il suffit de cliquer la source ok

cd autoware_universe/
source amd64.env

insérez la description de l'image ici

# For details: https://docs.ros.org/en/galactic/How-To-Guides/Working-with-multiple-RMW-implementations.html
sudo apt update
rmw_implementation_dashed=$(eval sed -e "s/_/-/g" <<< "${rmw_implementation}")
sudo apt install ros-${rosdistro}-${rmw_implementation_dashed}

# (Optional) You set the default RMW implementation in the ~/.bashrc file.
echo '' >> ~/.bashrc && echo "export RMW_IMPLEMENTATION=${rmw_implementation}" >> ~/.bashrc

La phrase suivante signale l'erreur suivante et modifie la variable de version ROS en galactic (cette erreur est signalée car le fichier amd.
insérez la description de l'image ici

1.8 installer pacmod

# wget -O /tmp/amd64.env https://raw.githubusercontent.com/autowarefoundation/autoware/galactic/amd64.env && source /tmp/amd64.env
cd autoware_universe/
source amd64.env

# Taken from https://github.com/astuff/pacmod3#installation
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

Wget a déjà été traité une fois, ici vous ne pouvez que sourcer (copiez-le à nouveau si vous ne le trouvez pas)

1.9 Installer autoware_core

pip3 install gdown

1.10 Installer les dépendances de l'univers autoware

sudo apt install geographiclib-tools

# Add EGM2008 geoid grid to geographiclib
# 下面过程很慢,耐心等待
sudo geographiclib-get-geoids egm2008-1

1.11 installer pre_commit

clang_format_version=14.0.6
pip3 install pre-commit clang-format==${clang_format_version}

# Install Golang (Add Go PPA for shfmt)
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt install golang

1.12 Installer CUDA

# wget -O /tmp/amd64.env https://raw.githubusercontent.com/autowarefoundation/autoware/galactic/amd64.env && source /tmp/amd64.env
cd autoware_universe/
source amd64.env

# Modified from:
# https://developer.nvidia.com/cuda-11-4-4-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=deb_network
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
sudo apt-get update
cuda_version_dashed=$(eval sed -e "s/[.]/-/g" <<< "${cuda_version}")
sudo apt install cuda-${cuda_version_dashed} --no-install-recommends

En règle générale, le processus ci-dessus sera installé avec succès, mais l'erreur suivante peut être signalée lors de la dernière étape de l'installation. Il existe deux solutions (la seconde est recommandée) :
insérez la description de l'image ici

(1) Utilisez aptitude pour ajuster la version de la dépendance (à utiliser avec prudence, 建议utilisez la deuxième méthode)

sudo apt-get install aptitude
sudo aptitude install cuda-${cuda_version_dashed}

--no-install-recommendsLe paramètre est utilisé pour interdire l'installation de packages logiciels supplémentaires recommandés lors de l'installation de packages logiciels. Seuls les composants principaux de CUDA 11.6 sont installés, ce qui peut aider à réduire le nombre de packages logiciels installés, à économiser de l'espace disque et à réduire la redondance dans le système, et peut être annulé s'il n'est pas nécessaire.
Sélectionner Y réinstallera le pilote de la carte graphique (le mien réinstallera le 535, mais l'écran sera noir, donc cette méthode n'est pas utilisée)
(2) Utilisez la méthode d'installation manuelle :

nvidia-smi

Vérifiez que la version la plus élevée de CUDA prise en charge par le pilote de la carte graphique est 12.1, accédez à cuda-toolkit-archive , sélectionnez la version CUDA requise (de préférence 11.6.2 écrite en env) à télécharger, comme indiqué dans la figure ci-dessous, sélectionnez runfile( local), et utilisez la commande générée pour télécharger et installer
insérez la description de l'image ici
insérez la description de l'image ici
insérez la description de l'image ici
insérez la description de l'image ici

Appuyez sur Entrée pour annuler l'installation du pilote de la carte graphique, puis sélectionnez l'installation finale :
insérez la description de l'image ici
insérez la description de l'image ici

Une fois l'installation réussie, l'environnement est configuré et la variable d'environnement est ajoutée à la fin du fichier .bashrc :

sudo gedit ~/.bashrc
# 添加以下内容:
export PATH=/usr/local/cuda-11.6/bin${
    
    PATH:+:${
    
    PATH}} 
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

Ou entrez la commande suivante dans le terminal pour ajouter :

# Taken from: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions
echo 'export PATH=/usr/local/cuda-11.6/bin${PATH:+:${PATH}}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc

Vérifier que l'installation a réussi

nvcc -V

insérez la description de l'image ici

1.13 Installer cuDNN et TensorRT

# wget -O /tmp/amd64.env https://raw.githubusercontent.com/autowarefoundation/autoware/galactic/amd64.env && source /tmp/amd64.env
cd autoware_universe/
source amd64.env

# Taken from: https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html#installing
sudo apt-get install libcudnn8=${cudnn_version} libcudnn8-dev=${cudnn_version}
sudo apt-mark hold libcudnn8 libcudnn8-dev
sudo apt-get install libnvinfer8=${tensorrt_version} libnvonnxparsers8=${tensorrt_version} libnvparsers8=${tensorrt_version} libnvinfer-plugin8=${tensorrt_version} libnvinfer-dev=${tensorrt_version} libnvonnxparsers-dev=${tensorrt_version} libnvparsers-dev=${tensorrt_version} libnvinfer-plugin-dev=${tensorrt_version}
sudo apt-mark hold libnvinfer8 libnvonnxparsers8 libnvparsers8 libnvinfer-plugin8 libnvinfer-dev libnvonnxparsers-dev libnvparsers-dev libnvinfer-plugin-dev

2. Compilez le code source

2.1 Télécharger la base de code de l'univers

(1) Créez le dossier src

cd autoware_universe/
mkdir src

(2) Modifier le fichier autoware.repos

sudo gedit autoware.repos

Dans le fichier autoware.repos, ajoutez le contenu suivant à la ligne 28

universe/external/open_planner:
    type: git
    url: https://github.com/ZATiTech/open_planner.git
    version: main

(3) Téléchargez la bibliothèque de codes sur le local

vcs import src < autoware.repos

insérez la description de l'image ici

2.2 Installer le package de dépendance Autoware ROS

(1) Installer rosdep

wget http://fishros.com/install -O fishros && . fishros
# 选择[3]:一键配置:rosdep(小鱼的rosdepc,又快又好用)
rosdep update --include-eol-distros  # 科学上网或者多试几次

(2) Installer les dépendances ROS

source /opt/ros/galactic/setup.bash
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO

Une erreur est signalée lors de l'installation des dépendances ROS :

/usr/bin/pip3:6: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
from pkg_resources import load_entry_point

insérez la description de l'image ici

Référence https://blog.csdn.net/yuteng12138/article/details/130123995 :

pip install --upgrade --user setuptools==58.3.0

La version de dépendance est trop élevée lors de l'installation :

ros-galactic-tvm-vendor : Depends: ocl-icd-opencl-dev but it is not going to be installed

insérez la description de l'image ici
Utilisez aptitude pour rétrograder les dépendances : conservez N tel quel, puis entrez y all

sudo aptitude install ros-galactic-tvm-vendor

insérez la description de l'image ici

Lors de l'installation des dépendances ROS, l'installation d'open3d est lente et le problème d'erreur peut être renvoyé à : https://blog.csdn.net/yuteng12138/article/details/130123620

pip install open3d

insérez la description de l'image ici

2.3 Compiler l'espace de travail

colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

S'il se fige ou se bloque pendant le processus de compilation, ou d'autres problèmes, vous pouvez essayer plusieurs fois ou vous référer à l'officiel : build-issues
lance simplement Universe, $HOME/autoware_map/sample-map-planning est la carte téléchargée depuis le officiel :

source install/setup.bash
ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/autoware_map/sample-map-planning vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kitre_launch/launch/autoware.launch.xml map_path:=/home/universe/autoware_universe/op_carla/Town01 vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit

insérez la description de l'image ici

3. Installez Awsim

Reportez-vous au tutoriel officiel AWSIM v1.0.1 , dépendances d'installation :

sudo apt update
sudo apt install libvulkan1

Téléchargez le fichier binaire Awsim : AWSIM_v1.0.1.zip , après l'exécution de la décompression :

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

insérez la description de l'image ici

Actuellement, le simulateur officiel a relativement peu de fonctions. Seule la barre de progression ci-dessous permet d'ajuster la fréquence de rendu.
Après ouverture, vous pouvez voir les messages de capteur émis par le simulateur et les messages de contrôle du châssis reçus :

ros2 topic list

insérez la description de l'image ici

4. Débogage conjoint d'Autoware et d'Awsim

Téléchargez d'abord la carte du simulateur : nishishinjuku_autoware_map.zip , y compris les cartes de haute précision et les cartes de nuages ​​de points.
Démarrez Awsim et Autoware en même temps, faites attention à remplacer l'adresse de la carte que vous avez téléchargée

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

# 新开一个终端
cd autoware_universe
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>

Utilisez RViz pour définir manuellement 2D Pose Estimate, utilisez RViz pour définir manuellement la pose d'objectif 2D, définissez 2d Checkpoint Pose(facultatif), la génération de chemin.
insérez la description de l'image ici

Démarrez un nouveau terminal, publiez le message suivant (ou cliquez sur Engage in RVIZ) et démarrez le pilote automatique :

ros2 topic pub /autoware/engage autoware_auto_vehicle_msgs/msg/Engage '{engage: True}' -1

insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/zardforever123/article/details/132029636
conseillé
Classement