public override void CollectObservations() { UpdateTargetObs(); AddVectorObs(targetPolarAngle / 180f); // 2 AddVectorObs(Util.Sigmoid(targetDistance) * 2f - 1f); // 1 AddVectorObs(NormalizeSpeed(drone.CrntSpeed)); // 1 AddVectorObs(drone.CrntDir.y); // 1 pitch AddVectorObs(rayDetection.CastRays(drone, 10f)); }
public override void CollectObservations() { UpdateTargetObs(); AddVectorObs(targetPolarAngle / 180f); // 2 AddVectorObs(Util.Sigmoid(targetDistance) * 2f - 1f); // 1 AddVectorObs(NormalizeSpeed(drone.CrntSpeed)); // 1 AddVectorObs(drone.CrntDir.y); // 1 pitch if (detectionMode == DetectionMode.Raycast) { AddVectorObs(rayDetection.CastRays(drone, 10f)); } else { cam.transform.position = drone.Transform.position - drone.CrntDir; cam.transform.rotation = Quaternion.LookRotation(drone.CrntDir); } }