41 lines
		
	
	
		
			732 B
		
	
	
	
		
			Matlab
		
	
	
		
		
			
		
	
	
			41 lines
		
	
	
		
			732 B
		
	
	
	
		
			Matlab
		
	
	
| 
								 | 
							
								% create a linear factor graph
							 | 
						||
| 
								 | 
							
								% The non-linear graph above evaluated at NoisyConfig
							 | 
						||
| 
								 | 
							
								function fg = createLinearFactorGraph()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								c = createNoisyConfig();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								% Create
							 | 
						||
| 
								 | 
							
								fg = LinearFactorGraph;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								% prior on x1
							 | 
						||
| 
								 | 
							
								A11=[10 0; 0 10];
							 | 
						||
| 
								 | 
							
								b = - c.get('x1')/0.1;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								f1 = LinearFactor('x1', A11, b);
							 | 
						||
| 
								 | 
							
								fg.push_back(f1);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								% odometry between x1 and x2
							 | 
						||
| 
								 | 
							
								A21=[-10 0; 0 -10];
							 | 
						||
| 
								 | 
							
								A22=[ 10 0; 0  10];
							 | 
						||
| 
								 | 
							
								b = [2;-1];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								f2 = LinearFactor('x1', A21,  'x2', A22, b);
							 | 
						||
| 
								 | 
							
								fg.push_back(f2);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								% measurement between x1 and l1
							 | 
						||
| 
								 | 
							
								A31=[-5 0; 0 -5];
							 | 
						||
| 
								 | 
							
								A32=[ 5 0; 0  5];
							 | 
						||
| 
								 | 
							
								b = [0;1];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								f3 = LinearFactor('x1', A31, 'l1', A32, b);
							 | 
						||
| 
								 | 
							
								fg.push_back(f3);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								% measurement between x2 and l1
							 | 
						||
| 
								 | 
							
								A41=[-5 0; 0 -5];
							 | 
						||
| 
								 | 
							
								A42=[ 5 0; 0  5];
							 | 
						||
| 
								 | 
							
								b = [-1;1.5];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								f4 = LinearFactor('x2', A41, 'l1', A42, b);
							 | 
						||
| 
								 | 
							
								fg.push_back(f4);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								end
							 |