You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
195 lines
7.2 KiB
195 lines
7.2 KiB
%VREP_obj V-REP mirror of simple object
|
|
%
|
|
% Mirror objects are MATLAB objects that reflect objects in the V-REP
|
|
% environment. Methods allow the V-REP state to be examined or changed.
|
|
%
|
|
% This is a concrete class, derived from VREP_mirror, for all V-REP objects
|
|
% and allows access to pose and object parameters.
|
|
%
|
|
% Example::
|
|
% vrep = VREP();
|
|
% bill = vrep.object('Bill'); % get the human figure Bill
|
|
% bill.setpos([1,2,0]);
|
|
% bill.setorient([0 pi/2 0]);
|
|
%
|
|
% Methods throw exception if an error occurs.
|
|
%
|
|
% Methods::
|
|
%
|
|
% getpos get position of object
|
|
% setpos set position of object
|
|
% getorient get orientation of object
|
|
% setorient set orientation of object
|
|
% getpose get pose of object
|
|
% setpose set pose of object
|
|
%
|
|
% Superclass methods (VREP_mirror)::
|
|
% getname get object name
|
|
%-
|
|
% setparam_bool set object boolean parameter
|
|
% setparam_int set object integer parameter
|
|
% setparam_float set object float parameter
|
|
%-
|
|
% getparam_bool get object boolean parameter
|
|
% getparam_int get object integer parameter
|
|
% getparam_float get object float parameter
|
|
%-
|
|
% display print the link parameters in human readable form
|
|
% char convert to string
|
|
%
|
|
% See also VREP_mirror, VREP_obj, VREP_arm, VREP_camera, VREP_hokuyo.
|
|
|
|
% Copyright (C) 1993-2015, by Peter I. Corke
|
|
%
|
|
% This file is part of The Robotics Toolbox for MATLAB (RTB).
|
|
%
|
|
% RTB is free software: you can redistribute it and/or modify
|
|
% it under the terms of the GNU Lesser General Public License as published by
|
|
% the Free Software Foundation, either version 3 of the License, or
|
|
% (at your option) any later version.
|
|
%
|
|
% RTB is distributed in the hope that it will be useful,
|
|
% but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
% GNU Lesser General Public License for more details.
|
|
%
|
|
% You should have received a copy of the GNU Leser General Public License
|
|
% along with RTB. If not, see <http://www.gnu.org/licenses/>.
|
|
%
|
|
% http://www.petercorke.com
|
|
|
|
classdef VREP_obj < VREP_mirror
|
|
|
|
properties
|
|
end
|
|
|
|
methods
|
|
|
|
function obj = VREP_obj(vrep, varargin)
|
|
%VREP_obj.VREP_obj VREP_obj mirror object constructor
|
|
%
|
|
% v = VREP_base(NAME) creates a V-REP mirror object for a
|
|
% simple V-REP object type.
|
|
obj = obj@VREP_mirror(vrep, varargin{:});
|
|
end
|
|
|
|
function p = getpos(obj, relto)
|
|
%VREP_obj.getpos Get position of V-REP object
|
|
%
|
|
% V.getpos() is the position (1x3) of the corresponding V-REP object.
|
|
%
|
|
% V.getpos(BASE) as above but position is relative to the VREP_obj
|
|
% object BASE.
|
|
%
|
|
% See also VREP_obj.setpos, VREP_obj.getorient, VREP_obj.getpose.
|
|
if nargin == 1
|
|
p = obj.vrep.getpos(obj.h);
|
|
elseif nargin == 2 && isa(relto, 'VREP_base')
|
|
p = obj.vrep.getpos(obj.h, relto.h);
|
|
end
|
|
end
|
|
|
|
function setpos(obj, p, relto)
|
|
%VREP_obj.setpos Set position of V-REP object
|
|
%
|
|
% V.setpos(T) sets the position of the corresponding V-REP object
|
|
% to T (1x3).
|
|
%
|
|
% V.setpos(T, BASE) as above but position is set relative to the
|
|
% position of the VREP_obj object BASE.
|
|
%
|
|
% See also VREP_obj.getpos, VREP_obj.setorient, VREP_obj.setpose.
|
|
if nargin == 2
|
|
obj.vrep.setpos(obj.h, p);
|
|
elseif nargin == 3 && isa(relto, 'VREP_mirror')
|
|
obj.vrep.setpos(obj.h, p, relto.h);
|
|
end
|
|
end
|
|
|
|
function p = getorient(obj, varargin)
|
|
%VREP_obj.getorient Get orientation of V-REP object
|
|
%
|
|
% V.getorient() is the orientation of the corresponding V-REP
|
|
% object as a rotation matrix (3x3).
|
|
%
|
|
% V.getorient('euler', OPTIONS) as above but returns ZYZ Euler
|
|
% angles.
|
|
%
|
|
% V.getorient(BASE) is the orientation of the corresponding V-REP
|
|
% object relative to the VREP_obj object BASE.
|
|
%
|
|
% V.getorient(BASE, 'euler', OPTIONS) as above but returns ZYZ Euler
|
|
% angles.
|
|
%
|
|
% Options::
|
|
% See tr2eul.
|
|
%
|
|
% See also VREP_obj.setorient, VREP_obj.getopos, VREP_obj.getpose.
|
|
if nargin == 1
|
|
p = obj.vrep.getorient(obj.h);
|
|
else
|
|
if isa(varargin{1}, 'VREP_base')
|
|
p = obj.vrep.getorient(obj.h, relto.h, varargin{2:end});
|
|
else
|
|
p = obj.vrep.getorient(obj.h, relto.h, varargin{:});
|
|
end
|
|
end
|
|
end
|
|
|
|
function setorient(obj, p, relto)
|
|
%VREP_obj.setorient Set orientation of V-REP object
|
|
%
|
|
% V.setorient(R) sets the orientation of the corresponding V-REP to rotation matrix R (3x3).
|
|
%
|
|
% V.setorient(T) sets the orientation of the corresponding V-REP object to rotational component of homogeneous transformation matrix
|
|
% T (4x4).
|
|
%
|
|
% V.setorient(E) sets the orientation of the corresponding V-REP object to ZYZ Euler angles (1x3).
|
|
%
|
|
% V.setorient(X, BASE) as above but orientation is set relative to the
|
|
% orientation of VREP_obj object BASE.
|
|
%
|
|
% See also VREP_obj.getorient, VREP_obj.setpos, VREP_obj.setpose.
|
|
if nargin == 2
|
|
obj.vrep.setorient(obj.h, p);
|
|
|
|
elseif nargin == 3 && isa(relto, 'VREP_base')
|
|
obj.vrep.setorient(obj.h, p, relto.h);
|
|
end
|
|
end
|
|
|
|
function p = getpose(obj, relto)
|
|
%VREP_obj.getpose Get pose of V-REP object
|
|
%
|
|
% V.getpose() is the pose (4x4) of the the corresponding V-REP object.
|
|
%
|
|
% V.getpose(BASE) as above but pose is relative to the
|
|
% pose the VREP_obj object BASE.
|
|
%
|
|
% See also VREP_obj.setpose, VREP_obj.getorient, VREP_obj.getpos.
|
|
if nargin == 1
|
|
p = obj.vrep.getpose(obj.h);
|
|
elseif nargin == 2 && isa(relto, 'VREP_base')
|
|
p = obj.vrep.getpose(obj.h, relto.h);
|
|
end
|
|
end
|
|
|
|
function setpose(obj, p, relto)
|
|
%VREP_obj.setpose Set pose of V-REP object
|
|
%
|
|
% V.setpose(T) sets the pose of the corresponding V-REP object
|
|
% to T (4x4).
|
|
%
|
|
% V.setpose(T, BASE) as above but pose is set relative to the
|
|
% pose of the VREP_obj object BASE.
|
|
%
|
|
% See also VREP_obj.getpose, VREP_obj.setorient, VREP_obj.setpos.
|
|
if nargin == 2
|
|
obj.vrep.setpose(obj.h, p);
|
|
elseif nargin == 3 && isa(relto, 'VREP_base')
|
|
obj.vrep.setpose(obj.h, p, relto.h);
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|