Hello, it seems like I cannot build the custom message for a service. I already tried all the solutions as it clearly visible a lot of people are struggeling with this.
Error Code:
NODES
/
bb8_move_in_custom_service (services_quiz/bb8_move_custom_service_server.py)ROS_MASTER_URI=http://master:11311
process[bb8_move_in_custom_service-1]: started with pid [13083]
Traceback (most recent call last):
File “/home/user/catkin_ws/src/services_quiz/src/bb8_move_custom_service_server.py”, line 4, in
from services_quiz.srv import BB8CustomServiceMessage, BB8CustomServiceMessageResponse # you import the service message python classes generated from Empty.srv.
ImportError: No module named services_quiz.srv
[bb8_move_in_custom_service-1] process has died [pid 13083, exit code 1, cmd /home/user/catkin_ws/src/services_quiz/src/bb8_move_custom_service_server.py __name:=bb8_move_in_custom_service __log:=/home/user/.ros/log/341a7be0-9aab-11ea-bc1c-0a23ce3dcc4a/bb8_move_in_custom_service-1.log].
log file: /home/user/.ros/log/341a7be0-9aab-11ea-bc1c-0a23ce3dcc4a/bb8_move_in_custom_service-1*.log
all processes on machine have died, roslaunch will exit
shutting down processing monitor…
… shutting down processing monitor complete
done
rm -rf build
catkin_make
source devel/setup.bash
did not work. I sourced all the shells, didn’t work
These is my CMakeLists.txt:
> cmake_minimum_required(VERSION 3.0.2)
>
> project(services_quiz)
>
> ## Compile as C++11, supported in ROS Kinetic and newer
>
> # add_compile_options(-std=c++11)
>
> ## Find catkin macros and libraries
>
> ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
>
> ## is used, also find other catkin packages
>
> find_package(catkin REQUIRED COMPONENTS
>
> rospy
>
> std_msgs
>
> message_generation
>
> )
>
> ## System dependencies are found with CMake's conventions
>
> # find_package(Boost REQUIRED COMPONENTS system)
>
> ## Uncomment this if the package has a setup.py. This macro ensures
>
> ## modules and global scripts declared therein get installed
>
> ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
>
> # catkin_python_setup()
>
> ################################################
>
> ## Declare ROS messages, services and actions ##
>
> ################################################
>
> ## To declare and build messages, services or actions from within this
>
> ## package, follow these steps:
>
> ## * Let MSG_DEP_SET be the set of packages whose message types you use in
>
> ## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
>
> ## * In the file package.xml:
>
> ## * add a build_depend tag for "message_generation"
>
> ## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
>
> ## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
>
> ## but can be declared for certainty nonetheless:
>
> ## * add a exec_depend tag for "message_runtime"
>
> ## * In this file (CMakeLists.txt):
>
> ## * add "message_generation" and every package in MSG_DEP_SET to
>
> ## find_package(catkin REQUIRED COMPONENTS ...)
>
> ## * add "message_runtime" and every package in MSG_DEP_SET to
>
> ## catkin_package(CATKIN_DEPENDS ...)
>
> ## * uncomment the add_*_files sections below as needed
>
> ## and list every .msg/.srv/.action file to be processed
>
> ## * uncomment the generate_messages entry below
>
> ## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
>
> ## Generate messages in the 'msg' folder
>
> # add_message_files(
>
> # FILES
>
> # Message1.msg
>
> # Message2.msg
>
> # )
>
> # Generate services in the 'srv' folder
>
> add_service_files(
>
> FILES
>
> BB8CustomServiceMessage.srv
>
>
>
> )
>
> ## Generate actions in the 'action' folder
>
> # add_action_files(
>
> # FILES
>
> # Action1.action
>
> # Action2.action
>
> # )
>
> # Generate added messages and services with any dependencies listed here
>
> generate_messages(
>
> DEPENDENCIES
>
> std_msgs # Or other packages containing msgs
>
> )
>
> ################################################
>
> ## Declare ROS dynamic reconfigure parameters ##
>
> ################################################
>
> ## To declare and build dynamic reconfigure parameters within this
>
> ## package, follow these steps:
>
> ## * In the file package.xml:
>
> ## * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
>
> ## * In this file (CMakeLists.txt):
>
> ## * add "dynamic_reconfigure" to
>
> ## find_package(catkin REQUIRED COMPONENTS ...)
>
> ## * uncomment the "generate_dynamic_reconfigure_options" section below
>
> ## and list every .cfg file to be processed
>
> ## Generate dynamic reconfigure parameters in the 'cfg' folder
>
> # generate_dynamic_reconfigure_options(
>
> # cfg/DynReconf1.cfg
>
> # cfg/DynReconf2.cfg
>
> # )
>
> ###################################
>
> ## catkin specific configuration ##
>
> ###################################
>
> ## The catkin_package macro generates cmake config files for your package
>
> ## Declare things to be passed to dependent projects
>
> ## INCLUDE_DIRS: uncomment this if your package contains header files
>
> ## LIBRARIES: libraries you create in this project that dependent projects also need
>
> ## CATKIN_DEPENDS: catkin_packages dependent projects also need
>
> ## DEPENDS: system dependencies of this project that dependent projects also need
>
> catkin_package(
>
> INCLUDE_DIRS include
>
> LIBRARIES services_quiz
>
> CATKIN_DEPENDS rospy
>
> DEPENDS system_lib
>
> )
>
> ###########
>
> ## Build ##
>
> ###########
>
> ## Specify additional locations of header files
>
> ## Your package locations should be listed before other locations
>
> include_directories(
>
> # include
>
> ${catkin_INCLUDE_DIRS}
>
> )
>
> ## Declare a C++ library
>
> # add_library(${PROJECT_NAME}
>
> # src/${PROJECT_NAME}/services_quiz.cpp
>
> # )
>
> ## Add cmake target dependencies of the library
>
> ## as an example, code may need to be generated before libraries
>
> ## either from message generation or dynamic reconfigure
>
> # add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
>
> ## Declare a C++ executable
>
> ## With catkin_make all packages are built within a single CMake context
>
> ## The recommended prefix ensures that target names across packages don't collide
>
> # add_executable(${PROJECT_NAME}_node src/services_quiz_node.cpp)
>
> ## Rename C++ executable without prefix
>
> ## The above recommended prefix causes long target names, the following renames the
>
> ## target back to the shorter version for ease of user use
>
> ## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
>
> # set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
>
> ## Add cmake target dependencies of the executable
>
> ## same as for the library above
>
> # add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
>
> ## Specify libraries to link a library or executable target against
>
> # target_link_libraries(${PROJECT_NAME}_node
>
> # ${catkin_LIBRARIES}
>
> # )
>
> #############
>
> ## Install ##
>
> #############
>
> # all install targets should use catkin DESTINATION variables
>
> # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
>
> ## Mark executable scripts (Python etc.) for installation
>
> ## in contrast to setup.py, you can choose the destination
>
> # catkin_install_python(PROGRAMS
>
> # scripts/my_python_script
>
> # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
>
> # )
>
> ## Mark executables for installation
>
> ## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html
>
> # install(TARGETS ${PROJECT_NAME}_node
>
> # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
>
> # )
>
> ## Mark libraries for installation
>
> ## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html
>
> # install(TARGETS ${PROJECT_NAME}
>
> # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
>
> # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
>
> # RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
>
> # )
>
> ## Mark cpp header files for installation
>
> # install(DIRECTORY include/${PROJECT_NAME}/
>
> # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
>
> # FILES_MATCHING PATTERN "*.h"
>
> # PATTERN ".svn" EXCLUDE
>
> # )
>
> ## Mark other files for installation (e.g. launch and bag files, etc.)
>
> # install(FILES
>
> # # myfile1
>
> # # myfile2
>
> # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
>
> # )
>
> #############
>
> ## Testing ##
>
> #############
>
> ## Add gtest based cpp test target and link libraries
>
> # catkin_add_gtest(${PROJECT_NAME}-test test/test_services_quiz.cpp)
>
> # if(TARGET ${PROJECT_NAME}-test)
>
> # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
>
> # endif()
>
> ## Add folders to be run by python nosetests
>
> # catkin_add_nosetests(test)
This is my package.xml:
> <?xml version="1.0"?>
>
> <package format="2">
>
> <name>services_quiz</name>
>
> <version>0.0.0</version>
>
> <description>The services_quiz package</description>
>
> <!-- One maintainer tag required, multiple allowed, one person per tag -->
>
> <!-- Example: -->
>
> <!-- <maintainer email="jane.doe@example.com">Jane Doe</maintainer> -->
>
> <maintainer email="user@todo.todo">user</maintainer>
>
> <!-- One license tag required, multiple allowed, one license per tag -->
>
> <!-- Commonly used license strings: -->
>
> <!-- BSD, MIT, Boost Software License, GPLv2, GPLv3, LGPLv2.1, LGPLv3 -->
>
> <license>TODO</license>
>
> <!-- Url tags are optional, but multiple are allowed, one per tag -->
>
> <!-- Optional attribute type can be: website, bugtracker, or repository -->
>
> <!-- Example: -->
>
> <!-- <url type="website">http://wiki.ros.org/services_quiz</url> -->
>
> <!-- Author tags are optional, multiple are allowed, one per tag -->
>
> <!-- Authors do not have to be maintainers, but could be -->
>
> <!-- Example: -->
>
> <!-- <author email="jane.doe@example.com">Jane Doe</author> -->
>
> <!-- The *depend tags are used to specify dependencies -->
>
> <!-- Dependencies can be catkin packages or system dependencies -->
>
> <!-- Examples: -->
>
> <!-- Use depend as a shortcut for packages that are both build and exec dependencies -->
>
> <!-- <depend>roscpp</depend> -->
>
> <!-- Note that this is equivalent to the following: -->
>
> <!-- <build_depend>roscpp</build_depend> -->
>
> <!-- <exec_depend>roscpp</exec_depend> -->
>
> <!-- Use build_depend for packages you need at compile time: -->
>
> <build_depend>message_generation</build_depend>
>
> <!-- Use build_export_depend for packages you need in order to build against this package: -->
>
> <!-- <build_export_depend>message_generation</build_export_depend> -->
>
> <!-- Use buildtool_depend for build tool packages: -->
>
> <!-- <buildtool_depend>catkin</buildtool_depend> -->
>
> <!-- Use exec_depend for packages you need at runtime: -->
>
> <!-- <exec_depend>message_runtime</exec_depend> -->
>
> <!-- Use test_depend for packages you need only for testing: -->
>
> <!-- <test_depend>gtest</test_depend> -->
>
> <!-- Use doc_depend for packages you need only for building documentation: -->
>
> <!-- <doc_depend>doxygen</doc_depend> -->
>
> <buildtool_depend>catkin</buildtool_depend>
>
> <build_depend>rospy</build_depend>
>
> <build_depend>std_msgs</build_depend>
>
> <build_depend>message_generation</build_depend>
>
> <build_export_depend>rospy</build_export_depend>
>
> <exec_depend>rospy</exec_depend>
>
> <build_export_depend>std_msgs</build_export_depend>
>
> <exec_depend>std_msgs</exec_depend>
>
> <build_export_depend>message_runtime</build_export_depend>
>
> <exec_depend>message_runtime</exec_depend>
>
> <!-- The export tag contains other, unspecified, tags -->
>
> <export>
>
> <!-- Other tools can request additional information be placed here -->
>
> </export>
>
> </package>
The help is really appreciated. I trying to solve this now for two days. It is really frustrating.
Best regards Felix