renamed transformPose_to to transform_to, composeTransform to compose, and changed nr. of arguments of Dtransform_to2 (to two)
parent
eaf27af92d
commit
ac72d1cc22
|
@ -72,7 +72,7 @@ namespace gtsam {
|
|||
/* ************************************************************************* */
|
||||
Matrix Dproject_point(const CalibratedCamera& camera, const Point3& point) {
|
||||
Point3 cameraPoint = transform_to(camera.pose(),point);
|
||||
Matrix D_cameraPoint_point = Dtransform_to2(camera.pose());
|
||||
Matrix D_cameraPoint_point = Dtransform_to2(camera.pose(),point);
|
||||
|
||||
Point2 intrinsic = project_to_camera(cameraPoint);
|
||||
Matrix D_intrinsic_cameraPoint = Dproject_to_camera1(cameraPoint);
|
||||
|
@ -87,7 +87,7 @@ namespace gtsam {
|
|||
|
||||
Point3 cameraPoint = transform_to(camera.pose(), point);
|
||||
Matrix D_cameraPoint_pose = Dtransform_to1(camera.pose(),point); // 3*6
|
||||
Matrix D_cameraPoint_point = Dtransform_to2(camera.pose()); // 3*3
|
||||
Matrix D_cameraPoint_point = Dtransform_to2(camera.pose(),point); // 3*3
|
||||
|
||||
Point2 intrinsic = project_to_camera(cameraPoint);
|
||||
Matrix D_intrinsic_cameraPoint = Dproject_to_camera1(cameraPoint);
|
||||
|
|
|
@ -75,7 +75,7 @@ Matrix Dtransform_to1(const Pose3& pose, const Point3& p) {
|
|||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
Matrix Dtransform_to2(const Pose3& pose) {
|
||||
Matrix Dtransform_to2(const Pose3& pose, const Point3& p) {
|
||||
return Dunrotate2(pose.rotation());
|
||||
}
|
||||
|
||||
|
@ -106,10 +106,9 @@ Pose3 Pose3::inverse() const {
|
|||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
Pose3 Pose3::transformPose_to(const Pose3& pose) const {
|
||||
Pose3 Pose3::transform_to(const Pose3& pose) const {
|
||||
Rot3 cRv = R_ * Rot3(pose.R_.inverse());
|
||||
Point3 t = transform_to(pose, t_);
|
||||
|
||||
Point3 t = gtsam::transform_to(pose, t_);
|
||||
return Pose3(cRv, t);
|
||||
}
|
||||
|
||||
|
|
|
@ -102,12 +102,12 @@ namespace gtsam {
|
|||
Matrix matrix() const;
|
||||
|
||||
/** transforms */
|
||||
Pose3 transformPose_to(const Pose3& transform) const;
|
||||
Pose3 transform_to(const Pose3& transform) const;
|
||||
|
||||
/** friends */
|
||||
friend Point3 transform_from(const Pose3& pose, const Point3& p);
|
||||
friend Point3 transform_to(const Pose3& pose, const Point3& p);
|
||||
friend Pose3 composeTransform(const Pose3& current, const Pose3& target);
|
||||
friend Pose3 compose(const Pose3& current, const Pose3& target);
|
||||
|
||||
private:
|
||||
/** Serialization function */
|
||||
|
@ -122,7 +122,7 @@ namespace gtsam {
|
|||
/**
|
||||
* Finds a transform from the current frame dTx to the target frame sTx
|
||||
*/
|
||||
inline Pose3 composeTransform(const Pose3& dTx, const Pose3& sTx) {
|
||||
inline Pose3 compose(const Pose3& dTx, const Pose3& sTx) {
|
||||
return dTx * sTx.inverse();
|
||||
}
|
||||
|
||||
|
@ -134,7 +134,7 @@ namespace gtsam {
|
|||
/** receives the point in world coordinates and transforms it to Pose coordinates */
|
||||
Point3 transform_to(const Pose3& pose, const Point3& p);
|
||||
Matrix Dtransform_to1(const Pose3& pose, const Point3& p);
|
||||
Matrix Dtransform_to2(const Pose3& pose); // does not depend on p !
|
||||
Matrix Dtransform_to2(const Pose3& pose, const Point3& p);
|
||||
|
||||
/**
|
||||
* Return relative pose between p1 and p2, in p1 coordinate frame
|
||||
|
|
|
@ -93,7 +93,7 @@ TEST( Pose3, Dtransform_to1)
|
|||
|
||||
TEST( Pose3, Dtransform_to2)
|
||||
{
|
||||
Matrix computed = Dtransform_to2(T);
|
||||
Matrix computed = Dtransform_to2(T,P);
|
||||
Matrix numerical = numericalDerivative22(transform_to,T,P);
|
||||
CHECK(assert_equal(numerical,computed,error));
|
||||
}
|
||||
|
@ -139,13 +139,13 @@ TEST( Pose3, transform_roundtrip)
|
|||
TEST( Pose3, transformPose_to_origin)
|
||||
{
|
||||
// transform to origin
|
||||
Pose3 actual = pose1.transformPose_to(Pose3());
|
||||
Pose3 actual = pose1.transform_to(Pose3());
|
||||
CHECK(assert_equal(pose1, actual, error));
|
||||
}
|
||||
TEST( Pose3, transformPose_to_itself)
|
||||
{
|
||||
// transform to itself
|
||||
Pose3 actual = pose1.transformPose_to(pose1);
|
||||
Pose3 actual = pose1.transform_to(pose1);
|
||||
CHECK(assert_equal(Pose3(), actual, error));
|
||||
}
|
||||
TEST( Pose3, transformPose_to_translation)
|
||||
|
@ -153,7 +153,7 @@ TEST( Pose3, transformPose_to_translation)
|
|||
// transform translation only
|
||||
Rot3 r = rodriguez(-1.570796,0,0);
|
||||
Pose3 pose2(r, Point3(21.,32.,13.));
|
||||
Pose3 actual = pose2.transformPose_to(Pose3(Rot3(), Point3(1,2,3)));
|
||||
Pose3 actual = pose2.transform_to(Pose3(Rot3(), Point3(1,2,3)));
|
||||
Pose3 expected(r, Point3(20.,30.,10.));
|
||||
CHECK(assert_equal(expected, actual, error));
|
||||
}
|
||||
|
@ -163,7 +163,7 @@ TEST( Pose3, transformPose_to_simple_rotate)
|
|||
Rot3 r = rodriguez(0,0,-1.570796);
|
||||
Pose3 pose2(r, Point3(21.,32.,13.));
|
||||
Pose3 transform(r, Point3(1,2,3));
|
||||
Pose3 actual = pose2.transformPose_to(transform);
|
||||
Pose3 actual = pose2.transform_to(transform);
|
||||
Pose3 expected(Rot3(), Point3(-30.,20.,10.));
|
||||
CHECK(assert_equal(expected, actual, 0.001));
|
||||
}
|
||||
|
@ -174,7 +174,7 @@ TEST( Pose3, transformPose_to)
|
|||
Rot3 r2 = rodriguez(0,0,0.698131701); //40 degree yaw
|
||||
Pose3 pose2(r2, Point3(21.,32.,13.));
|
||||
Pose3 transform(r, Point3(1,2,3));
|
||||
Pose3 actual = pose2.transformPose_to(transform);
|
||||
Pose3 actual = pose2.transform_to(transform);
|
||||
Pose3 expected(rodriguez(0,0,2.26892803), Point3(-30.,20.,10.));
|
||||
CHECK(assert_equal(expected, actual, 0.001));
|
||||
}
|
||||
|
@ -194,7 +194,7 @@ TEST( Pose3, composeTransform )
|
|||
Pose3 target(rodriguez(0,0,2.26892803), Point3(-30.,20.,10.));
|
||||
|
||||
// calculate transform
|
||||
Pose3 actual = composeTransform(current, target);
|
||||
Pose3 actual = compose(current, target);
|
||||
|
||||
//verify
|
||||
CHECK(assert_equal(exp_transform, actual, 0.001));
|
||||
|
|
Loading…
Reference in New Issue