Debugging ROS2 custom nodes on windows

asked 2020-03-31 02:29:05 -0500

bouncingm4rc3l gravatar image

updated 2020-03-31 02:48:40 -0500

gvdhoorn gravatar image

Hi,

I am wondering if it's really as complex as it seems to be at this moment to debug custom ROS2 nodes in c++.

What I am doing is the following:

  1. build python_d as described in "building ROS2 on windows" chapter "Extra stuff for debug mode" -> here
  2. install numpy and lxml as debug (provided from ROS2 GitHub)
  3. build ros2 workspace with -DCMAKE_BUILD_TYPE=Debug
  4. source ros2 debug workspace
  5. build my own ros2 packages with -DCMAKE_BUILD_TYPE=Debug

This is working fine on my machine, but when I try to build my own packages as release, I always have to uninstall debug numpy and lxml and reinstall release versions of it.

output:

Starting >>> swc_msgs
--- stderr: swc_msgs
Traceback (most recent call last):
  File "C:\Python37\lib\site-packages\numpy\core\__init__.py", line 40, in <module>
    from . import multiarray
  File "C:\Python37\lib\site-packages\numpy\core\multiarray.py", line 12, in <module>
    from . import overrides
  File "C:\Python37\lib\site-packages\numpy\core\overrides.py", line 6, in <module>
    from numpy.core._multiarray_umath import (
ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Python37\lib\site-packages\numpy\__init__.py", line 142, in <module>
    from . import core
  File "C:\Python37\lib\site-packages\numpy\core\__init__.py", line 71, in <module>
    raise ImportError(msg)
ImportError:

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!

Importing the multiarray numpy extension module failed.  Most
likely you are trying to import a failed build of numpy.
Here is how to proceed:
- If you're working with a numpy git repository, try `git clean -xdf`
  (removes all files not under version control) and rebuild numpy.
- If you are simply trying to use the numpy version that you have installed:
  your installation is broken - please reinstall numpy.
- If you have already reinstalled and that did not fix the problem, then:
  1. Check that you are using the Python you expect (you're using C:\Python37\python.exe),
     and that you have no directories in your PATH or PYTHONPATH that can
     interfere with the Python and numpy versions you're trying to use.
  2. If (1) looks fine, you can open a new issue at
     https://github.com/numpy/numpy/issues.  Please include details on:
     - how you installed Python
     - how you installed numpy
     - your operating system
     - whether or not you have multiple versions of Python installed
     - if you built from source, your compiler versions and ideally a build log

     Note: this error has many possible causes, so please don't comment on
     an existing issue about this - open a new one instead.

Original error was: No module named 'numpy.core._multiarray_umath'

CMake Error at C:/dev/ros2_dashing/install/share/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake:212 (message):
  execute_process(C:/Python37/python.exe -c 'import
  numpy;print(numpy.get_include())') returned error code 1
Call Stack (most recent call first):
  C:/dev/ros2_dashing/install/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:48 (include ...
(more)
edit retag flag offensive close merge delete

Comments

I'd also be interested in this.

This is one of the reasons I don't like to use Windows for development (at the moment at least).

gvdhoorn gravatar image gvdhoorn  ( 2020-03-31 02:49:08 -0500 )edit