support special linearize for constraints, which Jacobian could be augmented by Jacobian-from-Hessian parts for Lagrange multipliers in SQP
							parent
							
								
									63ff1b47c1
								
							
						
					
					
						commit
						c3e3b693e7
					
				|  | @ -315,10 +315,15 @@ public: | |||
|     } | ||||
| 
 | ||||
|     // TODO pass unwhitened + noise model to Gaussian factor
 | ||||
|     // For now, only linearized constrained factors have noise model at linear level!!!
 | ||||
|     noiseModel::Constrained::shared_ptr constrained = | ||||
|         boost::dynamic_pointer_cast<noiseModel::Constrained>(this->noiseModel_); | ||||
|     if(constrained) | ||||
|       return GaussianFactor::shared_ptr(new JacobianFactor(terms, b, constrained->unit())); | ||||
|     if(constrained) { | ||||
|       size_t augmentedDim = terms[0].second.rows() - constrained->dim(); | ||||
|       Vector augmentedZero = zero(augmentedDim); | ||||
|       Vector augmentedb = concatVectors(2, &b, &augmentedZero); | ||||
|       return GaussianFactor::shared_ptr(new JacobianFactor(terms, augmentedb, constrained->unit(augmentedDim))); | ||||
|     } | ||||
|     else | ||||
|       return GaussianFactor::shared_ptr(new JacobianFactor(terms, b)); | ||||
|   } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue