Windows (fuentes)
Tabla de Contenidos
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:
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.
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 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:
Descarga los archivos binarios de 64 bits de
libxml2
(y sus dependenciasiconv
yzlib
) de https://www.zlatkovic.com/projects/libxml/Descomprime todos los archivos en, por ejemplo,
C:\xmllint
Agrega
C:\xmllint\bin
alPATH
.
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:\humble
:
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 \humble\src
cd \humble
Obtén el archivo ros2.repos
que define los repositorios desde los que clonar:
vcs import --input https://raw.githubusercontent.com/ros2/ros2/humble/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 \humble
:
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:\humble\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
:Para mantener estas instrucciones concisas, extráelas a
C:\dev\Python-3.8.3
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
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 Humble en su sistema.Si también estás intentando liberar espacio, puedes eliminar todo el directorio del espacio de trabajo con:
rmdir /s /q \ros2_humble