[Ubuntu18.04 chama cv_bridge do Python3 para ROS]

Muitos amigos que usam o ROS descobrirão que muitas funções do ROS são compiladas com base em python2, o que faz com que o ROS relate erros ao chamar cv_bridge com python3, porque o ROS chama cv_bridge de python2 por padrão. Este artigo é para ajudar vocês como chamar o cv_bridge do python3 no ROS, espero que seja útil para vocês.

O seguinte comando pode testar se você pode chamar o cv_bridge do python3 normalmente

Abra o Python3

python3

pacote de importação

import cv_bridge
from cv_bridge import CvBridge, CvBridgeError

Aqui está a descrição da situação do autor (ubuntu18.04(arm), python3.6.9):
a primeira frase import cv_bridge não é problema, mas a segunda linha importa as duas últimas palavras de lá, vai reportar um erro, porque python3 não tem, então você precisa Execute as seguintes operações para resolver este problema.

1. Ambiente de instalação

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 Crie um novo espaço de trabalho (importante)

mkdir -p py3_cv_bridge_ws/src

1.2 Espaço de trabalho de compilação

catkin_init_workspace

1.3 Puxe e descompacte o código-fonte cv_bridge para o local (você pode clicar aqui para baixar e descompactar , copiar e colar e mover para o diretório se não conseguir retirá-lo após o tempo limitepy3_cv_bridge_ws/srcmeio)

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

1.4 Espaço de trabalho de compilação

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

1.4.1 Problemas e soluções de erros de compilação

1.4.1

1.4.2 Exibir ==libbost_python*== arquivos (o ubuntu18.04 do meu braço aqui , se o seu for x86 x, está na pasta /usr/lib/x86-64-linux-gnu ))

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

Você verá as seguintes informações

1.4.2.1

1.4.3 Insira o arquivo de erro vision_opencv/cv_bridge/CMakeLists.txt, altere python37 para python3 e recompile.

1.4.3

1.4.4 Aparência de compilação bem-sucedida

Ver 100% significa que a compilação foi bem-sucedida
1.4.4

1.5 Adicionar variáveis ​​de ambiente

Esta etapa é adicionada para que, quando você quiser usar o cv_bridge do python3, ele possa ser chamado automaticamente por padrão, em vez de chamar o cv_bridge do python2.

Adicione o seguinte comando à última linha do arquivo .bashrc

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

1.6 Para verificar se foi bem-sucedido, você pode chamar cv_bridge de python3

Use as duas linhas de código que encontraram um erro no início do artigo para inspeção e teste

Abra o Python3

python3

pacote de importação

import cv_bridge
from cv_bridge import CvBridge, CvBridgeError

Se não houver nenhum erro relatado aqui, isso prova que o cv_bridge de python3 pode ser chamado com sucesso. Ao escrever um nó ROS, se você quiser usar cv_bridge de py3 ou py2, basta adicionar o comando na primeira linha do arquivo de programa. Você pode optar por chamar python3 e adicioná-lo na primeira linha do
arquivo de programa As duas linhas de comandos a seguir

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

Para chamar o python, adicione as duas linhas de comandos a seguir na primeira linha do arquivo do programa

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

Acho que você gosta

Origin blog.csdn.net/weixin_44355653/article/details/132168561
Recomendado
Clasificación