rosgenmsg fails with encoding error

조회 수: 6 (최근 30일)
Franz Albers
Franz Albers 2022년 4월 19일
댓글: Soulaimane Berkane 2023년 3월 16일
Hello,
I want to generate some custom ROS messages in Matlab. I've followed the instructions stated here.
However, when executing rosgenmsg, I run into the error described below. The issue occurs with my own custom message package, as well as with two other custom message packages that are published on github (radar_msgs and kobuki_msgs).
According to the log, there seems to be some encoding issue with utf-8.
How can I fix the issue and build the custom messages?
rosgenmsg("C:\MATLAB\custom_messages")
Identifying message files in folder 'C:/MATLAB/custom_messages'..Done.
Validating message files in folder 'C:/MATLAB/custom_messages'..Done.
[1/1] Generating MATLAB interfaces for custom message packages... Done.
Running catkin build in folder 'C:/Matlab/custom_messages/matlab_msg_gen_ros1/win64'.
Build in progress. This may take several minutes...Error using ros.internal.ROSProjectBuilder/buildPackage
Error building package: build log.
Error in rosgenmsg (line 480)
buildPackage(builder, [], 'install', catkinMakeArgs); %other messages might need to be present in the same directory
The build log is given below:
**********************************************************************
** Visual Studio 2019 Developer Command Prompt v16.11.12
** Copyright (c) 2021 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x86_x64'
-- The C compiler identification is MSVC 19.29.30142.1
-- The CXX compiler identification is MSVC 19.29.30142.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx86/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx86/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using CATKIN_DEVEL_PREFIX: C:/Matlab/custom_messages/matlab_msg_gen_ros1/win64/devel
-- Using CMAKE_PREFIX_PATH: C:\Program Files\MATLAB\R2022a\sys\ros1\win64\ros1;C:/Program Files/MATLAB/R2022a/toolbox/ros/mlroscpp/custom_messages
-- This workspace overlays: C:/Program Files/MATLAB/R2022a/sys/ros1/win64/ros1;C:/Program Files/MATLAB/R2022a/toolbox/ros/mlroscpp/custom_messages
-- Found PythonInterp: C:/Users/Franz/AppData/Roaming/MathWorks/MATLAB/R2022a/ros1/win64/venv/Scripts/python.exe (found suitable version "3.9.12", minimum required is "3")
-- Using PYTHON_EXECUTABLE: C:/Users/Franz/AppData/Roaming/MathWorks/MATLAB/R2022a/ros1/win64/venv/Scripts/python.exe
-- Using default Python package layout
-- Found PY_em: C:\Users\Franz\AppData\Roaming\MATHWO~1\MATLAB\R2022a\ros1\win64\venv\lib\site-packages\em.py
-- Using empy: C:/Users/Franz/AppData/Roaming/MATHWO~1/MATLAB/R2022a/ros1/win64/venv/lib/site-packages/em.py
-- Using CATKIN_ENABLE_TESTING: off
-- catkin 0.8.10
-- BUILD_SHARED_LIBS is on
Das Sprungziel - GenerateTempFilename wurde nicht gefunden.
Traceback (most recent call last):
File "C:\Matlab\custom_messages\matlab_msg_gen_ros1\win64\build\catkin_generated\generate_cached_setup.py", line 22, in <module>
code = generate_environment_script('C:/Matlab/custom_messages/matlab_msg_gen_ros1/win64/devel/env.bat')
File "C:\PROGRA~1\MATLAB\R2022a\sys\ros1\win64\ros1\lib\site-packages\catkin\environment_cache.py", line 63, in generate_environment_script
env_after = ast.literal_eval(output.decode('utf-8'))
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe4 in position 3940: invalid continuation byte
CMake Error at C:/Program Files/MATLAB/R2022a/sys/ros1/win64/ros1/share/catkin/cmake/safe_execute_process.cmake:11 (message):
execute_process(C:/Users/Franz/AppData/Roaming/MathWorks/MATLAB/R2022a/ros1/win64/venv/Scripts/python.exe
"C:/Matlab/custom_messages/matlab_msg_gen_ros1/win64/build/catkin_generated/generate_cached_setup.py")
returned error code 1
Call Stack (most recent call first):
C:/Program Files/MATLAB/R2022a/sys/ros1/win64/ros1/share/catkin/cmake/all.cmake:208 (safe_execute_process)
C:/Program Files/MATLAB/R2022a/sys/ros1/win64/ros1/share/catkin/cmake/catkinConfig.cmake:20 (include)
CMakeLists.txt:58 (find_package)
-- Configuring incomplete, errors occurred!
See also "C:/Matlab/custom_messages/matlab_msg_gen_ros1/win64/build/CMakeFiles/CMakeOutput.log".
Base path: C:\MATLAB\custom_messages\matlab_msg_gen_ros1\win64
Source space: C:\MATLAB\custom_messages\matlab_msg_gen_ros1\win64\src
Build space: C:\MATLAB\custom_messages\matlab_msg_gen_ros1\win64\build
Devel space: C:\MATLAB\custom_messages\matlab_msg_gen_ros1\win64\devel
Install space: C:\MATLAB\custom_messages\matlab_msg_gen_ros1\win64\install
Copying file from "C:\PROGRA~1\MATLAB\R2022a\sys\ros1\win64\ros1\share\catkin\cmake\toplevel.cmake" to "C:\MATLAB\custom_messages\matlab_msg_gen_ros1\win64\src\CMakeLists.txt"
####
#### Running command: "cmake C:\MATLAB\custom_messages\matlab_msg_gen_ros1\win64\src -DALIAS_ROS1_CLASS_LOADER=1 -DBoost_NAMESPACE=mwboost -DCATKIN_ENABLE_TESTING=off -DCMAKE_CXX_COMPILER=cl.exe -DCMAKE_C_COMPILER=cl.exe -DCMAKE_LINKER=link.exe -DMSVC_TOOLSET_VERSION=141 -DCMAKE_PREFIX_PATH=C:\Program Files\MATLAB\R2022a\sys\ros1\win64\ros1;C:/Program Files/MATLAB/R2022a/toolbox/ros/mlroscpp/custom_messages -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE=/MD /Od /Ob2 /DNDEBUG -DCATKIN_DEVEL_PREFIX=C:\MATLAB\custom_messages\matlab_msg_gen_ros1\win64\devel -DCMAKE_INSTALL_PREFIX=C:\MATLAB\custom_messages\matlab_msg_gen_ros1\win64\install -G Ninja" in "C:\MATLAB\custom_messages\matlab_msg_gen_ros1\win64\build"
####
Invoking "cmake" failed
  댓글 수: 3
Franz Albers
Franz Albers 2022년 4월 20일
Hey Hari,
thanks for the quick reply!
I don't think that the issue arises due to the package itself, as building our custom messages works on other computers and building the radar_msgs or kobuki_msgs does also not work in my setup. However, I've attached our custom message package.
I rather think that there might be a conflict with my system environment and lines 60-63 of environment_cache.py, where the error for some reason occurs on my system.
# fetch environment after calling setup
python_code = 'import os; print(dict(os.environ))'
output = subprocess.check_output([env_script, sys.executable, '-c', python_code])
# print(output)
env_after = ast.literal_eval(output.decode('utf8'))
I've also printed the output in the line before the error occurs (as commented in the code above) to the log file and attached the log file (see lines 16-19 of stdout_stderr.log.txt).
Greetings,
Franz
Soulaimane Berkane
Soulaimane Berkane 2023년 3월 16일
Hello Franz,
I am facing a similar problem to yours. Did you figure out a solution? Thank you in advance.

댓글을 달려면 로그인하십시오.

답변 (1개)

Jagadeesh Konakalla
Jagadeesh Konakalla 2022년 11월 21일
Looks issue is with the environment as mentioned by Franz.

카테고리

Help CenterFile Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

제품


릴리스

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by