25 lines
		
	
	
		
			703 B
		
	
	
	
		
			C++
		
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			703 B
		
	
	
	
		
			C++
		
	
	
| int relinearizeInterval = 3;
 | |
| NonlinearISAM isam(relinearizeInterval);
 | |
| 
 | |
| // ... first frame initialization omitted ...
 | |
| 
 | |
| // Loop over the different poses, adding the observations to iSAM
 | |
| for (size_t i = 1; i < poses.size(); ++i) {
 | |
| 
 | |
|   // Add factors for each landmark observation
 | |
|   NonlinearFactorGraph graph;
 | |
|   for (size_t j = 0; j < points.size(); ++j) {
 | |
|     graph.add(
 | |
|       GenericProjectionFactor<Pose3, Point3, Cal3_S2>
 | |
|         (z[i][j], noise,Symbol('x', i), Symbol('l', j), K)
 | |
|     );
 | |
|   }
 | |
| 
 | |
|   // Add an initial guess for the current pose
 | |
|   Values initialEstimate;
 | |
|   initialEstimate.insert(Symbol('x', i), initial_x[i]);
 | |
| 
 | |
|   // Update iSAM with the new factors
 | |
|   isam.update(graph, initialEstimate);
 | |
|  }
 |