Estás leyendo la documentación para una versión de desarrollo. Para la última versión publicada, por favor revisa Humble.

Windows (fuentes)

Esta guía trata sobre cómo configurar un entorno de desarrollo para ROS 2 en Windows.

Requisitos del sistema

Sólo Windows 10 está soportado.

Soporte de idioma support

Asegúrate de tener una configuración regional que admita UTF-8. Por ejemplo, para una instalación de Windows 10 en idioma chino, es posible que debas instalar un paquete de idioma de inglés.

Instalando prerequisitos

Instalar Chocolatey

Chocolatey es un administrador de paquetes para Windows, instálalo siguiendo sus instrucciones de instalación:

https://chocolatey.org/

Usarás Chocolatey para instalar otras herramientas de desarrollo.

Instalar Python

Abre un símbolo del sistema y escriba lo siguiente para instalar Python a través de Chocolatey:

choco install -y python --version 3.8.3

Instalar redistribuibles de Visual C++

Abre un símbolo del sistema y escriba lo siguiente para instalarlos a través de Chocolatey:

choco install -y vcredist2013 vcredist140

Instalar OpenSSL

Descarga el instalador OpenSSL de Win64 OpenSSL v1.1.1n desde esta página. Desplázate hasta la parte inferior de la página y descarga Win64 OpenSSL v1.1.1n. No descargues las versiones Win32 o Light, o los instaladores v3.X.Y.

Ejecuta el instalador con los parámetros predeterminados, ya que los siguientes comandos asumen que usaste el directorio de instalación predeterminado.

Este comando establece una variable de entorno que persiste durante las sesiones:

setx /m OPENSSL_CONF "C:\Program Files\OpenSSL-Win64\bin\openssl.cfg"

Deberá agregar la carpeta bin OpenSSL-Win64 a su PATH. Puede hacerlo haciendo clic en el icono de Windows, escribiendo «Variables de entorno» y luego haciendo clic en «Editar las variables de entorno del sistema». En el cuadro de diálogo resultante, haga clic en «Variables de entorno», luego haga clic en «Path» en el panel inferior, finalmente haga clic en «Editar» y agregue la ruta a continuación.

  • C:\Program Files\OpenSSL-Win64\bin\

Instalar Visual Studio

Instala Visual Studio 2019.

Si ya tienes una versión de pago de Visual Studio 2019 (Professional, Enterprise), omite este paso.

Microsoft proporciona una versión gratuita de Visual Studio 2019, llamada Community, que se puede usar para crear aplicaciones que usan ROS 2. You can download the installer directly through this link.

Asegúrate de que las características de Visual C++ estén instaladas.

Una manera fácil de asegurarse de que estén instalados es seleccionar el flujo de trabajo Desarrollo de escritorio con C++ durante la instalación.

../../_images/windows-vs-studio-install.png

Asegúrate de que no haya instaladas herramientas de CMake de C++ deseleccionándolas en la lista de componentes que se instalarán.

Instalar OpenCV

Algunos de los ejemplos requieren la instalación de OpenCV.

Puedes descargar una versión precompilada de OpenCV 3.4.6 desde https://github.com/ros2/ros2/releases/download/opencv-archives/opencv-3.4.6-vc16.VS2019.zip .

Suponiendo que lo descomprimiste en C:\opencv, escribe lo siguiente en un símbolo del sistema (requiere privilegios de administrador):

setx /m OpenCV_DIR C:\opencv

Dado que está utilizando una versión ROS precompilada, debemos indicarle dónde encontrar las bibliotecas de OpenCV. Tienes que extender la variable PATH a C:\opencv\x64\vc16\bin.

Instalar dependencias

Hay algunas dependencias que no están disponibles en la base de datos del paquete Chocolatey. Para facilitar el proceso de instalación manual, proporcionamos los paquetes Chocolatey necesarios.

Como algunos paquetes chocolatosos dependen de él, comenzamos instalando CMake

choco install -y cmake

Deberás agregar la carpeta bin de CMake C:\Program Files\CMake\bin a tu PATH.

Descarga estos paquetes desde este repositorio de GitHub.

  • asio.1.12.1.nupkg

  • bullet.3.17.nupkg

  • cunit.2.1.3.nupkg

  • eigen-3.3.4.nupkg

  • tinyxml-usestl.2.6.2.nupkg

  • tinyxml2.6.0.0.nupkg

Una vez que se descargan estos paquetes, abre un shell administrativo y ejecuta el siguiente comando:

choco install -y -s <PATH\TO\DOWNLOADS\> asio cunit eigen tinyxml-usestl tinyxml2 bullet

Reemplace <PATH\TO\DOWNLOADS> con la carpeta en la que descargó los paquetes.

Primero actualiza pip y setuptools:

python -m pip install -U pip setuptools==59.6.0

Ahora instala algunas dependencias de Python adicionales:

python -m pip install -U catkin_pkg cryptography empy importlib-metadata jsonschema lark==1.1.1 lxml matplotlib netifaces numpy opencv-python PyQt5 pillow psutil pycairo pydot pyparsing==2.4.7 pyyaml rosdistro

Instalar Qt5

Descarga el instalador offline 5.12.X del sitio web de Qt. Ejecuta el instalador. Asegúrate de seleccionar el componente MSVC 2017 64-bit en el árbol Qt -> Qt 5.12.12.

Finalmente, en una ventana de administrador cmd.exe configura estas variables de entorno. Los siguientes comandos asumen que lo instalaste en la ubicación predeterminada de C:\Qt.

setx /m Qt5_DIR C:\Qt\Qt5.12.12\5.12.12\msvc2017_64
setx /m QT_QPA_PLATFORM_PLUGIN_PATH C:\Qt\Qt5.12.12\5.12.12\msvc2017_64\plugins\platforms

Nota

Esta ruta puede cambiar según la versión de MSVC instalada, el directorio en el que se instaló Qt y la versión de Qt instalada.

Dependencias de RQt

Para ejecutar rqt_graph, debe descargar e instalar Graphviz. El instalador le preguntará si desea agregar graphviz a PATH, elige agregarlo al usuario actual o a todos los usuarios.

Instalar implementaciones de DDS adicionales (opcional)

Si desea utilizar otro proveedor de DDS o RTPS además del DDS rápido predeterminado, puede encontrar instrucciones aquí.

Prerequisitos adicionales

Al compilar desde el código fuente, necesitarás algunos prerequisitos adicionales instalados.

Instalar prerequisitos adicionales de Chocolatey

choco install -y cppcheck curl git winflexbison3

Deberás agregar la carpeta Git cmd C:\Program Files\Git\cmd al PATH (puedes hacerlo haciendo clic en el ícono de Windows, escribiendo «Variables de entorno» y luego haciendo clic en «Editar el entorno del sistema variables». En el cuadro de diálogo resultante, haz clic en «Variables de entorno», haz clic en «Path» en el panel inferior, luego haz clic en «Editar» y agrega la ruta).

Instalar prerequisitos de Python

Instalación de dependencias adicionales de Python:

pip install -U colcon-common-extensions coverage flake8 flake8-blind-except flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes mock mypy==0.931 pep8 pydocstyle pytest pytest-mock vcstool

Instalar otros varios prerequisitos

A continuación instala xmllint:

Obtener el código ROS 2

Ahora que tenemos las herramientas de desarrollo podemos obtener el código fuente de ROS 2.

Primero configura una carpeta de desarrollo, por ejemplo C:\rolling:

Nota

Es muy importante que la ruta elegida sea corta, debido a los cortos límites predeterminados de ruta de Windows (260 caracteres). Para permitir rutas más largas, consulta https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry.

md \rolling\src
cd \rolling

Obtén el archivo ros2.repos que define los repositorios desde los que clonar:

vcs import --input https://raw.githubusercontent.com/ros2/ros2/rolling/ros2.repos src

Instalar implementaciones de DDS adicionales (opcional)

Fast DDS se incluye con las fuentes de ROS 2 y siempre se compilará a menos que coloque un archivo COLCON_IGNORE en la carpeta src\eProsima.

Si deseas utilizar otro proveedor de DDS o RTPS además del predeterminado, puedes encontrar instrucciones aquí.

Compila el código ROS 2

Para compilar ROS 2, necesitarás un símbolo del sistema de Visual Studio («x64 Native Tools Command Prompt for VS 2019») ejecutándose como administrador.

Para compilar el árbol de la carpeta \rolling:

colcon build --merge-install

Nota

Estamos usando --merge-install aquí para evitar una variable PATH que sea demasiado larga al final de la compilación. Si estás adaptando estas instrucciones para crear un espacio de trabajo más pequeño, es posible que pueda usar el comportamiento predeterminado que es una instalación aislada, es decir, donde cada paquete se instala en una carpeta diferente.

Nota

Si estás haciendo una compilación de depuración, usa python_d path\to\colcon_executable colcon. Consulta Cosas adicionales para el modo de depuración para obtener más información sobre cómo ejecutar el código de Python en compilaciones de depuración en Windows.

Configuración del entorno

Inicia una shell de comandos y obtén el archivo de configuración de ROS 2 para configurar el espacio de trabajo:

call C:\rolling\install\local_setup.bat

Esto configurará automáticamente el entorno para cualquier proveedor de DDS para el soporte se haya compilado.

Es normal que el comando anterior, si nada más salió mal, muestre «El sistema no puede encontrar la ruta especificada.» exactamente una vez.

Probar y ejecutar

Tenga en cuenta que la primera vez que ejecutes cualquier ejecutable, deberás permitir el acceso a la red a través de una ventana emergente del Firewall de Windows.

Puedes ejecutar las pruebas usando este comando:

colcon test --merge-install

Nota

--merge-install solo debe usarse si también se usó en el paso de compilación.

Luego puedes obtener un resumen de las pruebas usando este comando:

colcon test-result

Para ejecutar los ejemplos, primero abre un archivo cmd.exe nuevo y limpio y configura el espacio de trabajo ejecutando el archivo local_setup.bat. Luego, ejecuta un C++ talker:

call install\local_setup.bat
ros2 run demo_nodes_cpp talker

En un shell separado, puedes hacer lo mismo, pero en su lugar ejecute Python listener:

call install\local_setup.bat
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!

Nota

No se recomienda compilar en el mismo cmd prompt en el que ejecutó local_setup.bat.

Siguientes pasos después de la instalación

Continúa con los tutoriales y demostraciones para configurar tu entorno, crear tu propio espacio de trabajo y paquetes, y aprender los conceptos básicos de ROS 2.

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. Consultea la guía sobre cómo trabajar con múltiples RMW.

Cosas adicionales para el modo de depuración

Si deseas poder ejecutar todas las pruebas en modo de depuración, deberás instalar algunas cosas más:

  • Para poder extraer el tarball fuente de Python, puedes usar PeaZip:

choco install -y peazip
  • También necesitarás SVN, ya que algunas de las dependencias de compilación de fuentes de Python se verifican a través de SVN:

choco install -y svn hg
  • Deberás salir y reiniciar el símbolo del sistema después de instalar lo anterior.

  • Obtén y extráe las fuentes de Python 3.8.3 del tgz:

  • Ahora, copila lo fuentes de Python en modo de depuración desde un símbolo del sistema de Visual Studio:

cd C:\dev\Python-3.8.3\PCbuild
get_externals.bat
build.bat -p x64 -d
  • Finalmente, copia los productos de compilación en los directorios de instalación de Python38, junto al ejecutable de Python en modo release y las DLL’s:

cd C:\dev\Python-3.8.3\PCbuild\amd64
copy python_d.exe C:\Python38 /Y
copy python38_d.dll C:\Python38 /Y
copy python3_d.dll C:\Python38 /Y
copy python38_d.lib C:\Python38\libs /Y
copy python3_d.lib C:\Python38\libs /Y
copy sqlite3_d.dll C:\Python38\DLLs /Y
for %I in (*_d.pyd) do copy %I C:\Python38\DLLs /Y
  • Ahora, desde un nuevo símbolo del sistema, asegúrate de que python_d funciona:

python_d -c "import _ctypes ; import coverage"
  • Una vez que hayas verificado el funcionamiento de python_d, es necesario reinstalar algunas dependencias con las bibliotecas habilitadas para depuración:

python_d -m pip install --force-reinstall https://github.com/ros2/ros2/releases/download/numpy-archives/numpy-1.18.4-cp38-cp38d-win_amd64.whl
python_d -m pip install --force-reinstall https://github.com/ros2/ros2/releases/download/lxml-archives/lxml-4.5.1-cp38-cp38d-win_amd64.whl
  • Para verificar la instalación de estas dependencias:

python_d -c "from lxml import etree ; import numpy"
  • Cuando desees volver a compilar los binarios de «release», es necesario desinstalar las variantes de depuración y utilizar la de versión «release»:

python -m pip uninstall numpy lxml
python -m pip install numpy lxml
  • Para crear scripts ejecutables de python (.exe), se debe usar python_d para invocar a colcon

python_d path\to\colcon_executable build
  • ¡Hurra, ya terminaste!

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 solución de problemas se pueden encontrar aquí.

Uninstall

  1. 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 el archivo de setup del espacio de trabajo. De esta manera, tu entorno se comportará como si no hubiera una instalación de Rolling en su sistema.

  2. Si también estás intentando liberar espacio, puedes eliminar todo el directorio del espacio de trabajo con:

    rmdir /s /q \ros2_rolling