linking externam libraries from another package ROS2
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.