locked
Teleoperation work with MRDS RRS feed

  • Question

  • Hi everybody

    I work on teleoperation and my project consist three sections: 1)Master robot. 2)Slave robot. 3)Socket programming with LAN network.

    My master robot is a Omni Haptic from sensable company and I write a C++ program in Microsoft visual studio 2005 for initialize my master robot (Haptic) and ready for connecting to slave robot.

    My slave robot already is simulated with OpenGL (graphical engine) and we use Microsoft RDS for simulation slave robot now.

    But I have a question that Microsoft RDS support socket programming and I can send and recieve data with socket (IEEE 1394)?

    If answer of my question is yes. How can I accomplish that work?

     

    Monday, November 28, 2011 6:28 AM

Answers

  • As described above, what you propose is possible with RDS, but only you can decide if it is the right choice.

    I'm not sure what you mean by "simulate a flexible robot".  The RDS simulator comes with sample robots and does allow for the creation of custom robots.  It is an advanced topic that is covered in the book.

    "Use Socket Programming in RDS".  Again RDS is a flexible system that is intended to be augmented with the capabilities you need.  It sounds to me like you want to send information via sockets to a remote robot (which in this case is a simulated robot running in the RDS simulation).  In addition to creating your simulted robot you would need to create a "SocketListener" service that would partner with your simulated robot (or a robot-controller service) that takes the information it recieves over the socket and translates it into messages to pass to the simulated robot.

    The book and samples are the best way to get started.

    Friday, March 9, 2012 8:27 PM

All replies

  • The transport that you use in your services as a developer is entirely up to you. It has nothing to do with RDS. So the anwswer is "yes" you can use sockets -- provided that you write the code.

    Trevor

     

    Monday, November 28, 2011 7:14 AM
  • Hi Taylor.

    Thank you  for replying. So we can use Microsoft RDS for my work.

    I am tying to learn RDS and I am beginner in this way. Can you help me which book is best for my job? I searched in internet and found three book about RDS and first I read "robot development using Microsoft Robotics developer studio" by Shih-Chung Kang. Do you advise me to read this book for this work(Teleoperation and Socket programming)?

    Tuesday, November 29, 2011 6:16 AM
  • That book is about VPL and it will not help you much. In fact, I don't think that there are any books about RDS that will help you with socket programming. This is a basic Windows task, and it is not specific to RDS.

    You might want to check out Professional Robotics Developer Studio. Let me say up front that I am one of the authors, so I am biased :-)  However, you can download the sample code from CodePlex without buying the book and you might find that helpful.

    Trevor

     

    Wednesday, November 30, 2011 7:47 AM
  • Professional Robotics Developer Studio is  a great  book, and covers some advanced topics very well. It was written for a previous version, so you have to add a bit of research into matching it to the current version (including the V4 Beta) but it is well worth the effort.

    Trevor is an excellent author. I just read his latest blog post on the Kinect and it was very good.

    http://blogs.msdn.com/b/msroboticsstudio/archive/2011/11/29/kinect-for-robotics.aspx

     

     

    Win sockets themselves are pretty easy to use - and have been in use for so long there are millions of examples on the web.

    One thing you might consider - for teleoperation - is that there IS a basic webcam example provided with RDS.  When I previously experimented with teleoperation - I coded a very simple http server (aka web server) on the java (sending) side and fit it into the webcam sample on the RDS side - that way, existing VPL and other RDS code could use the remote images.  At the time, that seemed to be the easiest path, and worked ok for me.


    I just re-read and realized you mentioned 1394 - that's more commonly known in the US as firewire. You CAN do socket programming over firewire, but I do not think it is very common.

    http://en.wikipedia.org/wiki/IEEE_1394

    I believe you would get a video frame over 1394 on the slave side, then transmit it over normal TCP/IP (sockets as you mentioned) to the master.  Not use 1394 sockets. It probably is just a language misunderstanding.

     


    • Edited by Spiked3 Wednesday, November 30, 2011 8:18 AM
    Wednesday, November 30, 2011 8:05 AM
  • Hi Spiked3

    thank you for replying to me. I make mistake about socket programming. IEEE1394 is connection port for Omni Haptic to connect it to computer.

    we use TCP/IP for socket programming.In fact, a program have been written for initializing Haptic and connecting to slave robot in C++
    language.

    I want to simulate flexible robot in MRDS and transfer data from master program to slave with socket and TCP/IP.

    Now I don't know how can I enter this data from master side to RDS program.

     

    Thursday, December 1, 2011 9:22 AM
  • I think there may be some mis-understanding as to what pieces of RDS should be used for. Data transfer/communications in a fast robust manner is what RDS is all about, so you would be duplicating code to use sockets for the same thing. The simulation portion of RDS is to create an environment to test your RDS programs, not to test a non-RDS robot in.

    If this is still confusing, get the book we discussed, Professional Robotics Developer Studio. The first couple of chapters are very advanced, but you will quickly get an idea as to the purpose and methods of RDS.

    Mike

    Thursday, December 1, 2011 10:25 AM
  • you thought correctly.I get this project presently and I would confuse in this project and I don't know RDS is proper for this function.

    I want only a platform for simulating a flexible robot and communicate with it by socket programming through internet.

    I don't know obviously that I can simulate a flexible robot and use socket programming in RDS. Please help me about these.

     

     

    Saturday, December 3, 2011 10:53 AM
  • As described above, what you propose is possible with RDS, but only you can decide if it is the right choice.

    I'm not sure what you mean by "simulate a flexible robot".  The RDS simulator comes with sample robots and does allow for the creation of custom robots.  It is an advanced topic that is covered in the book.

    "Use Socket Programming in RDS".  Again RDS is a flexible system that is intended to be augmented with the capabilities you need.  It sounds to me like you want to send information via sockets to a remote robot (which in this case is a simulated robot running in the RDS simulation).  In addition to creating your simulted robot you would need to create a "SocketListener" service that would partner with your simulated robot (or a robot-controller service) that takes the information it recieves over the socket and translates it into messages to pass to the simulated robot.

    The book and samples are the best way to get started.

    Friday, March 9, 2012 8:27 PM
  • Hi Mr Garshon Parent

    I can connect two computer with MRDS and provide a remote controller for LynxL6Arm robot.

    I endeavor for simulating flexible robot with one flexible link. I want to use soft body in XNA in order to append this to MRDS.

    thank you for replying.

    Sunday, March 11, 2012 2:58 PM