예제 #1
0
        private static void DoWork()
        {
            string uri = "ws://localhost:9090";

            Console.WriteLine($"Trying to connect to RosBridge via {uri}");
            RosSharp.RosBridgeClient.Protocols.WebSocketNetProtocol webSocketNetProtocol = new RosSharp.RosBridgeClient.Protocols.WebSocketNetProtocol(uri);
            var protocol = RosSharp.RosBridgeClient.Protocols.ProtocolInitializer.GetProtocol(RosSharp.RosBridgeClient.Protocols.Protocol.WebSocketNET, uri);

            protocol.OnConnected += OnConnected;
            protocol.OnClosed    += OnClosed;
            rosSocket             = new RosSocket(protocol, RosSocket.SerializerEnum.Newtonsoft_JSON);
            rosSocket.Subscribe <Clock>("/clock", ReceiveMessage, 1000);
            publishId = rosSocket.Advertise <Clock>("/customTopic_clock");
            //rosSocket.Subscribe<RosSharp.RosBridgeClient.MessageTypes.Std.String>("/clock", ReceiveMessage);
        }
예제 #2
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();
        }
        public static RosSocket GetStandardRosSocket(string uri, Action OnConnected, Action OnClosed)
        {
            RosSharp.RosBridgeClient.Protocols.WebSocketNetProtocol webSocketNetProtocol = new RosSharp.RosBridgeClient.Protocols.WebSocketNetProtocol(uri);
            var protocol = RosSharp.RosBridgeClient.Protocols.ProtocolInitializer.GetProtocol(RosSharp.RosBridgeClient.Protocols.Protocol.WebSocketNET, uri);

            if (OnConnected != null)
            {
                protocol.OnConnected += (sender, eventArgs) => { OnConnected?.Invoke(); }
            }
            ;
            if (OnClosed != null)
            {
                protocol.OnClosed += (sender, eventArgs) => { OnClosed?.Invoke(); }
            }
            ;

            var rosSocket = new RosSocket(protocol, RosSocket.SerializerEnum.Newtonsoft_JSON);

            return(rosSocket);
        }
    }
}