基于Qlearning强化学习的机器人路线规划仿真

1.算法概述

假设我们的行为准则已经学习好了, 现在我们处于状态s1, 我在写作业, 我有两个行为 a1, a2, 分别是看电视和写作业, 根据我的经验, 在这种 s1 状态下, a2 写作业 带来的潜在奖励要比 a1 看电视高, 这里的潜在奖励我们可以用一个有关于 s 和 a 的 Q 表格代替, 在我的记忆Q表格中, Q(s1, a1)=-2 要小于 Q(s1, a2)=1, 所以我们判断要选择 a2 作为下一个行为. 现在我们的状态更新成 s2 , 我们还是有两个同样的选择, 重复上面的过程, 在行为准则Q 表中寻找 Q(s2, a1) Q(s2, a2) 的值, 并比较他们的大小, 选取较大的一个. 接着根据 a2 我们到达 s3 并在此重复上面的决策过程. Q learning 的方法也就是这样决策的. 看完决策, 我看在来研究一下这张行为准则 Q 表是通过什么样的方式更改, 提升的.


机器学习算法可以分为3种:有监督学习(Supervised Learning)、无监督学习(Unsupervised Learning)和强化学习(Reinforcement Learning),如下图所示:





有监督学习、无监督学习、强化学习具有不同的特点:


有监督学习是有一个label(标记)的,这个label告诉算法什么样的输入对应着什么样的输出,常见的算法是分类、回归等;

无监督学习则是没有label(标记),常见的算法是聚类;

强化学习强调如何基于环境而行动,以取得最大化的预期利益。


主要学习内容:

强化学习是什么,奖励思想。

强化学习的三种途径。

深度强化学习的“深”是什么意思


Q-Learning的QTable标签更新公式:


Q-Learning的计算步骤:


1.判断在当前位置可以有几种操作;


2.根据当前位置允许的操作选择一个操作;


3.根据选择的操作进行奖赏;


4.修改当前行为的本次操作权重;


2.仿真效果预览

matlab2022a仿真结果如下:








3.核心MATLAB代码预览

function varargout =PathPlanning(varargin)

% 移动机器人路径规划仿真平台接口:仿真平台提供了机器人工作环境的仿真界面,利用inf=load('inf'),sp=inf.StartPoint,

% EP=inf.EndPoint,WS=inf.env得到机器人工作环境的出发点、目标点位置及障碍物位置信息,工作空间边界及障碍物区域设置为1,自由空间

%设置为0。

gui_Singleton = 1;

gui_State = struct('gui_Name',       mfilename, ...

'gui_Singleton',  gui_Singleton, ...

'gui_OpeningFcn', @Simulation_OpeningFcn, ...

'gui_OutputFcn',  @Simulation_OutputFcn, ...

'gui_LayoutFcn',  [] , ...

'gui_Callback',   []);

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 GridSimulation is made visible.

function Simulation_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

% hObject    handle to figure

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

% varargin   command line arguments to GridSimulation (see VARARGIN)


% Choose default command line output for GridSimulation

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes GridSimulation wait for user response (see UIRESUME)

% uiwait(handles.mainfig);

%cd D:\Simulation\EvolvingPath\path

cla

grid on

xlabel('X'); ylabel('Y');

%初始化,获取各对象句柄

handles.StartPoint=findobj('tag','StartPoint'); %获取“设置开始点”按钮句柄

handles.EndPoint=findobj('tag','EndPoint');     %获取“设置目标点”按钮句柄

handles.Obstacle=findobj('tag','Obstacle');     %获取“设置障碍物”按钮句柄

handles.Start=findobj('tag','Start');           %获取“开始运行”按钮句柄

handles.OldEnv=findobj('tag','OldEnv');           %获取“还原环境”按钮句柄

handles.MainAxes=findobj('tag','MainAxes');     %获取主坐标句柄

handles.MainFigure=findobj('tag','MainFigure'); %获取主窗口句柄

%初始化,设置各按钮显示状态

set(handles.StartPoint,'Enable','on')   %“设置开始点”按钮可用

set(handles.EndPoint,'Enable','off')    %“设置目标点”按钮禁用

set(handles.Obstacle,'Enable','off')    %“设置障碍物”按钮禁用

set(handles.Start,'Enable','off')       %“开始运行”按钮禁用

set(handles.OldEnv,'Enable','off')       %“还原环境”按钮可用

set(handles.MainFigure,'WindowButtonDownFcn','');   %

set(handles.MainFigure,'WindowButtonUpFcn','');     %

set(handles.MainAxes,'ButtonDownFcn','');           %

set(handles.MainAxes,'ButtonDownFcn','');           %

inf=load('inf');    %打开环境信息文件,inf.mat由save命令创建,存储了开始点、目标点、障碍物信息等

XLim=20;    %x轴最大取值

YLim=20;    %y轴最大取值

BreakTask=0;        %初始化终止任务变量

for i=1:XLim  %将边界设置成障碍物

for j=1:YLim

if ((i==1)|(i==XLim)|(j==1)|(j==YLim))

ws(i,j)=1;

end

end

end

save('inf','ws','-append');

save('inf','BreakTask','-append');


% --- Outputs from this function are returned to the command line.

function varargout = Simulation_OutputFcn(hObject, eventdata, handles)

% varargout  cell array for returning output args (see VARARGOUT);

% hObject    handle to figure

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)


% Get default command line output from handles structure

varargout{1} = handles.output;

% --- Executes on button press in StartPoint.

function StartPoint_Callback(hObject, eventdata, handles)

% hObject    handle to StartPoint (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

set(handles.StartPoint,'Enable','off')

set(handles.EndPoint,'Enable','on')

set(handles.Obstacle,'Enable','off')

set(handles.Start,'Enable','off')

flag=0;

save('inf','flag','-append');

set(handles.MainFigure,'WindowButtonDownFcn','');

set(handles.MainFigure,'WindowButtonUpFcn','');

set(handles.MainAxes,'ButtonDownFcn','PathPlanning(''MainAxes_ButtonDownFcn'',gcbo,[],guidata(gcbo))');

% --- Executes on button press in EndPoint.

function EndPoint_Callback(hObject, eventdata, handles)

% hObject    handle to EndPoint (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

set(handles.StartPoint,'Enable','off')

set(handles.EndPoint,'Enable','off')

set(handles.Obstacle,'Enable','on')

set(handles.Start,'Enable','on')

flag=1;

save('inf','flag','-append');

%set(handles.MainFigure,'WindowButtonDownFcn','');

%set(handles.MainFigure,'WindowButtonUpFcn','');

set(handles.MainAxes,'ButtonDownFcn','PathPlanning(''MainAxes_ButtonDownFcn'',gcbo,[],guidata(gcbo))');

% --- Executes on mouse press over axes background.

function MainAxes_ButtonDownFcn(hObject, eventdata, handles)

% hObject    handle to MainAxes (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

inf=load('inf');

flag=inf.flag;

start_end=inf.start_end;

p=get(handles.MainAxes,'CurrentPoint');

hold on;

if(flag==0)

p=round(p);

start_end(1,1)=p(1,1);start_end(1,2)=p(1,2);   %记录起点信息,给inf.mat文件赋值

StartPoint(1,1)=p(1,1);StartPoint(1,2)=p(1,2);       %为当前点赋值,当前点为起点的位置信息


save('inf','StartPoint','-append');

HRobot=plot(start_end(1,1),start_end(1,2),'pentagram');                %画开始点位置

text(start_end(1,1)-.5,start_end(1,2)-.5,'Start');

RobotDirection=inf.RobotDirection;%机器人方向应该是传递参数

x=start_end(1,1);

y=start_end(1,2);

RobotPosX=x;

RobotPosY=y;

save('inf','RobotPosX','-append');

save('inf','RobotPosY','-append');

else

p=round(p);

start_end(2,1)=p(1,1);start_end(2,2)=p(1,2);

EndPoint(1,1)=p(1,1);EndPoint(1,2)=p(1,2);       %为当前点赋值,当前点为结束点的位置信息

EndPoint=round(EndPoint);

save('inf','EndPoint','-append');

plot(start_end(2,1),start_end(2,2),'*','color','r')

text(start_end(2,1)-.5,start_end(2,2)+.5,'Goal');

end

save('inf','start_end','-append');

set(handles.MainAxes,'ButtonDownFcn','');

set(handles.MainAxes,'ButtonDownFcn','');


% --- Executes on button press in Obstacle.

function Obstacle_Callback(hObject, eventdata, handles)

% hObject    handle to Obstacle (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

env=zeros(50);

save('inf','env','-append');

set(handles.StartPoint,'Enable','off')

set(handles.EndPoint,'Enable','off')

set(handles.Obstacle,'Enable','on')

set(handles.Start,'Enable','on')

set(handles.OldEnv,'Enable','on')       %“开始运行”按钮禁用

set(handles.MainFigure,'WindowButtonDownFcn','PathPlanning(''MainFigure_WindowButtonDownFcn'',gcbo,[],guidata(gcbo))');

%set(handles.MainFigure,'WindowButtonUpFcn','PathPlanning(''MainFigure_WindowButtonUpFcn'',gcbo,[],guidata(gcbo))');

function MainFigure_WindowButtonDownFcn(hObject, eventdata, handles)

% hObject    handle to MainFigure (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

inf=load('inf');

ws=inf.env;

Pos=get(handles.MainAxes,'CurrentPoint');

Pos=round(Pos);

XPos=Pos(1,1);YPos=Pos(1,2);       %当前点坐标

X=[XPos-.5,XPos-.5,XPos+.5,XPos+.5];

Y=[YPos-.5,YPos+.5,YPos+.5,YPos-.5];

fill(X,Y,[0 0 0])                   %画障碍物

text(13-.2,12,'B','color',[1 1 1]);

text(7-.2,8,'A','color',[1 1 1]);

%  for i=XPos-1:XPos+1

%     for j=YPos-1:YPos+1

%          if((i>0)&(i<=XLim))           %防止出现环境矩阵元素下标为零

%              if((j>0)&(j<=YLim))

ws(XPos,YPos)=1;

%              end

%          end

%      end

%end

env=ws;

save('inf','env','-append');


% --- Executes on button press in SensorChecked.

function SensorChecked_Callback(hObject, eventdata, handles)

% hObject    handle to SensorChecked (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)



% Hint: get(hObject,'Value') returns toggle state of SensorChecked


function RobotVelocity_Callback(hObject, eventdata, handles)    %设置机器人运行速度

% hObject    handle to RobotVelocity (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)


% Hints: get(hObject,'String') returns contents of RobotVelocity as text

%        str2double(get(hObject,'String')) returns contents of RobotVelocity as a double   


function RobotRadius_Callback(hObject, eventdata, handles)      %设置机器人半径

% hObject    handle to RobotRadius (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)


% Hints: get(hObject,'String') returns contents of RobotRadius as text

%        str2double(get(hObject,'String')) returns contents of RobotRadius as a double

% --- Executes during object creation, after setting all properties.


function SensorMaxValue_Callback(hObject, eventdata, handles)       %设置传感器测量范围

% hObject    handle to SensorMaxValue (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)


% Hints: get(hObject,'String') returns contents of SensorMaxValue as text

%        str2double(get(hObject,'String')) returns contents of SensorMaxValue as a double    


function Handbook_Callback(hObject, eventdata, handles)                 %系统简介

% hObject    handle to Handbook (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

uiopen('系统简介.txt',1)


function ClearScreen_Callback(hObject, eventdata, handles)      %重新开始

% hObject    handle to ClearScreen (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)


set(handles.StartPoint,'Enable','on')   %“设置开始点”按钮可用

set(handles.EndPoint,'Enable','off')    %“设置目标点”按钮禁用

set(handles.Obstacle,'Enable','off')    %“设置障碍物”按钮禁用

set(handles.Start,'Enable','off')       %“开始运行”按钮禁用

cla

clear all

% --- Executes on button press in OldEnv.

function OldEnv_Callback(hObject, eventdata, handles)

% hObject    handle to OldEnv (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

XLim=20;    %x轴最大取值

YLim=20;    %y轴最大取值

inf=load('inf');

ws=inf.env;  %得到障碍物信息

SP=inf.StartPoint; %出发点位置

EP=inf.EndPoint;   %目标点位置

set(handles.StartPoint,'Enable','off')

set(handles.EndPoint,'Enable','off')

set(handles.Obstacle,'Enable','off')

set(handles.Start,'Enable','on')

HandleStart=line([SP(1,1) SP(1,1)],[SP(1,2) SP(1,2)]);  %设置开始点

text(SP(1,1)-.5,SP(1,2)-.5,'Start');

HandleTarget=line([EP(1,1) EP(1,1)],[EP(1,2) EP(1,2)]); %设置目标点

text(EP(1,1)-.5,EP(1,2)+.5,'Goal');

set(HandleStart,'marker','pentagram')

set(HandleTarget,'marker','*','color','r')

for i=1:XLim  %将边界设置成障碍物

for j=1:YLim

if ((i==1)|(i==XLim)|(j==1)|(j==YLim))

ws(i,j)=1;

end

end

end

for i=2:XLim-1                          %还原障碍物信息

for j=2:YLim-1

if((ws(i,j)==1))

X=[i-.5,i-.5,i+.5,i+.5];

Y=[j-.5,j+.5,j+.5,j-.5];

fill(X,Y,[0 0 0]);  %设置障碍物

end

end

end

X=[1-.5,1-.5,1+.5,1+.5];

Y=[6-.5,6+.5,6+.5,6-.5];

fill(X,Y,[0 0 0]);  %设置障碍物

X=[1-.5,1-.5,1+.5,1+.5];

Y=[14-.5,14+.5,14+.5,14-.5];

fill(X,Y,[0 0 0]);  %设置障碍物

X=[10-.5,10-.5,10+.5,10+.5];

Y=[1-.5,1+.5,1+.5,1-.5];

fill(X,Y,[0 0 0]);  %设置障碍物

text(13-.2,12,'B','color',[1 1 1]);

text(7-.2,8,'A','color',[1 1 1]);

X=[0,0,.5,.5];

Y=[0,YLim,YLim,0];

fill(X,Y,[0 0 0]);  %设置边界为障碍物

X=[XLim-.5,XLim-.5,XLim,XLim];

Y=[0,YLim,YLim,0];

fill(X,Y,[0 0 0]);  %设置边界为障碍物

X=[0,0,XLim,XLim];

Y=[YLim-.5,YLim,YLim,YLim-.5];

fill(X,Y,[0 0 0]);  %设置边界为障碍物

X=[0,0,XLim,XLim];

Y=[0,.5,.5,0];

fill(X,Y,[0 0 0]);  %设置边界为障碍物

%axis([0 20 0 20])

%机器人当前位置设置为开始位置

RobotPosX=SP(1,1);

RobotPosY=SP(1,2);

save('inf','RobotPosX','-append');

save('inf','RobotPosY','-append');


function RobotSingleLength_Callback(hObject, eventdata, handles)    %设置单步运行距离

% hObject    handle to RobotSingleLength (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)


% Hints: get(hObject,'String') returns contents of RobotSingleLength as text

%        str2double(get(hObject,'String')) returns contents of RobotSingleLength as a double


function BreakTask_Callback(hObject, eventdata, handles)

% hObject    handle to BreakTask (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

BreakTask=1;

inf=load('inf');

save('inf','BreakTask','-append');

function SaveAs_Callback(hObject, eventdata, handles)

% hObject    handle to SaveAs (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

%saveas(hObject,'g.bmp');

%print(gcf, '-depsc','-tiff','-r600','test.eps')

%saveas(gcf, 'test.eps', 'psc2')

%pause

axes(handles.MainAxes); %取得axes1的句柄

if isempty(handles.MainAxes)

return;

end

newFig = figure;%由于直接保存axes1上的图像有困难,所以保存在新建的figure中的谱图

set(newFig,'Visible','off','color',[1,1,1])%设置新建的figure为不可见

newAxes = copyobj(handles.MainAxes,newFig);   %将axes1中的图复制到新建的figure中

set(newAxes,'Units','default','Position','default');    % 设置图显示的位置

[filename,pathname] = uiputfile({ '*.tif','figure type(*.tif)'}, '结果另存为');

if isequal(filename,0)||isequal(pathname,0)%如果用户选择“取消”,则退出

return;

else

fpath=fullfile(pathname,filename);

end

f = getframe(newFig);

f = frame2im(f);

imwrite(f, fpath);

%saveas(newFig,'filename.eps')

%close(newFig)

%移动机器人路径规划仿真平台程序 END END END END END END END END END END END END END END END END END END END

% --------------------------------------------------------------------

function MainFigure_WindowButtonMotionFcn(hObject, eventdata, handles)

% hObject    handle to MainFigure (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)    

%h=get(handles.MainFigure,'SelectionType')


function RobotRadius_CreateFcn(hObject, eventdata, handles)

% hObject    handle to RobotRadius (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% 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 mainfig_CreateFcn(hObject, eventdata, handles)

% hObject    handle to mainfig (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    empty - handles not created until after all CreateFcns called

% --- Executes during object creation, after setting all properties.

function MainFigure_CreateFcn(hObject, eventdata, handles)

% hObject    handle to MainFigure (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    empty - handles not created until after all CreateFcns called

% --- Executes on button press in Start.








% --- Executes during object creation, after setting all properties.

function RobotSingleLength_CreateFcn(hObject, eventdata, handles)

% hObject    handle to RobotSingleLength (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% 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 SensorMaxValue_CreateFcn(hObject, eventdata, handles)

% hObject    handle to SensorMaxValue (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% 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 RobotVelocity_CreateFcn(hObject, eventdata, handles)

% hObject    handle to RobotVelocity (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% 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 Sensor1Length_Callback(hObject, eventdata, handles)

% hObject    handle to Sensor1Length (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)


% Hints: get(hObject,'String') returns contents of Sensor1Length as text

%        str2double(get(hObject,'String')) returns contents of Sensor1Length as a double



% --- Executes during object creation, after setting all properties.

function Sensor1Length_CreateFcn(hObject, eventdata, handles)

% hObject    handle to Sensor1Length (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% 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 Sensor2Length_Callback(hObject, eventdata, handles)

% hObject    handle to Sensor2Length (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)


% Hints: get(hObject,'String') returns contents of Sensor2Length as text

%        str2double(get(hObject,'String')) returns contents of Sensor2Length as a double



% --- Executes during object creation, after setting all properties.

function Sensor2Length_CreateFcn(hObject, eventdata, handles)

% hObject    handle to Sensor2Length (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% 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 Sensor3Length_Callback(hObject, eventdata, handles)

% hObject    handle to Sensor3Length (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)


% Hints: get(hObject,'String') returns contents of Sensor3Length as text

%        str2double(get(hObject,'String')) returns contents of Sensor3Length as a double



% --- Executes during object creation, after setting all properties.

function Sensor3Length_CreateFcn(hObject, eventdata, handles)

% hObject    handle to Sensor3Length (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% 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 Sensor4Length_Callback(hObject, eventdata, handles)

% hObject    handle to Sensor4Length (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)


% Hints: get(hObject,'String') returns contents of Sensor4Length as text

%        str2double(get(hObject,'String')) returns contents of Sensor4Length as a double



% --- Executes during object creation, after setting all properties.

function Sensor4Length_CreateFcn(hObject, eventdata, handles)

% hObject    handle to Sensor4Length (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% 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 Sensor5Length_Callback(hObject, eventdata, handles)

% hObject    handle to Sensor5Length (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)


% Hints: get(hObject,'String') returns contents of Sensor5Length as text

%        str2double(get(hObject,'String')) returns contents of Sensor5Length as a double



% --- Executes during object creation, after setting all properties.

function Sensor5Length_CreateFcn(hObject, eventdata, handles)

% hObject    handle to Sensor5Length (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% 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 Sensor6Length_Callback(hObject, eventdata, handles)

% hObject    handle to Sensor6Length (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)


% Hints: get(hObject,'String') returns contents of Sensor6Length as text

%        str2double(get(hObject,'String')) returns contents of Sensor6Length as a double



% --- Executes during object creation, after setting all properties.

function Sensor6Length_CreateFcn(hObject, eventdata, handles)

% hObject    handle to Sensor6Length (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% 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 Sensor7Length_Callback(hObject, eventdata, handles)

% hObject    handle to Sensor7Length (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)


% Hints: get(hObject,'String') returns contents of Sensor7Length as text

%        str2double(get(hObject,'String')) returns contents of Sensor7Length as a double



% --- Executes during object creation, after setting all properties.

function Sensor7Length_CreateFcn(hObject, eventdata, handles)

% hObject    handle to Sensor7Length (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% 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 Sensor8Length_Callback(hObject, eventdata, handles)

% hObject    handle to Sensor8Length (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)


% Hints: get(hObject,'String') returns contents of Sensor8Length as text

%        str2double(get(hObject,'String')) returns contents of Sensor8Length as a double



% --- Executes during object creation, after setting all properties.

function Sensor8Length_CreateFcn(hObject, eventdata, handles)

% hObject    handle to Sensor8Length (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% 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 RobotPosX_Callback(hObject, eventdata, handles)

% hObject    handle to RobotPosX (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)


% Hints: get(hObject,'String') returns contents of RobotPosX as text

%        str2double(get(hObject,'String')) returns contents of RobotPosX as a double



% --- Executes during object creation, after setting all properties.

function RobotPosX_CreateFcn(hObject, eventdata, handles)

% hObject    handle to RobotPosX (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% 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 RobotPosY_Callback(hObject, eventdata, handles)

% hObject    handle to RobotPosY (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)


% Hints: get(hObject,'String') returns contents of RobotPosY as text

%        str2double(get(hObject,'String')) returns contents of RobotPosY as a double



% --- Executes during object creation, after setting all properties.

function RobotPosY_CreateFcn(hObject, eventdata, handles)

% hObject    handle to RobotPosY (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% 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 on selection change in popupmenu6.

function popupmenu6_Callback(hObject, eventdata, handles)

% hObject    handle to popupmenu6 (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)


% Hints: contents = get(hObject,'String') returns popupmenu6 contents as cell array

%        contents{get(hObject,'Value')} returns selected item from popupmenu6



% --- Executes during object creation, after setting all properties.

function popupmenu6_CreateFcn(hObject, eventdata, handles)

% hObject    handle to popupmenu6 (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% 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






function RobotDirection_Callback(hObject, eventdata, handles)

% hObject    handle to RobotDirection (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)


% Hints: get(hObject,'String') returns contents of RobotDirection as text

%        str2double(get(hObject,'String')) returns contents of RobotDirection as a double



% --- Executes during object creation, after setting all properties.

function RobotDirection_CreateFcn(hObject, eventdata, handles)

% hObject    handle to RobotDirection (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% 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 on button press in Start.

function Start_Callback(hObject, eventdata, handles)

% hObject    handle to Start (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)





% --- Executes on selection change in Tasklistbox.

function Tasklistbox_Callback(hObject, eventdata, handles)

% hObject    handle to Tasklistbox (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)


% Hints: contents = get(hObject,'String') returns Tasklistbox contents as cell array

%        contents{get(hObject,'Value')} returns selected item from Tasklistbox



% --- Executes during object creation, after setting all properties.

function Tasklistbox_CreateFcn(hObject, eventdata, handles)

% hObject    handle to Tasklistbox (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    empty - handles not created until after all CreateFcns called


% Hint: listbox 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 selection change in AlgorithmListBox.

function AlgorithmListBox_Callback(hObject, eventdata, handles)

% hObject    handle to AlgorithmListBox (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)


% Hints: contents = get(hObject,'String') returns AlgorithmListBox contents as cell array

%        contents{get(hObject,'Value')} returns selected item from AlgorithmListBox



% --- Executes during object creation, after setting all properties.

function AlgorithmListBox_CreateFcn(hObject, eventdata, handles)

% hObject    handle to AlgorithmListBox (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    empty - handles not created until after all CreateFcns called


% Hint: listbox 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

A_006

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容