<?xml version="1.0" encoding="utf-8" ?>
<wxsmith>
	<object class="wxDialog" name="CScanMatching">
		<title>Scan Matching Experimenting Module</title>
		<centered>1</centered>
		<minsize>200,200</minsize>
		<id_arg>0</id_arg>
		<style>wxCAPTION|wxDEFAULT_DIALOG_STYLE|wxSYSTEM_MENU|wxRESIZE_BORDER|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxMINIMIZE_BOX</style>
		<object class="wxFlexGridSizer" variable="FlexGridSizer1" member="no">
			<cols>1</cols>
			<rows>1</rows>
			<growablecols>0</growablecols>
			<growablerows>0</growablerows>
			<object class="sizeritem">
				<object class="wxSplitterWindow" name="ID_SPLITTERWINDOW1" variable="SplitterWindow1" member="yes">
					<minsize>50</minsize>
					<orientation>vertical</orientation>
					<style>wxSP_3D|wxSP_LIVE_UPDATE</style>
					<object class="wxPanel" name="ID_PANEL1" variable="Panel1" member="yes">
						<minsize>100,-1</minsize>
						<object class="wxFlexGridSizer" variable="FlexGridSizer2" member="no">
							<cols>1</cols>
							<rows>4</rows>
							<growablecols>0</growablecols>
							<growablerows>1,2,3</growablerows>
							<object class="sizeritem">
								<object class="wxStaticBoxSizer" variable="StaticBoxSizer1" member="no">
									<label>Observation indexes</label>
									<object class="sizeritem">
										<object class="wxFlexGridSizer" variable="FlexGridSizer5" member="no">
											<cols>1</cols>
											<rows>2</rows>
											<growablecols>0</growablecols>
											<object class="sizeritem">
												<object class="wxFlexGridSizer" variable="FlexGridSizer13" member="no">
													<cols>2</cols>
													<growablecols>0</growablecols>
													<object class="sizeritem">
														<object class="wxStaticText" name="ID_STATICTEXT2" variable="StaticText2" member="yes">
															<label>Enter the rawlog indexes of the observations&#x0A; to use for generating the maps to align:</label>
															<style>wxALIGN_CENTRE</style>
														</object>
														<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
														<border>5</border>
														<option>1</option>
													</object>
													<object class="sizeritem">
														<object class="wxBitmapButton" name="ID_BITMAPBUTTON1" variable="btnHelp" member="yes">
															<bitmap stock_id="wxART_INFORMATION" stock_client="wxART_BUTTON" />
															<handler function="OnbtnHelpClick" entry="EVT_BUTTON" />
														</object>
														<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
														<border>5</border>
														<option>1</option>
													</object>
												</object>
												<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
												<option>1</option>
											</object>
											<object class="sizeritem">
												<object class="wxFlexGridSizer" variable="FlexGridSizer6" member="no">
													<cols>2</cols>
													<growablecols>1</growablecols>
													<object class="sizeritem">
														<object class="wxStaticText" name="ID_STATICTEXT3" variable="StaticText3" member="yes">
															<label>First (reference):</label>
															<style>wxALIGN_RIGHT</style>
														</object>
														<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
														<border>5</border>
														<option>1</option>
													</object>
													<object class="sizeritem">
														<object class="wxTextCtrl" name="ID_TEXTCTRL2" variable="edFirst" member="yes">
															<value>0</value>
														</object>
														<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
														<border>5</border>
														<option>1</option>
													</object>
													<object class="sizeritem">
														<object class="wxStaticText" name="ID_STATICTEXT4" variable="StaticText4" member="yes">
															<label>Second (to align with first):</label>
															<style>wxALIGN_RIGHT</style>
														</object>
														<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
														<border>5</border>
														<option>1</option>
													</object>
													<object class="sizeritem">
														<object class="wxTextCtrl" name="ID_TEXTCTRL3" variable="edSecond" member="yes">
															<value>0</value>
														</object>
														<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
														<border>5</border>
														<option>1</option>
													</object>
												</object>
												<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
												<option>1</option>
											</object>
										</object>
										<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
										<option>1</option>
									</object>
								</object>
								<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
								<border>5</border>
								<option>1</option>
							</object>
							<object class="sizeritem">
								<object class="wxStaticBoxSizer" variable="StaticBoxSizer5" member="no">
									<label>Config of the ICP algorithm:</label>
									<object class="sizeritem">
										<object class="wxTextCtrl" name="ID_TEXTCTRL6" variable="edOptICP" member="yes">
											<value>; Options for CICP::TConfigParams. See the MRPT reference for further information&#x0A;; -------------------------------------------------------------------------------------&#x0A;[InitialPosition]&#x0A;x=0 ; The initial position for the iterative ICP algorithm&#x0A;y=0 ; x/y in meters, phi in degrees&#x0A;phi__DEG=0&#x0A;&#x0A;[ICP]&#x0A;; The maximum number of iterations to execute if convergence is not achieved before&#x0A;maxIterations=40 &#x0A;&#x0A;; Initial maximum distance for matching a pair of points&#x0A;thresholdDist=0.75 &#x0A;&#x0A;; An angular factor (in degrees) to increase the matching distance for distant points.&#x0A;thresholdAng__DEG=0.15 &#x0A;&#x0A;; After convergence, the thresholds are multiplied by this constant and ICP keep running (provides finer matching)&#x0A;ALFA=0.30 &#x0A;&#x0A;; This is the smallest the distance threshold can become after stopping ICP and accepting the result.&#x0A;smallestThresholdDist=0.10&#x0A;&#x0A;; 1: Use the closest points only, 0: Use all the correspondences within the threshold (more robust sometimes, but slower)&#x0A;onlyClosestCorrespondences=1 &#x0A;&#x0A;; This is the variance in X &amp; Y of the input points, used to scale&#x0A;; the covariance of the output estimation (given as a 2D+heading Gaussian).&#x0A;; Refer to ScanMatching::leastSquareErrorRigidTransformation&#x0A;covariance__varPoints=0.004&#x0A;&#x0A;&#x0A;; Whether to perform a RANSAC step after convergence, to improve&#x0A;; the result. &#x0A;doRANSAC=0&#x0A;&#x0A;; Parameters for the RANSAC step. See reference for ScanMatching::robustRigidTransformation&#x0A;ransac__minSetSize=3&#x0A;ransac__maxSetSize=20&#x0A;ransac__mahalanobisDistanceThreshold=3.0&#x0A;ransac__nSimulations=100&#x0A;normalizationStd=0.02&#x0A;</value>
											<size>300,87</size>
											<font>
												<size>8</size>
												<style>normal</style>
												<weight>normal</weight>
												<underlined>0</underlined>
												<family>teletype</family>
												<face>Monospace</face>
											</font>
											<style>wxTE_MULTILINE|wxHSCROLL|wxVSCROLL</style>
										</object>
										<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
										<option>1</option>
									</object>
								</object>
								<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
								<border>2</border>
								<option>1</option>
							</object>
							<object class="sizeritem">
								<object class="wxStaticBoxSizer" variable="StaticBoxSizer3" member="no">
									<label>Config of the first (reference) map:</label>
									<object class="sizeritem">
										<object class="wxFlexGridSizer" variable="FlexGridSizer3" member="no">
											<cols>1</cols>
											<rows>2</rows>
											<growablecols>0</growablecols>
											<growablerows>1</growablerows>
											<object class="sizeritem">
												<object class="wxFlexGridSizer" variable="FlexGridSizer8" member="no">
													<cols>3</cols>
													<rows>1</rows>
													<growablecols>0</growablecols>
													<object class="sizeritem">
														<object class="wxStaticText" name="ID_STATICTEXT5" variable="StaticText5" member="yes">
															<label>Map type:</label>
														</object>
														<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
														<border>5</border>
														<option>1</option>
													</object>
													<object class="sizeritem">
														<object class="wxRadioButton" name="ID_RADIOBUTTON1" variable="rbPoint" member="yes">
															<label>Point map</label>
															<selected>1</selected>
															<handler function="OChangeSelectedMapType" entry="EVT_RADIOBUTTON" />
														</object>
														<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
														<border>5</border>
														<option>1</option>
													</object>
													<object class="sizeritem">
														<object class="wxRadioButton" name="ID_RADIOBUTTON2" variable="rbGrid" member="yes">
															<label>Occupancy grid map</label>
															<handler function="OChangeSelectedMapType" entry="EVT_RADIOBUTTON" />
														</object>
														<flag>wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag>
														<border>5</border>
														<option>1</option>
													</object>
												</object>
												<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
												<option>1</option>
											</object>
											<object class="sizeritem">
												<object class="wxNotebook" name="ID_NOTEBOOK1" variable="Notebook1" member="yes">
													<handler function="OnNotebook1PageChanging" entry="EVT_NOTEBOOK_PAGE_CHANGING" />
													<object class="notebookpage">
														<object class="wxTextCtrl" name="ID_TEXTCTRL4" variable="edOptRefPnt" member="yes">
															<value>; Configuration for CPointsMap::TInsertionOptions - See MRPT reference for help&#x0A;; ---------------------------------------------------------------------------------&#x0A;[InsertionOptions]&#x0A;minDistBetweenLaserPoints=0.05 ; The minimum distance between points (in 3D): If two points are too close, one of them is not inserted into the map.&#x0A;also__interpolate=0 ; If set to true, far points (&lt;1m) are interpolated with samples at minDistSqrBetweenLaserPoints intervals (Default is false).&#x0A;disableDeletion=1 ; If set to false (default) points in the same plane as the inserted scan and inside the free space, are erased.&#x0A;fuseWithExisting=0 ; If set to true (default), inserted points are fused with previously existent ones.&#x0A;isPlanarMap=1 ; If set to true, only HORIZONTAL (i.e. XY plane) measurements will be inserted in the map. Default value is false, thus 3D maps are generated&#x0A;maxDistForInterpolatePoints=1 ; The maximum distance between two points to interpolate between them (ONLY when also__interpolate=true).&#x0A;</value>
															<size>300,87</size>
															<font>
																<size>8</size>
																<style>normal</style>
																<weight>normal</weight>
																<underlined>0</underlined>
																<family>teletype</family>
																<face>Monospace</face>
															</font>
															<style>wxTE_MULTILINE|wxHSCROLL|wxVSCROLL</style>
														</object>
														<label>Point map config</label>
													</object>
													<object class="notebookpage">
														<object class="wxTextCtrl" name="ID_TEXTCTRL9" variable="edOptRefGrid" member="yes">
															<value>; Configuration for COccupancyGridMap2D::TInsertionOptions - See MRPT reference for help&#x0A;; ---------------------------------------------------------------------------------&#x0A;[Construction]&#x0A;resolution=0.05 ; The grid cell size, in meters.&#x0A;&#x0A;[InsertionOptions]&#x0A;mapAltitude=0 ; The height (z axis) over the ground at which this grid map is at&#x0A;useMapAltitude=0 ; If this is set to 1, only observations that match the grid height are inserted in the map.&#x0A;maxDistanceInsertion=40 ; The maximum distance from the scan origin for updating cells, in meters&#x0A;maxOccupancyUpdateCertainty=0.8 ; The &quot;certainty&quot; used to update the cells using the Bayes update formulas. Values are in the range 0.5 (No update) to 1.0 (last value is taken forgetting all old readings of that cell).&#x0A;considerInvalidRangesAsFreeSpace=1 ; Whether to consider &quot;lost-ranges&quot; as free space.&#x0A;&#x0A;</value>
															<size>300,87</size>
															<font>
																<size>8</size>
																<style>normal</style>
																<weight>normal</weight>
																<underlined>0</underlined>
																<family>teletype</family>
																<face>Monospace</face>
															</font>
															<style>wxTE_MULTILINE|wxHSCROLL|wxVSCROLL</style>
														</object>
														<label>Grid map config</label>
													</object>
												</object>
												<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
												<border>1</border>
												<option>1</option>
											</object>
										</object>
										<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
										<border>1</border>
										<option>1</option>
									</object>
								</object>
								<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
								<border>2</border>
								<option>1</option>
							</object>
							<object class="sizeritem">
								<object class="wxStaticBoxSizer" variable="StaticBoxSizer4" member="no">
									<label>Config of the second (to align) point map:</label>
									<object class="sizeritem">
										<object class="wxTextCtrl" name="ID_TEXTCTRL7" variable="edOptAlignMap" member="yes">
											<value>; Configuration for CPointsMap::TInsertionOptions - See MRPT reference for help&#x0A;; ---------------------------------------------------------------------------------&#x0A;[InsertionOptions]&#x0A;minDistBetweenLaserPoints=0.05 ; The minimum distance between points (in 3D): If two points are too close, one of them is not inserted into the map.&#x0A;also__interpolate=0 ; If set to true, far points (&lt;1m) are interpolated with samples at minDistSqrBetweenLaserPoints intervals (Default is false).&#x0A;disableDeletion=1 ; If set to false (default) points in the same plane as the inserted scan and inside the free space, are erased.&#x0A;fuseWithExisting=0 ; If set to true (default), inserted points are fused with previously existent ones.&#x0A;isPlanarMap=1 ; If set to true, only HORIZONTAL (i.e. XY plane) measurements will be inserted in the map. Default value is false, thus 3D maps are generated&#x0A;maxDistForInterpolatePoints=1 ; The maximum distance between two points to interpolate between them (ONLY when also__interpolate=true).&#x0A;</value>
											<size>300,87</size>
											<font>
												<size>8</size>
												<style>normal</style>
												<weight>normal</weight>
												<underlined>0</underlined>
												<family>teletype</family>
												<face>Monospace</face>
											</font>
											<style>wxTE_MULTILINE|wxHSCROLL|wxVSCROLL</style>
										</object>
										<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
										<option>1</option>
									</object>
								</object>
								<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
								<border>2</border>
								<option>1</option>
							</object>
						</object>
					</object>
					<object class="wxPanel" name="ID_PANEL2" variable="Panel2" member="yes">
						<size>200,200</size>
						<object class="wxFlexGridSizer" variable="FlexGridSizer4" member="no">
							<cols>1</cols>
							<rows>1</rows>
							<growablecols>0</growablecols>
							<growablerows>0</growablerows>
							<object class="sizeritem">
								<object class="wxSplitterWindow" name="ID_SPLITTERWINDOW2" variable="SplitterWindow2" member="yes">
									<minsize>10</minsize>
									<object class="wxPanel" name="ID_PANEL3" variable="Panel3" member="yes">
										<object class="wxFlexGridSizer" variable="FlexGridSizer9" member="no">
											<cols>1</cols>
											<rows>3</rows>
											<growablecols>0</growablecols>
											<growablerows>1</growablerows>
											<object class="sizeritem">
												<object class="wxStaticText" name="ID_STATICTEXT6" variable="StaticText6" member="yes">
													<label>Scan Matching Status:&#x0A;(Reference map: Blue or gridmap; Map to be aligned: Red)</label>
													<style>wxALIGN_CENTRE</style>
												</object>
												<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
												<border>3</border>
												<option>1</option>
											</object>
											<object class="sizeritem">
												<object class="Custom" name="ID_CUSTOM1" subclass="mpWindow" variable="plotMaps" member="yes">
													<creating_code>$(THIS) = new $(CLASS)($(PARENT),$(ID),$(POS),$(SIZE),0);</creating_code>
													<style></style>
													<size>341,359</size>
													<minsize>100,100</minsize>
												</object>
												<flag>wxALL|wxEXPAND|wxFIXED_MINSIZE|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
												<option>1</option>
											</object>
											<object class="sizeritem">
												<object class="wxPanel" name="ID_PANEL5" variable="Panel5" member="yes">
													<object class="wxFlexGridSizer" variable="FlexGridSizer7" member="no">
														<cols>1</cols>
														<rows>2</rows>
														<growablecols>0</growablecols>
														<growablerows>0</growablerows>
														<object class="sizeritem">
															<object class="wxFlexGridSizer" variable="FlexGridSizer11" member="no">
																<cols>3</cols>
																<rows>1</rows>
																<growablecols>1</growablecols>
																<object class="sizeritem">
																	<object class="wxButton" name="ID_BUTTON1" variable="btnRunICP" member="yes">
																		<label>Run ICP</label>
																		<default>1</default>
																		<handler function="OnbtnICPClick" entry="EVT_BUTTON" />
																	</object>
																	<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
																	<border>5</border>
																	<option>1</option>
																</object>
																<object class="sizeritem">
																	<object class="wxCheckBox" name="ID_CHECKBOX1" variable="cbAnimate" member="yes">
																		<label>Animate step by step</label>
																		<handler function="OncbAnimateClick" entry="EVT_CHECKBOX" />
																	</object>
																	<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
																	<border>5</border>
																	<option>1</option>
																</object>
																<object class="sizeritem">
																	<object class="wxButton" name="ID_BUTTON2" variable="btnClose" member="yes">
																		<label>CLOSE</label>
																		<handler function="OnbtnCloseClick" entry="EVT_BUTTON" />
																	</object>
																	<flag>wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL</flag>
																	<border>5</border>
																	<option>1</option>
																</object>
															</object>
															<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
															<option>1</option>
														</object>
														<object class="sizeritem">
															<object class="wxFlexGridSizer" variable="FlexGridSizer12" member="no">
																<cols>2</cols>
																<rows>1</rows>
																<growablecols>1</growablecols>
																<object class="sizeritem">
																	<object class="wxStaticText" name="ID_STATICTEXT1" variable="txtStep" member="yes">
																		<label>Step: 0 / 0</label>
																	</object>
																	<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
																	<border>5</border>
																	<option>1</option>
																</object>
																<object class="sizeritem">
																	<object class="wxGauge" name="ID_GAUGE1" variable="pbSteps" member="yes" />
																	<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
																	<border>5</border>
																	<option>1</option>
																</object>
															</object>
															<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
															<option>1</option>
														</object>
													</object>
												</object>
												<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
												<option>1</option>
											</object>
										</object>
									</object>
									<object class="wxPanel" name="ID_PANEL4" variable="Panel4" member="yes">
										<object class="wxFlexGridSizer" variable="FlexGridSizer10" member="no">
											<cols>1</cols>
											<rows>1</rows>
											<growablecols>0</growablecols>
											<growablerows>0</growablerows>
											<object class="sizeritem">
												<object class="wxTextCtrl" name="ID_TEXTCTRL1" variable="txtLog" member="yes">
													<value>(Log messages)</value>
													<font>
														<size>8</size>
														<style>normal</style>
														<weight>normal</weight>
														<underlined>0</underlined>
														<family>teletype</family>
														<face>Monospace</face>
													</font>
													<style>wxTE_MULTILINE|wxTE_READONLY|wxHSCROLL|wxVSCROLL</style>
												</object>
												<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
												<option>1</option>
											</object>
										</object>
									</object>
								</object>
								<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
								<option>1</option>
							</object>
						</object>
					</object>
				</object>
				<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
				<option>1</option>
			</object>
		</object>
	</object>
</wxsmith>
