51 lines
		
	
	
		
			821 B
		
	
	
	
		
			Matlab
		
	
	
		
		
			
		
	
	
			51 lines
		
	
	
		
			821 B
		
	
	
	
		
			Matlab
		
	
	
| 
								 | 
							
								% create a linear factor graph
							 | 
						||
| 
								 | 
							
								% The non-linear graph above evaluated at NoisyConfig
							 | 
						||
| 
								 | 
							
								function fg = createGaussianFactorGraph()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								c = createNoisyConfig(); 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								% Create
							 | 
						||
| 
								 | 
							
								fg = GaussianFactorGraph;
							 | 
						||
| 
								 | 
							
								sigma1=.1;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								% prior on x1
							 | 
						||
| 
								 | 
							
								A11=eye(2);
							 | 
						||
| 
								 | 
							
								b = - c.get('x1');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								f1 = GaussianFactor('x1', A11, b, sigma1); % generate a Gaussian factor of odometry
							 | 
						||
| 
								 | 
							
								fg.push_back(f1);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								% odometry between x1 and x2
							 | 
						||
| 
								 | 
							
								sigma2=.1;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								A21=-eye(2);
							 | 
						||
| 
								 | 
							
								A22=eye(2);
							 | 
						||
| 
								 | 
							
								b = [.2;-.1];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								f2 = GaussianFactor('x1', A21,  'x2', A22, b,sigma2);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								fg.push_back(f2);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								% measurement between x1 and l1
							 | 
						||
| 
								 | 
							
								sigma3=.2;
							 | 
						||
| 
								 | 
							
								A31=-eye(2);
							 | 
						||
| 
								 | 
							
								A33=eye(2);
							 | 
						||
| 
								 | 
							
								b = [0;.2];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								f3 = GaussianFactor('x1', A31, 'l1', A33, b,sigma3);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								fg.push_back(f3);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								% measurement between x2 and l1
							 | 
						||
| 
								 | 
							
								sigma4=.2;
							 | 
						||
| 
								 | 
							
								A42=-eye(2);
							 | 
						||
| 
								 | 
							
								A43=eye(2);
							 | 
						||
| 
								 | 
							
								b = [-.2;.3];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								f4 = GaussianFactor('x2', A42, 'l1', A43, b,sigma4);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								fg.push_back(f4);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								end
							 |