Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

resolveConstraintFrames() referenced but not implemented #189

Closed
CapedOpossum opened this issue May 17, 2020 · 2 comments
Closed

resolveConstraintFrames() referenced but not implemented #189

CapedOpossum opened this issue May 17, 2020 · 2 comments
Labels
bug Something isn't working

Comments

@CapedOpossum
Copy link

Description

When building moveit2 for ROS 2 eloquent, the build fails at the moveit_ros package, specifically when building the planning_request_adapter_plugins in the planning sub-directory. The build fails because the default_planner_request_adapters::ResolveConstraintFrame class implementation (located at moveit_ros/planning/planning_request_adapter_plugins/src/resolve_constrant_frames.cpp) references the resolveConstraintFrames() function in the moveit::kinematics_constrant namespace, but said function has been commented out for a while. The comment block just above the function implementation in the moveit_core/kinematics_constrant/utils.cpp file hinted at the function not being used anywhere, despite its use in default_planner_request_adapters::ResolveConstraintFrames. The function declaration, however, was not commented out.

An article published around February this year hinted at plugin functionality not being available, and given the name of the subdirectory containing the broken file (planning_request_adapter_plugins), I wonder if that's a directory that must be excluded from the build.

Your environment

  • ROS Distro: Eloquent (ROS2)
  • OS Version: macOS 10.13.6
  • Source or Binary build? Source Build
  • If binary, which release version? N/A
  • If source, which branch? master

Steps to reproduce

  1. Install and build ROS 2 eloquent from source, along with any required dependencies.
  2. Create a "workspace" directory as the root of the ROS 2 tree for MoveIt! 2 (e.g., moveit2_ws)
  3. Clone ros-planning/moveit2 onto a src folder under the aforementioned "workspace" folder.
  4. Do a colcon build --symlink-install from the root of the ROS 2 tree.

Expected behaviour

Packages should build and install under the ROS 2 tree in the install/ subfolder.

Actual behaviour

After successfully building moveit_core, moveit_msgs, moveit_resources, moveit_simple_controller_manager (not necessarily in that order, and not explicitly listing pre-requisites), build fails at moveit_ros_planning.

Backtrace or Console output

Abbreviated build output follows:

Undefined symbols for architecture x86_64:
  "kinematic_constraints::resolveConstraintFrames(moveit::core::RobotState const&, moveit_msgs::msg::Constraints_<std::__1::allocator<void> >&)", referenced from:
      default_planner_request_adapters::ResolveConstraintFrames::adaptAndPlan(boost::function<bool (std::__1::shared_ptr<planning_scene::PlanningScene const> const&, moveit_msgs::msg::MotionPlanRequest_<std::__1::allocator<void> > const&, planning_interface::MotionPlanResponse&)> const&, std::__1::shared_ptr<planning_scene::PlanningScene const> const&, moveit_msgs::msg::MotionPlanRequest_<std::__1::allocator<void> > const&, planning_interface::MotionPlanResponse&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >&) const in resolve_constraint_frames.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[2]: *** [planning_request_adapter_plugins/CMakeFiles/moveit_default_planning_request_adapter_plugins.dir/build.make:393: planning_request_adapter_plugins/libmoveit_default_planning_request_adapter_plugins..dylib] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:565: planning_request_adapter_plugins/CMakeFiles/moveit_default_planning_request_adapter_plugins.dir/all] Error 2
@CapedOpossum CapedOpossum added the bug Something isn't working label May 17, 2020
@henningkayser
Copy link
Member

@CapedOpossum thanks for reporting this. I'm right now working on a MoveIt 1 master branch sync and also ran into this, even though it apparently wasn't occurring with the recommended target setup (Ubuntu 18.04, colcon build without --symlink-install). I'll look into enabling this function again when the sync gets merged.

@henningkayser
Copy link
Member

henningkayser commented Oct 14, 2020

This has been fixed with ff27996. Full macOS support has been provided with #271 (for Foxy).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants