ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

MoveIt loading CHOMP library from wrong path

asked 2022-01-14 03:56:05 -0500

willemstuijt gravatar image

updated 2022-01-15 03:27:59 -0500

I wanted to try the CHOMP path planner with MoveIt, but when I try that I get the following error:

[ERROR] [1642153041.575042140]: Exception while loading planner 'chomp_interface/CHOMPPlanner': Failed to load library /opt/ros/noetic/lib//libchomp_planner_plugin.so. Make sure that you are calling the PLUGINLIB_EXPORT_CLASS macro in the library code, and that names are consistent between this macro and your XML.

I have installed CHOMP and /opt/ros/noetic/lib/libchomp_planner_plugin.so exists in my system. However notice how MoveIt seems to be adding 2 forward slashes before the file name /opt/ros/noetic/lib//libchomp_planner_plugin.so.

Is there a way to change this path?

  • OS: Ubuntu 20.04
  • ROS version: noetic

move_group.launch

<launch>

  <!-- GDB Debug Option -->
  <arg name="debug" default="false" />
  <arg unless="$(arg debug)" name="launch_prefix" value="" />
  <arg if="$(arg debug)" name="launch_prefix" value="gdb -x $(find my_robot_moveit)/launch/gdb_settings.gdb --ex run --args" />

  <!-- Verbose Mode Option -->
  <arg name="info" default="$(arg debug)" />
  <arg unless="$(arg info)" name="command_args" value="" />
  <arg if="$(arg info)" name="command_args" value="--debug" />

  <!-- move_group settings -->
  <arg name="pipeline" default="ompl" />
  <arg name="allow_trajectory_execution" default="true" />
  <arg name="fake_execution" default="false" />
  <arg name="execution_type" default="interpolate" /> <!-- set to 'last point' to skip intermediate trajectory in fake execution -->
  <arg name="max_safe_path_cost" default="1" />
  <arg name="jiggle_fraction" default="0.05" />
  <arg name="publish_monitored_planning_scene" default="true" />

  <arg name="capabilities" default="" />
  <arg name="disable_capabilities" default="" />
  <!-- load these non-default MoveGroup capabilities (space seperated) -->
  <!--
  <arg name="capabilities" value="
                a_package/AwsomeMotionPlanningCapability
                another_package/GraspPlanningPipeline
                " />
  -->

  <!-- inhibit these default MoveGroup capabilities (space seperated) -->
  <!--
  <arg name="disable_capabilities" value="
                move_group/MoveGroupKinematicsService
                move_group/ClearOctomapService
                " />
  -->

  <arg name="load_robot_description" default="true" />
  <!-- load URDF, SRDF and joint_limits configuration -->
  <include file="$(find my_robot_moveit)/launch/planning_context.launch">
    <arg name="load_robot_description" value="$(arg load_robot_description)" />
  </include>

  <!-- Planning Pipelines -->
  <group ns="move_group/planning_pipelines">

    <!-- OMPL -->
    <!-- <include ns="ompl" file="$(find my_robot_moveit)/launch/planning_pipeline.launch.xml">
      <arg name="pipeline" value="ompl" />
    </include> -->

    <!-- CHOMP -->
    <include ns="chomp" file="$(find my_robot_moveit)/launch/planning_pipeline.launch.xml">
      <arg name="pipeline" value="chomp" />
    </include>

    <!-- Pilz Industrial Motion-->
    <!-- <include ns="pilz_industrial_motion_planner" file="$(find moveit_resources_prbt_moveit_config)/launch/planning_pipeline.launch.xml">
      <arg name="pipeline" value="pilz_industrial_motion_planner" />
    </include> -->

    <!-- Support custom planning pipeline -->
    <include if="$(eval arg('pipeline') not in ['ompl', 'chomp', 'pilz_industrial_motion_planner'])" file="$(find my_robot_moveit)/launch/planning_pipeline.launch.xml">
      <arg name="pipeline" value="$(arg pipeline)" />
    </include>
  </group>

  <!-- Trajectory Execution Functionality -->
  <include ns="move_group" file="$(find my_robot_moveit)/launch/trajectory_execution.launch.xml" if="$(arg allow_trajectory_execution)">
    <arg name="moveit_manage_controllers" value="true" />
    <arg name="moveit_controller_manager" value="my_robot" unless="$(arg fake_execution)" />
    <arg name="moveit_controller_manager" value="fake" if="$(arg fake_execution)" />
    <arg name="execution_type" value="$(arg execution_type)" />
  </include>

  <!-- Sensors Functionality -->
  <include ns="move_group" file="$(find ...
(more)
edit retag flag offensive close merge delete

Comments

Can you pls share your launch file. Sometimes you generate the wrong path

osilva gravatar image osilva  ( 2022-01-14 11:18:35 -0500 )edit

You mean the move_group.launch? I added it now

willemstuijt gravatar image willemstuijt  ( 2022-01-15 03:28:17 -0500 )edit

You should have a file similar to this:

https://github.com/ros-planning/movei...

Check

< arg name="planning_plugin" value="chomp_interface/CHOMPPlanner" />

I think you may have the extra / there

osilva gravatar image osilva  ( 2022-01-15 05:28:03 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2022-01-15 07:34:04 -0500

Mike Scheutzow gravatar image

The extra slash is not likely to be a problem. The OS can handle that.

A more likely issue is that the libchomp_planner_plugin.so depends on something you have not installed. The first step in checking this is to run the following command in a terminal which has the ROS environment variables set:

ldd /opt/ros/noetic/lib/libchomp_planner_plugin.so

This will list all the sub-libraries that the named .so file depends on. If any line says "not found", you have to fix that. Here's an example of a failure:

    libmoveit_collision_detection.so.1.0.8 => not found
edit flag offensive delete link more

Comments

Yes I was missing 5 libraries. I tried installing them through apt but it seems I installed the wrong versions and MoveIt stopped working altogether. So I reinstalled ROS, MoveIt and everything and now I don't get the error. However when I try to compute a path with CHOMP MoveIt just gets stuck, but my original question has been solved so I guess I will mark this as answered. Thanks.

willemstuijt gravatar image willemstuijt  ( 2022-01-17 13:09:14 -0500 )edit

The other tool you need to be aware of is rosdep. It also helps resolve missing dependencies. Google for the proper command line (some developer made it unnecessarily complicated.)

Mike Scheutzow gravatar image Mike Scheutzow  ( 2022-01-17 16:49:09 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2022-01-14 03:56:05 -0500

Seen: 813 times

Last updated: Jan 15 '22