| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | function varargout = VisualISAM_gui(varargin)
 | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  | % VisualISAM_gui: runs VisualSLAM iSAM demo in GUI | 
					
						
							|  |  |  | %   Interface is defined by VisualISAM_gui.fig | 
					
						
							|  |  |  | %   You can run this file directly, but won't have access to globals | 
					
						
							|  |  |  | %   By running ViusalISAMDemo, you see all variables in command prompt | 
					
						
							|  |  |  | % Authors: Duy Nguyen Ta | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-14 11:20:28 +08:00
										 |  |  | % Last Modified by GUIDE v2.5 13-Jun-2012 23:15:43 | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | % Begin initialization code - DO NOT EDIT | 
					
						
							|  |  |  | gui_Singleton = 1; | 
					
						
							|  |  |  | gui_State = struct('gui_Name',       mfilename, ... | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  |     'gui_Singleton',  gui_Singleton, ... | 
					
						
							|  |  |  |     'gui_OpeningFcn', @VisualISAM_gui_OpeningFcn, ... | 
					
						
							|  |  |  |     'gui_OutputFcn',  @VisualISAM_gui_OutputFcn, ... | 
					
						
							|  |  |  |     'gui_LayoutFcn',  [] , ... | 
					
						
							|  |  |  |     'gui_Callback',   []); | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | if nargin && ischar(varargin{1}) | 
					
						
							|  |  |  |     gui_State.gui_Callback = str2func(varargin{1}); | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if nargout | 
					
						
							|  |  |  |     [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |     gui_mainfcn(gui_State, varargin{:}); | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | % End initialization code - DO NOT EDIT | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | % --- Executes just before VisualISAM_gui is made visible. | 
					
						
							| 
									
										
										
										
											2012-06-09 12:58:20 +08:00
										 |  |  | function VisualISAM_gui_OpeningFcn(hObject, ~, handles, varargin)
 | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | % This function has no output args, see OutputFcn. | 
					
						
							|  |  |  | % varargin   command line arguments to VisualISAM_gui (see VARARGIN) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | % Choose default command line output for VisualISAM_gui | 
					
						
							|  |  |  | handles.output = hObject; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | % Update handles structure | 
					
						
							|  |  |  | guidata(hObject, handles); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 13:29:34 +08:00
										 |  |  | % --- Outputs from this function are returned to the command line. | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  | function varargout = VisualISAM_gui_OutputFcn(hObject, ~, handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-09 13:29:34 +08:00
										 |  |  | % varargout  cell array for returning output args (see VARARGOUT); | 
					
						
							|  |  |  | % Get default command line output from handles structure | 
					
						
							|  |  |  | varargout{1} = handles.output; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | %---------------------------------------------------------- | 
					
						
							|  |  |  | % Convenient functions | 
					
						
							|  |  |  | %---------------------------------------------------------- | 
					
						
							| 
									
										
										
										
											2012-06-09 06:36:34 +08:00
										 |  |  | function showFramei(hObject, handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  | global frame_i | 
					
						
							|  |  |  | set(handles.frameStatus, 'String', sprintf('Frame: %d',frame_i)); | 
					
						
							|  |  |  | drawnow | 
					
						
							|  |  |  | guidata(hObject, handles); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 12:01:37 +08:00
										 |  |  | function showWaiting(handles, status)
 | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  | set(handles.waitingStatus,'String', status); | 
					
						
							|  |  |  | drawnow | 
					
						
							|  |  |  | guidata(handles.waitingStatus, handles); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 12:01:37 +08:00
										 |  |  | function triangle = chooseDataset(handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  | str = cellstr(get(handles.dataset,'String')); | 
					
						
							|  |  |  | sel = get(handles.dataset,'Value'); | 
					
						
							|  |  |  | switch str{sel} | 
					
						
							|  |  |  |     case 'triangle' | 
					
						
							|  |  |  |         triangle = true; | 
					
						
							|  |  |  |     case 'cube' | 
					
						
							|  |  |  |         triangle = false; | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 12:01:37 +08:00
										 |  |  | function initOptions(handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-10 23:26:59 +08:00
										 |  |  | global options | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | % Data options | 
					
						
							|  |  |  | options.triangle = chooseDataset(handles); | 
					
						
							|  |  |  | options.nrCameras = str2num(get(handles.numCamEdit,'String')); | 
					
						
							|  |  |  | options.showImages = get(handles.showImagesCB,'Value'); | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | % iSAM Options | 
					
						
							| 
									
										
										
										
											2012-06-10 23:26:59 +08:00
										 |  |  | options.hardConstraint = get(handles.hardConstraintCB,'Value'); | 
					
						
							|  |  |  | options.pointPriors = get(handles.pointPriorsCB,'Value'); | 
					
						
							|  |  |  | options.batchInitialization = get(handles.batchInitCB,'Value'); | 
					
						
							| 
									
										
										
										
											2012-09-04 12:19:47 +08:00
										 |  |  | %options.reorderInterval = str2num(get(handles.reorderIntervalEdit,'String')); | 
					
						
							| 
									
										
										
										
											2012-06-10 23:26:59 +08:00
										 |  |  | options.alwaysRelinearize = get(handles.alwaysRelinearizeCB,'Value'); | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | % Display Options | 
					
						
							| 
									
										
										
										
											2012-06-10 23:26:59 +08:00
										 |  |  | options.saveDotFile = get(handles.saveGraphCB,'Value'); | 
					
						
							|  |  |  | options.printStats = get(handles.printStatsCB,'Value'); | 
					
						
							|  |  |  | options.drawInterval = str2num(get(handles.drawInterval,'String')); | 
					
						
							|  |  |  | options.cameraInterval = str2num(get(handles.cameraIntervalEdit,'String')); | 
					
						
							|  |  |  | options.drawTruePoses = get(handles.drawTruePosesCB,'Value'); | 
					
						
							|  |  |  | options.saveFigures = get(handles.saveFiguresCB,'Value'); | 
					
						
							|  |  |  | options.saveDotFiles = get(handles.saveGraphsCB,'Value'); | 
					
						
							| 
									
										
										
										
											2012-06-09 12:58:20 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 13:29:34 +08:00
										 |  |  | %---------------------------------------------------------- | 
					
						
							|  |  |  | % Callback functions for GUI elements | 
					
						
							|  |  |  | %---------------------------------------------------------- | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | % --- Executes during object creation, after setting all properties. | 
					
						
							| 
									
										
										
										
											2012-06-09 12:58:20 +08:00
										 |  |  | function dataset_CreateFcn(hObject, ~, handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | % handles    empty - handles not created until after all CreateFcns called | 
					
						
							|  |  |  | % Hint: popupmenu controls usually have a white background on Windows. | 
					
						
							|  |  |  | %       See ISPC and COMPUTER. | 
					
						
							|  |  |  | if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) | 
					
						
							|  |  |  |     set(hObject,'BackgroundColor','white'); | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 13:29:34 +08:00
										 |  |  | % --- Executes on selection change in dataset. | 
					
						
							|  |  |  | function dataset_Callback(hObject, ~, handles)
 | 
					
						
							|  |  |  | % Hints: contents = cellstr(get(hObject,'String')) returns dataset contents as cell array | 
					
						
							|  |  |  | %        contents{get(hObject,'Value')} returns selected item from dataset | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | % --- Executes during object creation, after setting all properties. | 
					
						
							| 
									
										
										
										
											2012-06-09 12:58:20 +08:00
										 |  |  | function numCamEdit_CreateFcn(hObject, ~, handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-09 12:01:37 +08:00
										 |  |  | % Hint: edit controls usually have a white background on Windows. | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) | 
					
						
							|  |  |  |     set(hObject,'BackgroundColor','white'); | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 12:58:20 +08:00
										 |  |  | function numCamEdit_Callback(hObject, ~, handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-09 12:01:37 +08:00
										 |  |  | % Hints: get(hObject,'String') returns contents of numCamEdit as text | 
					
						
							|  |  |  | %        str2double(get(hObject,'String')) returns contents of numCamEdit as a double | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | % --- Executes on button press in showImagesCB. | 
					
						
							| 
									
										
										
										
											2012-06-09 12:58:20 +08:00
										 |  |  | function showImagesCB_Callback(hObject, ~, handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-09 12:01:37 +08:00
										 |  |  | % Hint: get(hObject,'Value') returns toggle state of showImagesCB | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | % --- Executes on button press in hardConstraintCB. | 
					
						
							| 
									
										
										
										
											2012-06-09 12:58:20 +08:00
										 |  |  | function hardConstraintCB_Callback(hObject, ~, handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | % Hint: get(hObject,'Value') returns toggle state of hardConstraintCB | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 12:01:37 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | % --- Executes on button press in pointPriorsCB. | 
					
						
							| 
									
										
										
										
											2012-06-09 12:58:20 +08:00
										 |  |  | function pointPriorsCB_Callback(hObject, ~, handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-09 12:01:37 +08:00
										 |  |  | % Hint: get(hObject,'Value') returns toggle state of pointPriorsCB | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 13:29:34 +08:00
										 |  |  | % --- Executes during object creation, after setting all properties. | 
					
						
							|  |  |  | function batchInitCB_CreateFcn(hObject, eventdata, handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  | set(hObject,'Value',1); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | % --- Executes on button press in batchInitCB. | 
					
						
							| 
									
										
										
										
											2012-06-09 12:58:20 +08:00
										 |  |  | function batchInitCB_Callback(hObject, ~, handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | % Hint: get(hObject,'Value') returns toggle state of batchInitCB | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | % --- Executes on button press in alwaysRelinearizeCB. | 
					
						
							| 
									
										
										
										
											2012-06-09 12:58:20 +08:00
										 |  |  | function alwaysRelinearizeCB_Callback(hObject, ~, handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | % Hint: get(hObject,'Value') returns toggle state of alwaysRelinearizeCB | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 13:29:34 +08:00
										 |  |  | % --- Executes during object creation, after setting all properties. | 
					
						
							|  |  |  | function reorderIntervalText_CreateFcn(hObject, ~, handles)
 | 
					
						
							|  |  |  | % Hint: edit controls usually have a white background on Windows. | 
					
						
							|  |  |  | if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) | 
					
						
							|  |  |  |     set(hObject,'BackgroundColor','white'); | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | % --- Executes during object creation, after setting all properties. | 
					
						
							|  |  |  | function reorderIntervalEdit_CreateFcn(hObject, ~, handles)
 | 
					
						
							|  |  |  | % Hint: edit controls usually have a white background on Windows. | 
					
						
							|  |  |  | if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) | 
					
						
							|  |  |  |     set(hObject,'BackgroundColor','white'); | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | % --- Executes during object creation, after setting all properties. | 
					
						
							|  |  |  | function drawInterval_CreateFcn(hObject, ~, handles)
 | 
					
						
							|  |  |  | % Hint: edit controls usually have a white background on Windows. | 
					
						
							|  |  |  | if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) | 
					
						
							|  |  |  |     set(hObject,'BackgroundColor','white'); | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 12:58:20 +08:00
										 |  |  | function drawInterval_Callback(hObject, ~, handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-09 12:01:37 +08:00
										 |  |  | % Hints: get(hObject,'String') returns contents of drawInterval as text | 
					
						
							|  |  |  | %        str2double(get(hObject,'String')) returns contents of drawInterval as a double | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 12:58:20 +08:00
										 |  |  | function cameraIntervalEdit_Callback(hObject, ~, handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | % Hints: get(hObject,'String') returns contents of cameraIntervalEdit as text | 
					
						
							|  |  |  | %        str2double(get(hObject,'String')) returns contents of cameraIntervalEdit as a double | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 13:29:34 +08:00
										 |  |  | % --- Executes during object creation, after setting all properties. | 
					
						
							|  |  |  | function cameraIntervalEdit_CreateFcn(hObject, ~, handles)
 | 
					
						
							|  |  |  | % Hint: edit controls usually have a white background on Windows. | 
					
						
							|  |  |  | %       See ISPC and COMPUTER. | 
					
						
							|  |  |  | if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) | 
					
						
							|  |  |  |     set(hObject,'BackgroundColor','white'); | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | % --- Executes on button press in saveGraphCB. | 
					
						
							| 
									
										
										
										
											2012-06-09 12:58:20 +08:00
										 |  |  | function saveGraphCB_Callback(hObject, ~, handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | % Hint: get(hObject,'Value') returns toggle state of saveGraphCB | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | % --- Executes on button press in printStatsCB. | 
					
						
							| 
									
										
										
										
											2012-06-09 12:58:20 +08:00
										 |  |  | function printStatsCB_Callback(hObject, ~, handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | % Hint: get(hObject,'Value') returns toggle state of printStatsCB | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | % --- Executes on button press in drawTruePosesCB. | 
					
						
							| 
									
										
										
										
											2012-06-09 12:58:20 +08:00
										 |  |  | function drawTruePosesCB_Callback(hObject, ~, handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | % Hint: get(hObject,'Value') returns toggle state of drawTruePosesCB | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | % --- Executes on button press in saveFiguresCB. | 
					
						
							| 
									
										
										
										
											2012-06-09 12:58:20 +08:00
										 |  |  | function saveFiguresCB_Callback(hObject, ~, handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | % Hint: get(hObject,'Value') returns toggle state of saveFiguresCB | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | % --- Executes on button press in saveGraphsCB. | 
					
						
							| 
									
										
										
										
											2012-06-09 12:58:20 +08:00
										 |  |  | function saveGraphsCB_Callback(hObject, ~, handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-09 04:08:53 +08:00
										 |  |  | % Hint: get(hObject,'Value') returns toggle state of saveGraphsCB | 
					
						
							| 
									
										
										
										
											2012-06-09 13:29:34 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | % --- Executes on button press in intializeButton. | 
					
						
							|  |  |  | function intializeButton_Callback(hObject, ~, handles)
 | 
					
						
							| 
									
										
										
										
											2012-06-10 12:25:05 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-07-28 03:02:11 +08:00
										 |  |  | global frame_i truth data noiseModels isam result nextPoseIndex options | 
					
						
							| 
									
										
										
										
											2012-06-10 12:25:05 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | % initialize global options | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  | initOptions(handles) | 
					
						
							| 
									
										
										
										
											2012-06-10 12:25:05 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | % Generate Data | 
					
						
							| 
									
										
										
										
											2012-08-04 05:02:45 +08:00
										 |  |  | [data,truth] = gtsam.VisualISAMGenerateData(options); | 
					
						
							| 
									
										
										
										
											2012-06-10 12:25:05 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | % Initialize and plot | 
					
						
							| 
									
										
										
										
											2012-08-04 05:02:45 +08:00
										 |  |  | [noiseModels,isam,result,nextPoseIndex] = gtsam.VisualISAMInitialize(data,truth,options); | 
					
						
							| 
									
										
										
										
											2012-06-23 03:36:49 +08:00
										 |  |  | cla | 
					
						
							| 
									
										
										
										
											2012-08-04 05:02:45 +08:00
										 |  |  | gtsam.VisualISAMPlot(truth, data, isam, result, options) | 
					
						
							| 
									
										
										
										
											2012-06-11 02:46:56 +08:00
										 |  |  | frame_i = 2; | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  | showFramei(hObject, handles) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 13:29:34 +08:00
										 |  |  | % --- Executes on button press in runButton. | 
					
						
							|  |  |  | function runButton_Callback(hObject, ~, handles)
 | 
					
						
							| 
									
										
										
										
											2012-07-28 03:02:11 +08:00
										 |  |  | global frame_i truth data noiseModels isam result nextPoseIndex options | 
					
						
							| 
									
										
										
										
											2012-06-11 06:32:24 +08:00
										 |  |  | while (frame_i<size(truth.cameras,2)) | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  |     frame_i = frame_i+1; | 
					
						
							|  |  |  |     showFramei(hObject, handles) | 
					
						
							| 
									
										
										
										
											2012-08-04 05:02:45 +08:00
										 |  |  |     [isam,result,nextPoseIndex] = gtsam.VisualISAMStep(data,noiseModels,isam,result,truth,nextPoseIndex); | 
					
						
							| 
									
										
										
										
											2012-06-10 23:26:59 +08:00
										 |  |  |     if mod(frame_i,options.drawInterval)==0 | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  |         showWaiting(handles, 'Computing marginals...'); | 
					
						
							| 
									
										
										
										
											2012-08-04 05:02:45 +08:00
										 |  |  |         gtsam.VisualISAMPlot(truth, data, isam, result, options) | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  |         showWaiting(handles, ''); | 
					
						
							| 
									
										
										
										
											2012-06-09 13:29:34 +08:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-09 13:29:34 +08:00
										 |  |  | % --- Executes on button press in stepButton. | 
					
						
							|  |  |  | function stepButton_Callback(hObject, ~, handles)
 | 
					
						
							| 
									
										
										
										
											2012-07-28 03:02:11 +08:00
										 |  |  | global frame_i truth data noiseModels isam result nextPoseIndex options | 
					
						
							| 
									
										
										
										
											2012-06-11 06:32:24 +08:00
										 |  |  | if (frame_i<size(truth.cameras,2)) | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  |     frame_i = frame_i+1; | 
					
						
							|  |  |  |     showFramei(hObject, handles) | 
					
						
							| 
									
										
										
										
											2012-08-04 05:02:45 +08:00
										 |  |  |     [isam,result,nextPoseIndex] = gtsam.VisualISAMStep(data,noiseModels,isam,result,truth,nextPoseIndex); | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  |     showWaiting(handles, 'Computing marginals...'); | 
					
						
							| 
									
										
										
										
											2012-08-04 05:02:45 +08:00
										 |  |  |     gtsam.VisualISAMPlot(truth, data, isam, result, options) | 
					
						
							| 
									
										
										
										
											2012-06-10 11:31:09 +08:00
										 |  |  |     showWaiting(handles, ''); | 
					
						
							|  |  |  | end |