private void ImportAssets()
        {
            // setup Urdf Transfer
            UrdfTransferFromRos urdfTransfer = new UrdfTransferFromRos(rosSocket, assetPath, urdfParameter);

            StatusEvents["robotNameReceived"]        = urdfTransfer.Status["robotNameReceived"];
            StatusEvents["robotDescriptionReceived"] = urdfTransfer.Status["robotDescriptionReceived"];
            StatusEvents["resourceFilesReceived"]    = urdfTransfer.Status["resourceFilesReceived"];

            urdfTransfer.Transfer();

            if (StatusEvents["robotNameReceived"].WaitOne(timeout * 1000))
            {
                robotName      = urdfTransfer.RobotName;
                localDirectory = urdfTransfer.LocalUrdfDirectory;
            }

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

            rosSocket.Close();
        }
        public static void Main(string[] args)
        {
            string uri = "ws://192.168.56.102:9090";

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

                // Publication:
                UrdfTransferFromRos urdfTransferFromRos = new UrdfTransferFromRos(rosSocket, System.IO.Directory.GetCurrentDirectory(), urdfParameter);
                urdfTransferFromRos.Transfer();

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

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

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

                rosSocket.Close();
            }

            Console.WriteLine("Press any key to close...");
            Console.ReadKey(true);
        }
예제 #3
0
        public void ShouldImportFilesDirectly()
        {
            string uri = "ws://localhost:9090";

            RosSharp.RosBridgeClient.Protocols.WebSocketNetProtocol webSocketNetProtocol = new RosSharp.RosBridgeClient.Protocols.WebSocketNetProtocol(uri);
            RosSocket rosSocket     = new RosSocket(webSocketNetProtocol);
            string    urdfParameter = "/robot_description";
            string    t             = JsonConvert.SerializeObject(rosSocket);

            // Publication:
            UrdfTransferFromRos urdfTransferFromRos = new UrdfTransferFromRos(rosSocket, System.IO.Directory.GetCurrentDirectory(), urdfParameter);

            //urdfTransferFromRos.Transfer();
            urdfTransferFromRos.RobotName = "UR3";
            urdfTransferFromRos.ImportResourceFiles(UrdfTests.Properties.Resources.xmlUr5);
            urdfTransferFromRos.Status["resourceFilesReceived"].WaitOne();
            Console.WriteLine("Resource Files received " + urdfTransferFromRos.FilesBeingProcessed.Count);

            rosSocket.Close();
        }
예제 #4
0
        public static void Main(string[] args)
        {
            //string uri = "ws://localhost:9090";
            string uri = "ws://localhost:9090";

            Console.WriteLine($"Trying to connect to RosBridge via {uri}");

            try
            {
                for (int i = 1; i < 3; i++)
                {
                    RosBridgeClient.Protocols.WebSocketNetProtocol webSocketNetProtocol = new RosBridgeClient.Protocols.WebSocketNetProtocol(uri);
                    RosSocket rosSocket     = new RosSocket(webSocketNetProtocol);
                    string    urdfParameter = "/robot_description";

                    // Publication:
                    UrdfTransferFromRos urdfTransferFromRos = new UrdfTransferFromRos(rosSocket, System.IO.Directory.GetCurrentDirectory(), urdfParameter);
                    urdfTransferFromRos.Transfer();

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

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

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

                    rosSocket.Close();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Failed to connect: {ex.Message}");
            }

            Console.WriteLine("Press any key to close...");
            Console.ReadKey(true);
        }
예제 #5
0
        private void ImportAssets()
        {
            // setup Urdf Transfer
            UrdfTransferFromRos urdfTransfer = new UrdfTransferFromRos(rosSocket, assetPath, urdfParameter);

            StatusEvents["robotNameReceived"]        = urdfTransfer.Status["robotNameReceived"];
            StatusEvents["robotDescriptionReceived"] = urdfTransfer.Status["robotDescriptionReceived"];
            StatusEvents["resourceFilesReceived"]    = urdfTransfer.Status["resourceFilesReceived"];

            urdfTransfer.Transfer();

            if (StatusEvents["robotNameReceived"].WaitOne(timeout * 1000))
            {
                robotName      = urdfTransfer.RobotName;
                localDirectory = urdfTransfer.LocalUrdfDirectory;
            }

            // import URDF assets:
            if (StatusEvents["resourceFilesReceived"].WaitOne(timeout * 1000))
            {
                Debug.Log("Imported urdf resources to " + localDirectory);
                Debug.Log("Now creating txt files from .dae files");
                var files = Directory.GetFiles(localDirectory, "*.dae", SearchOption.AllDirectories);
                foreach (var file in files)
                {
                    string newPath = file.Replace(".dae", ".txt");
                    Debug.Log("Copied " + Path.GetFileName(file));
                    File.Copy(file, newPath);
                }
            }
            else
            {
                Debug.LogWarning("Not all resource files have been received before timeout.");
            }

            rosSocket.Close();
        }