Completely new overhaul of the existing API. Now allows for both "inplace" and
"out-of-place" methods that work with StaticArrays. The method for differentiation
can be chosen at runtime. No methods are provided by default, but the @autodiff macro is
provided which implements forward automatic differentiation via ForwardDiff.jl and finite
differencing via FiniteDiff.jl.
Support for linear models is no longer provided. This functionality is likely to appear in a downstream package such as RobotZoo.jl.
Allow for more flexibility for defining discrete dynamics by using
integrate(Q, model, x, u, t, dt)
to apply integration rule Q instead of discrete_dynamics. This allows users to
customize discrete_dynamics for any integration rule Q, and optionally apply the
integration rule to part of the state vector.
Any valid Rotations.ErrorMap to be passed as a 4th argument to state_diff, which will be used to compute the error state for all 3D rotations in the LieState.
Moved trajectory types from TrajectoryOptimization.jl to RobotDynamics.jl.
AbstractTrajectoryrepresents a vector ofAbstractKnotPointsTrajis a trajectory ofKnotPoints, and has a variety of convenient constructorsset_states!,set_controls!, andget_times!now live in RobotDynamics.jl
Added plotting recipes for plotting trajectories vs time and 2D plots of one state vs another (e.g. x and y positions)
plot(t,X; inds=inds)plots a trajectoryX(a vector of static vectors) vs the timet. Optionalindsargument plots a subset of the states.traj2(X; xind=1, yind=2)plots a 2D trajectory ofx[xind]vsx[yind].
Created specialized types for dealing with linear models, including AbstractLinearModel,
ContinuousLTI, ContinuousLTV, DiscreteLTI, and DiscreteLTV. All types can include
an affine term. Custom types that inherit from these abstract types will inherit their
functionality.