macOS (fuentes)
Tabla de contenidos
Requisitos del sistema
Actualmente damos soporte a macOS Mojave (10.14).
Instalar requisitos previos
Necesitas las siguientes cosas instaladas para compilar ROS 2:
Xcode
Si aún no lo tienes instalado, instala Xcode.
Nota: Las versiones de Xcode posteriores a la 11.3.1 ya no se pueden instalar en macOS Mojave, por lo que debes instalar una versión anterior manualmente, consulta: https://stackoverflow.com/a/61046761
Además, si aún no lo tienes instalado, instala las herramientas de línea de comandos:
xcode-select --install # This command will not succeed if you have not installed Xcode.app sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer # If you installed Xcode.app manually, you need to either open it or run: sudo xcodebuild -license # To accept the Xcode.app license
brew (se necesita para instalar más cosas; probablemente ya tengas esto):
Sigue las instrucciones de instalación en http://brew.sh/
Optional: Check that
brew
is happy with your system configuration by running:brew doctor
Soluciona cualquier problema que identifique.
Usa
brew
para instalar más cosas:brew install asio assimp bison bullet cmake console_bridge cppcheck \ cunit eigen freetype graphviz opencv openssl orocos-kdl pcre poco \ pyqt5 python qt@5 sip spdlog tinyxml tinyxml2
Configura algunas variables de entorno:
# Agrega el directorio openssl para DDS-Security # si estás usando ZSH, reemplace '.bashrc' por '.zshrc' echo "export OPENSSL_ROOT_DIR=$(brew --prefix openssl)" >> ~/.bashrc # Agrega el directorio Qt a PATH y CMAKE_PREFIX_PATH export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:/usr/local/opt/qt@5 export PATH=$PATH:/usr/local/opt/qt@5/bin
Usa
python3 -m pip
(solopip
puede instalar Python3 o Python2) para instalar más cosas:python3 -m pip install -U \ argcomplete catkin_pkg colcon-common-extensions coverage \ cryptography empy flake8 flake8-blind-except==0.1.1 flake8-builtins \ flake8-class-newline flake8-comprehensions flake8-deprecated \ flake8-docstrings flake8-import-order flake8-quotes \ importlib-metadata lark==1.1.1 lxml matplotlib mock mypy==0.931 netifaces \ nose pep8 psutil pydocstyle pydot pygraphviz pyparsing==2.4.7 \ pytest-mock rosdep rosdistro setuptools==59.6.0 vcstool
Asegúrate que la variable de entorno
$PATH
contenga la ubicación de instalación de los binarios (predeterminado:$HOME/Library/Python/<version>/bin
)Opcional: si deseas construir el bridge ROS 1<->2, también debes instalar ROS 1:
Comienza con las instrucciones de instalación normales:
Cuando llega al paso en el que llama a
rosinstall_generator
para obtener el código fuente, aquí hay una invocación alternativa que trae solo el mínimo requerido para producir un bridge útil:rosinstall_generator catkin common_msgs roscpp rosmsg --rosdistro kinetic --deps --wet-only --tar > kinetic-ros2-bridge-deps.rosinstall wstool init -j8 src kinetic-ros2-bridge-deps.rosinstall
De lo contrario, simplemente sigue las instrucciones normales, luego ejecuta
source
con elinstall_isolated/setup.bash
resultante antes de proceder a compilar ROS 2.
Deshabilitar la protección de integridad del sistema (SIP)
Las versiones de macOS/OS X >=10.11 tienen la Protección de integridad del sistema habilitada de manera predeterminada.
Para que SIP no impida que los procesos hereden variables de entorno del enlazador dinámico, como DYLD_LIBRARY_PATH
, debes desactivarlo siguiendo estas instrucciones.
Obtener el código ROS 2
Crea un espacio de trabajo y clona todos los repositorios:
mkdir -p ~/ros2_humble/src
cd ~/ros2_humble
vcs import --input https://raw.githubusercontent.com/ros2/ros2/humble/ros2.repos src
Instalar proveedores de DDS adicionales (opcional)
Si deseas utilizar otro proveedor de DDS o RTPS además del predeterminado, puede encontrar instrucciones aquí.
Construir el código ROS 2
Ejecuta la herramienta colcon
para compilar todo (más información sobre el uso de colcon
en este tutorial):
.. code-block:: bash
cd ~/ros2_humble/ colcon build –symlink-install –packages-skip-by-dep python_qt_binding
Nota: debido a un problema no resuelto con SIP, Qt@5 y PyQt5, debemos deshabilitar python_qt_binding
para que la compilación tenga éxito.
Esto se eliminará cuando se resuelva el problema, consulte: https://github.com/ros-visualization/python_qt_binding/issues/103
Configuración del entorno
Ejecuta source
con el archivo de setup de ROS 2:
. ~/ros2_humble/install/setup.bash
Esto configurará automáticamente el entorno para cualquier proveedor de DDS para el que se haya compilado soporte.
Prueba algunos ejemplos
En una terminal, configura el entorno ROS 2 como se describe arriba y luego ejecuta un talker
de C++:
ros2 run demo_nodes_cpp talker
En otra terminal, llama a source``con el archivo de setup y luego ejecuta un ``listener
en Python:
ros2 run demo_nodes_py listener
Deberías ver al talker
diciendo que está publicando (Publishing
) mensajes y al listener
diciendo que oye (I heard
) esos mensajes.
Esto verifica que las API de C++ y Python funcionan correctamente.
¡Hurra!
Siguientes pasos después de la instalación
Continúa con los tutoriales y demostraciones para configurar su entorno, crear su propio espacio de trabajo y paquetes, y aprender los conceptos básicos de ROS 2.
Usando el bridge de ROS 1
El puente de ROS 1 puede conectar topics de ROS 1 a ROS 2 y viceversa. Consulta la documentación específica sobre cómo construir y usar el bridge de ROS 1.
Implementaciones adicionales de RMW (opcional)
El middleware predeterminado que usa ROS 2 es Fast DDS
, pero el middleware (RMW) se puede reemplazar en tiempo de ejecución.
Consulta la guía sobre cómo trabajar con múltiples RMW.
Estar al día
Consulta Mantener los fuentes obtenidos para actualizar periódicamente la instalación de fuentes.
Solución de problemas
Las técnicas de resolución de problemas se pueden encontrar aquí.
Desinstalar
- Si instalaste tu espacio de trabajo con colcon como se indicó anteriormente, la «desinstalación» podría ser simplemente una cuestión de abrir una nueva terminal y no ejecutar
source`
con el archivosetup
del espacio de trabajo. De esta manera, su entorno se comportará como si no hubiera una instalación de Humble en su sistema.
- Si instalaste tu espacio de trabajo con colcon como se indicó anteriormente, la «desinstalación» podría ser simplemente una cuestión de abrir una nueva terminal y no ejecutar
Si también estás intentando liberar espacio, puede eliminar todo el directorio del espacio de trabajo con:
rm -rf ~/ros2_humble