ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Gael's profile - activity

2012-08-27 04:35:17 -0500 received badge  Famous Question (source)
2012-07-12 23:55:48 -0500 received badge  Taxonomist
2012-02-20 05:02:43 -0500 received badge  Notable Question (source)
2011-08-11 08:40:16 -0500 received badge  Popular Question (source)
2011-03-17 04:59:56 -0500 marked best answer Use of TCP/IP Protocol under ROS

All of the ROS client libraries (e.g. roscpp, rospy) implement this protocol for you. I probably wouldn't recommend reimplementing TCPROS as first step in getting used to ROS. You should be able to write a program using one of the client libraries.

FYI: I would also look for existing packages that may already implement drivers for your hardware here:

http://www.ros.org/browse/list.php

2011-03-17 04:59:30 -0500 marked best answer Use of TCP/IP Protocol under ROS

Gael,

One of the main point of ROS is to enable distributed architectures easily. It therefore makes use of TCPROS to make inter-process communication transparent to the programmer. I.e. if your node runs on your local machine or on a machine at the other side of the world, your code stays the same. This is realized via the publisher/subscriber paradigm. A bit like CORBA if I am not wrong.

In your case, you want to have two nodes collaborating together:

  • One node that is the driver for your arm: It speaks with the arm hardware, subscribes to command topics, and broadcasts the internal state(s) of your arm.
  • One node that acts as a remote interface for your arm: It reacts to user inputs, subscribes to the internal arm state topic(s) and broadcast commands to your arm.

Check the Cturtle tutorial on writting subscriber and broadcasters.

As Koen and Ken advise, you should have a look at the existing arm packages and inspire from them.

Raph

2011-03-17 04:59:30 -0500 received badge  Scholar (source)
2011-03-17 04:59:24 -0500 received badge  Supporter (source)
2011-03-17 04:59:09 -0500 answered a question Use of TCP/IP Protocol under ROS

@kwc

About roscpp, I found this wiki about RosCPP Publishers and Subscribers.

http://www.ros.org/wiki/roscpp/Overview/Publishers%20and%20Subscribers#Publishing_to_a_Topic

" transport_hints

The transport hints allow you to specify hints to roscpp's transport layer. This lets you specify things like preferring a UDP transport, using tcp nodelay, etc."

I will try to find more on that and get something working.

Thanks all,

Gael

2011-03-17 04:44:07 -0500 commented answer Use of TCP/IP Protocol under ROS
Yes, I'm focussing on the node which drive the arm (node which communicate with the hardware). And I understand the publisher/subscriber paradigm. I am looking for the way to express the node how to communicate with the hardware (through TCP/IP).
2011-03-17 04:35:27 -0500 commented answer Use of TCP/IP Protocol under ROS
I did not know the protocol was implemented in roscpp library. Is there any information about this you could give me ?
2011-03-17 04:33:46 -0500 commented answer Use of TCP/IP Protocol under ROS
We are currently working on the hardware part, so I don't think there is any packages that have been implemented to control our hardware. Anyway i'm sur there are already packages already implemented to allow TCP/IP communication. I cannot find any of those.
2011-03-17 04:28:28 -0500 commented answer Use of TCP/IP Protocol under ROS
The ROS GUI is running on the host PC (Ubuntu). The Targets are a couple of Embedded Boards (DSPs which control the arm), all communicating with the host PC through a hub using TCP/IP. I'm interrest to implement the ROS part of the TCP/IP communication.
2011-03-17 03:17:23 -0500 asked a question Use of TCP/IP Protocol under ROS

Hi all,

I am kind of new in ROS (well … finished the turtlesim tutorial though :-D…) and currently trying to get functional a new stack to control an arm-robot through TCP/IP.

I understand that ROS allows us to communicate using the TCP/IP protocol and that there is some kind of library called TCPROS which can be implemented to do so (explained in http://www.ros.org/wiki/ROS/TCPROS.

I was wondering if anybody already implemented it, or if there were any existing packages I could get inspiration from.

Cheers,

Gael