Beispiel #1
0
        private void ImportAssets()
        {
            if (!statusEvents["connected"].WaitOne(timeout * 1000))
            {
                Debug.LogWarning("Failed to connect to ROS before timeout");
                return;
            }

            // setup urdfImporter
            RosBridgeClient.UrdfImporter urdfImporter = new RosBridgeClient.UrdfImporter(rosSocket, assetPath);
            statusEvents["robotNameReceived"]        = urdfImporter.Status["robotNameReceived"];
            statusEvents["robotDescriptionReceived"] = urdfImporter.Status["robotDescriptionReceived"];
            statusEvents["resourceFilesReceived"]    = urdfImporter.Status["resourceFilesReceived"];

            urdfImporter.Import();

            if (statusEvents["robotNameReceived"].WaitOne(timeout * 1000))
            {
                robotName      = urdfImporter.RobotName;
                localDirectory = urdfImporter.LocalDirectory;
            }

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

            rosSocket.Close();
        }
Beispiel #2
0
        private void rosSocketConnect()
        {
            // initialize
            foreach (ManualResetEvent manualResetEvent in status.Values)
            {
                manualResetEvent.Reset();
            }

            // connect to rosbrige_suite:
            RosBridgeClient.Protocols.IProtocol protocol = GetProtocol();
            RosSocket rosSocket = new RosSocket(protocol);

            CheckConnection(protocol);

            if (!status["connected"].WaitOne(0))
            {
                rosSocket.Close();
                return;
            }

            // setup urdfImporter
            RosBridgeClient.UrdfImporter urdfImporter = new RosBridgeClient.UrdfImporter(rosSocket, assetPath);
            status["robotNameReceived"]        = urdfImporter.Status["robotNameReceived"];
            status["robotDescriptionReceived"] = urdfImporter.Status["robotDescriptionReceived"];
            status["resourceFilesReceived"]    = urdfImporter.Status["resourceFilesReceived"];

            urdfImporter.Import();

            if (status["robotNameReceived"].WaitOne(timeout * 1000))
            {
                robotName      = urdfImporter.RobotName;
                localDirectory = urdfImporter.LocalDirectory;
            }

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

            status["disconnected"].Set();
            rosSocket.Close();
        }
        private void rosSocketConnect()
        {
            // intialize
            foreach (ManualResetEvent manualResetEvent in status.Values)
            {
                manualResetEvent.Reset();
            }

            // connect to ROSbridge
            RosSocket rosSocket = new RosSocket(address);

            status["connected"].Set();

            // setup urdfImporter
            urdfImporter = new RosBridgeClient.UrdfImporter(rosSocket, urdfAssetPath);
            status["robotNameReceived"]        = urdfImporter.Status["robotNameReceived"];
            status["robotDescriptionReceived"] = urdfImporter.Status["robotDescriptionReceived"];
            status["resourceFilesReceived"]    = urdfImporter.Status["resourceFilesReceived"];
            Thread 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();
        }