Répertoire d'articles
1. Le package de fonctions et le port série utilisés
1. Pack de fonctionnalités
Ce projet utilise plusieurs packages de fonctions de projet open source pour implémenter le mappage et la navigation SLAM basés sur lidar. Le code utilisé peut être téléchargé sur Code Cloud .
Le pack de fonctions doit être enregistré et compilé sur le maître et l'esclave.
2. Port série
Dans ce projet, le Raspberry Pi est utilisé comme ordinateur supérieur pour le développement, et le radar et l'ordinateur inférieur doivent être communiqués en série avec le Raspberry Pi. Grâce au test ici, le port série de mon radar est / dev / ttyUSB1 , et le port série de l'ordinateur inférieur est / dev / ttyUSB0 .
Si vous ne connaissez pas votre port série, vous pouvez vérifier le port série utilisé en branchant et en débranchant le périphérique, puis en utilisant la commande ls / dev / ttyUSB * .
Vous devez modifier les fichiers suivants en fonction de votre situation actuelle:
Port série inférieur de l'ordinateur
Modifiez le fichier bringup.launch dans le dossier de lancement sous le package de fonctions zxcar et placez votre numéro de port série comme indiqué dans la figure ci-dessous.
Port série radar
Modifiez le fichier rplidar.launch dans le dossier launch / lidar sous le package de fonctions zxcar , et remplissez le port série de votre radar à la position dans la figure ci-dessous.
Deuxièmement, créez un espace de travail et compilez
1. Créez un espace de travail
Créez un nouvel espace de travail et placez le package de fonctions téléchargé dans le dossier src en dessous.
2. Compilez
Compilez dans l'espace de travail. Une erreur peut apparaître lors de la première compilation. Téléchargez simplement les dépendances en fonction de l'invite d'erreur.
Pour plus de détails, veuillez consulter: Problème d'installation du package de dépendances ROS
Ici, utilisez la commande sudo apt-get install ros-melodic-Geographic-msgs pour installer les dépendances requises, puis compilez à nouveau.
3. Autorisation
Pour exécuter des fichiers python sous Linux, vous devez leur donner des autorisations exécutables. Afin de réduire les problèmes, exécutez la commande ** sudo chmod -R + x src / ** pour donner des autorisations exécutables à tous les fichiers du package de fonctions.
4. Rafraîchissez l'environnement
Afin de faciliter l'exécution ultérieure du programme ROS, il n'est pas nécessaire d'actualiser l'environnement à plusieurs reprises, cette fois la commande source est écrite dans le fichier .bashrc pour garantir que l'actualisation est directement effectuée à chaque fois que la ligne de commande est ouverte.
sudo vi ~/.bashrc
Écrivez le contenu à la fin du fichier:
source ~/ws/devel/setup.bash
Trois, l'étalonnage
Comme imu peut avoir des problèmes tels que l'inclinaison lors de l'installation, un étalonnage est nécessaire.
1. Calibrez imu
Tout d'abord, démarrez le fichier bringup.launch sous le package de fonctions zxcar côté Raspberry Pi (côté hôte) . Lorsque les mots «zxcar_driver start success!» Apparaissent , cela signifie que le démarrage est réussi.
roslaunch zxcar bringup.launch
Ensuite, démarrez une autre ligne de commande et continuez à démarrer le nœud do_calib du côté hôte pour effectuer l'étalonnage imu. Lors de cette opération, la voiture doit reposer à plat sur le sol, ne la touchez pas à la main pour garantir la précision de l'étalonnage.
rosrun imu_calib do_calib
Suivez les invites Appuyez une fois sur [ENTER] Appuyez sur la touche Enter pour passer à la mesure suivante. Un total de six mesures sont nécessaires. Une
fois l'étalonnage terminé, le fichier imu_calib.yaml sera généré dans le répertoire courant. Ce fichier doit être remplacé par le fichier du même nom dans le répertoire / zxcar / param / imu .
roscd zxcar/param/imu/
sudo rm -rf imu_calib.yaml
mv ~/imu_calib.yaml ~/ws/src/zxcar/param/imu/
2. Calibrez la vitesse angulaire
Démarrez le fichier bringup.launch sous le package de fonctions zxcar du côté Raspberry Pi (côté hôte) et ouvrez la ligne de commande pour démarrer le nœud calibrate_angular . Lorsque les mots "Appeler rqt_reconfigure pour contrôler le test." Apparaissent , cela signifie que le démarrage a réussi.
Démarrez l'outil rqt côté PC (côté esclave) selon les invites.
rosrun rqt_reconfigure rqt_reconfigure
Les paramètres modifiables ici sont les suivants:
- test_angle: teste l'angle de rotation
- speed: tester la vitesse de rotation
- tolérance: la plage d'erreur du test
Conservez les paramètres par défaut inchangés, affichez la boussole du téléphone portable et placez-la au-dessus de la voiture, enregistrez la valeur d'angle actuelle et vérifiez start_test pour démarrer le test et enregistrer l'angle final sur le téléphone mobile, et calculer l'angle de rotation de la voiture.
Ici, ma voiture pivote de 355 degrés, j'utilise donc 355/360 pour calculer le facteur de zoom. Mesurez à nouveau l'effet de la rotation et remplissez le fichier bringup.launch avec le nombre moyen de mesures multiples.
roscd zxcar/launch/
sudo vi bringup.launch
3. Calibrez la vitesse de ligne
De même, la vitesse de la ligne doit être calibrée. Dans l'
hôte, exécutez les commandes suivantes dans deux lignes de commande:
roslaunch zxcar bringup.launch
rosrun zxcar_nav calibrate_linear.py
Une fois que l' invite Appeler rqt_reconfigure pour contrôler le test apparaît, exécutez l'outil rqt sur l'esclave
rosrun rqt_reconfigure rqt_reconfigure
Cliquez également sur start_test pour tester et mesurez la distance de marche du chariot avec un ruban à mesurer. Ici, j'ai mesuré 1,02 mètre de marche, divisé par 1 mètre, et j'ai rempli le facteur de zoom résultant dans le fichier bringup.launch.
roscd zxcar/launch/
sudo vi bringup.launch
Quatrièmement, cartographie radar et navigation
Une fois l'étalonnage terminé, le travail de cartographie radar peut être effectué.
1. Créez une carte
Lancez le fichier lidar_slam.launch dans l'hôte
roslaunch zxcar lidar_slam.launch
La première erreur de démarrage est la suivante et les dépendances pertinentes doivent être installées.
sudo apt-get install ros-melodic-gmapping
sudo apt-get install ros-melodic-move-base
sudo apt-get install ros-melodic-amcl
sudo apt-get install ros-melodic-map-server
sudo apt-get install ros-melodic-global-planner
sudo apt-get install ros-melodic-dwa-local-planner
Une fois l'installation terminée, vous pouvez l'exécuter à nouveau et le mot odom reçu! Apparaît pour indiquer un démarrage réussi.
Ensuite, vous devez exécuter le fichier lidar_slam_rviz.launch sur l' esclave pour démarrer l'interface RVIZ et démarrer le nœud teleop_twist_keyboard en même temps .
roslaunch zxcar lidar_slam_rviz.launch
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
Le nœud teleop_twist_keyboard est utilisé pour contrôler la voiture à marcher, et la méthode d'utilisation est la même que l'invite:
en manipulant la voiture pour marcher, vous pouvez voir l'effet de la création de la carte dans RVIZ.
2. Enregistrez le dessin
Après avoir construit une carte radar en manipulant la voiture pour marcher, vous devez enregistrer la carte créée sous zxcar / maps .
Exécutez la commande suivante à partir de la machine pour enregistrer le dessin.
roscd heimarobot/maps
rosrun map_server map_saver -f house
Après l'enregistrement, vous pouvez arrêter le fichier lidar_slam.launch sur l'hôte.
3. Navigation
Exécutez les commandes suivantes sur l'esclave, et les mots ** odom reçus! ** sont également affichés, ce qui signifie que le démarrage est réussi.
roslaunch zxcar navigate.launch
Exécutez la commande sur l'hôte pour démarrer RVIZ
roslaunch zxcar navigate_rviz.launch
À ce stade, vous devez utiliser le pinceau 2D Pose Estimate dans la barre d'outils au-dessus de RVIZ pour calibrer la position initiale de la voiture, puis utiliser 2D Nav Goal pour naviguer.