Não foi possível usar o cv_bridge com o ROS Kinetic e o Python3

Eu tinha um projeto de visão computacional no Ubuntu 14.04 com ROS indigo e python3, depois tive que seguir no Ubuntu 16.04 com ROS cinético. Aqui encontrei vários problemas:

1) Instalei o opencv, mas não consegui importá-lo no python3, a mensagem de erro era:

Traceback (most recent call last): File "test.py", line 2, in <module> import cv2 ImportError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so: undefined symbol: PyCObject_Type

O que eu descobri é apenas renomear cv2.so

cd /opt/ros/kinetic/lib/python2.7/dist-packages/
sudo mv cv2.so cv2_ros.so

Então eu pude importar o cv2 e usá-lo

2) Não consegui importar o rospy, mas a instalação dos módulos python3-catkin-pkg-modules e python3-rospkg-modules corrigiu esse problema

3) Finalmente, encontrei um problema com o cv_bridge, que diz:

[ERROR] [1520780674.845066]: bad callback: <bound method ViewsBuffer.update of <__main__.ViewsBuffer object at 0x7f5f45a07f28>>
Traceback (most recent call last):
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/topics.py", line 750, in _invoke_callback
    cb(msg)
  File "test.py", line 48, in update
    im = self.bridge.imgmsg_to_cv2(im, "bgr8")
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/cv_bridge/core.py", line 163, in imgmsg_to_cv2
    dtype, n_channels = self.encoding_to_dtype_with_channels(img_msg.encoding)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/cv_bridge/core.py", line 99, in encoding_to_dtype_with_channels
    return self.cvtype2_to_dtype_with_channels(self.encoding_to_cvtype2(encoding))
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/cv_bridge/core.py", line 91, in encoding_to_cvtype2
    from cv_bridge.boost.cv_bridge_boost import getCvType
ImportError: dynamic module does not define module export function (PyInit_cv_bridge_boost)

Acredito que o problema esteja no arquivo cv_bridge_boost.so. Eu também tentei construir o cv_bridge a partir dehttps://github.com/ros-perception/vision_opencv, mas ele é criado automaticamente para python2.7, eu estava tentando modificar um pouco o CMakeLists.txt para especificar python3 lá, mas não tenho muita experiência com o CMakeLists, por isso não funcionou. Também tentei copiar o módulo cv_bridge para a pasta do meu projeto, mas não mudou muito e ainda aponta para o arquivo cv_bridge_boost.so. Outra coisa a mencionar é que o cv_bridge funciona bem com o python2.7, mas meu projeto requer o python3.5.

questionAnswers(1)

yourAnswerToTheQuestion