• 大小: 42KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: Matlab
  • 标签: matlab  

资源简介

3d 机器人模拟,非常棒的gui界面,直接开就好不需要robotic工具箱。

资源截图

代码片段和文件信息

% This is PUMA3d.M a 3D Matlab Kinematic model of a Puma robot located
% in the robotics lab of Walla Walla University.
% The file uses CAD data converted to Matlab using cad2matdemo.m which 
% is located on the Mathworks central file exchange.
%
% This file is still being developed for the latest version check the
% Mathworks central file exchange.
%
% Todo list:
% 1) optimize pumaANI lots of stuff in loop that needs help.
% 2) move x y and z position to end effecter not link 6 origin.
% 3) Toggle kinematics buttons on/off with inverse kinematics button.
% 4) Make this work with real time inverse kinematics.
% 5) Make the track on and off option better.
% 6) add other things that makes this program fun.
% 7) check for noplots and nogos
% 8) add some better “demos“ for the button
% 9) Fix problem of more than one robot window.
%
function puma3d
% GUI kinematic demo for the Puma Robot.
% Robot geometry uses the CAD2MATDEMO code in the Mathworks file exchange
%
%%
loaddata
InitHome
%
% Create the push buttons: pos is: [left bottom width height]
demo = uicontrol(fig_1‘String‘‘Demo‘‘callback‘@demo_button_press...
    ‘Position‘[20 5 60 20]);

rnd_demo = uicontrol(fig_1‘String‘‘Random Move‘‘callback‘@rnd_demo_button_press...
    ‘Position‘[100 5 80 20]);

clr_trail = uicontrol(fig_1‘String‘‘Clr Trail‘‘callback‘@clr_trail_button_press...
    ‘Position‘[200 5 60 20]);
%
home = uicontrol(fig_1‘String‘‘Home‘‘callback‘@home_button_press...
    ‘Position‘[280 5 70 20]);
%
% Kinematics Panel
%
K_p = uipanel(fig_1...
    ‘units‘‘pixels‘...
    ‘Position‘[20 45 265 200]...
    ‘title‘‘Kinematics‘‘FontSize‘11);
%
%     Angle    Range                Default Name
%     Theta 1: 320 (-160 to 160)    90       Waist Joint  
%     Theta 2: 220 (-110 to 110)   -90       Shoulder Joint
%     Theta 3: 270 (-135 to 135)   -90       Elbow Joint    
%     Theta 4: 532 (-266 to 266)     0       Wrist Roll
%     Theta 5: 200 (-100 to 100)     0       Wrist Bend  
%     Theta 6: 532 (-266 to 266)     0       Wrist Swivel

t1_home = 90; % offset to define the “home“ position as UP.
t2_home = -90;
t3_home = -90;

LD = 105; % Left used to set the GUI.
HT = 18;  % Height
BT = 156; % Bottom
%%  GUI buttons for Theta 1.  pos is: [left bottom width height]
t1_slider = uicontrol(K_p‘style‘‘slider‘...
    ‘Max‘160‘Min‘-160‘Value‘0...
    ‘SliderStep‘[0.05 0.2]...
    ‘callback‘@t1_slider_button_press...
    ‘Position‘[LD BT 120 HT]);
t1_min = uicontrol(K_p‘style‘‘text‘...
    ‘String‘‘-160‘...
    ‘Position‘[LD-30 BT+1 25 HT-4]); % L from bottom W H
t1_max = uicontrol(K_p‘style‘‘text‘...
    ‘String‘‘+160‘...
    ‘Position‘[LD+125 BT+1 25 HT-4]); % L B W H
t1_text = uibutton(K_p‘style‘‘text‘...  % Nice program Doug. Need this
    ‘String‘‘\theta_1‘...                % due to no TeX in uicontrols. 
    ‘Position‘[LD-100 BT 20 HT]); % 

评论

共有 条评论