No se puede usar cv_bridge con ROS Kinetic y Python3

Tuve un proyecto de visión por computadora en Ubuntu 14.04 con ROS indigo y python3, luego tuve que moverme en Ubuntu 16.04 con ROS cinético. Aquí me encontré con varios problemas:

1) Instalé opencv, pero no pude importarlo en python3, el mensaje de error fue:

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

Lo que descubrí es cambiar el nombre de cv2.so

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

Luego pude importar cv2 y usarlo

2) Entonces no pude importar rospy, pero la instalación de python3-catkin-pkg-modules y python3-rospkg-modules solucionó ese problema

3) Finalmente me encontré con un problema con cv_bridge que dice:

[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)

Creo que el problema está en el archivo cv_bridge_boost.so. También intenté construir cv_bridge desdehttps://github.com/ros-perception/vision_opencv, pero se construye automáticamente para python2.7, estaba tratando de modificar CMakeLists.txt un poco para especificar python3 allí, pero no tengo mucha experiencia con CMakeLists, por lo que no funcionó. También intenté copiar el módulo cv_bridge en mi carpeta de proyecto, pero no cambió mucho y todavía apunta en ese archivo cv_bridge_boost.so. Otra cosa a mencionar es que cv_bridge funciona bien con python2.7, pero mi proyecto requiere python3.5.

Respuestas a la pregunta(1)

Su respuesta a la pregunta