private void rosSocketConnect()
    {
        // intialize
        foreach (ManualResetEvent manualResetEvent in status.Values)
        {
            manualResetEvent.Reset();
        }

        // connectto ROSbridge
        RosSocket rosSocket = new RosSocket(address);

        status["connected"].Set();

        // setup urdfImporter
        urdfImporter = new UrdfImporter(rosSocket, urdfAssetPath);
        status["robotNameReceived"]        = urdfImporter.Status["robotNameReceived"];
        status["robotDescriptionReceived"] = urdfImporter.Status["robotDescriptionReceived"];
        status["resourceFilesReceived"]    = urdfImporter.Status["resourceFilesReceived"];
        urdfImportThread = new Thread(() => urdfImporter.Import());
        urdfImportThread.Start();

        // import URDF assets:
        if (status["resourceFilesReceived"].WaitOne(int.Parse(timeout) * 1000))
        {
            Debug.Log("Imported urdf resources to " + urdfImporter.LocalDirectory);
        }
        else
        {
            Debug.LogWarning("Not all resource files have been received before timeout.");
        }

        // close the ROSBridge socket
        rosSocket.Close();
        status["disconnected"].Set();
    }
Exemplo n.º 2
0
        public static void Main(string[] args)
        {
            string uri = "ws://192.168.56.102:9090";

            RosBridgeClient.Protocols.WebSocketNetProtocol webSocketNetProtocol;
            RosSocket rosSocket;

            for (int i = 1; i < 3; i++)
            {
                webSocketNetProtocol = new RosBridgeClient.Protocols.WebSocketNetProtocol(uri);
                rosSocket            = new RosSocket(webSocketNetProtocol);

                // Publication:
                UrdfImporter urdfImporter = new UrdfImporter(rosSocket, System.IO.Directory.GetCurrentDirectory());
                urdfImporter.Import();

                urdfImporter.Status["robotNameReceived"].WaitOne();
                Console.WriteLine("Robot Name Received: " + urdfImporter.RobotName);

                urdfImporter.Status["robotDescriptionReceived"].WaitOne();
                Console.WriteLine("Robot Description received... ");

                urdfImporter.Status["resourceFilesReceived"].WaitOne();
                Console.WriteLine("Resource Files received " + urdfImporter.RequestedResourceFiles.Count);

                rosSocket.Close();
            }

            Console.WriteLine("Press any key to close...");
            Console.ReadKey(true);
        }
        public static void Main(string[] args)
        {
            //RosSocket rosSocket = new RosSocket(new RosBridgeClient.Protocols.WebSocketSharpProtocol(uri));

            for (int i = 0; i < 2; i++)
            {
                RosSocket    rosSocket    = new RosSocket(new RosBridgeClient.Protocols.WebSocketNetProtocol(uri));
                UrdfImporter urdfImporter = new UrdfImporter(rosSocket, System.IO.Directory.GetCurrentDirectory().ToString());
                urdfImporter.Import();
                Console.WriteLine("Press any key to close...");
                Console.ReadKey(true);
                rosSocket.Close();
            }
        }
Exemplo n.º 4
0
    public override void _Ready()
    {
        UrdfHandler = new UrdfImporter();

        UserDataDirectory = OS.GetUserDataDir();

        PlugLoader = new Loader(UserDataDirectory + "/plugins/");

        // Register close button so we can save the program before quitting
        GetNode("/root/main/UI/TitleBar/TitleButtons/QuitButton").Connect(
            "pressed", this, "OnQuitRequest");

        UserConfig = new ConfigFile();

        // Make sure everything is working properly
        ParseConfig();

        ValidatePluginDirectory();
        CheckPlugins();

        GD.Print("GLOBAL SINGLETON LOADED");
    }