22
33#include < cmath>
44
5+
56#include " core_sim/transforms/transform_tree.hpp"
67#include " core_sim/transforms/transform_utils.hpp"
78#include " gtest/gtest.h"
@@ -184,11 +185,11 @@ TEST(TransformTree, ConvertCross2) {
184185 projectairsim::Quaternion quatA =
185186 projectairsim::TransformUtils::ToQuaternion (0 .0f , 0 .0f , 0 .0f );
186187 projectairsim::Quaternion quatB =
187- projectairsim::TransformUtils::ToQuaternion (0 .0f , M_PI , 0 .0f );
188+ projectairsim::TransformUtils::ToQuaternion (M_PI, 0 .0f , 0 .0f );
188189 projectairsim::Quaternion quatA2 =
189190 projectairsim::TransformUtils::ToQuaternion (0 .0f , 0 .0f , 0 .0f );
190191 projectairsim::Quaternion quatB2 =
191- projectairsim::TransformUtils::ToQuaternion (0 .0f , M_PI , 0 .0f );
192+ projectairsim::TransformUtils::ToQuaternion (M_PI, 0 .0f , 0 .0f );
192193 projectairsim::Quaternion quatAToGlobal = quatA * quatA2;
193194 projectairsim::Quaternion quatGlobalToB = quatB2.inverse () * quatB.inverse ();
194195 projectairsim::Quaternion quatAInB =
@@ -200,7 +201,7 @@ TEST(TransformTree, ConvertCross2) {
200201 projectairsim::TransformTree transformtree;
201202 projectairsim::Vector3 vec3A = projectairsim::Vector3 (1 .0f , 2 .0f , 3 .0f );
202203 projectairsim::Vector3 vec3A2 = projectairsim::Vector3 (4 .0f , 5 .0f , 6 .0f );
203- projectairsim::Vector3 vec3B = projectairsim::Vector3 (- 10 .0f , 20 .0f , -30 .0f );
204+ projectairsim::Vector3 vec3B = projectairsim::Vector3 (10 .0f , - 20 .0f , -30 .0f );
204205 projectairsim::Vector3 vec3B2 = projectairsim::Vector3 (40 .0f , 50 .0f , 60 .0f );
205206 projectairsim::Vector3 vec3AToGlobal = vec3A + vec3A2;
206207 projectairsim::Vector3 vec3BToB2Global = quatB2 * vec3B;
@@ -309,37 +310,4 @@ TEST(TransformTree, ConvertSemiCross) {
309310 EXPECT_NEAR (poseA.orientation .y (), poseAStart.orientation .y (), 1.0e-6 );
310311 EXPECT_NEAR (poseA.orientation .z (), poseAStart.orientation .z (), 1.0e-6 );
311312 EXPECT_NEAR (poseA.orientation .w (), poseAStart.orientation .w (), 1.0e-6 );
312- }
313-
314- TEST (TransformTree, NonzeroRelativePositionAndTiltedFrame) {
315- constexpr float ap_x = 0 .0f ;
316- constexpr float ap_y = 0 .0f ;
317- constexpr float ap_z = 0 .0f ;
318- projectairsim::Quaternion quatA =
319- projectairsim::TransformUtils::ToQuaternion (M_PI / 4 , 0 .0f , 0 .0f );
320- projectairsim::TransformTree::StaticRefFrame staticrefframeA (" A" );
321- projectairsim::TransformTree transformtree;
322- projectairsim::Pose poseA ;
323- poseA.position .z () = -1 .0f ;
324- projectairsim::Pose poseGlobal;
325-
326- staticrefframeA.SetLocalPose (
327- projectairsim::Pose (projectairsim::Vector3 (ap_x, ap_y, ap_z), quatA));
328-
329- transformtree.Register (&staticrefframeA,
330- projectairsim::TransformTree::kRefFrameGlobal );
331- transformtree.Convert (poseA, staticrefframeA,
332- projectairsim::TransformTree::kRefFrameGlobal ,
333- &poseGlobal);
334-
335- // Verify the identity pose in A's reference frame is transformed into A's
336- // pose in the global reference frame
337- EXPECT_FLOAT_EQ (poseGlobal.position .x (), ap_x);
338- EXPECT_NEAR (poseGlobal.position .y (), -(std::sin (M_PI / 4 )), 1.0e-6 );
339- EXPECT_NEAR (poseGlobal.position .z (), -(std::cos (M_PI / 4 )), 1.0e-6 );
340-
341- EXPECT_FLOAT_EQ (poseGlobal.orientation .x (), quatA.x ());
342- EXPECT_FLOAT_EQ (poseGlobal.orientation .y (), quatA.y ());
343- EXPECT_FLOAT_EQ (poseGlobal.orientation .z (), quatA.z ());
344- EXPECT_FLOAT_EQ (poseGlobal.orientation .w (), quatA.w ());
345- }
313+ }
0 commit comments