From 38ff9a466dfc2d1f4c38e2f3133b30f8face5928 Mon Sep 17 00:00:00 2001 From: Duy-Nguyen Ta Date: Sat, 9 Jun 2012 05:29:34 +0000 Subject: [PATCH] fix some small bugs in VisualISAM_gui. Arrange callback functions. --- matlab/examples/VisualISAMDemo.m | 2 +- matlab/examples/VisualISAMGenerateData.m | 2 + matlab/examples/VisualISAM_gui.fig | Bin 9781 -> 9838 bytes matlab/examples/VisualISAM_gui.m | 219 ++++++++++++----------- 4 files changed, 113 insertions(+), 110 deletions(-) diff --git a/matlab/examples/VisualISAMDemo.m b/matlab/examples/VisualISAMDemo.m index a3a89404f..626b3a944 100644 --- a/matlab/examples/VisualISAMDemo.m +++ b/matlab/examples/VisualISAMDemo.m @@ -1,2 +1,2 @@ -VisualISAMInitOptions +VisualISAMGlobalVars VisualISAM_gui \ No newline at end of file diff --git a/matlab/examples/VisualISAMGenerateData.m b/matlab/examples/VisualISAMGenerateData.m index fd87c5434..03222f3cf 100644 --- a/matlab/examples/VisualISAMGenerateData.m +++ b/matlab/examples/VisualISAMGenerateData.m @@ -25,6 +25,7 @@ end height = 10; r = 40; K = gtsamCal3_S2(500,500,0,640/2,480/2); cameras = {}; +gui = gcf; for i=1:NCAMERAS theta = (i-1)*2*pi/NCAMERAS; t = gtsamPoint3([r*cos(theta), r*sin(theta), height]'); @@ -39,6 +40,7 @@ for i=1:NCAMERAS end end end +figure(gui); odometry = cameras{1}.pose.between(cameras{2}.pose); diff --git a/matlab/examples/VisualISAM_gui.fig b/matlab/examples/VisualISAM_gui.fig index 07d1b793d90768cdf86718f3c85800a930e7b52a..748b722619838e18e40bfff4eaf010e9bcaf2ea1 100644 GIT binary patch delta 5854 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 delta 5796 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 diff --git a/matlab/examples/VisualISAM_gui.m b/matlab/examples/VisualISAM_gui.m index 015c7ef6d..d13e45e3f 100644 --- a/matlab/examples/VisualISAM_gui.m +++ b/matlab/examples/VisualISAM_gui.m @@ -22,7 +22,7 @@ function varargout = VisualISAM_gui(varargin) % Edit the above text to modify the response to help VisualISAM_gui -% Last Modified by GUIDE v2.5 08-Jun-2012 23:53:47 +% Last Modified by GUIDE v2.5 09-Jun-2012 00:56:47 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; @@ -50,7 +50,6 @@ function VisualISAM_gui_OpeningFcn(hObject, ~, handles, varargin) % varargin command line arguments to VisualISAM_gui (see VARARGIN) % Choose default command line output for VisualISAM_gui -initOptions(handles) handles.output = hObject; % Update handles structure @@ -59,6 +58,16 @@ guidata(hObject, handles); % UIWAIT makes VisualISAM_gui wait for user response (see UIRESUME) % uiwait(handles.figure1); +% --- Outputs from this function are returned to the command line. +function varargout = VisualISAM_gui_OutputFcn(hObject, ~, handles) +% varargout cell array for returning output args (see VARARGOUT); +% Get default command line output from handles structure +varargout{1} = handles.output; + + +%---------------------------------------------------------- +% Convenient functions +%---------------------------------------------------------- function showFramei(hObject, handles) VisualISAMGlobalVars set(handles.frameStatus, 'String', sprintf('Frame: %d',frame_i)); @@ -82,21 +91,19 @@ function triangle = chooseDataset(handles) function initOptions(handles) VisualISAMGlobalVars - %% Setting data options + % Setting data options TRIANGLE = chooseDataset(handles) NCAMERAS = str2num(get(handles.numCamEdit,'String')) SHOW_IMAGES = get(handles.showImagesCB,'Value') - %% iSAM Options + % iSAM Options HARD_CONSTRAINT = get(handles.hardConstraintCB,'Value') POINT_PRIORS = get(handles.pointPriorsCB,'Value') - set(handles.batchInitCB,'Value',1); - drawnow BATCH_INIT = get(handles.batchInitCB,'Value') REORDER_INTERVAL = str2num(get(handles.numCamEdit,'String')) ALWAYS_RELINEARIZE = get(handles.alwaysRelinearizeCB,'Value') - %% Display Options + % Display Options SAVE_GRAPH = get(handles.saveGraphCB,'Value') PRINT_STATS = get(handles.printStatsCB,'Value') DRAW_INTERVAL = str2num(get(handles.drawInterval,'String')) @@ -104,44 +111,11 @@ function initOptions(handles) DRAW_TRUE_POSES = get(handles.drawTruePosesCB,'Value') SAVE_FIGURES = get(handles.saveFiguresCB,'Value') SAVE_GRAPHS = get(handles.saveGraphsCB,'Value') - -% --- Outputs from this function are returned to the command line. -function varargout = VisualISAM_gui_OutputFcn(hObject, ~, handles) -% varargout cell array for returning output args (see VARARGOUT); -% Get default command line output from handles structure -varargout{1} = handles.output; - -% --- Executes on button press in intializeButton. -function intializeButton_Callback(hObject, ~, handles) - - VisualISAMGlobalVars - initOptions(handles) - VisualISAMGenerateData - VisualISAMInitialize - VisualISAMPlot - showFramei(hObject, handles) - -% --- Executes on button press in stepButton. -function stepButton_Callback(hObject, ~, handles) - VisualISAMGlobalVars - if (frame_i