Revert "switch from IndexVector to FastVector<size_t> now that pybind/stl.h is enabled"
This reverts commit 64c28504ad.
			
			
				release/4.3a0
			
			
		
							parent
							
								
									3641dd1b34
								
							
						
					
					
						commit
						00f5596e70
					
				|  | @ -73,10 +73,13 @@ class GncParams { | |||
|   double weightsTol = 1e-4;  ///< If the weights are within weightsTol from being binary, stop iterating (only for TLS)
 | ||||
|   Verbosity verbosity = SILENT;  ///< Verbosity level
 | ||||
| 
 | ||||
|   //TODO(Varun) replace IndexVector with vector<size_t> once pybind11/stl.h is globally enabled.
 | ||||
|   /// Use IndexVector for inliers and outliers since it is fast + wrapping
 | ||||
|   using IndexVector = FastVector<uint64_t>; | ||||
|   ///< Slots in the factor graph corresponding to measurements that we know are inliers
 | ||||
|   FastVector<size_t> knownInliers; | ||||
|   IndexVector knownInliers = IndexVector(); | ||||
|   ///< Slots in the factor graph corresponding to measurements that we know are outliers
 | ||||
|   FastVector<size_t> knownOutliers; | ||||
|   IndexVector knownOutliers = IndexVector(); | ||||
| 
 | ||||
|   /// Set the robust loss function to be used in GNC (chosen among the ones in GncLossType).
 | ||||
|   void setLossType(const GncLossType type) { | ||||
|  | @ -117,7 +120,7 @@ class GncParams { | |||
|    * This functionality is commonly used in SLAM when one may assume the odometry is outlier free, and | ||||
|    * only apply GNC to prune outliers from the loop closures. | ||||
|    * */ | ||||
|   void setKnownInliers(const FastVector<size_t>& knownIn) { | ||||
|   void setKnownInliers(const IndexVector& knownIn) { | ||||
|     for (size_t i = 0; i < knownIn.size(); i++){ | ||||
|       knownInliers.push_back(knownIn[i]); | ||||
|     } | ||||
|  | @ -128,7 +131,7 @@ class GncParams { | |||
|    * corresponds to the slots in the factor graph. For instance, if you have a nonlinear factor graph nfg, | ||||
|    * and you provide  knownOut = {0, 2, 15}, GNC will not apply outlier rejection to nfg[0], nfg[2], and nfg[15]. | ||||
|    * */ | ||||
|   void setKnownOutliers(const FastVector<size_t>& knownOut) { | ||||
|   void setKnownOutliers(const IndexVector& knownOut) { | ||||
|     for (size_t i = 0; i < knownOut.size(); i++){ | ||||
|       knownOutliers.push_back(knownOut[i]); | ||||
|     } | ||||
|  |  | |||
|  | @ -567,7 +567,7 @@ TEST(GncOptimizer, optimizeWithKnownInliers) { | |||
|   Values initial; | ||||
|   initial.insert(X(1), p0); | ||||
| 
 | ||||
|   FastVector<size_t> knownInliers; | ||||
|   GncParams<GaussNewtonParams>::IndexVector knownInliers; | ||||
|   knownInliers.push_back(0); | ||||
|   knownInliers.push_back(1); | ||||
|   knownInliers.push_back(2); | ||||
|  | @ -644,7 +644,7 @@ TEST(GncOptimizer, barcsq) { | |||
|   Values initial; | ||||
|   initial.insert(X(1), p0); | ||||
| 
 | ||||
|   FastVector<size_t> knownInliers; | ||||
|   GncParams<GaussNewtonParams>::IndexVector knownInliers; | ||||
|   knownInliers.push_back(0); | ||||
|   knownInliers.push_back(1); | ||||
|   knownInliers.push_back(2); | ||||
|  | @ -691,7 +691,7 @@ TEST(GncOptimizer, setInlierCostThresholds) { | |||
|   Values initial; | ||||
|   initial.insert(X(1), p0); | ||||
| 
 | ||||
|   FastVector<size_t> knownInliers; | ||||
|   GncParams<GaussNewtonParams>::IndexVector knownInliers; | ||||
|   knownInliers.push_back(0); | ||||
|   knownInliers.push_back(1); | ||||
|   knownInliers.push_back(2); | ||||
|  | @ -761,7 +761,7 @@ TEST(GncOptimizer, optimizeSmallPoseGraph) { | |||
|   // GNC
 | ||||
|   // Note: in difficult instances, we set the odometry measurements to be
 | ||||
|   // inliers, but this problem is simple enought to succeed even without that
 | ||||
|   // assumption;
 | ||||
|   // assumption GncParams<GaussNewtonParams>::IndexVector knownInliers;
 | ||||
|   GncParams<GaussNewtonParams> gncParams; | ||||
|   auto gnc = GncOptimizer<GncParams<GaussNewtonParams>>(*graph, *initial, | ||||
|                                                         gncParams); | ||||
|  | @ -782,12 +782,12 @@ TEST(GncOptimizer, knownInliersAndOutliers) { | |||
|   // nonconvexity with known inliers and known outliers (check early stopping
 | ||||
|   // when all measurements are known to be inliers or outliers)
 | ||||
|   { | ||||
|     FastVector<size_t> knownInliers; | ||||
|     GncParams<GaussNewtonParams>::IndexVector knownInliers; | ||||
|     knownInliers.push_back(0); | ||||
|     knownInliers.push_back(1); | ||||
|     knownInliers.push_back(2); | ||||
| 
 | ||||
|     FastVector<size_t> knownOutliers; | ||||
|     GncParams<GaussNewtonParams>::IndexVector knownOutliers; | ||||
|     knownOutliers.push_back(3); | ||||
| 
 | ||||
|     GncParams<GaussNewtonParams> gncParams; | ||||
|  | @ -811,11 +811,11 @@ TEST(GncOptimizer, knownInliersAndOutliers) { | |||
| 
 | ||||
|   // nonconvexity with known inliers and known outliers
 | ||||
|   { | ||||
|     FastVector<size_t> knownInliers; | ||||
|     GncParams<GaussNewtonParams>::IndexVector knownInliers; | ||||
|     knownInliers.push_back(2); | ||||
|     knownInliers.push_back(0); | ||||
| 
 | ||||
|     FastVector<size_t> knownOutliers; | ||||
|     GncParams<GaussNewtonParams>::IndexVector knownOutliers; | ||||
|     knownOutliers.push_back(3); | ||||
| 
 | ||||
|     GncParams<GaussNewtonParams> gncParams; | ||||
|  | @ -839,7 +839,7 @@ TEST(GncOptimizer, knownInliersAndOutliers) { | |||
| 
 | ||||
|   // only known outliers
 | ||||
|   { | ||||
|     FastVector<size_t> knownOutliers; | ||||
|     GncParams<GaussNewtonParams>::IndexVector knownOutliers; | ||||
|     knownOutliers.push_back(3); | ||||
| 
 | ||||
|     GncParams<GaussNewtonParams> gncParams; | ||||
|  | @ -914,11 +914,11 @@ TEST(GncOptimizer, setWeights) { | |||
|   // initialize weights and also set known inliers/outliers
 | ||||
|   { | ||||
|     GncParams<GaussNewtonParams> gncParams; | ||||
|     FastVector<size_t> knownInliers; | ||||
|     GncParams<GaussNewtonParams>::IndexVector knownInliers; | ||||
|     knownInliers.push_back(2); | ||||
|     knownInliers.push_back(0); | ||||
| 
 | ||||
|     FastVector<size_t> knownOutliers; | ||||
|     GncParams<GaussNewtonParams>::IndexVector knownOutliers; | ||||
|     knownOutliers.push_back(3); | ||||
|     gncParams.setKnownInliers(knownInliers); | ||||
|     gncParams.setKnownOutliers(knownOutliers); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue