MoveIt Tutorials not building on ROS Melodic [closed]
[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 ...
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 formoveit
?@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.
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.
Another point worth mentioning is that once
franka_ros
is cloned, which I found was best done outside the tutorial workspace, thefranka_description
sub-folder needs to be copy/pasted into your workspace, not the whole package (unless you need the other stuff).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).
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
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.
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.