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

Anton Belev's profile - activity

2018-04-16 09:46:23 -0500 received badge  Student (source)
2017-06-30 11:26:44 -0500 received badge  Famous Question (source)
2017-06-30 11:26:44 -0500 received badge  Notable Question (source)
2017-06-30 11:26:44 -0500 received badge  Popular Question (source)
2015-07-29 10:13:07 -0500 received badge  Famous Question (source)
2015-03-19 07:23:59 -0500 received badge  Famous Question (source)
2015-03-17 08:20:41 -0500 asked a question MoveIt! and Tower of Hanoi

I'm researching the capabilities of MoveIt! planning library. I'm watching this example of library running on Baxter. I tried this tutorial on the robot in our department and it is running as expected. However this demonstration is showing how to introduce artificial obstacles in the environment and specific end position of the robot arms. Is it possible to also get the calculated optimal path back from the planner? And one more question is - is it possible to use this planner to solve the Tower of Hanoi problem? I'll be happy someone give me more sophisticated examples of this planner's capabilities.

2015-02-25 17:13:26 -0500 received badge  Notable Question (source)
2015-02-19 14:54:57 -0500 received badge  Famous Question (source)
2015-02-15 01:39:07 -0500 received badge  Notable Question (source)
2015-02-14 13:09:23 -0500 received badge  Popular Question (source)
2015-02-14 12:34:28 -0500 commented answer ROS Nodes and topics - are nodes really decoupled?

The only question that arise in your answer is - since nodes are establishing TCP/IP Connection to each other to improve efficiency, this implies that a given subscriber has to open n TCP/IP connections in order to get messages from n publishers. Then the Space decoupling is also questionable.

2015-02-14 12:27:49 -0500 commented answer ROS Nodes and topics - are nodes really decoupled?

Fabulous answer, much appreciated, @gvdhoorn!

2015-02-14 10:21:04 -0500 asked a question ROS Nodes and topics - are nodes really decoupled?

http://wiki.ros.org/ROS/Technical%20O...

Note how the two sides are decoupled. All the hokuyo_node node does is publish scans, without knowledge of whether anyone is subscribed. All the rviz does is subscribe to scans, without knowledge of whether anyone is publishing them. The two nodes can be started, killed, and restarted, in any order, without inducing any error conditions.

We all know these statements that using topics, decouples ROS nodes. However reading the documentation on how the connection between the nodes established makes me question this statement. However in the transport section states the following:

Given a publisher URI, a subscribing node negotiates a connection, using the appropriate transport, with that publisher, via XMLRPC. The result of the negotiation is that the two nodes are connected, with messages streaming from publisher to subscriber.

Each transport has its own protocol for how the message data is exchanged. For example, using TCP, the negotiation would involve the publisher giving the subscriber the IP address and port on which to call connect. The subscriber then creates a TCP/IP socket to the specified address and port. The nodes exchange a Connection Header that includes information like the MD5 sum of the message type and the name of the topic, and then the publisher begins sending serialized message data directly over the socket.

So my question is, are the publisher and the subscriber really decoupled? After all in order the subscriber to get a message it has to open TCP/IP connection the the publisher port. And if the publishers are n the subscriber needs to open n connections. This means that it's not completely true that the subscriber won't be bothered if one of the publishers fails. So what exactly is meant by that statement that the nodes are decoupled?

2015-02-11 12:42:48 -0500 commented question Ambiguity: Establishing a service connection

Anyone any ideas?

2015-02-11 12:41:30 -0500 received badge  Enthusiast
2015-02-10 06:34:56 -0500 received badge  Organizer (source)
2015-02-08 12:55:30 -0500 asked a question Ambiguity: Establishing a service connection

I'm reading through this tutorial . Section 7 is saying the following:

The most recent node to register with the master is considered the current service provider.

Say now we have:

  1. Node A, which is service provider for service "add_two_ints", registers with Master.
  2. Node C, which is client to the "add_two_ints" service registers with the Master.
  3. Node C sends request
  4. Node A sends response
  5. Node B, which is service provider for service "add_two_ints", registers with Master.
  6. Node C sends request

In that situation how does the Master hooks up Node C to Node A after point 2? Does the Master maintain a table with the lastly registered nodes which a provider to a service? The citation above is quite unclear, at first I assumed that at a given point there can be only one service provider (to any service) <- The latter not correct, right?

At point 6, where will Node C get the response from - node A or node B? (assuming that the connection is not persistent). Here I assume that the response will come from A, am I correct?

Then subsection 7.1, which is about persistent connections to service is saying:

Greater care should be used with persistent connections. If a new service provider appears, it does not interrupt an ongoing connection. Similarly, if a persistent connection fails, there is no attempt made to reconnect.

Considering the last citation - at point 6, where will Node C get the response from - node A or node B? (assuming that the connection is persistent). Here I assume that C will get a response from A, am I correct?

I'm doing a model checking on ROS, that's why I'm asking such a detailed questions. The most important question here for me is how actually the Master hooks up the server to client and what will the Master do, if the client registers first (the wait_for_service function) and then a provider registers.

Again sorry for asking more than one question, but it's all about how the client service communication is established. Partial answers are acceptable as well. Much appreciated!!!

2015-02-06 11:21:18 -0500 received badge  Popular Question (source)
2015-02-01 06:56:11 -0500 received badge  Scholar (source)
2015-01-28 14:26:55 -0500 commented answer ROS subscriber/publisher communication

Thank you! That's helpful.

2015-01-28 12:34:32 -0500 received badge  Notable Question (source)
2015-01-28 08:08:23 -0500 received badge  Popular Question (source)
2015-01-27 17:44:58 -0500 asked a question ROS subscriber/publisher communication

These slides introducing ROS subscribers/publishers on slide 7 are saying that one topic can have multiple subscribers/publishers. If you scroll down a bit in the official tutorials here you can see the actual protocol for establishing connection between single subscriber and publisher. My question is, in case you have multiple publishers to a single topic, how does the communication changes in order to handle these publishers? Does one publisher blocks until the subscriber is ready to process more messages? Are the process messages handled using a queue? How is the second connection established? What if there are many-to-many relationship between the subscribers/publishers? Are the subscriber just removing msg-s from a queue and publishers pushing msgs on the queue? Can this queue overflow (if there is a queue at all)?

More in depth documentation of the subscriber/publisher architecture is acceptable as an answer. Also if you know the answer of some of the questions it will be helpful as well.

Thank you, much appreciated!

2015-01-16 04:47:07 -0500 received badge  Supporter (source)
2015-01-14 11:38:44 -0500 asked a question import roslib; roslib.load_manifest('organizer') error

Hi, I'm new to ROS so probably my error is silly. I'm trying to run this open source project on Baxter. I have pasted the master branch under ros_ws/src. When I try to run the right_hand_camera_srv.py file like that, rosrun organizer-baxter-master right_hand_camera_srv.py, I'm getting the following error:

Traceback (most recent call last):
  File "/home/anton/ros_ws/src/organizer-baxter-master/src/right_hand_camera_srv.py", line 3, in <module>
    import roslib; roslib.load_manifest('organizer')
  File "/opt/ros/hydro/lib/python2.7/dist-packages/roslib/launcher.py", line 62, in load_manifest
    sys.path = _generate_python_path(package_name, _rospack) + sys.path
  File "/opt/ros/hydro/lib/python2.7/dist-packages/roslib/launcher.py", line 93, in _generate_python_path
    m = rospack.get_manifest(pkg)
  File "/usr/lib/python2.7/dist-packages/rospkg/rospack.py", line 159, in get_manifest
    return self._load_manifest(name)
  File "/usr/lib/python2.7/dist-packages/rospkg/rospack.py", line 198, in _load_manifest
    retval = self._manifests[name] = parse_manifest_file(self.get_path(name), self._manifest_name, rospack=self)
  File "/usr/lib/python2.7/dist-packages/rospkg/rospack.py", line 190, in get_path
    raise ResourceNotFound(name, ros_paths=self._ros_paths)
rospkg.common.ResourceNotFound: organizer
ROS path [0]=/opt/ros/hydro/share/ros
ROS path [1]=/home/anton/ros_ws/src
ROS path [2]=/opt/ros/hydro/share
ROS path [3]=/opt/ros/hydro/stacks

What am I doing wrong?

2015-01-14 11:38:44 -0500 asked a question import roslib; roslib.load_manifest('organizer') not working

Hi, I'm new to ROS so probably my error is silly. I'm trying to run this open source project on Baxter. I have pasted the master branch under ros_ws/src. When I try to run the right_hand_camera_srv.py file like that, rosrun organizer-baxter-master right_hand_camera_srv.py, I'm getting the following error:

Traceback (most recent call last): File "/home/anton/ros_ws/src/organizer-baxter-master/src/right_hand_camera_srv.py", line 3, in <module> import roslib; roslib.load_manifest('organizer') File "/opt/ros/hydro/lib/python2.7/dist-packages/roslib/launcher.py", line 62, in load_manifest sys.path = _generate_python_path(package_name, _rospack) + sys.path File "/opt/ros/hydro/lib/python2.7/dist-packages/roslib/launcher.py", line 93, in _generate_python_path m = rospack.get_manifest(pkg) File "/usr/lib/python2.7/dist-packages/rospkg/rospack.py", line 159, in get_manifest return self._load_manifest(name) File "/usr/lib/python2.7/dist-packages/rospkg/rospack.py", line 198, in _load_manifest retval = self._manifests[name] = parse_manifest_file(self.get_path(name), self._manifest_name, rospack=self) File "/usr/lib/python2.7/dist-packages/rospkg/rospack.py", line 190, in get_path raise ResourceNotFound(name, ros_paths=self._ros_paths) rospkg.common.ResourceNotFound: organizer ROS path [0]=/opt/ros/hydro/share/ros ROS path [1]=/home/anton/ros_ws/src ROS path [2]=/opt/ros/hydro/share ROS path [3]=/opt/ros/hydro/stacks

What am I doing wrong? Thanks