Changes in SmartProjectionFactor
							parent
							
								
									5518007317
								
							
						
					
					
						commit
						2e085ace91
					
				
							
								
								
									
										390
									
								
								.cproject
								
								
								
								
							
							
						
						
									
										390
									
								
								.cproject
								
								
								
								
							|  | @ -1,7 +1,5 @@ | |||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <?fileVersion 4.0.0?> | ||||
| 
 | ||||
| <cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> | ||||
| <?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> | ||||
| 	<storageModule moduleId="org.eclipse.cdt.core.settings"> | ||||
| 		<cconfiguration id="cdt.managedbuild.toolchain.gnu.macosx.base.1359703544"> | ||||
| 			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.macosx.base.1359703544" moduleId="org.eclipse.cdt.core.settings" name="MacOSX GCC"> | ||||
|  | @ -149,8 +147,16 @@ | |||
| 	<storageModule moduleId="cdtBuildSystem" version="4.0.0"> | ||||
| 		<project id="gtsam.null.1344331286" name="gtsam"/> | ||||
| 	</storageModule> | ||||
| 	<storageModule moduleId="refreshScope" versionNumber="1"> | ||||
| 		<resource resourceType="PROJECT" workspacePath="/gtsam"/> | ||||
| 	<storageModule moduleId="refreshScope" versionNumber="2"> | ||||
| 		<configuration configurationName="Timing"> | ||||
| 			<resource resourceType="PROJECT" workspacePath="/gtsam"/> | ||||
| 		</configuration> | ||||
| 		<configuration configurationName="fast"> | ||||
| 			<resource resourceType="PROJECT" workspacePath="/gtsam"/> | ||||
| 		</configuration> | ||||
| 		<configuration configurationName="MacOSX GCC"> | ||||
| 			<resource resourceType="PROJECT" workspacePath="/gtsam"/> | ||||
| 		</configuration> | ||||
| 	</storageModule> | ||||
| 	<storageModule moduleId="scannerConfiguration"> | ||||
| 		<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/> | ||||
|  | @ -309,6 +315,14 @@ | |||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testGaussianFactor.run" path="linear/tests" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testGaussianFactor.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="all" path="inference" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
|  | @ -335,7 +349,6 @@ | |||
| 			</target> | ||||
| 			<target name="tests/testBayesTree.run" path="inference" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>tests/testBayesTree.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -343,7 +356,6 @@ | |||
| 			</target> | ||||
| 			<target name="testBinaryBayesNet.run" path="inference" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>testBinaryBayesNet.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -391,7 +403,6 @@ | |||
| 			</target> | ||||
| 			<target name="testSymbolicBayesNet.run" path="inference" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>testSymbolicBayesNet.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -399,7 +410,6 @@ | |||
| 			</target> | ||||
| 			<target name="tests/testSymbolicFactor.run" path="inference" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>tests/testSymbolicFactor.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -407,7 +417,6 @@ | |||
| 			</target> | ||||
| 			<target name="testSymbolicFactorGraph.run" path="inference" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>testSymbolicFactorGraph.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -423,20 +432,11 @@ | |||
| 			</target> | ||||
| 			<target name="tests/testBayesTree" path="inference" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>tests/testBayesTree</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testGaussianFactor.run" path="linear/tests" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testGaussianFactor.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testPoseRTV.run" path="build/gtsam_unstable/dynamics" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
|  | @ -525,22 +525,6 @@ | |||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="tests/testPose2.run" path="build_retract/gtsam/geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>tests/testPose2.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="tests/testPose3.run" path="build_retract/gtsam/geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>tests/testPose3.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="all" path="CppUnitLite" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
|  | @ -557,6 +541,22 @@ | |||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="tests/testPose2.run" path="build_retract/gtsam/geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>tests/testPose2.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="tests/testPose3.run" path="build_retract/gtsam/geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>tests/testPose3.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="all" path="spqr_mini" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
|  | @ -581,26 +581,34 @@ | |||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="all" path="build_wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 			<target name="testValues.run" path="build/gtsam/nonlinear" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>all</buildTarget> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
| 				<buildTarget>testValues.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="check" path="build_wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 			<target name="testOrdering.run" path="build/gtsam/nonlinear" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>check</buildTarget> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
| 				<buildTarget>testOrdering.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="clean" path="build_wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 			<target name="testKey.run" path="build/gtsam/nonlinear" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>clean</buildTarget> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
| 				<buildTarget>testKey.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testLinearContainerFactor.run" path="build/gtsam/nonlinear" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
| 				<buildTarget>testLinearContainerFactor.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
|  | @ -685,34 +693,26 @@ | |||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testValues.run" path="build/gtsam/nonlinear" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 			<target name="all" path="build_wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
| 				<buildTarget>testValues.run</buildTarget> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>all</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testOrdering.run" path="build/gtsam/nonlinear" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 			<target name="check" path="build_wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
| 				<buildTarget>testOrdering.run</buildTarget> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>check</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testKey.run" path="build/gtsam/nonlinear" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 			<target name="clean" path="build_wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
| 				<buildTarget>testKey.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testLinearContainerFactor.run" path="build/gtsam/nonlinear" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
| 				<buildTarget>testLinearContainerFactor.run</buildTarget> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>clean</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
|  | @ -845,6 +845,22 @@ | |||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testMultiProjectionFactor.run" path="build/gtsam_unstable/slam" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
| 				<buildTarget>testMultiProjectionFactor.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testSmartProjectionFactor.run" path="build/gtsam_unstable/slam" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
| 				<buildTarget>testSmartProjectionFactor.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testDiscreteFactor.run" path="build/gtsam/discrete" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
|  | @ -933,6 +949,14 @@ | |||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testTriangulation.run" path="build/gtsam_unstable/geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
| 				<buildTarget>testTriangulation.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testVSLAMGraph" path="build/slam/tests" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
|  | @ -1079,7 +1103,6 @@ | |||
| 			</target> | ||||
| 			<target name="testGraph.run" path="build/tests" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>testGraph.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -1087,7 +1110,6 @@ | |||
| 			</target> | ||||
| 			<target name="testJunctionTree.run" path="build/tests" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>testJunctionTree.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -1095,7 +1117,6 @@ | |||
| 			</target> | ||||
| 			<target name="testSymbolicBayesNetB.run" path="build/tests" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>testSymbolicBayesNetB.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -1263,7 +1284,6 @@ | |||
| 			</target> | ||||
| 			<target name="testErrors.run" path="linear" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>testErrors.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -1309,6 +1329,14 @@ | |||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testGaussianFactor.run" path="build/linear/tests" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testGaussianFactor.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="check" path="base" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
|  | @ -1389,14 +1417,6 @@ | |||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testGaussianFactor.run" path="build/linear/tests" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testGaussianFactor.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="check" path="build/inference" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
|  | @ -1703,6 +1723,7 @@ | |||
| 			</target> | ||||
| 			<target name="testSimulated2DOriented.run" path="slam" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>testSimulated2DOriented.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -1742,6 +1763,7 @@ | |||
| 			</target> | ||||
| 			<target name="testSimulated2D.run" path="slam" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>testSimulated2D.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -1749,6 +1771,7 @@ | |||
| 			</target> | ||||
| 			<target name="testSimulated3D.run" path="slam" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>testSimulated3D.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -1964,6 +1987,7 @@ | |||
| 			</target> | ||||
| 			<target name="tests/testGaussianISAM2" path="build/slam" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>tests/testGaussianISAM2</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -1985,6 +2009,102 @@ | |||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testRot3.run" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testRot3.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testRot2.run" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testRot2.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testPose3.run" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testPose3.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="timeRot3.run" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>timeRot3.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testPose2.run" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testPose2.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testCal3_S2.run" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testCal3_S2.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testSimpleCamera.run" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testSimpleCamera.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testHomography2.run" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testHomography2.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testCalibratedCamera.run" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testCalibratedCamera.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="check" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>check</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="clean" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>clean</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testPoint2.run" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testPoint2.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="install" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j3</buildArguments> | ||||
|  | @ -2186,7 +2306,6 @@ | |||
| 			</target> | ||||
| 			<target name="Generate DEB Package" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>cpack</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>-G DEB</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -2194,7 +2313,6 @@ | |||
| 			</target> | ||||
| 			<target name="Generate RPM Package" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>cpack</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>-G RPM</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -2202,7 +2320,6 @@ | |||
| 			</target> | ||||
| 			<target name="Generate TGZ Package" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>cpack</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>-G TGZ</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -2210,7 +2327,6 @@ | |||
| 			</target> | ||||
| 			<target name="Generate TGZ Source Package" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>cpack</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>--config CPackSourceConfig.cmake</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -2352,98 +2468,34 @@ | |||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testRot3.run" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 			<target name="testSpirit.run" path="build/wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testRot3.run</buildTarget> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
| 				<buildTarget>testSpirit.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testRot2.run" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 			<target name="testWrap.run" path="build/wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testRot2.run</buildTarget> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
| 				<buildTarget>testWrap.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testPose3.run" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 			<target name="check.wrap" path="build/wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testPose3.run</buildTarget> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
| 				<buildTarget>check.wrap</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="timeRot3.run" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 			<target name="wrap" path="build/wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>timeRot3.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testPose2.run" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testPose2.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testCal3_S2.run" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testCal3_S2.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testSimpleCamera.run" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testSimpleCamera.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testHomography2.run" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testHomography2.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testCalibratedCamera.run" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testCalibratedCamera.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="check" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>check</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="clean" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>clean</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testPoint2.run" path="geometry" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j2</buildArguments> | ||||
| 				<buildTarget>testPoint2.run</buildTarget> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
| 				<buildTarget>wrap</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
|  | @ -2487,38 +2539,6 @@ | |||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testSpirit.run" path="build/wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
| 				<buildTarget>testSpirit.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testWrap.run" path="build/wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
| 				<buildTarget>testWrap.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="check.wrap" path="build/wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
| 				<buildTarget>check.wrap</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="wrap" path="build/wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
| 				<buildTarget>wrap</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 		</buildTargets> | ||||
| 	</storageModule> | ||||
| </cproject> | ||||
|  |  | |||
|  | @ -141,39 +141,39 @@ namespace gtsam { | |||
|           && ((!body_P_sensor_ && !e->body_P_sensor_) || (body_P_sensor_ && e->body_P_sensor_ && body_P_sensor_->equals(*e->body_P_sensor_))); | ||||
|     } | ||||
| 
 | ||||
|     /// Evaluate error h(x)-z and optionally derivatives
 | ||||
|     Vector unwhitenedError(const Values& x, boost::optional<std::vector<Matrix>&> H = boost::none) const{ | ||||
| 
 | ||||
|       Vector a; | ||||
|       return a; | ||||
| 
 | ||||
| //      Point3 point = x.at<Point3>(*keys_.end());
 | ||||
| //    /// Evaluate error h(x)-z and optionally derivatives
 | ||||
| //    Vector unwhitenedError(const Values& x, boost::optional<std::vector<Matrix>&> H = boost::none) const{
 | ||||
| //
 | ||||
| //      std::vector<KeyType>::iterator vit;
 | ||||
| //      for (vit = keys_.begin(); vit != keys_.end()-1; vit++) {
 | ||||
| //        Key key = (*vit);
 | ||||
| //        Pose3 pose = x.at<Pose3>(key);
 | ||||
| //      Vector a;
 | ||||
| //      return a;
 | ||||
| //
 | ||||
| //        if(body_P_sensor_) {
 | ||||
| //          if(H1) {
 | ||||
| //            gtsam::Matrix H0;
 | ||||
| //            PinholeCamera<CALIBRATION> camera(pose.compose(*body_P_sensor_, H0), *K_);
 | ||||
| //            Point2 reprojectionError(camera.project(point, H1, H2) - measured_);
 | ||||
| //            *H1 = *H1 * H0;
 | ||||
| //            return reprojectionError.vector();
 | ||||
| //          } else {
 | ||||
| //            PinholeCamera<CALIBRATION> camera(pose.compose(*body_P_sensor_), *K_);
 | ||||
| //            Point2 reprojectionError(camera.project(point, H1, H2) - measured_);
 | ||||
| //            return reprojectionError.vector();
 | ||||
| //          }
 | ||||
| //        } else {
 | ||||
| //          PinholeCamera<CALIBRATION> camera(pose, *K_);
 | ||||
| //          Point2 reprojectionError(camera.project(point, H1, H2) - measured_);
 | ||||
| //          return reprojectionError.vector();
 | ||||
| //        }
 | ||||
| //      }
 | ||||
| 
 | ||||
|     } | ||||
| ////      Point3 point = x.at<Point3>(*keys_.end());
 | ||||
| ////
 | ||||
| ////      std::vector<KeyType>::iterator vit;
 | ||||
| ////      for (vit = keys_.begin(); vit != keys_.end()-1; vit++) {
 | ||||
| ////        Key key = (*vit);
 | ||||
| ////        Pose3 pose = x.at<Pose3>(key);
 | ||||
| ////
 | ||||
| ////        if(body_P_sensor_) {
 | ||||
| ////          if(H1) {
 | ||||
| ////            gtsam::Matrix H0;
 | ||||
| ////            PinholeCamera<CALIBRATION> camera(pose.compose(*body_P_sensor_, H0), *K_);
 | ||||
| ////            Point2 reprojectionError(camera.project(point, H1, H2) - measured_);
 | ||||
| ////            *H1 = *H1 * H0;
 | ||||
| ////            return reprojectionError.vector();
 | ||||
| ////          } else {
 | ||||
| ////            PinholeCamera<CALIBRATION> camera(pose.compose(*body_P_sensor_), *K_);
 | ||||
| ////            Point2 reprojectionError(camera.project(point, H1, H2) - measured_);
 | ||||
| ////            return reprojectionError.vector();
 | ||||
| ////          }
 | ||||
| ////        } else {
 | ||||
| ////          PinholeCamera<CALIBRATION> camera(pose, *K_);
 | ||||
| ////          Point2 reprojectionError(camera.project(point, H1, H2) - measured_);
 | ||||
| ////          return reprojectionError.vector();
 | ||||
| ////        }
 | ||||
| ////      }
 | ||||
| //
 | ||||
| //    }
 | ||||
| 
 | ||||
|     /// get the dimension of the factor (number of rows on linearization)
 | ||||
|     virtual size_t dim() const { | ||||
|  | @ -183,10 +183,6 @@ namespace gtsam { | |||
|     /// linearize returns a Hessianfactor that is an approximation of error(p)
 | ||||
|     virtual boost::shared_ptr<GaussianFactor> linearize(const Values& values,  const Ordering& ordering) const { | ||||
| 
 | ||||
|       std::vector<Matrix> Hx(keys_.size()); | ||||
|       std::vector<Matrix> Hl(keys_.size()); | ||||
|       std::vector<Vector> b(keys_.size()); | ||||
| 
 | ||||
|       // Collect all poses (Cameras)
 | ||||
|       std::vector<Pose3> cameraPoses; | ||||
| 
 | ||||
|  | @ -196,66 +192,139 @@ namespace gtsam { | |||
|         else | ||||
|           cameraPoses.push_back(values.at<Pose3>(k)); | ||||
|       } | ||||
| 
 | ||||
|       // We triangulate the 3D position of the landmark
 | ||||
|             // We triangulate the 3D position of the landmark
 | ||||
|       boost::optional<Point3> point = triangulatePoint3(cameraPoses, measured_, *K_); | ||||
| 
 | ||||
|       if(point){ | ||||
|         for(size_t i = 0; i < measured_.size(); i++) { | ||||
|           Pose3 pose = cameraPoses.at(i); | ||||
|           PinholeCamera<CALIBRATION> camera(pose, *K_); | ||||
|           b.at(i) = ( camera.project(*point,Hx.at(i),Hl.at(i)) - measured_.at(i) ).vector(); | ||||
|         } | ||||
|       } | ||||
|       else{ | ||||
|       if (!point) | ||||
|         return HessianFactor::shared_ptr(new HessianFactor()); | ||||
|       } | ||||
| 
 | ||||
|       // Allocate m^2 matrix blocks
 | ||||
|       std::vector< std::vector<Matrix> > Hxl(keys_.size(), std::vector<Matrix>( keys_.size())); | ||||
| 
 | ||||
|       // Allocate inv(Hl'Hl)
 | ||||
|       Matrix3 C; | ||||
|       for(size_t i1 = 0; i1 < keys_.size(); i1++) { | ||||
|          C += Hl.at(i1).transpose() * Hl.at(i1); | ||||
|       } | ||||
|       C = C.inverse(); | ||||
|       std::cout << "point " << *point << std::endl; | ||||
| 
 | ||||
| 
 | ||||
|       std::vector<Matrix> Gs(keys_.size()*(keys_.size()+1)/2); | ||||
|       std::vector<Vector> gs(keys_.size()); | ||||
|       double f = 0; | ||||
|       // fill in the keys
 | ||||
|       std::vector<Index> js; | ||||
|       BOOST_FOREACH(const Key& k, keys_) { | ||||
|         js += ordering[k]; | ||||
|       } | ||||
| 
 | ||||
|       // Calculate sub blocks
 | ||||
|       for(size_t i1 = 0; i1 < keys_.size(); i1++) { | ||||
|         for(size_t i2 = 0; i2 < keys_.size(); i2++) { | ||||
|           Hxl[i1][i2] = Hx.at(i1).transpose() * Hl.at(i1) * C * Hl.at(i2).transpose(); | ||||
|       bool blockwise = false; | ||||
| 
 | ||||
| //      {
 | ||||
|         // ==========================================================================================================
 | ||||
|         std::vector<Matrix> Hx(keys_.size()); | ||||
|         std::vector<Matrix> Hl(keys_.size()); | ||||
|         std::vector<Vector> b(keys_.size()); | ||||
| 
 | ||||
|         for(size_t i = 0; i < measured_.size(); i++) { | ||||
|           Pose3 pose = cameraPoses.at(i); | ||||
| 
 | ||||
|           std::cout << "pose " << pose << std::endl; | ||||
| 
 | ||||
|           PinholeCamera<CALIBRATION> camera(pose, *K_); | ||||
|           b.at(i) = ( camera.project(*point,Hx.at(i),Hl.at(i)) - measured_.at(i) ).vector(); | ||||
|         } | ||||
|       } | ||||
| 
 | ||||
|       // Shur complement trick
 | ||||
|         // Shur complement trick
 | ||||
| 
 | ||||
|       // Populate Gs and gs
 | ||||
|       std::vector<Matrix> Gs(keys_.size()*(keys_.size()+1)/2); | ||||
|       std::vector<Vector> gs(keys_.size()); | ||||
|       double f = 0; | ||||
|       int GsCount = 0; | ||||
|       for(size_t i1 = 0; i1 < keys_.size(); i1++) { | ||||
|         gs.at(i1) = Hx.at(i1).transpose() * b.at(i1); | ||||
|         // Allocate m^2 matrix blocks
 | ||||
|         std::vector< std::vector<Matrix> > Hxl(keys_.size(), std::vector<Matrix>( keys_.size())); | ||||
| 
 | ||||
|         for(size_t i2 = 0; i2 < keys_.size(); i2++) { | ||||
|           gs.at(i1) += Hxl[i1][i2] * b.at(i2); | ||||
|         // Allocate inv(Hl'Hl)
 | ||||
|         Matrix3 C; | ||||
|         for(size_t i1 = 0; i1 < keys_.size(); i1++) { | ||||
|           C += Hl.at(i1).transpose() * Hl.at(i1); | ||||
|         } | ||||
|         C = C.inverse(); | ||||
| 
 | ||||
|           if (i2 >= i1) { | ||||
|             Gs.at(GsCount) = Hx.at(i1).transpose() * Hx.at(i1) - Hxl[i1][i2] * Hx.at(i2); | ||||
|             GsCount++; | ||||
|         // Calculate sub blocks
 | ||||
|         for(size_t i1 = 0; i1 < keys_.size(); i1++) { | ||||
|           for(size_t i2 = 0; i2 < keys_.size(); i2++) { | ||||
|             Hxl[i1][i2] = Hx.at(i1).transpose() * Hl.at(i1) * C * Hl.at(i2).transpose(); | ||||
|           } | ||||
|         } | ||||
|         // Populate Gs and gs
 | ||||
|         int GsCount = 0; | ||||
|         for(size_t i1 = 0; i1 < keys_.size(); i1++) { | ||||
|           gs.at(i1) = Hx.at(i1).transpose() * b.at(i1); | ||||
| 
 | ||||
|           for(size_t i2 = 0; i2 < keys_.size(); i2++) { | ||||
|             gs.at(i1) += Hxl[i1][i2] * b.at(i2); | ||||
| 
 | ||||
|             if (i2 >= i1) { | ||||
|               Gs.at(GsCount) = Hx.at(i1).transpose() * Hx.at(i1) - Hxl[i1][i2] * Hx.at(i2); | ||||
|               GsCount++; | ||||
|             } | ||||
|           } | ||||
|         } | ||||
| //      }
 | ||||
| 
 | ||||
|       // debug only
 | ||||
|       std::vector<Matrix> Gs2(keys_.size()*(keys_.size()+1)/2); | ||||
|       std::vector<Vector> gs2(keys_.size()); | ||||
| 
 | ||||
| //      { // version with full matrix multiplication
 | ||||
|         // ==========================================================================================================
 | ||||
|         Matrix Hx2 = zeros(2*keys_.size(), 6*keys_.size()); | ||||
|         Matrix Hl2 = zeros(2*keys_.size(), 3); | ||||
|         Vector b2 = zero(2*keys_.size()); | ||||
| 
 | ||||
|         for(size_t i = 0; i < measured_.size(); i++) { | ||||
|           Pose3 pose = cameraPoses.at(i); | ||||
|           PinholeCamera<CALIBRATION> camera(pose, *K_); | ||||
|           Matrix Hxi, Hli; | ||||
|            Vector bi = ( camera.project(*point,Hxi,Hli) - measured_.at(i) ).vector(); | ||||
|            Hx2.block( 2*i, 6*i, 2, 6 ) = Hxi; | ||||
|            Hl2.block( 2*i, 0, 2, 3  ) = Hli; | ||||
|            subInsert(b2,bi,2*i); | ||||
| 
 | ||||
|            std::cout << "Hx " << Hx2 << std::endl; | ||||
|            std::cout << "Hl " << Hl2 << std::endl; | ||||
|            std::cout << "b " << b2.transpose() << std::endl; | ||||
|            std::cout << "Hxi - Hx.at(i) " << Hxi - Hx.at(i) << std::endl; | ||||
|            std::cout << "Hli - Hl.at(i) " << Hli - Hl.at(i) << std::endl; | ||||
|         } | ||||
| 
 | ||||
|         // Shur complement trick
 | ||||
|         Matrix H(6*keys_.size(), 6*keys_.size()); | ||||
|         Matrix3 C2 = (Hl2.transpose() * Hl2).inverse(); | ||||
|         H = Hx2.transpose() * Hx2 - Hx2.transpose() * Hl2 * C2 * Hl2.transpose() * Hx2; | ||||
|         Vector gs2_vector =  Hx2.transpose() * b2 -  Hx2.transpose() * Hl2 * C2 * Hl2.transpose() * b2; | ||||
| 
 | ||||
|         std::cout << "C - C2 " << C - C2 << std::endl; | ||||
| 
 | ||||
|         // Populate Gs and gs
 | ||||
|         int GsCount2 = 0; | ||||
|         for(size_t i1 = 0; i1 < keys_.size(); i1++) { | ||||
|           gs2.at(i1) = sub(gs2_vector, 6*i1, 6*i1 + 6); | ||||
| 
 | ||||
|           for(size_t i2 = 0; i2 < keys_.size(); i2++) { | ||||
|             if (i2 >= i1) { | ||||
|               Gs2.at(GsCount2) = H.block(6*i1, 6*i2, 6, 6); | ||||
|               GsCount2++; | ||||
|             } | ||||
|           } | ||||
|         } | ||||
| //      }
 | ||||
| 
 | ||||
|       // Compare blockwise and full version
 | ||||
|       bool gs2_equal_gs = true; | ||||
|       for(size_t i = 0; i < measured_.size(); i++) { | ||||
|         std::cout << "gs.at(i) " << gs.at(i).transpose() << std::endl; | ||||
|         std::cout << "gs2.at(i) " << gs2.at(i).transpose() << std::endl; | ||||
|         std::cout << "gs.error  " << (gs.at(i)- gs2.at(i)).transpose() << std::endl; | ||||
|         if( !equal(gs.at(i), gs2.at(i)), 1e-7) { | ||||
|           gs2_equal_gs = false; | ||||
|         } | ||||
|       } | ||||
| 
 | ||||
|       return HessianFactor::shared_ptr(new HessianFactor(js, Gs, gs, f)); | ||||
|       std::cout << "gs2_equal_gs " << gs2_equal_gs << std::endl; | ||||
| 
 | ||||
| 
 | ||||
|       // ==========================================================================================================
 | ||||
|       return HessianFactor::shared_ptr(new HessianFactor(js, Gs2, gs2, f)); | ||||
|     } | ||||
| 
 | ||||
|     /**
 | ||||
|  | @ -284,17 +353,17 @@ namespace gtsam { | |||
|         if(point) | ||||
|         { // triangulation produced a good estimate of landmark position
 | ||||
| 
 | ||||
|           std::cout << "point " << *point << std::endl; | ||||
| //          std::cout << "point " << *point << std::endl;
 | ||||
| 
 | ||||
|           for(size_t i = 0; i < measured_.size(); i++) { | ||||
|             Pose3 pose = cameraPoses.at(i); | ||||
|             PinholeCamera<CALIBRATION> camera(pose, *K_); | ||||
|             std::cout << "pose.compose(*body_P_sensor_) " << pose << std::endl; | ||||
| //            std::cout << "pose.compose(*body_P_sensor_) " << pose << std::endl;
 | ||||
| 
 | ||||
|             Point2 reprojectionError(camera.project(*point) - measured_.at(i)); | ||||
|             std::cout << "reprojectionError " << reprojectionError << std::endl; | ||||
| //            std::cout << "reprojectionError " << reprojectionError << std::endl;
 | ||||
|             overallError += noise_->distance( reprojectionError.vector() ); | ||||
|             std::cout << "noise_->distance( reprojectionError.vector() ) " << noise_->distance( reprojectionError.vector() ) << std::endl; | ||||
| //            std::cout << "noise_->distance( reprojectionError.vector() ) " << noise_->distance( reprojectionError.vector() ) << std::endl;
 | ||||
|           } | ||||
|           return sqrt(overallError); | ||||
|         }else{ // triangulation failed: we deactivate the factor, then the error should not contribute to the overall error
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue