cleans up constraint classes and implements basic rrt.

wanted to shake out the framework for motion planning using our constraint object infrastructure (before we get too far with it and find out something doesn't work!).  it mostly worked out of the box.  the biggest nuisance was that FunctionHandleConstraints were assumed to be differentiable constraints, but I wanted functionhandleconstraints that were non-differentiable.  after trying a few different ways to clean this up, i'm very happy now with the proposed solution:
  - zap DifferentiableConstraint
  - every constraint can announce their grad_level (the level of user gradients that they provide), which can be "non-differentiable".  i also streamlined the use of this information right through to geval.  I think it's good.

Let me know what you think.

Also - minor thing - but I noticed a lot of the constraint classes properties were being documented using @param at the top of the class definition.  That's not the way that doxygen parses it.  You should just write the comment inline with the property in the properties block.  I've cleaned that up in a few of the files, but not all.
fixed.

On Jul 20, 2014, at 7:51 PM, Hongkai Dai <notifications@github.com> wrote:

> In solvers/MotionPlanningProblem.m:
> 
> > +    constraints={};  % a cell array of Constraint objects
> > +    % todo: add differential constraints?  control affine only?
> > +    % todo: add objectives?
> > +  end
> > +
> > +  methods
> > +    function obj = MotionPlanningProblem(num_vars,var_names)
> > +      % @num_vars the dimension of the search space (e.g. state or
> > +      % configuration space)
> > +      % @var_names optional variable names
> > +      
> > +      if(nargin<2)
> > +        var_names = cellfun(@(i) sprintf('x%d',i),num2cell((1:obj.num_vars)'),'UniformOutput',false);
> > +      else
> > +        if(~iscellstr(var_names) || numel(var_names) ~= obj.num_vars)
> > +          error('Drake:NonlinearProgramWConstraintObjects:InvalidArgument','Argument x_name should be a cell containing %d strings',obj.num_vars);
> Error message should be Drae:MotionPlanningProblem:InvalidArgument
> 
> —
> Reply to this email directly or view it on GitHub.
>