Oops...fixed mistypes. Unit tests pass now.
							parent
							
								
									379ad8b3d2
								
							
						
					
					
						commit
						aa599d409c
					
				| 
						 | 
				
			
			@ -50,9 +50,9 @@ public:
 | 
			
		|||
      boost::optional<Matrix&> H2 = boost::none,
 | 
			
		||||
      boost::optional<Matrix&> H3 = boost::none) const {
 | 
			
		||||
    const size_t p = 1;
 | 
			
		||||
    if (H1) *H1 = -Matrix::Zero(p,p);
 | 
			
		||||
    if (H2) *H2 = Matrix::Zero(p,p);
 | 
			
		||||
    if (H3) *H3 = Matrix::Zero(p,p)*h_;
 | 
			
		||||
    if (H1) *H1 = -Matrix::Identity(p,p);
 | 
			
		||||
    if (H2) *H2 = Matrix::Identity(p,p);
 | 
			
		||||
    if (H3) *H3 = Matrix::Identity(p,p)*h_;
 | 
			
		||||
    return (Vector(1) << qk+v*h_-qk1).finished();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -98,9 +98,9 @@ public:
 | 
			
		|||
      boost::optional<Matrix&> H2 = boost::none,
 | 
			
		||||
      boost::optional<Matrix&> H3 = boost::none) const {
 | 
			
		||||
    const size_t p = 1;
 | 
			
		||||
    if (H1) *H1 = -Matrix::Zero(p,p);
 | 
			
		||||
    if (H2) *H2 = Matrix::Zero(p,p);
 | 
			
		||||
    if (H3) *H3 = -Matrix::Zero(p,p)*h_*g_/r_*cos(q);
 | 
			
		||||
    if (H1) *H1 = -Matrix::Identity(p,p);
 | 
			
		||||
    if (H2) *H2 = Matrix::Identity(p,p);
 | 
			
		||||
    if (H3) *H3 = -Matrix::Identity(p,p)*h_*g_/r_*cos(q);
 | 
			
		||||
    return (Vector(1) << vk - h_ * g_ / r_ * sin(q) - vk1).finished();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -154,9 +154,9 @@ public:
 | 
			
		|||
    double mr2_h = 1/h_*m_*r_*r_;
 | 
			
		||||
    double mgrh  = m_*g_*r_*h_;
 | 
			
		||||
 | 
			
		||||
    if (H1) *H1 = -Matrix::Zero(p,p);
 | 
			
		||||
    if (H2) *H2 = Matrix::Zero(p,p)*(-mr2_h + mgrh*(1-alpha_)*(1-alpha_)*cos(qmid));
 | 
			
		||||
    if (H3) *H3 = Matrix::Zero(p,p)*( mr2_h + mgrh*(1-alpha_)*(alpha_)*cos(qmid));
 | 
			
		||||
    if (H1) *H1 = -Matrix::Identity(p,p);
 | 
			
		||||
    if (H2) *H2 = Matrix::Identity(p,p)*(-mr2_h + mgrh*(1-alpha_)*(1-alpha_)*cos(qmid));
 | 
			
		||||
    if (H3) *H3 = Matrix::Identity(p,p)*( mr2_h + mgrh*(1-alpha_)*(alpha_)*cos(qmid));
 | 
			
		||||
 | 
			
		||||
    return (Vector(1) << mr2_h * (qk1 - qk) + mgrh * (1 - alpha_) * sin(qmid) - pk).finished();
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			@ -210,9 +210,9 @@ public:
 | 
			
		|||
    double mr2_h = 1/h_*m_*r_*r_;
 | 
			
		||||
    double mgrh  = m_*g_*r_*h_;
 | 
			
		||||
 | 
			
		||||
    if (H1) *H1 = -Matrix::Zero(p,p);
 | 
			
		||||
    if (H2) *H2 = Matrix::Zero(p,p)*(-mr2_h - mgrh*(1-alpha_)*alpha_*cos(qmid));
 | 
			
		||||
    if (H3) *H3 = Matrix::Zero(p,p)*( mr2_h - mgrh*alpha_*alpha_*cos(qmid));
 | 
			
		||||
    if (H1) *H1 = -Matrix::Identity(p,p);
 | 
			
		||||
    if (H2) *H2 = Matrix::Identity(p,p)*(-mr2_h - mgrh*(1-alpha_)*alpha_*cos(qmid));
 | 
			
		||||
    if (H3) *H3 = Matrix::Identity(p,p)*( mr2_h - mgrh*alpha_*alpha_*cos(qmid));
 | 
			
		||||
 | 
			
		||||
    return (Vector(1) << mr2_h * (qk1 - qk) - mgrh * alpha_ * sin(qmid) - pk1).finished();
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,9 +41,9 @@ public:
 | 
			
		|||
      boost::optional<Matrix&> H2 = boost::none,
 | 
			
		||||
      boost::optional<Matrix&> H3 = boost::none) const {
 | 
			
		||||
    const size_t p = 1;
 | 
			
		||||
    if (H1) *H1 = Matrix::Zero(p,p);
 | 
			
		||||
    if (H2) *H2 = -Matrix::Zero(p,p);
 | 
			
		||||
    if (H3) *H3 = Matrix::Zero(p,p)*dt_;
 | 
			
		||||
    if (H1) *H1 = Matrix::Identity(p,p);
 | 
			
		||||
    if (H2) *H2 = -Matrix::Identity(p,p);
 | 
			
		||||
    if (H3) *H3 = Matrix::Identity(p,p)*dt_;
 | 
			
		||||
    return (Vector(1) << x1+v*dt_-x2).finished();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -473,13 +473,13 @@ TEST(GaussianFactorGraph, replace)
 | 
			
		|||
  SharedDiagonal noise(noiseModel::Isotropic::Sigma(3, 1.0));
 | 
			
		||||
 | 
			
		||||
  GaussianFactorGraph::sharedFactor f1(new JacobianFactor(
 | 
			
		||||
      ord[X(1)], I_3x3, ord[X(2)], I_3x3, Z_3x3, noise));
 | 
			
		||||
      ord[X(1)], I_3x3, ord[X(2)], I_3x3, zero(3), noise));
 | 
			
		||||
  GaussianFactorGraph::sharedFactor f2(new JacobianFactor(
 | 
			
		||||
      ord[X(2)], I_3x3, ord[X(3)], I_3x3, Z_3x3, noise));
 | 
			
		||||
      ord[X(2)], I_3x3, ord[X(3)], I_3x3, zero(3), noise));
 | 
			
		||||
  GaussianFactorGraph::sharedFactor f3(new JacobianFactor(
 | 
			
		||||
      ord[X(3)], I_3x3, ord[X(4)], I_3x3, Z_3x3, noise));
 | 
			
		||||
      ord[X(3)], I_3x3, ord[X(4)], I_3x3, zero(3), noise));
 | 
			
		||||
  GaussianFactorGraph::sharedFactor f4(new JacobianFactor(
 | 
			
		||||
      ord[X(5)], I_3x3, ord[X(6)], I_3x3, Z_3x3, noise));
 | 
			
		||||
      ord[X(5)], I_3x3, ord[X(6)], I_3x3, zero(3), noise));
 | 
			
		||||
 | 
			
		||||
  GaussianFactorGraph actual;
 | 
			
		||||
  actual.push_back(f1);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -112,7 +112,7 @@ TEST( Graph, composePoses )
 | 
			
		|||
TEST( GaussianFactorGraph, findMinimumSpanningTree )
 | 
			
		||||
{
 | 
			
		||||
  GaussianFactorGraph g;
 | 
			
		||||
  Matrix I = Z_2x2;
 | 
			
		||||
  Matrix I = I_2x2;
 | 
			
		||||
  Vector2 b(0, 0);
 | 
			
		||||
  const SharedDiagonal model = noiseModel::Diagonal::Sigmas(Vector2(0.5, 0.5));
 | 
			
		||||
  using namespace symbol_shorthand;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -56,7 +56,7 @@ TEST ( NonlinearEquality, linearization ) {
 | 
			
		|||
 | 
			
		||||
  // check linearize
 | 
			
		||||
  SharedDiagonal constraintModel = noiseModel::Constrained::All(3);
 | 
			
		||||
  JacobianFactor expLF(key, Z_3x3, zero(3), constraintModel);
 | 
			
		||||
  JacobianFactor expLF(key, I_3x3, zero(3), constraintModel);
 | 
			
		||||
  GaussianFactor::shared_ptr actualLF = nle->linearize(linearize);
 | 
			
		||||
  EXPECT(assert_equal((const GaussianFactor&)expLF, *actualLF));
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -180,7 +180,7 @@ TEST ( NonlinearEquality, allow_error_pose ) {
 | 
			
		|||
 | 
			
		||||
  // check linearization
 | 
			
		||||
  GaussianFactor::shared_ptr actLinFactor = nle.linearize(config);
 | 
			
		||||
  Matrix A1 =Z_3x3;
 | 
			
		||||
  Matrix A1 = I_3x3;
 | 
			
		||||
  Vector b = expVec;
 | 
			
		||||
  SharedDiagonal model = noiseModel::Constrained::All(3);
 | 
			
		||||
  GaussianFactor::shared_ptr expLinFactor(
 | 
			
		||||
| 
						 | 
				
			
			@ -289,7 +289,7 @@ TEST( testNonlinearEqualityConstraint, unary_linearization ) {
 | 
			
		|||
  config1.insert(key, pt);
 | 
			
		||||
  GaussianFactor::shared_ptr actual1 = constraint.linearize(config1);
 | 
			
		||||
  GaussianFactor::shared_ptr expected1(
 | 
			
		||||
      new JacobianFactor(key, Z_2x2, Matrix::Zero(2,2), hard_model));
 | 
			
		||||
      new JacobianFactor(key, I_2x2, zero(2), hard_model));
 | 
			
		||||
  EXPECT(assert_equal(*expected1, *actual1, tol));
 | 
			
		||||
 | 
			
		||||
  Values config2;
 | 
			
		||||
| 
						 | 
				
			
			@ -297,7 +297,7 @@ TEST( testNonlinearEqualityConstraint, unary_linearization ) {
 | 
			
		|||
  config2.insert(key, ptBad);
 | 
			
		||||
  GaussianFactor::shared_ptr actual2 = constraint.linearize(config2);
 | 
			
		||||
  GaussianFactor::shared_ptr expected2(
 | 
			
		||||
      new JacobianFactor(key, Z_2x2, Vector2(-1.0, 0.0), hard_model));
 | 
			
		||||
      new JacobianFactor(key, I_2x2, Vector2(-1.0, 0.0), hard_model));
 | 
			
		||||
  EXPECT(assert_equal(*expected2, *actual2, tol));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -374,7 +374,7 @@ TEST( testNonlinearEqualityConstraint, odo_linearization ) {
 | 
			
		|||
  config1.insert(key2, x2);
 | 
			
		||||
  GaussianFactor::shared_ptr actual1 = constraint.linearize(config1);
 | 
			
		||||
  GaussianFactor::shared_ptr expected1(
 | 
			
		||||
      new JacobianFactor(key1, -Z_2x2, key2, Z_2x2, zero(2),
 | 
			
		||||
      new JacobianFactor(key1, -I_2x2, key2, I_2x2, zero(2),
 | 
			
		||||
          hard_model));
 | 
			
		||||
  EXPECT(assert_equal(*expected1, *actual1, tol));
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -385,7 +385,7 @@ TEST( testNonlinearEqualityConstraint, odo_linearization ) {
 | 
			
		|||
  config2.insert(key2, x2bad);
 | 
			
		||||
  GaussianFactor::shared_ptr actual2 = constraint.linearize(config2);
 | 
			
		||||
  GaussianFactor::shared_ptr expected2(
 | 
			
		||||
      new JacobianFactor(key1, -Z_2x2, key2, Z_2x2, Vector2(1.0, 1.0),
 | 
			
		||||
      new JacobianFactor(key1, -I_2x2, key2, I_2x2, Vector2(1.0, 1.0),
 | 
			
		||||
          hard_model));
 | 
			
		||||
  EXPECT(assert_equal(*expected2, *actual2, tol));
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue