ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A answers.ros.org
Ask Your Question
0

polygon_plugin tutorial

asked 2017-06-20 18:18:22 -0600

crvogt gravatar image

updated 2017-06-21 01:55:18 -0600

gvdhoorn gravatar image

Hi there, I'm looking for some clarification: After following the plugin tutorial I'm ending up with this error:

[ERROR] [1497996344.648813880]: Skipping XML Document "$/home/carson/catkin_ws/src/pluginlib_tutorials_/src/polygon_plugins.xml" which had no Root Element.  This likely means the XML is malformed or missing.

[ERROR] [1497996344.648951692]: The plugin failed to load for some reason. Error: According to the loaded plugin descriptions the class polygon_plugins::Triangle with base class type polygon_base::RegularPolygon does not exist.

The difficulty seems to be when working with the polygon_plugins.xml file (which seems to have some inconsistent text), ie where does it go, and which part of the tutorial should be in it.

Currently it looks like the example plugin xml before the writer looks deeper at the code, when some of the text starts to change.

Thanks in advance

edit retag flag offensive close merge delete

Comments

Your post is missing the error.

Geoff gravatar image Geoff  ( 2017-06-20 19:04:32 -0600 )edit

Thanks for the note. It showed up in the preview

crvogt gravatar image crvogt  ( 2017-06-20 19:07:36 -0600 )edit

Can you post that source file (polygon_plugins.xml) as well?

Geoff gravatar image Geoff  ( 2017-06-20 19:09:08 -0600 )edit

@crvogt: for console copy-pastes you'll need to use the Preformatted Text button (the one with 101010 on it). Otherwise things like [ERROR] will get filtered out of the HTML rendering.

gvdhoorn gravatar image gvdhoorn  ( 2017-06-21 01:56:07 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2022-04-13 11:22:53 -0600

dottant gravatar image

Be sure to not miss in your "polygon_plugins" CMakeLists the line

pluginlib_export_plugin_description_file(polygon_base plugins.xml)

The entire CMakeLists must be

    cmake_minimum_required(VERSION 3.5)
project(polygon_plugins)

# Default to C99
if(NOT CMAKE_C_STANDARD)
  set(CMAKE_C_STANDARD 99)
endif()

# Default to C++14
if(NOT CMAKE_CXX_STANDARD)
  set(CMAKE_CXX_STANDARD 14)
endif()

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
  add_compile_options(-Wall -Wextra -Wpedantic)
endif()

# find dependencies
find_package(ament_cmake REQUIRED)
find_package(ament_cmake_ros REQUIRED)
find_package(polygon_base REQUIRED)
find_package(pluginlib REQUIRED)

add_library(polygon_plugins src/polygon_plugins.cpp)
target_include_directories(polygon_plugins PUBLIC
  $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  $<INSTALL_INTERFACE:include>)
ament_target_dependencies(
  polygon_plugins
  "polygon_base"
  "pluginlib"
)

pluginlib_export_plugin_description_file(polygon_base plugins.xml)

# Causes the visibility macros to use dllexport rather than dllimport,
# which is appropriate when building the dll but not consuming it.
target_compile_definitions(polygon_plugins PRIVATE "POLYGON_PLUGINS_BUILDING_LIBRARY")

install(
  DIRECTORY include/
  DESTINATION include
)
install(
  TARGETS polygon_plugins
  EXPORT export_${PROJECT_NAME}
  ARCHIVE DESTINATION lib
  LIBRARY DESTINATION lib
  RUNTIME DESTINATION bin
)

if(BUILD_TESTING)
  find_package(ament_lint_auto REQUIRED)
  # the following line skips the linter which checks for copyrights
  # uncomment the line when a copyright and license is not present in all source files
  #set(ament_cmake_copyright_FOUND TRUE)
  # the following line skips cpplint (only works in a git repo)
  # uncomment the line when this package is not in a git repo
  #set(ament_cmake_cpplint_FOUND TRUE)
  ament_lint_auto_find_test_dependencies()
endif()

ament_export_include_directories(
  include
)
ament_export_libraries(
  polygon_plugins
)
ament_export_targets(
  export_${PROJECT_NAME}
)

ament_package()

Hope it helps

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2017-06-20 18:18:22 -0600

Seen: 240 times

Last updated: Apr 13 '22