MoveIt Tutorials not building on ROS Melodic [closed]

asked 2018-12-11 07:24:25 -0600

Nap gravatar image

updated 2018-12-11 20:34:23 -0600

[ROS Melodic, Ubuntu 18.04, MacBook Pro mid-2014]
[This attempted install used the latest packages out of the box]

I've tried following the MoveIt! Getting Started Tutorial using both the MoveIt! binaries as well as building MoveIt! from source and in each case I end up with a StaticAssert error while building ws_moveit/src/moveit_tutorials.
There seem to be two errors, and shown below. Anyone able to help me resolve this?

    Errors     << moveit_tutorials:make /home/user/ws_moveit/logs/moveit_tutorials/build.make.002.log                       
    In file included from /usr/include/eigen3/Eigen/Core:347:0,
                 from /usr/include/eigen3/Eigen/Geometry:11,
                 from /opt/ros/melodic/include/moveit/robot_model/joint_model.h:47,
                 from /opt/ros/melodic/include/moveit/robot_model/joint_model_group.h:41,
                 from /opt/ros/melodic/include/moveit/robot_model/robot_model.h:47,
                 from /opt/ros/melodic/include/moveit/robot_model_loader/robot_model_loader.h:41,
                 from /home/user/ws_moveit/src/moveit_tutorials/doc/robot_model_and_robot_state/src/robot_model_and_robot_state_tutorial.cpp:40:
    /usr/include/eigen3/Eigen/src/Geometry/Transform.h: In instantiation of ‘Eigen::Transform<Scalar, Dim, Mode, _Options>::Transform(const Eigen::Transform<_Scalar, Dim, OtherMode, OtherOptions>&) [with int OtherMode = 2; int OtherOptions = 0; _Scalar = double; int _Dim = 3; int _Mode = 1; int _Options = 0]’:
/home/user/ws_moveit/src/moveit_tutorials/doc/robot_model_and_robot_state/src/robot_model_and_robot_state_tutorial.cpp:118:102:   required from here
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:32:40: error: static assertion failed: YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION
     #define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
                                    ^
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:32:40: note: in definition of macro ‘EIGEN_STATIC_ASSERT’
     #define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
                                    ^~~~~~~~~~~~~
In file included from /usr/include/eigen3/Eigen/Core:347:0,
             from /usr/include/eigen3/Eigen/Geometry:11,
             from /opt/ros/melodic/include/moveit/robot_model/joint_model.h:47,
             from /opt/ros/melodic/include/moveit/robot_model/joint_model_group.h:41,
             from /opt/ros/melodic/include/moveit/robot_model/robot_model.h:47,
             from /opt/ros/melodic/include/moveit/robot_model_loader/robot_model_loader.h:41,
             from /home/user/ws_moveit/src/moveit_tutorials/doc/state_display/src/state_display_tutorial.cpp:40:
/usr/include/eigen3/Eigen/src/Geometry/Transform.h: In instantiation of ‘Eigen::Transform<Scalar, Dim, Mode, _Options>::Transform(const Eigen::Transform<_Scalar, Dim, OtherMode, OtherOptions>&) [with int OtherMode = 2; int OtherOptions = 0; _Scalar = double; int _Dim = 3; int _Mode = 1; int _Options = 0]’:
/home/user/ws_moveit/src/moveit_tutorials/doc/state_display/src/state_display_tutorial.cpp:101:114:   required from here
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:32:40: error: static assertion failed: YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION
     #define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
                                    ^
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:32:40: note: in definition of macro ‘EIGEN_STATIC_ASSERT’
     #define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
                                    ^~~~~~~~~~~~~
In file included from /usr/include/eigen3/Eigen/Core:347:0,
             from /usr/include/eigen3/Eigen/Geometry:11,
             from /opt/ros/melodic/include/moveit/robot_model/joint_model.h:47,
             from /opt/ros/melodic/include/moveit/robot_model/joint_model_group.h:41,
             from /opt/ros/melodic/include/moveit/robot_model/robot_model.h:47,
             from /opt/ros/melodic/include/moveit/robot_model_loader/robot_model_loader.h:41,
             from /home/user/ws_moveit/src/moveit_tutorials/doc/interactivity ...
(more)
edit retag flag offensive reopen merge delete

Closed for the following reason question is not relevant or outdated by jarvisschultz
close date 2018-12-19 11:42:34.178622

Comments

This looks slightly different than this bug, but likely caused by the same issue. What commit/branch do you have checked out for moveit_tutorials? What package version are you on for moveit?

jarvisschultz gravatar image jarvisschultz  ( 2018-12-11 10:49:36 -0600 )edit

@jarvisschultz: Spot on though I found the problem via another path. I happened to have successfully, but not entirely smoothly, installed MoveIt in a VM a couple weeks ago. So I did a diff to find the problem.

Nap gravatar image Nap  ( 2018-12-11 20:22:08 -0600 )edit

The VM was a rather disappointing trial run as RViz is super processor hungry. Simply opening RViz lagged my guest so much that I could makes coffees between mouse clicks, and that was even after I managed to reduce the frame-rate to 10hz. Hence the move to bare metal.

Nap gravatar image Nap  ( 2018-12-11 20:26:37 -0600 )edit

Another point worth mentioning is that once franka_ros is cloned, which I found was best done outside the tutorial workspace, the franka_description sub-folder needs to be copy/pasted into your workspace, not the whole package (unless you need the other stuff).

Nap gravatar image Nap  ( 2018-12-11 20:30:23 -0600 )edit
1

So were you now able to build the tutorials packages? If so, I'll create an answer for this question. Also, yes rviz in a VM can be tough (although with the right combo of machine+driver+settings I've been able to get it to work well in the past).

jarvisschultz gravatar image jarvisschultz  ( 2018-12-12 07:46:25 -0600 )edit

moveit_tutorials bf3a0b4d2696f39bd0bb8846af697f98b734cfd8 Binaries build but not from source. I get similar, but not the same, errors (StaticAsserts) in robot_model_and_robot_state_tutorial.cpp:135, motion_planning_pipeline_tutorial.cpp:97, and motion_planning_api_tutorial.cpp:136

Nap gravatar image Nap  ( 2018-12-14 07:27:09 -0600 )edit

I would be interested in reading how you got the VM to work well. I'm trying to run it on a Macbook Pro but we have some iMac in our lab (old and new) on which we run Ubuntu VMs.

Nap gravatar image Nap  ( 2018-12-14 07:31:41 -0600 )edit

In my experience there is no magic trick to getting VMs to play nicely with 3D graphics. How it works depends a lot on hardware specifics and takes a lot of debugging. When I'm advising students, I try to avoid debugging VM issues and instead encourage native installs.

jarvisschultz gravatar image jarvisschultz  ( 2018-12-14 07:39:52 -0600 )edit