www.gusucode.com > ros 工具箱 matlab源码程序 > ros/+robotics/+ros/+msggen/+moveit_msgs/MotionPlanRequest.m
classdef MotionPlanRequest < robotics.ros.Message %MotionPlanRequest MATLAB implementation of moveit_msgs/MotionPlanRequest % This class was automatically generated by % robotics.ros.msg.internal.gen.MessageClassGenerator. % Copyright 2014-2016 The MathWorks, Inc. %#ok<*INUSD> properties (Constant) MessageType = 'moveit_msgs/MotionPlanRequest' % The ROS message type end properties (Constant, Hidden) MD5Checksum = '7cd790e04c3a55f6742ec387a72a02d6' % The MD5 Checksum of the message definition end properties (Access = protected) JavaMessage % The Java message object end properties (Constant, Access = protected) MoveitMsgsConstraintsClass = robotics.ros.msg.internal.MessageFactory.getClassForType('moveit_msgs/Constraints') % Dispatch to MATLAB class for message type moveit_msgs/Constraints MoveitMsgsRobotStateClass = robotics.ros.msg.internal.MessageFactory.getClassForType('moveit_msgs/RobotState') % Dispatch to MATLAB class for message type moveit_msgs/RobotState MoveitMsgsTrajectoryConstraintsClass = robotics.ros.msg.internal.MessageFactory.getClassForType('moveit_msgs/TrajectoryConstraints') % Dispatch to MATLAB class for message type moveit_msgs/TrajectoryConstraints MoveitMsgsWorkspaceParametersClass = robotics.ros.msg.internal.MessageFactory.getClassForType('moveit_msgs/WorkspaceParameters') % Dispatch to MATLAB class for message type moveit_msgs/WorkspaceParameters end properties (Dependent) WorkspaceParameters StartState PathConstraints TrajectoryConstraints PlannerId GroupName NumPlanningAttempts AllowedPlanningTime GoalConstraints end properties (Access = protected) Cache = struct('WorkspaceParameters', [], 'StartState', [], 'GoalConstraints', [], 'PathConstraints', [], 'TrajectoryConstraints', []) % The cache for fast data access end properties (Constant, Hidden) PropertyList = {'AllowedPlanningTime', 'GoalConstraints', 'GroupName', 'NumPlanningAttempts', 'PathConstraints', 'PlannerId', 'StartState', 'TrajectoryConstraints', 'WorkspaceParameters'} % List of non-constant message properties ROSPropertyList = {'allowed_planning_time', 'goal_constraints', 'group_name', 'num_planning_attempts', 'path_constraints', 'planner_id', 'start_state', 'trajectory_constraints', 'workspace_parameters'} % List of non-constant ROS message properties end methods function obj = MotionPlanRequest(msg) %MotionPlanRequest Construct the message object MotionPlanRequest import com.mathworks.toolbox.robotics.ros.message.MessageInfo; % Support default constructor if nargin == 0 obj.JavaMessage = obj.createNewJavaMessage; return; end % Construct appropriate empty array if isempty(msg) obj = obj.empty(0,1); return; end % Make scalar construction fast if isscalar(msg) % Check for correct input class if ~MessageInfo.compareTypes(msg(1), obj.MessageType) error(message('robotics:ros:message:NoTypeMatch', obj.MessageType, ... char(MessageInfo.getType(msg(1))) )); end obj.JavaMessage = msg(1); return; end % Check that this is a vector of scalar messages. Since this % is an object array, use arrayfun to verify. if ~all(arrayfun(@isscalar, msg)) error(message('robotics:ros:message:MessageArraySizeError')); end % Check that all messages in the array have the correct type if ~all(arrayfun(@(x) MessageInfo.compareTypes(x, obj.MessageType), msg)) error(message('robotics:ros:message:NoTypeMatchArray', obj.MessageType)); end % Construct array of objects if necessary objType = class(obj); for i = 1:length(msg) obj(i,1) = feval(objType, msg(i)); %#ok<AGROW> end end function workspaceparameters = get.WorkspaceParameters(obj) %get.WorkspaceParameters Get the value for property WorkspaceParameters if isempty(obj.Cache.WorkspaceParameters) obj.Cache.WorkspaceParameters = feval(obj.MoveitMsgsWorkspaceParametersClass, obj.JavaMessage.getWorkspaceParameters); end workspaceparameters = obj.Cache.WorkspaceParameters; end function set.WorkspaceParameters(obj, workspaceparameters) %set.WorkspaceParameters Set the value for property WorkspaceParameters validateattributes(workspaceparameters, {obj.MoveitMsgsWorkspaceParametersClass}, {'nonempty', 'scalar'}, 'MotionPlanRequest', 'WorkspaceParameters'); obj.JavaMessage.setWorkspaceParameters(workspaceparameters.getJavaObject); % Update cache if necessary if ~isempty(obj.Cache.WorkspaceParameters) obj.Cache.WorkspaceParameters.setJavaObject(workspaceparameters.getJavaObject); end end function startstate = get.StartState(obj) %get.StartState Get the value for property StartState if isempty(obj.Cache.StartState) obj.Cache.StartState = feval(obj.MoveitMsgsRobotStateClass, obj.JavaMessage.getStartState); end startstate = obj.Cache.StartState; end function set.StartState(obj, startstate) %set.StartState Set the value for property StartState validateattributes(startstate, {obj.MoveitMsgsRobotStateClass}, {'nonempty', 'scalar'}, 'MotionPlanRequest', 'StartState'); obj.JavaMessage.setStartState(startstate.getJavaObject); % Update cache if necessary if ~isempty(obj.Cache.StartState) obj.Cache.StartState.setJavaObject(startstate.getJavaObject); end end function pathconstraints = get.PathConstraints(obj) %get.PathConstraints Get the value for property PathConstraints if isempty(obj.Cache.PathConstraints) obj.Cache.PathConstraints = feval(obj.MoveitMsgsConstraintsClass, obj.JavaMessage.getPathConstraints); end pathconstraints = obj.Cache.PathConstraints; end function set.PathConstraints(obj, pathconstraints) %set.PathConstraints Set the value for property PathConstraints validateattributes(pathconstraints, {obj.MoveitMsgsConstraintsClass}, {'nonempty', 'scalar'}, 'MotionPlanRequest', 'PathConstraints'); obj.JavaMessage.setPathConstraints(pathconstraints.getJavaObject); % Update cache if necessary if ~isempty(obj.Cache.PathConstraints) obj.Cache.PathConstraints.setJavaObject(pathconstraints.getJavaObject); end end function trajectoryconstraints = get.TrajectoryConstraints(obj) %get.TrajectoryConstraints Get the value for property TrajectoryConstraints if isempty(obj.Cache.TrajectoryConstraints) obj.Cache.TrajectoryConstraints = feval(obj.MoveitMsgsTrajectoryConstraintsClass, obj.JavaMessage.getTrajectoryConstraints); end trajectoryconstraints = obj.Cache.TrajectoryConstraints; end function set.TrajectoryConstraints(obj, trajectoryconstraints) %set.TrajectoryConstraints Set the value for property TrajectoryConstraints validateattributes(trajectoryconstraints, {obj.MoveitMsgsTrajectoryConstraintsClass}, {'nonempty', 'scalar'}, 'MotionPlanRequest', 'TrajectoryConstraints'); obj.JavaMessage.setTrajectoryConstraints(trajectoryconstraints.getJavaObject); % Update cache if necessary if ~isempty(obj.Cache.TrajectoryConstraints) obj.Cache.TrajectoryConstraints.setJavaObject(trajectoryconstraints.getJavaObject); end end function plannerid = get.PlannerId(obj) %get.PlannerId Get the value for property PlannerId plannerid = char(obj.JavaMessage.getPlannerId); end function set.PlannerId(obj, plannerid) %set.PlannerId Set the value for property PlannerId validateattributes(plannerid, {'char'}, {}, 'MotionPlanRequest', 'PlannerId'); obj.JavaMessage.setPlannerId(plannerid); end function groupname = get.GroupName(obj) %get.GroupName Get the value for property GroupName groupname = char(obj.JavaMessage.getGroupName); end function set.GroupName(obj, groupname) %set.GroupName Set the value for property GroupName validateattributes(groupname, {'char'}, {}, 'MotionPlanRequest', 'GroupName'); obj.JavaMessage.setGroupName(groupname); end function numplanningattempts = get.NumPlanningAttempts(obj) %get.NumPlanningAttempts Get the value for property NumPlanningAttempts numplanningattempts = int32(obj.JavaMessage.getNumPlanningAttempts); end function set.NumPlanningAttempts(obj, numplanningattempts) %set.NumPlanningAttempts Set the value for property NumPlanningAttempts validateattributes(numplanningattempts, {'numeric'}, {'nonempty', 'scalar'}, 'MotionPlanRequest', 'NumPlanningAttempts'); obj.JavaMessage.setNumPlanningAttempts(numplanningattempts); end function allowedplanningtime = get.AllowedPlanningTime(obj) %get.AllowedPlanningTime Get the value for property AllowedPlanningTime allowedplanningtime = double(obj.JavaMessage.getAllowedPlanningTime); end function set.AllowedPlanningTime(obj, allowedplanningtime) %set.AllowedPlanningTime Set the value for property AllowedPlanningTime validateattributes(allowedplanningtime, {'numeric'}, {'nonempty', 'scalar'}, 'MotionPlanRequest', 'AllowedPlanningTime'); obj.JavaMessage.setAllowedPlanningTime(allowedplanningtime); end function goalconstraints = get.GoalConstraints(obj) %get.GoalConstraints Get the value for property GoalConstraints if isempty(obj.Cache.GoalConstraints) javaArray = obj.JavaMessage.getGoalConstraints; array = obj.readJavaArray(javaArray, obj.MoveitMsgsConstraintsClass); obj.Cache.GoalConstraints = feval(obj.MoveitMsgsConstraintsClass, array); end goalconstraints = obj.Cache.GoalConstraints; end function set.GoalConstraints(obj, goalconstraints) %set.GoalConstraints Set the value for property GoalConstraints if ~isvector(goalconstraints) && isempty(goalconstraints) % Allow empty [] input goalconstraints = feval([obj.MoveitMsgsConstraintsClass '.empty'], 0, 1); end validateattributes(goalconstraints, {obj.MoveitMsgsConstraintsClass}, {'vector'}, 'MotionPlanRequest', 'GoalConstraints'); javaArray = obj.JavaMessage.getGoalConstraints; array = obj.writeJavaArray(goalconstraints, javaArray, obj.MoveitMsgsConstraintsClass); obj.JavaMessage.setGoalConstraints(array); % Update cache if necessary if ~isempty(obj.Cache.GoalConstraints) obj.Cache.GoalConstraints = []; obj.Cache.GoalConstraints = obj.GoalConstraints; end end end methods (Access = protected) function resetCache(obj) %resetCache Resets any cached properties obj.Cache.WorkspaceParameters = []; obj.Cache.StartState = []; obj.Cache.GoalConstraints = []; obj.Cache.PathConstraints = []; obj.Cache.TrajectoryConstraints = []; end function cpObj = copyElement(obj) %copyElement Implements deep copy behavior for message % Call default copy method for shallow copy cpObj = copyElement@robotics.ros.Message(obj); % Clear any existing cached properties cpObj.resetCache; % Create a new Java message object cpObj.JavaMessage = obj.createNewJavaMessage; % Iterate over all primitive properties cpObj.PlannerId = obj.PlannerId; cpObj.GroupName = obj.GroupName; cpObj.NumPlanningAttempts = obj.NumPlanningAttempts; cpObj.AllowedPlanningTime = obj.AllowedPlanningTime; % Recursively copy compound properties cpObj.WorkspaceParameters = copy(obj.WorkspaceParameters); cpObj.StartState = copy(obj.StartState); cpObj.PathConstraints = copy(obj.PathConstraints); cpObj.TrajectoryConstraints = copy(obj.TrajectoryConstraints); cpObj.GoalConstraints = copy(obj.GoalConstraints); end function reload(obj, strObj) %reload Called by loadobj to assign properties obj.PlannerId = strObj.PlannerId; obj.GroupName = strObj.GroupName; obj.NumPlanningAttempts = strObj.NumPlanningAttempts; obj.AllowedPlanningTime = strObj.AllowedPlanningTime; obj.WorkspaceParameters = feval([obj.MoveitMsgsWorkspaceParametersClass '.loadobj'], strObj.WorkspaceParameters); obj.StartState = feval([obj.MoveitMsgsRobotStateClass '.loadobj'], strObj.StartState); obj.PathConstraints = feval([obj.MoveitMsgsConstraintsClass '.loadobj'], strObj.PathConstraints); obj.TrajectoryConstraints = feval([obj.MoveitMsgsTrajectoryConstraintsClass '.loadobj'], strObj.TrajectoryConstraints); GoalConstraintsCell = arrayfun(@(x) feval([obj.MoveitMsgsConstraintsClass '.loadobj'], x), strObj.GoalConstraints, 'UniformOutput', false); obj.GoalConstraints = vertcat(GoalConstraintsCell{:}); end end methods (Access = ?robotics.ros.Message) function strObj = saveobj(obj) %saveobj Implements saving of message to MAT file % Return an empty element if object array is empty if isempty(obj) strObj = struct.empty; return end strObj.PlannerId = obj.PlannerId; strObj.GroupName = obj.GroupName; strObj.NumPlanningAttempts = obj.NumPlanningAttempts; strObj.AllowedPlanningTime = obj.AllowedPlanningTime; strObj.WorkspaceParameters = saveobj(obj.WorkspaceParameters); strObj.StartState = saveobj(obj.StartState); strObj.PathConstraints = saveobj(obj.PathConstraints); strObj.TrajectoryConstraints = saveobj(obj.TrajectoryConstraints); strObj.GoalConstraints = arrayfun(@(x) saveobj(x), obj.GoalConstraints); end end methods (Static, Access = {?matlab.unittest.TestCase, ?robotics.ros.Message}) function obj = loadobj(strObj) %loadobj Implements loading of message from MAT file % Return an empty object array if the structure element is not defined if isempty(strObj) obj = robotics.ros.msggen.moveit_msgs.MotionPlanRequest.empty(0,1); return end % Create an empty message object obj = robotics.ros.msggen.moveit_msgs.MotionPlanRequest; obj.reload(strObj); end end end