Skip to content

Commit 33e31a6

Browse files
committed
Add testcases from tf2_eigen_kdl to tf2_test
1 parent 452756c commit 33e31a6

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

test_tf2/test/test_convert.cpp

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
185259
int main(int argc, char** argv)
186260
{
187261
testing::InitGoogleTest(&argc, argv);

0 commit comments

Comments
 (0)