| 
									
										
										
										
											2012-05-04 01:03:16 +08:00
										 |  |  | /* ----------------------------------------------------------------------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  * GTSAM Copyright 2010, Georgia Tech Research Corporation,  | 
					
						
							|  |  |  |  * Atlanta, Georgia 30332-0415 | 
					
						
							|  |  |  |  * All Rights Reserved | 
					
						
							|  |  |  |  * Authors: Frank Dellaert, et al. (see THANKS for the full author list) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  * See LICENSE for the license information | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  * -------------------------------------------------------------------------- */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  | * @file   Simulated3D.cpp | 
					
						
							|  |  |  | * @brief  measurement functions and derivatives for simulated 3D robot | 
					
						
							|  |  |  | * @author Alex Cunningham | 
					
						
							|  |  |  | **/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-10 04:15:44 +08:00
										 |  |  | #include <tests/simulated3D.h>
 | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:16 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | namespace gtsam { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace simulated3D { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Point3 prior (const Point3& x, boost::optional<Matrix&> H) { | 
					
						
							| 
									
										
										
										
											2012-10-02 22:40:07 +08:00
										 |  |  |   if (H) *H = eye(3); | 
					
						
							|  |  |  |   return x; | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:16 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Point3 odo(const Point3& x1, const Point3& x2, | 
					
						
							| 
									
										
										
										
											2012-10-02 22:40:07 +08:00
										 |  |  |     boost::optional<Matrix&> H1, boost::optional<Matrix&> H2) { | 
					
						
							|  |  |  |   if (H1) *H1 = -1 * eye(3); | 
					
						
							|  |  |  |   if (H2) *H2 = eye(3); | 
					
						
							|  |  |  |   return x2 - x1; | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:16 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Point3 mea(const Point3& x,  const Point3& l, | 
					
						
							| 
									
										
										
										
											2012-10-02 22:40:07 +08:00
										 |  |  |     boost::optional<Matrix&> H1, boost::optional<Matrix&> H2) { | 
					
						
							|  |  |  |   if (H1) *H1 = -1 * eye(3); | 
					
						
							|  |  |  |   if (H2) *H2 = eye(3); | 
					
						
							|  |  |  |   return l - x; | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:16 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | }} // namespace gtsam::simulated3D
 |