-
Notifications
You must be signed in to change notification settings - Fork 15
AgentMetrics
Neo-X edited this page Sep 18, 2015
·
1 revision
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.
/// @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;
Nothing really..