moveit / moveit_calibration

Hand-eye calibration tools for robot arms.
BSD 3-Clause "New" or "Revised" License
142 stars 79 forks source link

RViz shutting down after selecting robot base frame #127

Open simranmalhi opened 2 years ago

simranmalhi commented 2 years ago

Hello! I installed the hand-eye calibration plugin, and it compiles. I'm trying to do eye-to-hand calibration, however, when I select panda_link0 for the robot base frame, RViz crashes with either a "free(): invalid pointer" or "double free or corruption (out)" error.

Here's the stacktrace: [roslaunch.parent][INFO] 2022-11-08 16:46:35,971: ... roslaunch parent running, waiting for process exit [roslaunch][INFO] 2022-11-08 16:46:35,972: spin [roslaunch][ERROR] 2022-11-08 16:48:48,782: [rviz_robotuna2_1250_4714009784878653275-10] process has died [pid 1363, exit code -6, cmd /opt/ros/melodic/lib/rviz/rviz -d /opt/ros/melodic/share/panda_moveit_config/launch/moveit.rviz __name:=rviz_robotuna2_1250_4714009784878653275 __log:=/root/.ros/log/1c4ba060-5fc6-11ed-8828-f8b156c34653/rviz_robotuna2_1250_4714009784878653275-10.log]. log file: /root/.ros/log/1c4ba060-5fc6-11ed-8828-f8b156c34653/rviz_robotuna2_1250_4714009784878653275-10*.log [roslaunch.pmon][INFO] 2022-11-08 16:48:48,782: ProcessMonitor.unregister[rviz_robotuna2_1250_4714009784878653275-10] starting

I'm using Ubuntu 18.04.5 and ROS melodic.

Any ideas on how to fix this? Thanks in advance!

I'm attaching screenshots of my settings below:

Screenshot from 2022-11-08 16-43-27

Screenshot from 2022-11-02 16-30-37

sebtiburzio commented 1 year ago

Hi, I am having the same issue on Ubuntu 18.04.6 and ROS Melodic, did you make any progress solving it @simranmalhi ? Are you using a Panda or an FR3 arm? As I'm using an FR3 and wondered if it was part of the problem since I've had to make some changes to get MoveIt working.

I've also noticed that the same error occurs when selecting the End Effector frame for the Eye-in-hand configuration (whereas in this configuration selecting the robot base frame is ok). It happens as soon as any frame is selected from the list of options.

Here is the gdb backtrace from launching MoveIt with debug:

double free or corruption (out)

Thread 1 "rviz" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51  ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) backtrace
#0  0x00007ffff60a4e87 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff60a67f1 in __GI_abort () at abort.c:79
#2  0x00007ffff60ef837 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7ffff621ca7b "%s\n") at ../sysdeps/posix/libc_fatal.c:181
#3  0x00007ffff60f68ba in malloc_printerr (str=str@entry=0x7ffff621e788 "double free or corruption (out)") at malloc.c:5342
#4  0x00007ffff60fde4a in _int_free (have_lock=0, p=0x55555879c1f0, av=0x7ffff6451c40 <main_arena>)
    at malloc.c:4308
#5  0x00007ffff60fde4a in __GI___libc_free (mem=0x55555879c200) at malloc.c:3134
#6  0x00007ffff6793ad7 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#7  0x00007ffed1a3ffbd in rviz_visual_tools::RvizVisualTools::loadRvizMarkers() ()
    at /home/pandarobot/catkin_ws/devel/lib/librviz_visual_tools.so.3.9.3
#8  0x00007ffed25aefc9 in moveit_rviz_plugin::ContextTabWidget::updateAllMarkers() ()
    at /home/pandarobot/catkin_ws/devel/lib/libmoveit_handeye_calibration_rviz_plugin_core.so.0.1.0
#9  0x00007ffed25b0811 in moveit_rviz_plugin::ContextTabWidget::updateFrameName(int) ()
    at /home/pandarobot/catkin_ws/devel/lib/libmoveit_handeye_calibration_rviz_plugin_core.so.0.1.0
#10 0x00007ffed25d4913 in moveit_rviz_plugin::ContextTabWidget::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) ()
    at /home/pandarobot/catkin_ws/devel/lib/libmoveit_handeye_calibration_rviz_plugin_core.so.0.1.0
#11 0x00007ffff6cb1525 in QMetaObject::activate(QObject*, int, int, void**) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#12 0x00007ffff739ba71 in QComboBox::activated(int) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007ffff739d9be in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007ffff739f144 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007ffff73a4bfd in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007ffff6cb1525 in QMetaObject::activate(QObject*, int, int, void**) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#17 0x00007ffff739c269 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007ffff6c8258c in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007ffff7297815 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007ffff729f65f in QApplication::notify(QObject*, QEvent*) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007ffff6c828a8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00007ffff729e632 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007ffff72f0e95 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007ffff72f37ca in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007ffff729783c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007ffff729f104 in QApplication::notify(QObject*, QEvent*) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x00007ffff6c828a8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#28 0x00007ffff16125eb in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::Mo
useEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#29 0x00007ffff16140b5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#30 0x00007ffff15eb33b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#31 0x00007fffe01f7260 in  () at /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#32 0x00007ffff001d537 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007ffff001d770 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#34 0x00007ffff001d7fc in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#35 0x00007ffff6cdb85f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#36 0x00007ffff6c808da in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#37 0x00007ffff6c89984 in QCoreApplication::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#38 0x0000555555554dcf in main ()
abenbihi commented 1 year ago

Hello,

Thank you for providing this calibration library :)

I have encountered the same issue as @sebtiburzio i.e. Rviz crashes when I "select the End Effector frame for the Eye-in-hand configuration" and I get the following error message: "free(): invalid pointer" I run the calibration between a basler camera mounted on the end-effector of a kuka iiwa14 on an Ubuntu 18.04 machine with ros melodic.

Would you have an intuition on what may cause this problem? As of now, I have no hints on what could be the problem (e.g. could it be that I have an error in my robot definition?)

Thank you very much.

sebtiburzio commented 1 year ago

It appears to only be an issue in Melodic/Ubuntu 18, I have found it works in Noetic/Ubuntu 20. If at all possible, move to Noetic or ROS 2, as Melodic is now pretty much EOL.

abenbihi commented 1 year ago

Hi @sebtiburzio, upgrading to Noetic/Ubuntu 20 indeed fixed the issue. Thank you very much, that saved a lot of trouble.

anthonyarauz commented 1 year ago

Hello, I am pretty stuck with melodic. Is there any workaround?