@@ -182,6 +182,80 @@ TEST(tf2Convert, PointVectorOtherMessagetype)
182182 }
183183}
184184
185+ TEST (TfEigenKdl, TestRotationQuaternion)
186+ {
187+ const auto kdl_v = KDL::Rotation::RPY (1.5 , 0.2 , 0.3 );
188+ Eigen::Quaterniond eigen_v = Eigen::Quaterniond::Identity ();
189+ tf2::convert (kdl_v, eigen_v);
190+ KDL::Rotation kdl_v1;
191+ tf2::convert (eigen_v, kdl_v1);
192+ EXPECT_EQ (kdl_v, kdl_v1);
193+ }
194+
195+ TEST (TfEigenKdl, TestQuaternionRotation)
196+ {
197+ const Eigen::Quaterniond eigen_v = Eigen::Quaterniond (1 , 2 , 1.5 , 3 ).normalized ();
198+ KDL::Rotation kdl_v;
199+ tf2::convert (eigen_v, kdl_v);
200+ Eigen::Quaterniond eigen_v1;
201+ tf2::convert (kdl_v, eigen_v1);
202+ EXPECT_TRUE (eigen_v.isApprox (eigen_v1));
203+ }
204+
205+ TEST (TfEigenKdl, TestFrameIsometry3d)
206+ {
207+ const auto kdl_v = KDL::Frame (KDL::Rotation::RPY (1.2 , 0.2 , 0 ), KDL::Vector (1 , 2 , 3 ));
208+ Eigen::Isometry3d eigen_v = Eigen::Isometry3d::Identity ();
209+ tf2::convert (kdl_v, eigen_v);
210+ KDL::Frame kdl_v1;
211+ tf2::convert (eigen_v, kdl_v1);
212+ EXPECT_EQ (kdl_v, kdl_v1);
213+ }
214+
215+ TEST (TfEigenKdl, TestIsometry3dFrame)
216+ {
217+ const Eigen::Isometry3d eigen_v (
218+ Eigen::Translation3d (1 , 2 , 3 ) * Eigen::AngleAxisd (1 , Eigen::Vector3d::UnitX ()));
219+ KDL::Frame kdl_v;
220+ tf2::convert (eigen_v, kdl_v);
221+ Eigen::Isometry3d eigen_v1;
222+ tf2::convert (kdl_v, eigen_v1);
223+ EXPECT_EQ (eigen_v.translation (), eigen_v1.translation ());
224+ EXPECT_EQ (eigen_v.rotation (), eigen_v1.rotation ());
225+ }
226+
227+ TEST (TfEigenKdl, TestFrameAffine3d)
228+ {
229+ const auto kdl_v = KDL::Frame (KDL::Rotation::RPY (1.2 , 0.2 , 0 ), KDL::Vector (1 , 2 , 3 ));
230+ Eigen::Affine3d eigen_v = Eigen::Affine3d::Identity ();
231+ tf2::convert (kdl_v, eigen_v);
232+ KDL::Frame kdl_v1;
233+ tf2::convert (eigen_v, kdl_v1);
234+ EXPECT_EQ (kdl_v, kdl_v1);
235+ }
236+
237+
238+ TEST (TfEigenKdl, TestVectorVector3d)
239+ {
240+ const auto kdl_v = KDL::Vector (1 , 2 , 3 );
241+ Eigen::Vector3d eigen_v;
242+ tf2::convert (kdl_v, eigen_v);
243+ KDL::Vector kdl_v1;
244+ tf2::convert (eigen_v, kdl_v1);
245+ EXPECT_EQ (kdl_v, kdl_v1);
246+ }
247+
248+ TEST (TfEigenKdl, TestVector3dVector)
249+ {
250+ Eigen::Vector3d eigen_v;
251+ eigen_v << 1 , 2 , 3 ;
252+ KDL::Vector kdl_v;
253+ tf2::convert (eigen_v, kdl_v);
254+ Eigen::Vector3d eigen_v1;
255+ tf2::convert (kdl_v, eigen_v1);
256+ EXPECT_EQ (eigen_v, eigen_v1);
257+ }
258+
185259int main (int argc, char ** argv)
186260{
187261 testing::InitGoogleTest (&argc, argv);
0 commit comments