Build kuka_experimental package on Windows 10 ROS1 noetic
I'm new to ROS and i am trying to build kuka_experimental package on Windows 10 ROS Noetic. I managed to install the dependencies with https://github.com/simonschmeisser/in... branch, but catkin_make throws following error, if i try to build kuka_experimental package:
C:\catkin_ws>rosdep install --from-paths src --ignore-src
# All required rosdeps installed successfully
C:\catkin_ws>catkin_make
Base path: C:\catkin_ws
Source space: C:\catkin_ws\src
Build space: C:\catkin_ws\build
Devel space: C:\catkin_ws\devel
Install space: C:\catkin_ws\install
####
#### Running command: "nmake cmake_check_build_system" in "C:\catkin_ws\build"
####
Microsoft (R) Program Maintenance Utility, Version 14.27.29112.0
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
####
#### Running command: "nmake" in "C:\catkin_ws\build"
####
Microsoft (R) Program Maintenance Utility, Version 14.27.29112.0
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
[ 0%] Built target Project__setup_util.py_exec_install_python
[ 0%] Built target _industrial_msgs_generate_messages_check_deps_RobotMode
[ 0%] Built target _industrial_msgs_generate_messages_check_deps_TriState
[ 0%] Built target trajectory_msgs_generate_messages_eus
[ 0%] Built target std_msgs_generate_messages_eus
[ 0%] Built target _industrial_msgs_generate_messages_check_deps_SetRemoteLoggerLevel
[ 0%] Built target _industrial_msgs_generate_messages_check_deps_DeviceInfo
[ 0%] Built target _industrial_msgs_generate_messages_check_deps_SetDrivePower
[ 0%] Built target _industrial_msgs_generate_messages_check_deps_StartMotion
[ 0%] Built target _industrial_msgs_generate_messages_check_deps_RobotStatus
[ 0%] Built target _industrial_msgs_generate_messages_check_deps_CmdJointTrajectory
[ 0%] Built target _industrial_msgs_generate_messages_check_deps_DebugLevel
[ 0%] Built target _industrial_msgs_generate_messages_check_deps_GetRobotInfo
[ 0%] Built target _industrial_msgs_generate_messages_check_deps_StopMotion
[ 0%] Built target _industrial_msgs_generate_messages_check_deps_ServiceReturnCode
[ 6%] Built target industrial_msgs_generate_messages_eus
[ 6%] Built target std_msgs_generate_messages_lisp
[ 6%] Built target trajectory_msgs_generate_messages_lisp
[ 11%] Built target industrial_msgs_generate_messages_lisp
[ 11%] Built target std_msgs_generate_messages_nodejs
[ 11%] Built target trajectory_msgs_generate_messages_nodejs
[ 18%] Built target industrial_msgs_generate_messages_nodejs
[ 18%] Built target trajectory_msgs_generate_messages_cpp
[ 18%] Built target std_msgs_generate_messages_cpp
[ 25%] Built target industrial_msgs_generate_messages_cpp
[ 25%] Built target std_msgs_generate_messages_py
[ 25%] Built target trajectory_msgs_generate_messages_py
[ 31%] Built target industrial_msgs_generate_messages_py
[ 31%] Built target industrial_msgs_generate_messages
[ 32%] Built target industrial_robot_simulator_industrial_robot_simulator_exec_install_python
[ 33%] Built target industrial_robot_simulator_industrial_robot_simulator_exec_cip_devel_python
[ 35%] Built target industrial_trajectory_filters
[ 36%] Built target industrial_utils
[ 36%] Building CXX object kuka_experimental/kuka_eki_hw_interface/CMakeFiles/kuka_eki_hw_interface.dir/src/kuka_eki_hw_interface.cpp.obj
cl : Befehlszeile warning D9002 : Unbekannte Option "-std=c++11" wird ignoriert.
kuka_eki_hw_interface.cpp
C:\opt\ros\noetic\x64\include\boost/bind.hpp(41): note: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.
Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately. For example:
- add -D_WIN32_WINNT=0x0601 to the compiler command line; or
- add _WIN32_WINNT=0x0601 to your project's Preprocessor Definitions.
Assuming _WIN32_WINNT=0x0601 (i.e. Windows 7 target).
C:\opt\ros\noetic\x64\include\controller_manager/controller_spec.h(33): warning C4068: Unbekanntes Pragma "GCC".
C:\opt\ros\noetic\x64\include\hardware_interface/robot_hw.h(142): error C2143: Syntaxfehler: Es fehlt "}" vor "Konstante"
C:\opt\ros\noetic\x64\include\hardware_interface/robot_hw.h(142): error C2059: Syntaxfehler: "Konstante"
C:\opt\ros\noetic\x64\include\hardware_interface/robot_hw.h(143): error C2143: Syntaxfehler: Es fehlt ";" vor "}"
C:\opt\ros\noetic\x64\include\hardware_interface/robot_hw.h(143): error C2238: Unerwartete(s) Token vor ";"
C:\opt\ros\noetic\x64\include\hardware_interface/robot_hw.h(146): error C2433: "SwitchState": "virtual" bei der Deklaration von Daten nicht zulässig
C:\opt\ros\noetic\x64\include\hardware_interface/robot_hw.h(146): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
C:\opt\ros\noetic\x64\include\hardware_interface/robot_hw.h(146): error ...
I'm not really surprised this doesn't build on Windows. These packages were not developed with Windows in mind, so you'll likely run into Linux-isms (or GCC-isms).
Two comments:
Fixing Windows build-errors is not on the roadmap right now, so unless there are community contributors who are willing to do that, these errors will most likely not be resolved.
This does not seem to be needed: all that's used from
industrial_core
is an RViz configuration file (here fi in the KR16.launch
file).Thanks for your prompt answer and hints. I would like to use the kuka_eki_hw_interface to send a planned path (MoveIt) to KUKA controllers (KRC 4 and KRC5). Up to now we didn't use ROS and wrote our own C# application for these purposes, but ROS has developed great over the last years, so that I would like to give it at try with the intention to contribute to the kuka_experimental package in future. Unfortunately our requirement is to run it under Windows due to 3rd party dependencies / developed interfaces to PLC and so on. We have the hardware to test, but I am (currently) not that experienced in ROS to port the packages to Windows.