[Ubuntu18.04 appelle cv_bridge de Python3 pour ROS]

De nombreux amis qui utilisent ROS constateront que de nombreuses fonctions de ROS sont compilées sur la base de python2, ce qui amène ROS à signaler des erreurs lors de l'appel de cv_bridge avec python3, car ROS appelle cv_bridge de python2 par défaut. Cet article est pour vous aider à appeler le cv_bridge de python3 dans ROS, j'espère que cela vous sera utile.

La commande suivante peut tester si vous pouvez appeler le cv_bridge de python3 normalement

Ouvrez Python3

python3

importer un paquet

import cv_bridge
from cv_bridge import CvBridge, CvBridgeError

Voici la description de la situation de l'auteur (ubuntu18.04(arm), python3.6.9) :
la première phrase import cv_bridge ne pose aucun problème, mais la deuxième ligne importe les deux derniers mots à partir de là, elle signalera une erreur, car python3 ne l'a pas, vous devez donc effectuer les opérations suivantes pour résoudre ce problème.

1. Environnement d'installation

sudo apt-get install  python3-dev python3-numpy python3-yaml ros-melodic-cv-bridge python3-rospkg-modules
pip3 install pip --update
pip3 install rosdep rosinstall catkin_pkg

1.1 Créer un nouvel espace de travail (important)

mkdir -p py3_cv_bridge_ws/src

1.2 Compiler l'espace de travail

catkin_init_workspace

1.3 Tirez et décompressez le code source cv_bridge vers le local (vous pouvez cliquer ici pour télécharger et décompresser , copier et coller et déplacer vers le répertoire si vous ne pouvez pas le retirer après le délai d'attentepy3_cv_bridge_ws/srcmilieu)

git clone https://github.com/ros-perception/vision_opencv.git

1.4 Compiler l'espace de travail

cd ~/py3_cv_bridge_ws
catkin_make install -DPYTHON_EXECUTABLE=/usr/bin/python3

1.4.1 Problèmes d'erreur de compilation et solutions

1.4.1

1.4.2 Afficher les fichiers ==libbost_python*== (mon bras est ubuntu18.04 ici , si le vôtre est x86 x, il se trouve dans le dossier /usr/lib/x86-64-linux-gnu ))

cd /usr/lib/aarch64-linux-gnu/
ls libboost_python*

Vous verrez les informations suivantes

1.4.2.1

1.4.3 Entrez le fichier d'erreur vision_opencv/cv_bridge/CMakeLists.txt, remplacez python37 par python3, puis recompilez.

1.4.3

1.4.4 L'apparition d'une compilation réussie

Voir 100% signifie que la compilation est réussie
1.4.4

1.5 Ajouter des variables d'environnement

Cette étape est ajoutée afin que lorsque vous souhaitez utiliser le cv_bridge de python3, il puisse être appelé automatiquement par défaut au lieu d'appeler le cv_bridge de python2.

Ajoutez la commande suivante à la dernière ligne du fichier .bashrc

source /home/你系统的名字/py3_cv_bridge_ws/install/setup.bash --extend

1.6 Pour vérifier si cela réussit, vous pouvez appeler cv_bridge de python3

Utilisez les deux lignes de code qui ont rencontré une erreur au début de l'article pour l'inspection et les tests

Ouvrez Python3

python3

importer un paquet

import cv_bridge
from cv_bridge import CvBridge, CvBridgeError

S'il n'y a pas d'erreur signalée ici, cela prouve que le cv_bridge de python3 peut être appelé avec succès. Lors de l'écriture d'un nœud ROS, si vous souhaitez utiliser cv_bridge de py3 ou py2, il vous suffit d'ajouter la commande dans la première ligne du fichier de programme. Vous pouvez choisir d'appeler python3, puis de l'ajouter dans la première ligne du
fichier de programme Les deux lignes de commandes suivantes

#!/usr/bin/env python3
# encoding: utf-8

Pour appeler python, ajoutez les deux lignes de commandes suivantes dans la première ligne du fichier programme

#!/usr/bin/env python
# encoding: utf-8

Je suppose que tu aimes

Origine blog.csdn.net/weixin_44355653/article/details/132168561
conseillé
Classement