moveit / moveit_ros

THIS REPO HAS MOVED TO https://github.com/ros-planning/moveit

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MoveGroup class_loader::LibraryUnloadException on destruction.

Kukanani opened this issue · comments

I am getting the following error when destroying a MoveGroup object:

terminate called after throwing an instance of 'class_loader::LibraryUnloadException'
  what():  Attempt to unload library that class_loader is unaware of.
Aborted (core dumped)

With the following trivial example:

#include <moveit/move_group_interface/move_group.h>
int main(int argc, char** argv)
{
  ros::init(argc, argv, "test_motion");
  moveit::planning_interface::MoveGroup moveGroup("manipulator");
}

Note that this message prints at the end of the MoveGroup Interface Tutorial, as well (https://github.com/ros-planning/moveit_pr2/blob/indigo-devel/pr2_moveit_tutorials/planning/src/move_group_interface_tutorial.cpp)

I am not sure of the underlying reason for this issue, but placing a ros::spin() at the end of the main loop will keep the movegroup from throwing the exception which crashes the node.

This fix doesn't make much sense for me, since I am getting the error when my application shuts down. Why add a spin() at the end of my code?

I'm also running in the same error, but I'm following the example code of the ROS Industrial tutorial (http://aeswiki.datasys.swri.edu/rositraining/indigo/Exercises/3.6).

There the node looks like this one:

#include <ros/ros.h>
#include <moveit/move_group_interface/move_group.h>
int main(int argc, char **argv)
{
  ros::init(argc, argv, "lesson_move_group");

  // start a background "spinner", so our node can process ROS messages
  //  - this lets us know when the move is completed
  ros::AsyncSpinner spinner(1);
  spinner.start();

  moveit::planning_interface::MoveGroup group("manipulator");
  group.setRandomTarget();
  group.move();
}

Any help with this issue?