fix some small bugs in VisualISAM_gui. Arrange callback functions.

release/4.3a0
Duy-Nguyen Ta 2012-06-09 05:29:34 +00:00
parent 141d0dbaec
commit 38ff9a466d
4 changed files with 113 additions and 110 deletions

View File

@ -1,2 +1,2 @@
VisualISAMInitOptions VisualISAMGlobalVars
VisualISAM_gui VisualISAM_gui

View File

@ -25,6 +25,7 @@ end
height = 10; r = 40; height = 10; r = 40;
K = gtsamCal3_S2(500,500,0,640/2,480/2); K = gtsamCal3_S2(500,500,0,640/2,480/2);
cameras = {}; cameras = {};
gui = gcf;
for i=1:NCAMERAS for i=1:NCAMERAS
theta = (i-1)*2*pi/NCAMERAS; theta = (i-1)*2*pi/NCAMERAS;
t = gtsamPoint3([r*cos(theta), r*sin(theta), height]'); t = gtsamPoint3([r*cos(theta), r*sin(theta), height]');
@ -39,6 +40,7 @@ for i=1:NCAMERAS
end end
end end
end end
figure(gui);
odometry = cameras{1}.pose.between(cameras{2}.pose); odometry = cameras{1}.pose.between(cameras{2}.pose);

Binary file not shown.

View File

@ -22,7 +22,7 @@ function varargout = VisualISAM_gui(varargin)
% Edit the above text to modify the response to help VisualISAM_gui % 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 % Begin initialization code - DO NOT EDIT
gui_Singleton = 1; gui_Singleton = 1;
@ -50,7 +50,6 @@ function VisualISAM_gui_OpeningFcn(hObject, ~, handles, varargin)
% varargin command line arguments to VisualISAM_gui (see VARARGIN) % varargin command line arguments to VisualISAM_gui (see VARARGIN)
% Choose default command line output for VisualISAM_gui % Choose default command line output for VisualISAM_gui
initOptions(handles)
handles.output = hObject; handles.output = hObject;
% Update handles structure % Update handles structure
@ -59,6 +58,16 @@ guidata(hObject, handles);
% UIWAIT makes VisualISAM_gui wait for user response (see UIRESUME) % UIWAIT makes VisualISAM_gui wait for user response (see UIRESUME)
% uiwait(handles.figure1); % 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) function showFramei(hObject, handles)
VisualISAMGlobalVars VisualISAMGlobalVars
set(handles.frameStatus, 'String', sprintf('Frame: %d',frame_i)); set(handles.frameStatus, 'String', sprintf('Frame: %d',frame_i));
@ -82,21 +91,19 @@ function triangle = chooseDataset(handles)
function initOptions(handles) function initOptions(handles)
VisualISAMGlobalVars VisualISAMGlobalVars
%% Setting data options % Setting data options
TRIANGLE = chooseDataset(handles) TRIANGLE = chooseDataset(handles)
NCAMERAS = str2num(get(handles.numCamEdit,'String')) NCAMERAS = str2num(get(handles.numCamEdit,'String'))
SHOW_IMAGES = get(handles.showImagesCB,'Value') SHOW_IMAGES = get(handles.showImagesCB,'Value')
%% iSAM Options % iSAM Options
HARD_CONSTRAINT = get(handles.hardConstraintCB,'Value') HARD_CONSTRAINT = get(handles.hardConstraintCB,'Value')
POINT_PRIORS = get(handles.pointPriorsCB,'Value') POINT_PRIORS = get(handles.pointPriorsCB,'Value')
set(handles.batchInitCB,'Value',1);
drawnow
BATCH_INIT = get(handles.batchInitCB,'Value') BATCH_INIT = get(handles.batchInitCB,'Value')
REORDER_INTERVAL = str2num(get(handles.numCamEdit,'String')) REORDER_INTERVAL = str2num(get(handles.numCamEdit,'String'))
ALWAYS_RELINEARIZE = get(handles.alwaysRelinearizeCB,'Value') ALWAYS_RELINEARIZE = get(handles.alwaysRelinearizeCB,'Value')
%% Display Options % Display Options
SAVE_GRAPH = get(handles.saveGraphCB,'Value') SAVE_GRAPH = get(handles.saveGraphCB,'Value')
PRINT_STATS = get(handles.printStatsCB,'Value') PRINT_STATS = get(handles.printStatsCB,'Value')
DRAW_INTERVAL = str2num(get(handles.drawInterval,'String')) DRAW_INTERVAL = str2num(get(handles.drawInterval,'String'))
@ -105,43 +112,10 @@ function initOptions(handles)
SAVE_FIGURES = get(handles.saveFiguresCB,'Value') SAVE_FIGURES = get(handles.saveFiguresCB,'Value')
SAVE_GRAPHS = get(handles.saveGraphsCB,'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<NCAMERAS)
frame_i = frame_i+1;
showFramei(hObject, handles)
VisualISAMStep
if mod(frame_i,DRAW_INTERVAL)==0
showWaiting(handles, 'Computing marginals...');
VisualISAMPlot
showWaiting(handles, '');
end
end
% --- 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
%----------------------------------------------------------
% Callback functions for GUI elements
%----------------------------------------------------------
% --- Executes during object creation, after setting all properties. % --- Executes during object creation, after setting all properties.
function dataset_CreateFcn(hObject, ~, handles) function dataset_CreateFcn(hObject, ~, handles)
@ -152,79 +126,19 @@ if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgr
set(hObject,'BackgroundColor','white'); set(hObject,'BackgroundColor','white');
end end
% --- Executes on selection change in dataset.
% --- Executes on button press in runButton. function dataset_Callback(hObject, ~, handles)
function runButton_Callback(hObject, ~, handles) % Hints: contents = cellstr(get(hObject,'String')) returns dataset contents as cell array
VisualISAMGlobalVars % contents{get(hObject,'Value')} returns selected item from dataset
while (frame_i<NCAMERAS)
frame_i = frame_i+1;
showFramei(hObject, handles)
VisualISAMStep
if mod(frame_i,DRAW_INTERVAL)==0
showWaiting(handles, 'Computing marginals...');
VisualISAMPlot
showWaiting(handles, '');
end
end
% --- Executes on button press in plotButton.
function plotButton_Callback(hObject, ~, handles)
VisualISAMPlot;
% --- Executes during object creation, after setting all properties.
function drawInterval_CreateFcn(hObject, ~, handles)
% handles empty - handles not created until after all CreateFcns called
% 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
% --- Executes during object creation, after setting all properties. % --- Executes during object creation, after setting all properties.
function numCamEdit_CreateFcn(hObject, ~, handles) function numCamEdit_CreateFcn(hObject, ~, handles)
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows. % Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); set(hObject,'BackgroundColor','white');
end end
% --- Executes during object creation, after setting all properties.
function reorderIntervalText_CreateFcn(hObject, ~, handles)
% handles empty - handles not created until after all CreateFcns called
% 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
% --- Executes during object creation, after setting all properties.
function cameraIntervalEdit_CreateFcn(hObject, ~, handles)
% hObject handle to cameraIntervalEdit (see GCBO)
% handles empty - handles not created until after all CreateFcns called
% 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
% --- Executes during object creation, after setting all properties.
function reorderIntervalEdit_CreateFcn(hObject, ~, handles)
% handles empty - handles not created until after all CreateFcns called
% 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
function numCamEdit_Callback(hObject, ~, handles) function numCamEdit_Callback(hObject, ~, handles)
% Hints: get(hObject,'String') returns contents of numCamEdit as text % Hints: get(hObject,'String') returns contents of numCamEdit as text
% str2double(get(hObject,'String')) returns contents of numCamEdit as a double % str2double(get(hObject,'String')) returns contents of numCamEdit as a double
@ -245,6 +159,10 @@ function pointPriorsCB_Callback(hObject, ~, handles)
% Hint: get(hObject,'Value') returns toggle state of pointPriorsCB % Hint: get(hObject,'Value') returns toggle state of pointPriorsCB
% --- Executes during object creation, after setting all properties.
function batchInitCB_CreateFcn(hObject, eventdata, handles)
set(hObject,'Value',1);
% --- Executes on button press in batchInitCB. % --- Executes on button press in batchInitCB.
function batchInitCB_Callback(hObject, ~, handles) function batchInitCB_Callback(hObject, ~, handles)
% Hint: get(hObject,'Value') returns toggle state of batchInitCB % Hint: get(hObject,'Value') returns toggle state of batchInitCB
@ -255,6 +173,29 @@ function alwaysRelinearizeCB_Callback(hObject, ~, handles)
% Hint: get(hObject,'Value') returns toggle state of alwaysRelinearizeCB % Hint: get(hObject,'Value') returns toggle state of alwaysRelinearizeCB
% --- 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
function drawInterval_Callback(hObject, ~, handles) function drawInterval_Callback(hObject, ~, handles)
% Hints: get(hObject,'String') returns contents of drawInterval as text % Hints: get(hObject,'String') returns contents of drawInterval as text
@ -266,6 +207,15 @@ function cameraIntervalEdit_Callback(hObject, ~, handles)
% str2double(get(hObject,'String')) returns contents of cameraIntervalEdit as a double % str2double(get(hObject,'String')) returns contents of cameraIntervalEdit as a double
% --- 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
% --- Executes on button press in saveGraphCB. % --- Executes on button press in saveGraphCB.
function saveGraphCB_Callback(hObject, ~, handles) function saveGraphCB_Callback(hObject, ~, handles)
% Hint: get(hObject,'Value') returns toggle state of saveGraphCB % Hint: get(hObject,'Value') returns toggle state of saveGraphCB
@ -289,3 +239,54 @@ function saveFiguresCB_Callback(hObject, ~, handles)
% --- Executes on button press in saveGraphsCB. % --- Executes on button press in saveGraphsCB.
function saveGraphsCB_Callback(hObject, ~, handles) function saveGraphsCB_Callback(hObject, ~, handles)
% Hint: get(hObject,'Value') returns toggle state of saveGraphsCB % Hint: get(hObject,'Value') returns toggle state of saveGraphsCB
% --- 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 runButton.
function runButton_Callback(hObject, ~, handles)
VisualISAMGlobalVars
while (frame_i<NCAMERAS)
frame_i = frame_i+1;
showFramei(hObject, handles)
VisualISAMStep
if mod(frame_i,DRAW_INTERVAL)==0
showWaiting(handles, 'Computing marginals...');
VisualISAMPlot
showWaiting(handles, '');
end
end
% --- Executes on button press in stepButton.
function stepButton_Callback(hObject, ~, handles)
VisualISAMGlobalVars
if (frame_i<NCAMERAS)
frame_i = frame_i+1;
showFramei(hObject, handles)
VisualISAMStep
if mod(frame_i,DRAW_INTERVAL)==0
showWaiting(handles, 'Computing marginals...');
VisualISAMPlot
showWaiting(handles, '');
end
end
% --- Executes on button press in plotButton.
function plotButton_Callback(hObject, ~, handles)
showWaiting(handles, 'Computing marginals...');
VisualISAMPlot;
showWaiting(handles, '');