La configuration de base de la plateforme de simulation de drone basée sur ROS et PX4 sous Ubuntu 18.04

La configuration de base de la plateforme de simulation de drone basée sur ROS et PX4 sous Ubuntu 18.04

Documents de référence:
https://www.yuque.com/xtdrone/manual_cn/basic_config_1.11
https://blog.csdn.net/qq_42585108/article/details/106781596
https://blog.csdn.net/qq_44830040/article / details / 106049992
https://blog.csdn.net/abc869788668/article/details/78323395?locationNum=8&fps=1

Le projet XTDrone de Xiao Kun a été utilisé pour la construction de la plate-forme de simulation d'UAV. Merci beaucoup. La page Web associée: https://gitee.com/robin_shaun/XTDrone. Ici, je ne suis qu'un résumé de la construction de la plate-forme de simulation d'UAV.
Cet article n'est qu'un résumé et une expérience d'installation personnelle basée sur ces articles. Il peut y avoir de nombreuses citations au milieu. S'il s'agit d'une infraction, veuillez me contacter pour le supprimer.

Système Ubuntu18.04, j'ai commencé l'installation à partir d'un Ubuntu fraîchement installé, étape par étape, et j'ai intégré certaines méthodes de construction de réseau et les problèmes rencontrés, et je les ai enregistrés pour votre référence. S'il y a une erreur, veuillez me corriger.

Une installation dépendante

1,

sudo apt install -y \
ninja-build \
exiftool \
python-argparse \
python-empy \
python-toml \
python-numpy \
python-yaml \
python-dev \
python-pip \
ninja-build \
protobuf-compiler \
libeigen3-dev \
genromfs \
xmlstarlet \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev

2 、

pip install \
pandas \
jinja2 \
pyserial \
cerberus \
pyulog \
numpy \
toml \
pyquaternion

Si l'erreur suivante se produit, vous pouvez d'abord mettre à jour setuptools et pip

Collecting pandas
  Using cached https://files.pythonhosted.org/packages/64/f1/8fdbd74edfc31625d597717be8c155c6226fc72a7c954c52583ab81a8614/pandas-1.1.2.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-qtvsjq8t/pandas/setup.py", line 349
        f"{extension}-source file '{sourcefile}' not found.\n"
                                                             ^
    SyntaxError: invalid syntax
    
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-qtvsjq8t/pandas/
pip install --upgrade setuptools
#若未报错不需要输入这两行命令
python -m pip install --upgrade pip

Deux, installation ROS

Pour l'installation, veuillez vous
référer au site officiel de ROS: http://wiki.ros.org/Installation/Ubuntu ou reportez-vous au tutoriel: https://blog.csdn.net/qq_44830040/article/details/106049992 (ce tutoriel est une installation source domestique, Bien que ros puisse être utilisé, il peut y avoir des problèmes lors de son utilisation avec d'autres tels que darknet_ros. Bien que le téléchargement à partir de sources nationales soit beaucoup plus rapide, il est toujours recommandé de le télécharger à partir du site officiel)

Remarque: Ubuntu 18.04 peut être installé directement (c'est-à-dire la commande sudo apt-get install ros-melodic-desktop, c'est-à-dire, pour ROS Melodic, choisissez l'installation complète du bureau, qui installera Gazebo9 et les bibliothèques liées à la perception en même temps), mais je recommande personnellement 18.04 L'installation de gazebo9.0 présente directement des défauts et des problèmes peuvent survenir plus tard. Il est recommandé d'installer desktop, puis d'installer gazebo9.13 ou supérieur
Ubuntu16.04 (ROS Kinetic) dans les étapes suivantes. Sélectionnez destop ou install. Gazebo7 ne peut pas effectuer de simulations ultérieures.
Voici également l'installation de ROS (en prenant Melodic comme exemple):

1. Configurez le référentiel Ubuntu
. Cliquez sur le code source dans le logiciel et mettez à jour.
Insérez la description de l'image ici
2. Définissez la source.list. Les éléments
suivants sont Tsinghua Mirror, Zhongke University Mirror et le choix officiel par défaut. Cependant, je recommande personnellement le miroir domestique, le téléchargement sera beaucoup plus rapide

Miroir Tsinghua:

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

Miroir de l'Université chinoise des sciences et de la technologie:

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

Le défaut officiel:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

3. Réglez la clé

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

4. Installation

sudo apt update
sudo apt install ros-melodic-desktop

Si vous installez ROS normalement, vous pouvez sudo apt installer ros-melodic-desktop-full, ici je suis sudo apt installer ros-melodic-desktop, la raison a déjà été mentionnée

5. Définissez l'environnement

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

6. Créer des dépendances

sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo apt install python-rosdep
sudo rosdep init

Si une erreur se produit:
ERREUR: impossible de télécharger la liste des sources par défaut à partir de:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list Le
site Web est peut-être en panne.
Exécutez la commande suivante :

cd /etc
sudo gedit hosts

Ajoutez à la fin: 151.11.84.133 raw.githubusercontent.com, puis enregistrez le fichier et quittez.

Si une erreur se produit: ERREUR: le fichier de liste des sources par défaut existe déjà:
/etc/ros/rosdep/sources.list.d/20-default.list
Veuillez supprimer si vous souhaitez réinitialiser la
solution, exécutez la commande suivante:

sudo rm /etc/ros/rosdep/sources.list.d/20-default.list

Puis exécutez à nouveausudo rosdep init

7. Effectuer la mise à jour rosdep

rosdep update

Si l'erreur suivante se produit:
ERREUR: erreur lors du chargement de la liste des sources:
('L'opération de lecture a expiré',) est
probablement un problème de réseau, exécutez simplement la commande rosdep update à plusieurs reprises

Démarrez ROS après l'installation:

roscore

La sortie suivante indique que l'installation a réussi:

... logging to /home/robin/.ros/log/a5118af0-5474-11ea-8b86-e454e828c524/r
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://robin-G3-3590:34223/
ros_comm version 1.12.14
SUMMARY
========
PARAMETERS
* /rosdistro: kinetic
* /rosversion: 1.12.14
NODES
auto-starting new master
process[master]: started with pid [30244]
ROS_MASTER_URI=http://robin-G3-3590:11311/
setting /run_id to a5118af0-5474-11ea-8b86-e454e828c524
process[rosout-1]: started with pid [30261]
started core service [/rosout]

Pour créer un nouvel espace de travail, il est recommandé d'utiliser catkin-tools pour gérer l'espace de travail. Après cela, sauf pour le démarrage de l'environnement de simulation PX4, les autres projets liés à ROS sont gérés dans cet espace de travail.

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
source devel/setup.bash

Trois, installation de gazebo

Qu'il s'agisse de ros Kinetic ou Melodic, le gazebo intégré présente des défauts.Si le gazebo a été installé lors de l'installation de ros, il est recommandé de le désinstaller et de le réinstaller. Il est recommandé que la version de gazebo soit supérieure à 9.13.
Veuillez consulter le site Web officiel pour l'installation de Gazebo:
http://gazebosim.org/tutorials?tut=install_ubuntu&cat=install
Remarque:
1. Choisissez une autre installation: installation étape par étape
2. Installez Gazebo9.13 Ou au-dessus

L'installation du gazebo est également répertoriée ici pour plus de commodité

1. Configurez votre ordinateur pour accepter les logiciels de package.osrfoundation.org

sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
cat /etc/apt/sources.list.d/gazebo-stable.list
#如果出现deb http://packages.osrfoundation.org/gazebo/ubuntu-stable xenial main表示没问题

2. Réglez la clé

wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt-get update

3. Installez les instructions de gazebo9.1:

sudo apt-get install gazebo9=9.1*

Après l'installation, entrée du terminal, gazebosi Gazebo est ouvert, l'installation est réussie

4.Gazebo lui-même est indépendant de ROS, vous devez donc également installer le plugin Gazebo pour ROS

sudo apt install ros-melodic-gazebo9-*
sudo apt install ros-melodic-gazebo-*

tester

roscore  
rosrun gazebo_ros gazebo 

Si Gazebo peut être ouvert, le plug-in entre Gazebo et ROS a également été installé avec succès. Vous pouvez également vérifier la version de gazebo en
tapantgazebo --version

Quatre, installation MAVROS

sudo apt install ros-melodic-mavros ros-melodic-mavros-extras
roscd mavros
sudo wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
sudo chmod a+x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh 

Le sudo final ./install_geographiclib_datasets.sh Cette étape prend un certain temps à installer, veuillez patienter

Cinq, configuration PX4 (version 1.11)

git clone https://github.com/PX4/Firmware
mv Firmware PX4_Firmware
cd PX4_Firmware
git checkout -b xtdrone/dev v1.11.0-beta1
git submodule update --init --recursive

Le téléchargement du code source et la mise à jour du sous-module étant trop lent, j'ai fourni le lien PX4_Firmware téléchargé et mis à jour ici. Après le téléchargement, décompressez-le et extrayez-le dans le répertoire principal: https://download.csdn.net/download/qq_45067735/12713464

Installez les dépendances python nécessaires:

cd ~/PX4_Firmware
bash
bash ./Tools/setup/ubuntu.sh --no-nuttx --no-sim-tools

Compiler

make px4_sitl_default gazebo

Si l'erreur de compilation provoque l'instruction ignition :: math :: Matrix4 xformV (vq); dans PX4_Firmware / Tools / sitl_gazebo / src / gazebo_usv_dynamics_plugin.cpp; dans l'instruction, xformV n'a pas défini le type auparavant,
modifiez-le en ignition :: math :: Matrix4 xformV ( vq); Recompilez après l'enregistrement.

Modifiez ~ / .bashrc dans PX4_Firmware, ajoutez le code suivant, faites attention au chemin correspondant

source ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware/ ~/PX4_Firmware/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware/Tools/sitl_gazebo

Exécutez ensuite la commande suivante, Gazebo démarrera à ce moment, comme illustré dans la figure ci-dessous.

cd ~/PX4_Firmware
roslaunch px4 mavros_posix_sitl.launch

Insérez la description de l'image ici
Et courir

rostopic echo /mavros/state

Si connecté: True, cela signifie que MAVROS et SITL communiquent avec succès.

---
header:
seq: 11
stamp:
secs: 1827
nsecs: 173000000
frame_id: ''
connected: True
armed: False
guided: False
manual_input: True
mode: "MANUAL"
system_status: 3
---

Remarque:
1. Il est recommandé de télécharger scientifiquement en ligne. La vitesse de téléchargement sur GitHub est relativement lente et peut échouer. J'ai également essayé de modifier le réseau et l'effet est presque nul. Il est recommandé de mettre le code source PX4 sur GitHub sur gitee avant le clonage de git. Veuillez utiliser le cloud de code vous-même. rechercher.
Si vous téléchargez le code sur le nuage de code, le téléchargement depuis GitHub dans le sous-module de mise à jour (git submodule update --init --recursive) est également très lent. Cela semble devoir modifier le sous-module, mais je ne sais toujours pas comment fonctionner , S'il y a un grand dieu qui veut donner quelques conseils.

2. Le processus de création du gazebo px4_sitl_default peut tester la mémoire de l'ordinateur. Plusieurs fois sur mon ordinateur, le processeur fonctionne à 100% et la
situation peut être la suivante:

Insérez la description de l'image ici
Vous pouvez d'abord essayer d'augmenter l'espace d'échange temporaire, puis exécuter la commande make px4_sitl_default gazebo, ou exécuter directement à nouveau la commande make px4_sitl_default gazebo, ce qui peut nécessiter plusieurs exécutions.

#注释:of=/home/swap,放置swap的空间; count的大小就是增加的swap空间的大小,64M就是块大小,这里是64MB,所以总共空间就是bs*count=1024MB.这里分配空间的时候需要一点时间,等待执行完毕。
sudo dd if=/dev/zero of=/home/swap bs=64M count=16  

#注释:把刚才空间格式化成swap各式
sudo mkswap /home/swap (可能会提示warning: don't erase bootbits sectorson whole disk. Use -f to force,不用理会)


#注释:使刚才创建的swap空间
sudo swapon /home/swap

3. L'erreur suivante peut survenir lors de l'exécution de la dernière commande (make px4_sitl_default gazebo):
Insérez la description de l'image ici
Solution:

sudo apt-get install libgstreamer-plugins-base1.0-dev

4. Les conditions suivantes peuvent se produire pendant le fonctionnement:
Insérez la description de l'image ici
Insérez la description de l'image icices erreurs et avertissements n'affectent pas l'utilisation et peuvent être ignorés.

5. Le processus est lent lorsqu'il s'exécute pour la première fois. Gazebo peut avoir un écran noir pendant un certain temps. En fait, ceci est en cours d'initialisation. Veuillez patienter, car ce sera le cas plus tard.

6. Il est recommandé de modifier le fichier ./bashrc directement dans le répertoire principal, d'utiliser control + h pour afficher les fichiers cachés, de copier les trois lignes ci-dessus directement vers le bas et d'entrer pour source ~/.bashrcredémarrer barshc, afin que cela soit fait une fois pour toutes, mais après la modification, ouvrez la commande à chaque fois La ligne apparaîtra juste ajoutée
Insérez la description de l'image ici

6. Installation de la station au sol QGC (en option)

Lien d'installation: https://docs.qgroundcontrol.com/en/getting_started/download_and_install.html Après le
démarrage, l'écran ci-dessous apparaît. Notez qu'Ubuntu16.04 ne peut pas utiliser directement la série QGroundcontrol version 4 (la série 3 peut être utilisée). Ubuntu16.04 nécessite la compilation du code source de la série 4. Veuillez vérifier attentivement le lien d'installation.
Insérez la description de l'image ici

Seven, XTDrone téléchargement des sources

git clone https://gitee.com/robin_shaun/XTDrone.git
cd XTDrone
cp sitl_config/init.d-posix/rcS ~/PX4_Firmware/ROMFS/px4fmu_common/init.d-posix/
cp sitl_config/worlds/* ~/PX4_Firmware/Tools/sitl_gazebo/worlds/
cp -r sitl_config/models/* ~/PX4_Firmware/Tools/sitl_gazebo/models
cp -r sitl_config/models/* ~/.gazebo/models/
cp sitl_config/launch/* ~/PX4_Firmware/launch/
#如果之前没有catkin_ws,需要建立一下,之后的教程会用到
mkdir -p ~/catkin_ws/src
mkdir -p ~/catkin_ws/scripts

Remarque: cp -r sitl_config / models / * ~ / .gazebo / models / Cette étape peut avoir la situation suivante:
Insérez la description de l'image ici
vous pouvez la laisser tranquille pour le moment, continuer avec les étapes suivantes et réessayer après la compilation, ou vous pouvez aller à la correspondante manuellement Créez un dossier, puis utilisez

8. Utilisez le clavier pour contrôler le vol du drone

Exécuter dans un terminal

cd ~/PX4_Firmware
roslaunch px4 indoor1.launch

Lors de l'exécution de roslaunch px4 indoor1.launch pour la première fois, le chargement du gazebo peut prendre un certain temps, veuillez patienter

Une fois Gazebo démarré, exécutez-le dans un autre terminal

cd ~/XTDrone/communication/
python multirotor_communication.py iris 0

Après avoir établi la communication avec l'iris 0, exécutez dans un autre terminal

cd ~/XTDrone/control/
python multirotor_keyboard_control.py iris 1 vel

Après succès, comme le montre la figure,
vous pouvez contrôler le déverrouillage / verrouillage d'un iris via le clavier, modifier le mode de vol, la vitesse de l'avion, etc. Utilisez le mode de vol au décollage pour décoller avec t, et les paramètres pertinents (vitesse de décollage, altitude) doivent être définis dans rcS. Généralement, le mode offboard peut être utilisé pour décoller, à ce moment, la vitesse de décollage doit être supérieure à 0,3 m / s pour décoller. (Méthode de décollage: appuyez d'abord sur la touche t pour déverrouiller, puis appuyez sur la touche i pour rendre la vitesse ascendante supérieure ou égale à 0,3. À ce stade, vous pouvez voir le rotor tourner vers le haut, et enfin appuyez sur la touche b pour décoller. L'intervalle entre les touches devrait être plus rapide, sinon le temps Si l'intervalle est trop long, le drone se verrouille automatiquement et vous devez répéter les étapes tout de suite) À
Insérez la description de l'image icice stade, la configuration de base de la plate-forme de simulation est terminée.
Remarque: Les
erreurs suivantes peuvent survenir lors du lancement de roslaunch px4 indoor1.:
1.
Insérez la description de l'image ici
Voir la solution: https: // blog .csdn.net / abc869788668 / article / details / 78323395? locationNum = 8 & fps = 1
Entrez ensuite la commande suivante:

sudo /opt/ros/melodic/lib/mavros/install_geographiclib_datasets.sh

Cela peut prendre beaucoup de temps et vous devez attendre patiemment
. 2. L'
Insérez la description de l'image ici
auteur original a dit que cela pouvait être un problème de lidar 3D, mais après quelques jours d'essais, j'ai trouvé que le gazebo9.0 installé aura l'erreur ci-dessus, et gazebo9.13 peut fonctionner, vous pouvez essayer d'installer gazebo Pour essayer, changez la version en 9.13 C'est pourquoi je recommande de choisir melodic-desktop lors de l'installation de ros et gazebo, et l'installation de gazebo 9.13 ou version ultérieure.

Page Web de référence:
[1]: https://www.yuque.com/xtdrone/manual_cn/basic_config_1.11
[2]: https://blog.csdn.net/qq_42585108/article/details/106781596
[3]: https : //blog.csdn.net/qq_44830040/article/details/106049992
[4]: https://blog.csdn.net/abc869788668/article/details/78323395?locationNum=8&fps=1

Je suppose que tu aimes

Origine blog.csdn.net/qq_45067735/article/details/107303796
conseillé
Classement