Skip to content
Neo-X edited this page Sep 18, 2015 · 1 revision

Intro

Stores all data on an agent. If you want to add a new type of data to be stored on an agent this is the place.

Data

                /// @name timing metrics
		//@{
		/// units: number of frames
		unsigned int totalNumFramesEnabled;
		/// units: seconds
		float totalTimeEnabled;
		//@}

		/// @name collision metrics:
		//@{
		/// a score that indicates how badly collisions occurred; increments by one for every collision that is found in every frame.
		unsigned int collisionScore;
		/// a unique collision is one instance of a collision from the point of overlap to the point of exit; units: number of collisions
		unsigned int numUniqueCollisions;
		/// max penetration of any single collision over all collisions;  units: meters
		float maxCollisionPenetration;
		/// max duration of any single unique collision; units: seconds
		float maxTimeSpentInCollision;
		//@}

		/// @name turning metrics:
		//@{
		float instantaneousAngularSpeed;
		float totalDegreesTurned;  // units: degrees
		float maxAngularSpeed;     // units: degrees/second
		float totalDegreesTurnedOverWindow;
		float avgAngularSpeedOverWindow;
		float minDegreesTurnedOverWindow;
		float maxDegreesTurnedOverWindow;    // units: degrees
		// unsigned int numTimesAngularSpeedChangedSignOverWindow;
		//@}

		/// @name distance/scalar speed metrics:
		//@{
		float instantaneousSpeed;     // units: meters/second
		float totalDistanceTraveled;  // units: meters
		float maxInstantaneousSpeed;  // units: meters/second
		float totalDistanceTraveledOverWindow;
		float avgSpeedOverWindow;
		float minDistanceTraveledOverWindow;      // units: meters
		float maxDistanceTraveledOverWindow;      // units: meters
		//@}

		/// @name scalar change in speed metrics (different from acceleration):
		//@{
		float instantaneousChangeInSpeed;
		float totalChangeInSpeed;     // units: meters/second
		float maxChangeInSpeed;       // units: meters/(second^2)
		float totalChangeInSpeedOverWindow;
		float avgChangeInSpeedOverWindow;
		float minChangeInSpeedOverWindow;
		float maxChangeInSpeedOverWindow; // units: meters/second
		//@}

		/// @name acceleration metrics:
		//@{
		Util::Vector instantaneousAcceleration;
		float sumTotalOfInstantaneousAcceleration; // units: meters/(second^2)   NOTE CAREFULLY: this value is not the integral of acceleration, i.e. not "time-independent".
		float totalAcceleration;      // units: meters/second    NOTE CAREFULLY:  this is the estimate of integral of acceleration over an interval.
		float maxAcceleration;        // units: meters/(second^2)
		float totalAccelerationOverWindow;
		float avgAccelerationOverWindow;
		float minAccelerationOverWindow;
		float maxAccelerationOverWindow;  // units: 
		unsigned int numTimesAccelerationChangedSignOverWindow;
		unsigned int numTimesVelocityChangedSignOverWindow;
		//@}

		/// @name energy metrics:
		//@{
		float instantaneousKineticEnergy;  // units: Kg * (m/s)^2 (mass assumed to be 1.0)
		float sumTotalOfInstantaneousKineticEnergies; // units:  Kg * (m/s)^2   (mass is assumed to be 1.0 for all agents)
		//@}

		/// @name spatial location metrics:
		//@{
		// float distanceToNearestObstacle;
		// float distanceToNearestAgent;
		// float distanceToOptimalPath;
		// float avgDistanceToNearestObstacleOverWindow;
		// float avgDistanceToNearestAgentOverWindow;
		// float avgDistanceToOptimalPathOverWindow;
		float displacementOverWindow;
		//@}

		/// @name energy metrics:
		//@{
		float integralOfKineticEnergy;
		float averageKineticEnergy;
		//@}


		// MUBBASIR 2011-07
		float pleEnergy;

		// Glen 2015-05
		// penetration penalty for effort penalty in ScenarioSpace
		float _totalPenetration;

Notes

Nothing really..