예제 #1
0
    /* 0 simulovaný vstup - náhodný pohyb
     * 1 manuální řízení ovladačem
     * 2 ROS
     */

    public int changeDataSource(int source = -1)
    {
        if (source == -1)
        {
            source = (dataSource + 1) % 3;
        }

        if (source == 0 && dataSource != 0)
        {
            Vector3 pos = positionData.GetPosition();
            Vector3 rot = positionData.GetRotation();
            dataSource = 0;
            Debug.Log("přepnuto na simulovany vstup - nahodna data");
            positionData = positionDataS;
            positionData.reset(pos, rot);//ResetRotation rychlosti akcelerace
        }

        if (source == 1 && dataSource != 1)
        {
            Vector3 pos = positionData.GetPosition();
            Vector3 rot = positionData.GetRotation();
            dataSource = 1;
            Debug.Log("přepnuto na manuál");
            positionData = positionDataM;
            positionData.reset(pos, rot);
        }

        if (source == 2 && dataSource != 2)
        {
            if (!videoUI.activeSelf)
            {
                videoUI.SetActive(true);
                videoUI.transform.localScale = new Vector3(0, 0, 0);
            }

            Vector3 pos = positionData.GetPosition();
            Vector3 rot = positionData.GetRotation();
            if (rosConnector == null)
            {
                ConnectToRos();
            }
            positionDataR.setRosConnector(rosConnector);
            dataSource = 2;
            Debug.Log("přepnuto vstup z ros");
            positionData = positionDataR;
            // positionData.ResetRotation(pos,rot); //ResetRotation rychlosti akcelerace
        }

        return(dataSource);
    }
예제 #2
0
    // Use this for initialization
    void Start()
    {
        // Prvy dron je vzdy ten defaultny
        //string path = Application.streamingAssetsPath + "/mission.json";
        //if(File.Exists(path))
        //{
        //    string jsonContent = File.ReadAllText(path);
        //    bool parse = true;
        //}
        //Mission mission;

        // try
        // {
        //     JsonUtility.FromJson<Mission>(jsonContent);
        // }
        // catch (System.Exception)
        // {
        //     parse = false;
        // }
        // if(parse){
        //     mission = JsonUtility.FromJson<Mission>(jsonContent);
        //     Vector3 pos;
        //     Mapbox.Utils.Vector2d p = new Mapbox.Utils.Vector2d(mission.drones[0].latitude,mission.drones[0].longitude);
        //     pos = Map.GeoToWorldPosition(p,false);
        //     float groundAltitude = Map.QueryElevationInUnityUnitsAt(Map.WorldToGeoPosition(pos));
        //     pos.y = groundAltitude;
        //     positionDataS = new DroneData(Map, pos);
        //     positionData = positionDataM = new DroneDataManual(Map, pos);
        //     positionDataR = new DroneRosData(Map, pos);

        // }else{
        positionDataS = new DroneData(Map, transform.position);
        positionDataM = new DroneDataManual(Map, transform.position);
        positionDataR = new DroneRosData(Map, transform.position);
        positionData  = positionDataM;
        // }



        // Generate Unique ID for our drone
        drone = new Drone(transform.gameObject, new DroneFlightData());
        drone.FlightData.DroneId = GetUniqueID();
        Drones.drones.Add(drone);
    }
예제 #3
0
    /* 0 simulovaný vstup - náhodný pohyb
     * 1 manuální řízení ovladačem
     * 2 ROS
     */

    public int changeDataSource(int source = -1)
    {
        if (source == -1)
        {
            source = (dataSource + 1) % 3;
        }

        if (source == 0 && dataSource != 0)
        {
            Vector3 pos = positionData.GetPosition();
            Vector3 rot = positionData.GetRotation();
            dataSource = 0;
            Debug.Log("přepnuto na simulovany vstup - nahodna data");
            positionData = positionDataS;
            positionData.reset(pos, rot);//reset rychlosti akcelerace
        }

        if (source == 1 && dataSource != 1)
        {
            Vector3 pos = positionData.GetPosition();
            Vector3 rot = positionData.GetRotation();
            dataSource = 1;
            Debug.Log("přepnuto na manuál");
            positionData = positionDataM;
            positionData.reset(pos, rot);
        }

        if (source == 2 && dataSource != 2)
        {
            Vector3 pos = positionData.GetPosition();
            Vector3 rot = positionData.GetRotation();
            if (rosConnector == null)
            {
                ConnectToRos();
            }
            positionDataR.setRosConnector(rosConnector);
            dataSource = 2;
            Debug.Log("přepnuto vstup z ros");
            positionData = positionDataR;
            // positionData.reset(pos,rot); //reset rychlosti akcelerace
        }

        return(dataSource);
    }
예제 #4
0
    /* 0 simulovaný vstup - náhodný pohyb
     * 1 manuální řízení ovladačem
     * 2 ROS
     */

    // Use this for initialization
    void Start()
    {
        // Prvy dron je vzdy ten defaultny
        string path        = Application.streamingAssetsPath + "/mission.json";
        string jsonContent = File.ReadAllText(path);

        Mission mission = JsonUtility.FromJson <Mission>(jsonContent);
        Vector3 pos;

        Mapbox.Utils.Vector2d p = new Mapbox.Utils.Vector2d(mission.drones[0].latitude, mission.drones[0].longitude);
        pos = Map.GeoToWorldPosition(p, false);
        Debug.Log(pos);
        float groundAltitude = Map.QueryElevationInUnityUnitsAt(Map.WorldToGeoPosition(pos));

        pos.y = groundAltitude;
        Debug.Log("thr" + pos);


        positionDataS = new DroneData(Map, pos);
        positionData  = positionDataM = new DroneDataManual(Map, pos);
        positionDataR = new DroneRosData(Map, pos);
        Drones.drones.Add(transform.gameObject);
    }