亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? puma560_control.m

?? PUMA560仿真系統,基于MATLAB的robotics toolbox工具箱。
?? M
?? 第 1 頁 / 共 2 頁
字號:
function varargout = puma560_control(varargin)% PUMA560_CONTROL M-file for puma560_control.fig%      PUMA560_CONTROL, by itself, creates a new PUMA560_CONTROL or raises the existing%      singleton*.%%      H = PUMA560_CONTROL returns the handle to a new PUMA560_CONTROL or the handle to%      the existing singleton*.%%      PUMA560_CONTROL('CALLBACK',hObject,eventData,handles,...) calls the local%      function named CALLBACK in PUMA560_CONTROL.M with the given input arguments.%%      PUMA560_CONTROL('Property','Value',...) creates a new PUMA560_CONTROL or raises the%      existing singleton*.  Starting from the left, property value pairs are%      applied to the GUI before puma560_control_OpeningFcn gets called.  An%      unrecognized property name or invalid value makes property application%      stop.  All inputs are passed to puma560_control_OpeningFcn via varargin.%%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one%      instance to run (singleton)".%% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help puma560_control% Last Modified by GUIDE v2.5 04-May-2008 17:11:08% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name',       mfilename, ...                   'gui_Singleton',  gui_Singleton, ...                   'gui_OpeningFcn', @puma560_control_OpeningFcn, ...                   'gui_OutputFcn',  @puma560_control_OutputFcn, ...                   'gui_LayoutFcn',  [] , ...                   'gui_Callback',   []);if nargin && ischar(varargin{1})    gui_State.gui_Callback = str2func(varargin{1});endif 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 puma560_control is made visible.function puma560_control_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 puma560_control (see VARARGIN)% Choose default command line output for puma560_controlhandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes puma560_control wait for user response (see UIRESUME)% uiwait(handles.puma560_control);%初始化程序puma_gui=findobj('Tag','puma560_gui');if ~isempty(puma_gui),    %存在PUMA560演示窗口else    %不存在PUMA560演示窗口    uiwait(msgbox('您還沒有打開PUMA560演示窗口。程序將自動為您打開!','提示'));    puma560_gui();end% --- Outputs from this function are returned to the command line.function varargout = puma560_control_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 structurevarargout{1} = handles.output;% --- Executes on button press in pushbtn_yunZ.function pushbtn_yunZ_Callback(hObject, eventdata, handles)% hObject    handle to pushbtn_yunZ (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)%運動學正問題% Forward kinematics is the problem of solving the Cartesian position and % orientation of a mechanism given knowledge of the kinematic structure and % the joint coordinates.close(findobj('tag','puma560_gui'));prompt={'輸入時間向量t:','輸入起始點坐標:','輸入終止點坐標:'};name='參數:';numlines=1;defaultanswer={'0:0.056:2','[0 0 0 0 0 0]','[0 pi/2 -pi/2 0 0 0]'};answer=inputdlg(prompt,name,numlines,defaultanswer);if ~isempty(answer),    t=str2num(answer{1});    qz=str2num(answer{2});    qr=str2num(answer{3});endeval('puma560');figure('Name','PUMA560機器人仿真演示窗口---運動學正問題');q=jtraj(qz,qr,t);T=fkine(p560,q);subplot(3,1,1);plot(t, squeeze(T(1,4,:)));xlabel('Time (s)');ylabel('X (m)');subplot(3,1,2);plot(t, squeeze(T(2,4,:)));xlabel('Time (s)');ylabel('Y (m)');subplot(3,1,3);plot(t, squeeze(T(3,4,:)));xlabel('Time (s)');ylabel('Z (m)');puma_gui=puma560_gui();puma_gui=guihandles(puma_gui);axes(puma_gui.axes1);plot(p560,q);x=squeeze(T(1,4,:));y=squeeze(T(2,4,:));z=squeeze(T(3,4,:));figure('Name','PUMA560機器人仿真演示窗口---運動學正問題');plot3(x,y,z);% --- Executes on button press in pushbtn_yunN.function pushbtn_yunN_Callback(hObject, eventdata, handles)% hObject    handle to pushbtn_yunN (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)%運動學逆問題% Inverse kinematics is the problem of finding the robot joint coordinates,% given a homogeneous transform representing the last link of the manipulator.% It is very useful when the path is planned in Cartesian space, for instance % a straight line path as shown in the trajectory demonstration.eval('puma560');close(findobj('tag','puma560_gui'));prompt={'輸入時間向量:','輸入起始點坐標:','輸入終止點坐標:'};name='參數:';numlines=1;defaultanswer={'0:0.056:2','transl(0.6,-0.5,0)','transl(0.4,0.5,0.2)'};answer=inputdlg(prompt,name,numlines,defaultanswer);if ~isempty(answer),    t=str2num(answer{1});    T1=str2num(answer{2});    T2=str2num(answer{3});endT=ctraj(T1,T2,length(t));q=ikine(p560,T);figure('Name','PUMA560機器人仿真演示窗口---運動學逆問題');subplot(3,2,1)plot(t,q(:,1))xlabel('Time (s)');ylabel('Joint 1 (rad)')subplot(3,2,2)plot(t,q(:,2))xlabel('Time (s)');ylabel('Joint 2 (rad)')subplot(3,2,3)plot(t,q(:,3))xlabel('Time (s)');ylabel('Joint 3 (rad)')subplot(3,2,4)plot(t,q(:,4))xlabel('Time (s)');ylabel('Joint 4 (rad)')subplot(3,2,5)plot(t,q(:,5))xlabel('Time (s)');ylabel('Joint 5 (rad)')subplot(3,2,6)plot(t,q(:,6))xlabel('Time (s)');ylabel('Joint 6 (rad)')eval('puma560');puma_gui=guihandles(puma560_gui());axes(puma_gui.axes1);plot(p560,q);% --- Executes on button press in pushbtn_dongZ.function pushbtn_dongZ_Callback(hObject, eventdata, handles)% hObject    handle to pushbtn_dongZ (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)%動力學正問題% Forward dynamics is the computation of joint accelerations given position and% velocity state, and actuator torques.  It is useful in simulation of a robot% control system.prompt={'輸入時間段:'};name='參數';numlines=1;defaultanswer={'[0 2]'};answer=inputdlg(prompt,name,numlines,defaultanswer);if ~isempty(answer),    t0=str2num(answer{1});endeval('puma560');[t,q,qd]=fdyn(nofriction(p560),t0(1),t0(2));nq=find(all(q==0)==0);figure('Name','PUMA560機器人仿真演示窗口---動力學正問題(位置)','NumberTitle','off');for i=1:length(nq),    subplot(round(length(nq)/2),2,i);    plot(t,q(:,i));    xlabel('Time(s)');    ylabel(['Joint ' num2str(nq(i)) ' (rad)']);endnq=find(all(qd==0)==0);figure('Name','PUMA560機器人仿真演示窗口---動力學正問題(速度)','NumberTitle','off');for i=1:length(nq),    subplot(round(length(nq)/2),2,i);    plot(t,qd(:,i));    xlabel('Time(s)');    ylabel(['Joint ' num2str(nq(i)) ' (rad/s)']);endpuma_gui=guihandles(puma560_gui());axes(puma_gui.axes1);plot(p560,q);% --- Executes on button press in pushbtn_dongN.function pushbtn_dongN_Callback(hObject, eventdata, handles)% hObject    handle to pushbtn_dongN (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)%動力學逆問題% Inverse dynamics computes the joint torques required to achieve the specified% state of joint position, velocity and acceleration.  % The recursive Newton-Euler formulation is an efficient matrix oriented% algorithm for computing the inverse dynamics, and is implemented in the % function rne().% Inverse dynamics requires inertial and mass parameters of each link, as well% as the kinematic parameters.  This is achieved by augmenting the kinematic % description matrix with additional columns for the inertial and mass % parameters for each link.prompt={'輸入時間向量:','輸入起始點:','輸入終止點:'};name='參數';numlines=1;defaultanswer={'0:0.056:2','[0 0 0 0 0 0]','[0 pi/2 -pi/2 0 0 0]'};answer=inputdlg(prompt,name,numlines,defaultanswer);if ~isempty(answer),    t=str2num(answer{1});    qz=str2num(answer{2});    qr=str2num(answer{3});endeval('puma560');[q,qd,qdd]=jtraj(qz,qr,t);tau=rne(p560,q,qd,qdd);taug=gravload(p560,q);nt=find(all(tau~=0));ng=find(all(taug~=0));figure('Name','PUMA560機器人仿真演示窗口---動力學逆問題(無重力)','NumberTitle','off');for i=1:length(nt),    subplot(length(nt),1,i);    plot(t,tau(:,nt(i)));    xlabel('Time(s)');    ylabel(['Joint ' num2str(nt(i)) ' torque(Nm)']);endfigure('Name','PUMA560機器人仿真演示窗口---動力學逆問題(有重力)','NumberTitle','off');for i=1:length(ng),    subplot(length(ng),1,i);    plot(t,taug(:,ng(i)));    xlabel('Time(s)');    ylabel(['Joint ' num2str(ng(i)) ' Gravity torque(Nm)']);endpuma_gui=guihandles(puma560_gui());axes(puma_gui.axes1);plot(p560,q);% --- Executes on button press in pushbtn_trace.function pushbtn_trace_Callback(hObject, eventdata, handles)% hObject    handle to pushbtn_trace (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)%軌跡規劃:關節空間(jtraj),直角坐標(ctraj)和基坐標變換(trinterp)三種方案str={'關節空間','直角坐標'};[s,v]=listdlg('PromptString','選擇方案:','SelectionMode','single','ListString',str); switch s,    case 0,    case 1,        prompt={'輸入時間向量:','輸入起始點坐標:','輸入終止點坐標:'};        name='輸入所需參數';        numlines=1;        defaultanswer={'0:0.056:2','[0 0 0 0 0 0]','[0 pi/2 -pi/2 0 0 0]'};        answer=inputdlg(prompt,name,numlines,defaultanswer);        t=str2num(answer{1});        qz=str2num(answer{2});        qr=str2num(answer{3});        [q,qd,qdd]=jtraj(qz,qr,t);        nq=find(all(q==0)==0);        for i=1:length(nq),            figure('Name','PUMA560機器人仿真演示窗口---軌跡規劃(關節空間)');            subplot(3,1,1);            plot(t,q(:,nq(i)));            title('Theta');            xlabel('Time(s)');            ylabel(['Joint ' num2str(nq(i)) '(rad)']);            subplot(3,1,2);            plot(t,qd(:,nq(i)));            title('Velocity');            xlabel('Time(s)');            ylabel(['Joint ' num2str(nq(i)) 'vel(rad/s)']);            subplot(3,1,3);            plot(t,q(:,nq(i)));            title('Acceleration');            xlabel('Time(s)');            ylabel(['Joint ' num2str(nq(i)) 'accel(rad/s^2)']);        end        puma_gui=guihandles(puma560_gui());        axes(puma_gui.axes1);        eval('puma560');        plot(p560,q);    case 2,        prompt={'輸入時間向量:','輸入起始點坐標:','輸入終止點坐標:'};        name='輸入所需參數:';        numlines=1;        defaultanswer={'0:0.056:2','transl(0.6,-0.5,0)','transl(0.4,0.5,0.2)'};        answer=inputdlg(prompt,name,numlines,defaultanswer);        if ~isempty(answer),            t=str2num(answer{1});            T1=str2num(answer{2});            T2=str2num(answer{3});        end        T=ctraj(T1,T2,length(t));        h=findobj('tag','puma560_gui');        if ~isempty(h),            close(findobj('Tag','puma560_gui'));        end        figure('Name','PUMA560機器人仿真演示窗口---軌跡規劃(直角坐標)');        subplot(3,1,1);        plot(t, squeeze(T(1,4,:)));        xlabel('Time (s)');        ylabel('X (m)');        subplot(3,1,2);        plot(t, squeeze(T(2,4,:)));        xlabel('Time (s)');        ylabel('Y (m)');        subplot(3,1,3);        plot(t, squeeze(T(3,4,:)))        xlabel('Time (s)');        ylabel('Z (m)');        figure('Name','PUMA560機器人仿真演示窗口---軌跡規劃(直角坐標)');        plot3(squeeze(T(1,4,:)),squeeze(T(2,4,:)),squeeze(T(3,4,:)));        eval('puma560');        q=ikine(p560,T);        puma_gui=guihandles(puma560_gui());        axes(puma_gui.axes1);        plot(p560,q);end% --- Executes on button press in pushbtn_exit.function pushbtn_exit_Callback(hObject, eventdata, handles)% hObject    handle to pushbtn_exit (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)%退出程序close(findobj('Tag','puma560_control'));puma_gui=findobj('Tag','puma560_gui');if ~isempty(puma_gui),close(puma_gui);end% --- Executes on button press in pushbtn_import.function pushbtn_import_Callback(hObject, eventdata, handles)% hObject    handle to pushbtn_import (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)%載入數據puma=findobj('Tag','puma560_gui');if ~isempty(puma),    %如果存在PUMA560演示窗口    puma=guihandles(puma);    eval('puma560');    axes(puma.axes1);    qz=zeros(1,6);    plot(p560,qz);else    %如果不存在PUMA560演示窗口    puma=guihandles(puma560_gui());    axes(puma.axes1);    qz=zeros(1,6);    eval('puma560');    plot(p560,qz);end% --- Executes on button press in pushbtn_animation.function pushbtn_animation_Callback(hObject, eventdata, handles)% hObject    handle to pushbtn_animation (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)T1=transl(0.6,-0.5,0.2);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕在线不卡一区| 成人av网址在线| 麻豆免费精品视频| 日韩成人一区二区三区在线观看| 亚洲成av人片在线观看| jvid福利写真一区二区三区| 9i看片成人免费高清| 欧美三级日韩三级| 久久久蜜桃精品| 一区二区视频在线看| 美女视频黄久久| 91亚洲永久精品| 777午夜精品免费视频| 国产欧美一区二区三区鸳鸯浴| 亚洲欧美成人一区二区三区| 日韩极品在线观看| 不卡免费追剧大全电视剧网站| 欧美日韩高清在线播放| 日本一区二区免费在线观看视频 | 亚洲成人www| voyeur盗摄精品| 精品国产乱码久久久久久夜甘婷婷| 国产精品美女久久久久久久久久久| 午夜成人免费电影| av电影一区二区| 国产亚洲成av人在线观看导航| 亚洲高清视频在线| 欧美午夜一区二区三区| 国产精品美女一区二区| 成人激情小说网站| 中文字幕一区二区三区在线播放| www.亚洲精品| 综合婷婷亚洲小说| 国产suv精品一区二区三区| 欧美疯狂做受xxxx富婆| 亚洲精品五月天| 91老司机福利 在线| 亚洲精品日韩专区silk| 色国产精品一区在线观看| 久久嫩草精品久久久精品| 麻豆一区二区在线| 久久精品亚洲麻豆av一区二区| 麻豆91免费看| 国产女人18毛片水真多成人如厕| 成人午夜激情视频| 一区二区三区四区不卡在线| 欧美二区乱c少妇| 久久成人免费网| 亚洲日本va午夜在线电影| 欧美性生活大片视频| 亚洲成年人网站在线观看| 91精品国产综合久久久久久久| 亚洲成人av资源| 久久久久国产精品厨房| 成人国产精品免费观看视频| 亚洲欧美另类在线| 91精品国产综合久久精品app | www.日韩av| 蜜臀久久久久久久| 国产在线不卡一卡二卡三卡四卡| 亚洲三级免费电影| 91精品啪在线观看国产60岁| 成人app网站| 国产毛片一区二区| 日韩av中文在线观看| 国产精品久久久久久久久免费樱桃 | 久久久久久99久久久精品网站| 中文字幕一区在线观看| 风流少妇一区二区| 精品一区二区三区在线观看国产| 一区二区激情小说| 成人欧美一区二区三区视频网页| 久久久精品国产免费观看同学| 欧美一区二区女人| 欧美一区二区三级| 在线电影欧美成精品| 欧美日韩精品一区二区三区蜜桃| 色网综合在线观看| 91麻豆国产精品久久| 91婷婷韩国欧美一区二区| 成人丝袜18视频在线观看| 成人免费高清视频在线观看| 国产精品 欧美精品| 国产成人av福利| 一区二区三区精品视频| 亚洲国产精品久久久久秋霞影院 | 欧美aa在线视频| 日本在线播放一区二区三区| 日韩中文欧美在线| 蜜桃一区二区三区在线观看| 极品瑜伽女神91| 国产黄人亚洲片| 成人免费看的视频| 91免费国产视频网站| 91精品免费观看| 欧美一区二区三区视频| 欧美精品一区二区三区在线| 久久美女高清视频| 中文字幕永久在线不卡| 亚洲h动漫在线| 精品一区二区国语对白| 成人黄色大片在线观看| 在线视频一区二区三区| 7777精品伊人久久久大香线蕉| 欧美成人女星排名| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 中文在线资源观看网站视频免费不卡| 国产精品系列在线| 亚洲一区二区高清| 精品无人区卡一卡二卡三乱码免费卡| 高清在线成人网| 欧美午夜一区二区三区免费大片| 欧美一卡二卡三卡四卡| 国产精品久久久一本精品| 亚洲一区在线观看免费观看电影高清 | 一区二区不卡在线播放| 欧美aaaaaa午夜精品| 国产91精品露脸国语对白| 欧美天天综合网| 国产网站一区二区| 性做久久久久久久久| 国产又黄又大久久| 欧美在线免费观看视频| 国产亚洲福利社区一区| 亚洲成人免费av| 国产成人一级电影| 欧美日韩免费一区二区三区视频| 久久这里只有精品视频网| 伊人色综合久久天天人手人婷| 黄色成人免费在线| 在线观看区一区二| 欧美激情艳妇裸体舞| 欧美96一区二区免费视频| 91在线高清观看| 久久中文娱乐网| 天天色综合天天| 91丨九色丨蝌蚪富婆spa| 2021久久国产精品不只是精品| 一区二区三区不卡视频| 粉嫩av一区二区三区粉嫩| 欧美精品v日韩精品v韩国精品v| 国产精品国产三级国产aⅴ无密码| 裸体健美xxxx欧美裸体表演| 欧美在线免费视屏| 国产精品久久久久久久久晋中| 蜜臂av日日欢夜夜爽一区| 欧美做爰猛烈大尺度电影无法无天| 久久久激情视频| 久久精品国产99| 欧美一卡二卡在线观看| caoporm超碰国产精品| 久久久久久**毛片大全| 美女任你摸久久| 欧美精品久久天天躁| 亚洲午夜私人影院| 91啦中文在线观看| 国产精品免费aⅴ片在线观看| 韩国毛片一区二区三区| 日韩一级黄色大片| 天天亚洲美女在线视频| 欧美精三区欧美精三区| 亚洲在线视频免费观看| 日本高清无吗v一区| 亚洲日韩欧美一区二区在线| 成人不卡免费av| 国产精品萝li| 成a人片亚洲日本久久| 国产精品久久久久一区二区三区共| 国产盗摄女厕一区二区三区| 亚洲精品一区二区三区影院| 激情另类小说区图片区视频区| 欧美一区二区三区在| 麻豆久久久久久久| 精品久久久久久久久久久久久久久久久 | 寂寞少妇一区二区三区| 精品国产91亚洲一区二区三区婷婷| 蜜臀av一区二区在线免费观看| 日韩视频永久免费| 久久精品72免费观看| 久久天堂av综合合色蜜桃网| 国产露脸91国语对白| 中文字幕欧美日本乱码一线二线| 国产乱码精品一区二区三| 日本一区二区动态图| 成人黄色片在线观看| 一区二区在线免费观看| 欧美无人高清视频在线观看| 日一区二区三区| 蜜桃视频第一区免费观看| 欧美成人精精品一区二区频| 国产一区二区三区av电影| 国产欧美日韩三区| 91色综合久久久久婷婷| 午夜激情一区二区| 欧美mv日韩mv亚洲| 成人精品国产一区二区4080| 亚洲综合清纯丝袜自拍| 日韩亚洲欧美成人一区| 国产91高潮流白浆在线麻豆| 亚洲欧美电影一区二区|