// Use this for initialization void Start() { experimentController = GameObject.Find("ExperimentController"); fader = experimentController.GetComponent <Fader>(); dataLogger = experimentController.GetComponent <ExperimentDataLogger>(); targetObject = GameObject.FindGameObjectWithTag("targetObject"); UR5_Target = GameObject.Find("UR5-Target"); }
void OnTriggerEnter(Collider other) { compoundObstacleHandler = gameObject.GetComponentInParent <CollisionOnCompoundObstacle>(); experimentLogger = experimentController.GetComponent <ExperimentDataLogger>(); if (other.gameObject.CompareTag("targetObject")) //Collision with grasped object { if (compoundObstacleHandler != null) //compound obstacle { if (compoundObstacleHandler.GetCollisionsWithGraspedObject() == 0) // only the first enter causes a collision count { UpdateGlobalErrorCount(other.name); } experimentLogger.SetColliding(true); compoundObstacleHandler.IncreaseCollisionsWithGraspedObject(); } else // simple obstacle { graspedObjectIsCollidingWithObstacle = true; UpdateGlobalErrorCount(other.name); experimentLogger.SetColliding(true); } if (visualizeCollisions) { rend.material.color = Color.red; } } else if (other.gameObject.CompareTag("gripper")) //Collision with robot { if (compoundObstacleHandler != null) //compound obstacle { if (compoundObstacleHandler.GetCollisionsWithGripper() == 0) // only the first enter causes a collision count { if (experimentLogger.IsGrabbed()) { UpdateGripperCollisionCount(other.name); } } experimentLogger.SetColliding(true); compoundObstacleHandler.IncreaseCollisionsWithGripper(); } else //simple obstacle { { if (gripperCollisionCount == 0) { if (experimentLogger.IsGrabbed()) { UpdateGripperCollisionCount(other.name); //causes counting collision } } gripperCollisionCount++; experimentLogger.SetColliding(true); //causes haptic feedback } } } }
// Use this for initialization void Start() { closestDistance = float.MaxValue; closestObject = this.transform.gameObject; //accuracyList = new List<KeyValuePair<float, bool> >(); accuracyList = new List <AccuracyFrame>(); // distanceList = new List<float>(); // collisionList = new List<bool>(); dataLogger = GameObject.Find("ExperimentController").GetComponent <ExperimentDataLogger>(); }
public void AddCollision_gripper(Vector3 pos, string other) { //Debug.Log("adding gripper collision"); StampedCollision collision = new StampedCollision(); collision.position = pos; collision.other = other; collision.timeInMillis = ExperimentDataLogger.CalculateCurrentTimeStamp(); collisionList_gripper.Add(collision); //Debug.Log(collisionList_gripper.Count); }
void Update() { if (recording) { StampedPose pose = new StampedPose(); pose.position = transform.position; pose.rotation = transform.rotation; pose.euler = transform.rotation.eulerAngles; pose.forward = transform.forward; pose.timeInMillis = ExperimentDataLogger.CalculateCurrentTimeStamp(); poseList.Add(pose); } }
// Update is called once per frame void Update() { CheckDistance[] distances = GetComponentsInChildren <CheckDistance> (); foreach (CheckDistance dist in distances) { if (dist.GetDistanceApproximatedBetweenSurfaces() < closestDistance) { if (dist.transform.gameObject != closestObject) { if (closestObject.GetComponent <HighlightObject> () != null) { closestObject.GetComponent <HighlightObject> ().SetHighlighted(false); } closestObject = dist.transform.gameObject; //closestObject.GetComponent<HighlightObject> ().SetHighlighted (true); //Debug.Log ("found closer object: "+closestObject.name); } closestDistance = dist.GetDistanceApproximatedBetweenSurfaces(); } closestDistance = closestObject.GetComponent <CheckDistance> ().GetDistanceApproximatedBetweenSurfaces(); //Debug.Log (closestDistance); } if (recording) { //bool colliding = GameObject.FindGameObjectWithTag ("targetObject").GetComponent<CheckForCollision> ().IsColliding (); //accuracyList.Add(new KeyValuePair<float, bool>(closestDistance, colliding)); AccuracyFrame af = new AccuracyFrame(); af.distance = closestDistance; af.isColliding = dataLogger.IsColliding(); af.timestamp = ExperimentDataLogger.CalculateCurrentTimeStamp(); accuracyList.Add(af); //accuracyList.Add(new KeyValuePair<float, bool>(closestDistance, dataLogger.IsColliding())); //distanceList.Add (closestDistance); //collisionList.Add (closestObject.GetComponent<Collider>().) // TODO: mark collision } }
public void UpdateStopTime() { timeStamp_stop = ExperimentDataLogger.CalculateCurrentTimeStamp(); }