Class PositionConstraintCalculator

  • All Implemented Interfaces:
    java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable

    public class PositionConstraintCalculator
    extends TypedAtomicActor
    The class for calculation of constraints of Swarm-Robots. This class computes following constraint functions used in an optimization class. The number of functions is N X H, where N is the number of reference trajectories and H is prediction time horizon. N and H are obtained from the length of "referenceTrajectories" and "trajectory", respectively. The output array consists of {f0_0, f0_1, ... , f0_t, f1_0, ... , f1_t, ... ,fi_t}. If i is "robotID", constraint functions is fi_t = - (Px_t - Pi_t) * CovP^-1 * (Px_t - Pi_t) + 1.0 > 0, where Px_t is a position of robot at time t obtained from "trajectory", Pi_t is a position of the robot predicted in previous control step obtained from "referenceTrajectories", and CovP is the covariance of Pi at time t. If i is not "robotID", constraint functions is fi_t = g(Pi) - sqrt(CovR) = |Px_t - Pi_t|^2 - D^2 - sqrt(CovR) > 0, CovR = (dg/dPi) * CovPi * (dg/dPi)T, where D is "DistanceLimit" parameter and Pi_t is a position of other robot or obstacle obtained from "referenceTrajectories". This class outputs not only the results of constraints function, but also gradients of fi_t.
    Since:
    Ptolemy II 11.0
    Version:
    $Id$
    Author:
    Shuhei Emoto
    Pt.AcceptedRating:
    Pt.ProposedRating:
    Red (shuhei)