# MoveIt_tutorials can't be catkin built by Eigen3

I met a problrm that Movtit_tutorials can't be catkin built by Eigen3. And the sanme issues occurs with Aubo packages can't be catkin built by Eigen3. My ROS system is Kinetic, and the Eigen3 version is 3.3~beta 1-2. From the error log file, I think the version of Moveit_tutorials is not compatible with the version of Eigen3. Because the error log file shows the problem is from Eigen::transform() function. Furthermore, I check the tranform.h file from Eigen3 lib, the Eigen::Transform() function is forbidden to use, because this function may cause error. But the error log file show that the movtit_tutorial have call the Eigen::transform() function, so it make a mistake. And the following is the error log file.

```
Errors << moveit_tutorials:make /home/menghui/ws_moveit/logs/moveit_tutorials/build.make.010.log
In file included from /usr/include/eigen3/Eigen/Core:142:0,
from /usr/include/eigen3/Eigen/Geometry:11,
from /opt/ros/kinetic/include/moveit/robot_model/joint_model.h:47,
from /opt/ros/kinetic/include/moveit/robot_model/joint_model_group.h:41,
from /opt/ros/kinetic/include/moveit/robot_model/robot_model.h:47,
from /opt/ros/kinetic/include/moveit/robot_model_loader/robot_model_loader.h:41,
from /home/menghui/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/menghui/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:33: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/Geometry/Transform.h:334:5: note: in expansion of macro ‘EIGEN_STATIC_ASSERT’
EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(OtherMode==int(Affine)||OtherMode==int(AffineCompact), Mode!=int(Isometry)),
^
In file included from /usr/include/eigen3/Eigen/Core:142:0,
from /usr/include/eigen3/Eigen/Geometry:11,
from /opt/ros/kinetic/include/moveit/robot_model/joint_model.h:47,
from /opt/ros/kinetic/include/moveit/robot_model/joint_model_group.h:41,
from /opt/ros/kinetic/include/moveit/robot_model/robot_model.h:47,
from /opt/ros/kinetic/include/moveit/robot_model_loader/robot_model_loader.h:41,
from /home/menghui/ws_moveit/src/moveit_tutorials/doc/interactivity/include/interactivity/interactive_robot.h:43,
from /home/menghui/ws_moveit/src/moveit_tutorials/doc/interactivity/src/interactive_robot.cpp:39:
/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/menghui/ws_moveit/src/moveit_tutorials/doc/interactivity/src/interactive_robot.cpp:93:32: required from here
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:33: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/Geometry/Transform.h:334:5: note: in expansion of macro ‘EIGEN_STATIC_ASSERT’
EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(OtherMode==int ...
```

Cross-post: ros-planning/moveit_tutorials/issues/314.