linking externam libraries from another package ROS2

asked 2021-11-24 02:14:26 -0500

OlexStup1996 gravatar image

Hey all, i have a problem in ROS2 to link a libraries/packages from other packages. What i want in short: i create a new packages to control industrial robot like in move_it_tutorial for foxy. But i need libraries from moveit-tutorial to control robot. In ROS 1 i just link a three to includes and it works. But in ROS 2 its dont work.

Here is Cmake list of moveit2 tutorial: "user/ws_moveit2/src/moveit2_tutorials"

cmake_minimum_required(VERSION 3.10.2) project(moveit2_tutorials)

Common cmake code applied to all moveit packages

find_package(moveit_common REQUIRED) moveit_package()

find_package(Eigen3 REQUIRED) find_package(Boost REQUIRED system filesystem date_time thread) find_package(ament_cmake REQUIRED) find_package(control_msgs REQUIRED) find_package(moveit_core REQUIRED) find_package(moveit_ros_planning REQUIRED) find_package(moveit_ros_planning_interface REQUIRED) find_package(moveit_ros_perception REQUIRED) find_package(moveit_servo REQUIRED) find_package(interactive_markers REQUIRED)

find_package(geometric_shapes REQUIRED) find_package(rclcpp REQUIRED) find_package(rclcpp_action REQUIRED) find_package(pluginlib REQUIRED) find_package(tf2_ros REQUIRED) find_package(tf2_eigen REQUIRED) find_package(tf2_geometry_msgs REQUIRED) find_package(geometry_msgs REQUIRED)

set(THIS_PACKAGE_INCLUDE_DEPENDS ament_cmake rclcpp rclcpp_action tf2_geometry_msgs tf2_ros moveit_core

moveit_ros_planning_interface interactive_markers tf2_geometry_msgs moveit_ros_planning pluginlib Eigen3 Boost control_msgs moveit_servo geometry_msgs )

include_directories(${THIS_PACKAGE_INCLUDE_DIRS})

add_subdirectory(doc/move_group_interface)

add_subdirectory(doc/quickstart_in_rviz) add_subdirectory(doc/robot_model_and_robot_state) add_subdirectory(doc/realtime_servo)

ament_export_dependencies( ${THIS_PACKAGE_INCLUDE_DEPENDS} )

ament_export_include_directories(include)

ament_package()

And know i create new package "user/dev_ws/src/move_group_interface_ur5" and here is Cmakelist of this package. i try to include DIRS with a tree: cmake_minimum_required(VERSION 3.8) project(move_group_interface_ur5)

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)

uncomment the following section in order to fill in

further dependencies manually.

find_package(<dependency> REQUIRED)

start

find_package(moveit_common REQUIRED) moveit_package()

find_package(Eigen3 REQUIRED) find_package(Boost REQUIRED system filesystem date_time thread) find_package(ament_cmake REQUIRED) find_package(control_msgs REQUIRED) find_package(moveit_core REQUIRED) find_package(moveit_ros_planning REQUIRED) find_package(moveit_ros_planning_interface REQUIRED) find_package(moveit_ros_perception REQUIRED) find_package(moveit_servo REQUIRED) find_package(interactive_markers REQUIRED)

find_package(geometric_shapes REQUIRED) find_package(rclcpp REQUIRED) find_package(rclcpp_action REQUIRED) find_package(pluginlib REQUIRED) find_package(tf2_ros REQUIRED) find_package(tf2_eigen REQUIRED) find_package(tf2_geometry_msgs REQUIRED) find_package(geometry_msgs REQUIRED)

set(THIS_PACKAGE_INCLUDE_DIRS /home/akuautomation/ws_moveit2/src/moveit2_tutorials/doc/interactivity/include)

set(THIS_PACKAGE_INCLUDE_DEPENDS ament_cmake rclcpp rclcpp_action tf2_geometry_msgs tf2_ros moveit_core

moveit_ros_planning_interface interactive_markers tf2_geometry_msgs moveit_ros_planning pluginlib Eigen3 Boost control_msgs moveit_servo geometry_msgs )

include_directories(${THIS_PACKAGE_INCLUDE_DIRS} ${EIGEN3_INCLUDE_DIRS})

ament_export_dependencies( ${THIS_PACKAGE_INCLUDE_DEPENDS} )

ament_export_include_directories(include)

add_executable(move_group_interface_ur5 src/move_group_interface_ur5.cpp) ament_target_dependencies(move_group_interface_ur5 rclcpp)

ament_package()

But its dont work and i cannot "colcon build" => Cmakelist fail . OR i can "colcon build" but first "#include < ..> "in my node.cpp (move_group_interface_ur5.cpp) is fail. What i have to change in my CmakeList ? Thank you in advice.

edit retag flag offensive close merge delete