68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
/**
 | 
						|
 * @file    simulated2D.cpp
 | 
						|
 * @brief   measurement functions and derivatives for simulated 2D robot
 | 
						|
 * @author  Frank Dellaert
 | 
						|
 */
 | 
						|
 | 
						|
#include "simulated2D.h"
 | 
						|
 | 
						|
namespace gtsam {
 | 
						|
 | 
						|
 | 
						|
/** prior on a single pose */
 | 
						|
 | 
						|
/* ************************************************************************* */
 | 
						|
Vector prior (const Vector& x) {return x;}
 | 
						|
 | 
						|
/* ************************************************************************* */
 | 
						|
Matrix Dprior(const Vector& x) {
 | 
						|
  Matrix H(2,2);
 | 
						|
  H(0,0)=1;  H(0,1)=0;
 | 
						|
  H(1,0)=0;  H(1,1)=1;
 | 
						|
  return H;
 | 
						|
}
 | 
						|
/* ************************************************************************* */
 | 
						|
 | 
						|
/** odometry between two poses */                                
 | 
						|
 | 
						|
/* ************************************************************************* */
 | 
						|
Vector odo(const Vector& x1, const Vector& x2) {return x2 - x1;}
 | 
						|
Matrix Dodo1(const Vector& x1, const Vector& x2) {
 | 
						|
  Matrix H(2,2);
 | 
						|
  H(0,0)=-1;  H(0,1)= 0;
 | 
						|
  H(1,0)= 0;  H(1,1)=-1;
 | 
						|
  return H;
 | 
						|
}
 | 
						|
 | 
						|
/* ************************************************************************* */
 | 
						|
Matrix Dodo2(const Vector& x1, const Vector& x2) {
 | 
						|
  Matrix H(2,2);
 | 
						|
  H(0,0)= 1;  H(0,1)= 0;
 | 
						|
  H(1,0)= 0;  H(1,1)= 1;
 | 
						|
  return H;
 | 
						|
}
 | 
						|
 | 
						|
/* ************************************************************************* */
 | 
						|
 | 
						|
/** measurement between landmark and pose */
 | 
						|
 | 
						|
/* ************************************************************************* */
 | 
						|
Vector mea(const Vector& x,  const Vector& l)  {return l  - x;}
 | 
						|
Matrix Dmea1(const Vector& x, const Vector& l) {
 | 
						|
  Matrix H(2,2);
 | 
						|
  H(0,0)=-1;  H(0,1)= 0;
 | 
						|
  H(1,0)= 0;  H(1,1)=-1;
 | 
						|
  return H;
 | 
						|
}
 | 
						|
 | 
						|
/* ************************************************************************* */
 | 
						|
Matrix Dmea2(const Vector& x, const Vector& l) {
 | 
						|
  Matrix H(2,2);
 | 
						|
  H(0,0)= 1;  H(0,1)= 0;
 | 
						|
  H(1,0)= 0;  H(1,1)= 1;
 | 
						|
  return H;
 | 
						|
}
 | 
						|
 | 
						|
/* ************************************************************************* */
 | 
						|
} // namespace gtsam
 |