Exemplo n.º 1
0
    /*    AirSimServer()
        {
        }*/

        void Start()
        {
            vehicleList = new List<Transform>();
            pedestrianList = new List<Transform>();

            comp = new ServerCompanion();
            VehicleCompanion.InitDelegators();
            var settings = AirSimSettings.GetSettings();
                        
            if (IP == "")
                IP = settings.LocalHostIP;
            
            
            if (Port == -1)
                Port = settings.GetPort(AirSimSettings.AgentType.Server);

                // Start server
            bool status = PInvokeWrapper.StartMainServer(Port);
            Debug.LogWarning("Main server started on port " + Port.ToString());
            if(!status)
            {
#if UNITY_EDITOR
                EditorUtility.DisplayDialog("AirSim main failed to start on port " + Port.ToString() + "!!!", "Please check logs for more information.", "Exit");
                EditorApplication.Exit(1);
#else
                Application.Quit();
#endif
            }

        }
Exemplo n.º 2
0
        public static DataCaptureScript GetCameraCaptureForRecording()
        {
            AirSimSettings.CamerasSettings recordCamSettings = AirSimSettings.GetSettings().Recording.Cameras[0];
            DataCaptureScript recordCam = Vehicles[0].VehicleInterface.GetCameraCapture(recordCamSettings.CameraName);

            return(recordCam);
        }
Exemplo n.º 3
0
        //Sets up the cameras based on the settings.json file to render on the sub windows.
        //Make sure the cameras are child of object with tag "ViewCameras"
        public void SetUpViewCameras()
        {
            GameObject viewCameras = GameObject.FindGameObjectWithTag("ViewCameras");

            cameraViews[0] = transform.GetChild(0).gameObject;
            cameraViews[1] = transform.GetChild(1).gameObject;
            cameraViews[2] = transform.GetChild(2).gameObject;

            cameraViews[0].SetActive(false);
            cameraViews[1].SetActive(false);
            cameraViews[2].SetActive(false);

            if (!viewCameras)
            {
                isViewCamerasSet = false;
                return;
            }

            isViewCamerasSet = viewCameras.activeInHierarchy;

            if (isViewCamerasSet)
            {
                for (int i = 0; i < 3; i++)
                {
                    AirSimSettings.SubWindowsSettings windowSettings = AirSimSettings.GetSettings().SubWindows[i];
                    ImageType imageType = (ImageType)windowSettings.ImageType;
                    viewCameras.transform.GetChild(windowSettings.WindowID).GetComponent <CameraFiltersScript>().SetShaderEffect(imageType);
                    cameraViews[windowSettings.WindowID].SetActive(windowSettings.Visible);
                    if (imageType == ImageType.DepthVis)
                    {
                        cameraViews[windowSettings.WindowID].transform.GetChild(0).gameObject.SetActive(true);
                    }
                }
            }
        }
Exemplo n.º 4
0
        //Ensure to call this method as the first statement, from derived class `Start()` method.
        protected void Start()
        {
            isDrone = this is Drone ? true : false;
            if (isDrone)
            {
                GetComponent <Rigidbody>().useGravity = false;
            }

            InitializeVehicle();

            airsimInterface = VehicleCompanion.GetVehicleCompanion(this, vehicle_name);
            isServerStarted = airsimInterface.StartVehicleServer(AirSimSettings.GetSettings().LocalHostIP);

            if (isServerStarted == false)
            {
#if UNITY_EDITOR
                EditorUtility.DisplayDialog("Problem in starting AirSim server!!!", "Please check logs for more information.", "Exit");
                EditorApplication.Exit(1);
#else
                Application.Quit();
#endif
            }

            AirSimGlobal.Instance.Weather.AttachToVehicle(this);
            count = UnityEngine.Random.Range(0, 10);
        }
Exemplo n.º 5
0
 private void Awake()
 {
     //Needs to be the first initialization in the Simulation if not done.
     if (AirSimSettings.GetSettings() == null)
     {
         AirSimSettings.Initialize();
     }
 }
Exemplo n.º 6
0
 private void Awake()
 {
     //Needs to be the first initialization in the Simulation.
     if (!AirSimSettings.Initialize())
     {
         EditorApplication.Exit(1);
     }
 }
 public bool StartVehicleServer(string hostIP)
 {
     if (serverStarted == false)
     {
         Debug.LogWarning("Starting server for " + vehicleType + AirSimSettings.GetSettings().SimMode);
         serverStarted = PInvokeWrapper.StartServer(vehicleType, AirSimSettings.GetSettings().SimMode, basePortId);
         Debug.LogWarning("Server started: " + serverStarted + " - " + basePortId);
         return(serverStarted);
     }
     return(true);
 }
Exemplo n.º 8
0
        //Ensure to call this method as the first statement, from derived class `Start()` method.
        protected void Start()
        {
            isDrone = this is Drone ? true : false;
            if (isDrone)
            {
                GetComponent <Rigidbody>().useGravity = false;
            }

            InitializeVehicle();

            airsimInterface = VehicleCompanion.GetVehicleCompanion(this);
            isServerStarted = airsimInterface.StartVehicleServer(AirSimSettings.GetSettings().LocalHostIP);
        }
Exemplo n.º 9
0
        // Start is called before the first frame update
        void Start()
        {
            string simMode         = AirSimSettings.GetSettings().SimMode;
            int    basePortId      = AirSimSettings.GetSettings().GetPortIDForVehicle(simMode == DRONE_MODE);
            bool   isServerStarted = PInvokeWrapper.StartServer(simMode, basePortId);

            if (isServerStarted == false)
            {
#if UNITY_EDITOR
                EditorUtility.DisplayDialog("Problem in starting AirSim server!!!", "Please check logs for more information.", "Exit");
#else
                Application.Quit();
#endif
            }
        }
Exemplo n.º 10
0
        public static bool Initialize()
        {
            settings = new AirSimSettings();
            settings.SetDefaults();

            if (!Directory.Exists(AIRSIM_DATA_FOLDER))
            {
                Directory.CreateDirectory(AIRSIM_DATA_FOLDER);
            }

            string jsonString = GetSettingsContent();

            JsonUtility.FromJsonOverwrite(jsonString, settings);
            return(true);
        }
Exemplo n.º 11
0
        public static VehicleCompanion GetVehicleCompanion(IVehicleInterface vehicleInterface)
        {
            var companion = new VehicleCompanion(vehicleInterface);

            if (AirSimSettings.GetSettings().SimMode == "Car")
            {
                companion.vehicleName = "PhysXCar";
            }
            else if (AirSimSettings.GetSettings().SimMode == "Multirotor")
            {
                companion.vehicleName = "SimpleFlight";
            }

            Vehicles.Add(companion);
            return(companion);
        }
Exemplo n.º 12
0
        public void SetUpCamera(string cameraName, bool isDrone)
        {
            this.cameraName = cameraName;

            renderCam         = GetComponent <Camera>();
            fov               = renderCam.fieldOfView;
            recorder          = new DataRecorder();
            waitUntilNext     = new WaitForSeconds(AirSimSettings.GetSettings().Recording.RecordInterval);
            waitForEndOfFrame = new WaitForEndOfFrame();
            shaderScript      = GetComponent <CameraFiltersScript>();

            renderCam.enabled   = false;
            shaderScript.effect = ImageType.Count;
            recorder.IsDrone(isDrone);
            SetUpRenderTextureForCapture(ImageType.Scene);
            SetUpRenderType(ImageType.Scene);
        }
Exemplo n.º 13
0
        public static void EndWS()
        {
            var        port   = AirSimSettings.GetFlaskPort();
            HttpClient client = new HttpClient();

            client.Get(new System.Uri("http://localhost:" + port + "/api/WebSocket/end"), HttpCompletionOption.AllResponseContent, (r) =>
            {
                if (r.IsSuccessStatusCode)
                {
                    Console.WriteLine("Success to end WebSocket");
                }
                else
                {
                    Console.WriteLine("Falied to end WebSocket");
                }
                byte[] responseData = r.ReadAsByteArray();
            });
        }
Exemplo n.º 14
0
        private void Awake()
        {
            String[] Data = Environment.GetCommandLineArgs();
            //before your loop
            //  var csv = new StringBuilder();

            var flaskPortArg = @"/flaskPortArg=";
            int flaskPort, unityport;
            var unityDronwPortArg = @"/unityDronePort=";

            for (int i = 0; i < Data.Length; i++)
            {
                if (Data[i].Contains(flaskPortArg))
                {
                    //     csv.Append("parameter" + i);
                    //     csv.Append(Data[i]);
                    var portstr = Data[i].Substring(flaskPortArg.Length);
                    //     csv.AppendLine(portstr);
                    flaskPort = int.Parse(portstr);
                    //     csv.Append(flaskPort);
                    AirSimSettings.SetFlaskPort(flaskPort);
                }
                else if (Data[i].Contains(unityDronwPortArg))
                {
                    //     csv.Append("parameter" + i);
                    //     csv.Append(Data[i]);
                    var portstr = Data[i].Substring(unityDronwPortArg.Length);
                    //     csv.AppendLine(portstr);
                    unityport = int.Parse(portstr);
                    //     csv.AppendLine("unityport");
                    //     csv.Append(unityport);
                    AirSimSettings.PreInitialize(unityport);
                }
            }
            //after your loop
            // File.WriteAllText(@"C:\Git\AirSim-1\Unity\log.txt", csv.ToString());


            //Needs to be the first initialization in the Simulation if not done.
            if (AirSimSettings.GetSettings() == null)
            {
                AirSimSettings.Initialize();
            }
        }
Exemplo n.º 15
0
        //Ensure to call this method as the first statement, from derived class `Start()` method.
        protected void Start()
        {
            isDrone = this is Drone ? true : false;
            if (isDrone)
            {
                GetComponent <Rigidbody>().useGravity = false;
            }

            InitializeVehicle();

            airsimInterface = VehicleCompanion.GetVehicleCompanion(this);
            isServerStarted = airsimInterface.StartVehicleServer(AirSimSettings.GetSettings().LocalHostIP);

            if (isServerStarted == false)
            {
                EditorUtility.DisplayDialog("Problem in starting AirSim server!!!", "Please check logs for more information.", "Exit");
                EditorApplication.Exit(1);
            }
        }
Exemplo n.º 16
0
        private void SetUpRenderTextureForCapture(ImageType type)
        {
            if (shaderScript.effect == type)
            {
                return;
            }

            AirSimSettings.CameraCaptureSettings captureSettings = AirSimSettings.GetSettings().GetCaptureSettingsBasedOnImageType(type);

            renderTexture = RenderTexture.GetTemporary(captureSettings.Width, captureSettings.Height, 24, RenderTextureFormat.ARGB32);

            renderTexture.Create();
            renderCam.targetTexture = renderTexture;

            renderCam.enabled = true;

            screenShot  = new Texture2D(captureSettings.Width, captureSettings.Height, TextureFormat.RGB24, false);
            captureRect = new Rect(0, 0, captureSettings.Width, captureSettings.Height);
        }
Exemplo n.º 17
0
        //Thread to capture the images and save them to documents. This will be started by pressing the Record button on HUD.
        private IEnumerator CaptureFrames()
        {
            AirSimSettings.CamerasSettings recordCamSettings = AirSimSettings.GetSettings().Recording.Cameras[0];
            SetUpRenderType((ImageType)recordCamSettings.ImageType);
            SetUpRenderTextureForCapture((ImageType)recordCamSettings.ImageType);
            while (isCapturing)
            {
                yield return(waitForEndOfFrame);

                RenderTexture.active = renderTexture;
                screenShot.ReadPixels(captureRect, 0, 0);
                screenShot.Apply();
                byte[] bytes = screenShot.EncodeToPNG();
                RenderTexture.active = null;
                DataRecorder.ImageData data = VehicleCompanion.GetRecordingData();
                data.image = bytes;
                recorder.AddImageDataToQueue(data);
                yield return(waitUntilNext);
            }
        }
        public static VehicleCompanion GetVehicleCompanion(IVehicleInterface vehicleInterface, string vehicleName)
        {
            var companion = new VehicleCompanion(vehicleInterface);

            if (AirSimSettings.GetSettings().SimMode == "Car")
            {
                companion.vehicleType = "PhysXCar";
                companion.vehicleName = vehicleName;
            }

            else if (AirSimSettings.GetSettings().SimMode == "Multirotor")
            {
                companion.vehicleType = "SimpleFlight";
            }


            Vehicles.Add(companion);
            Debug.LogWarning("Number of cars: " + Vehicles.Count.ToString() + "Sim mode - " + AirSimSettings.GetSettings().SimMode + ". Added - " + companion.vehicleName);

            return(companion);
        }
Exemplo n.º 19
0
        public static bool Initialize()
        {
            settings = new AirSimSettings();
            settings.SetDefaults();

            if (!Directory.Exists(AIRSIM_DATA_FOLDER))
            {
                Directory.CreateDirectory(AIRSIM_DATA_FOLDER);
            }

            string jsonString = GetSettingsContent();

            if (jsonString == String.Empty)
            {
                EditorUtility.DisplayDialog("Missing 'Settings.json' file!!!", "'Settings.json' file either not present or not configured properly.", "Exit");
                return(false);
            }

            JsonUtility.FromJsonOverwrite(jsonString, settings);
            return(true);
        }
Exemplo n.º 20
0
        public void Start()
        {
            pedestrian_name = transform.GetComponentInParent <PedestrianOverhead>().name;

            InitialisePedestrian();
            pedestrianInterface = PedestrianCompanion.GetPedestrianCompanion(this, pedestrian_name);
            isServerStarted     = pedestrianInterface.StartPedestrianServer(AirSimSettings.GetSettings().GetPort(AirSimSettings.AgentType.Pedestrian));

            if (isServerStarted == false)
            {
#if UNITY_EDITOR
                EditorUtility.DisplayDialog("Problem in starting AirSim server!!!", "Please check logs for more information.", "Exit");
                EditorApplication.Exit(1);
#else
                Application.Quit();
#endif
            }

            //AirSimGlobal.Instance.Weather.AttachToVehicle(this);

            //count = UnityEngine.Random.Range(0, 10);
            pedestrianControls = new PedestrianControls(0, 0);
        }
Exemplo n.º 21
0
 private VehicleCompanion(IVehicleInterface vehicleInterface)
 {
     VehicleInterface = vehicleInterface;
     isDrone          = vehicleInterface is Drone ? true : false;
     basePortId       = AirSimSettings.GetSettings().GetPortIDForVehicle(isDrone);
 }
Exemplo n.º 22
0
 public bool StartVehicleServer(string hostIP)
 {
     return(PInvokeWrapper.StartServer(vehicleName, AirSimSettings.GetSettings().SimMode, basePortId));
 }