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

Luis Ruiz's profile - activity

2021-12-30 04:18:19 -0500 received badge  Good Question (source)
2020-12-15 14:24:29 -0500 received badge  Nice Question (source)
2020-05-03 23:36:22 -0500 marked best answer Multiple subscriber queue allocation using the same callback

I am creating multiple subscribers using the same callback function as in this post, the code is here.

Basically is this:

for ( int i = 0; i<topics.size(); i++ )  
    sub[i] = n_.subscribe( topics[i], queue_size, &MyClass::callback, this );

In this case to whom is assigned queue_size? How does it work?

I would like to think that queue_size is assigned to the subscriber sub[i] and that it doesn't matter that all the subscribers use the same callback. I mean:

Is the queue_size independent of the callback function?

2020-03-26 16:44:09 -0500 received badge  Famous Question (source)
2019-06-08 22:33:13 -0500 commented answer GLib-GObject-CRITICAL **: 16:48:21.136: g_object_unref: assertion 'G_IS_OBJECT (object)' failed Attempt to unlock mutex that was not locked Aborted (core dumped)

This is related to this solution, I think the image_view package has to be revised.

2019-06-08 22:30:26 -0500 commented answer Unable to view image using image_view in ROS Indigo with rosberrypi_cam

This works, but at this date 2019/Jun/09, it has not been fixed in the image_view package. In the meanwhile I use rqt_im

2019-06-08 22:30:04 -0500 commented answer Unable to view image using image_view in ROS Indigo with rosberrypi_cam

This works, but at this date 2019/Jun/09 its has not been fixed in the image_view package. In the meanwhile I use rqt_im

2019-06-08 22:28:51 -0500 commented answer Unable to view image using image_view in ROS Indigo with rosberrypi_cam

This works, but at this date 2019/Jun/09 its has not been fixed in the image_view package. In the meanwhile I use rqt_im

2019-06-08 22:28:36 -0500 commented answer Unable to view image using image_view in ROS Indigo with rosberrypi_cam

This works, but at this date 2019/Jun/09 its has not been fixed in teh image_view package. In teh meanwhile I use rqt_im

2018-12-07 02:50:43 -0500 received badge  Famous Question (source)
2018-05-30 05:06:38 -0500 received badge  Famous Question (source)
2018-03-22 02:48:29 -0500 received badge  Famous Question (source)
2018-01-22 09:07:26 -0500 received badge  Famous Question (source)
2017-12-22 14:31:07 -0500 received badge  Notable Question (source)
2017-09-15 14:03:37 -0500 received badge  Notable Question (source)
2017-06-23 03:51:20 -0500 received badge  Famous Question (source)
2017-01-29 11:58:18 -0500 received badge  Popular Question (source)
2016-11-01 05:04:43 -0500 received badge  Popular Question (source)
2016-10-31 00:36:41 -0500 received badge  Notable Question (source)
2016-10-31 00:30:55 -0500 asked a question How to run "tf view_frames" for a remapped tf

I remapped /tf to /tf_0, but I can't get rosrun tf view_frames to show me the tree for /tf_0. How to do it?

2016-10-12 23:54:06 -0500 received badge  Notable Question (source)
2016-09-28 01:24:22 -0500 received badge  Popular Question (source)
2016-09-28 00:36:30 -0500 answered a question Can't ssh by name with more than 3 robots

I asked here and solved the problem. I had to configure the /etc/hosts files properly.

2016-09-27 08:02:51 -0500 commented question Can't ssh by name with more than 3 robots

Well, I use it on robots using ROS, so maybe someone had this issue and can guide me.

2016-09-27 03:19:45 -0500 asked a question Can't ssh by name with more than 3 robots

I am using a main computer to launch the ros nodes in 4 robots. These robots have odroids. I can ssh into the robots by name:

ssh odroid@odroid-machine1.local
ssh odroid@odroid-machine2.local
ssh odroid@odroid-machine3.local
ssh odroid@odroid-machine4.local

I can ssh by name to all the robots except 1 odroid@odroid-machine4.local. To that one I need to ssh by ip address but I need to ssh by name to launch the nodes on it.

The network is done with a router, and something funny is happening. If I do not connect the router to internet I cannot ssh odroid-machine4.local by name, only by ip address. If a connect the router to internet everything is fine. The thing is that for some of my experiments I need to move to a place where I do not have internet access.

I think I might have some configuration problems but I do not know how to debug them.

Today I reinstalled Ubuntu from zero on odroid-machine4.local. Then I reinstalled all the software and configured the network as I always do for all the robots. I was able to ssh odroid-machine4.local by name. Then I connected all the robots to the network and again odroid-machine4.local was not recognized by name. It was until I connected the router to internet that I was able to ssh by name.

I even tried with a different router and I have the same problem.

I think I need to configure something but I don't know what.

2016-09-11 04:27:30 -0500 marked best answer How to start a ROS node on startup?

I am using an Odroid U3 with my robot, Ubuntu 14.04. I am using an external computer to launch the ROS node of the robot.

I was wondering if there is a way to start ROS in the robot after the Odroid starts up. Like if the robot were turned on with the ROS node running after the startup. That way I would not have to use the external computer. Right now I do not need to monitor the robot so it is OK if I do not have a roscore running externally.

2016-08-29 04:32:24 -0500 received badge  Notable Question (source)
2016-08-27 03:28:15 -0500 received badge  Popular Question (source)
2016-08-27 01:27:56 -0500 received badge  Nice Question (source)
2016-08-21 20:09:03 -0500 asked a question Code snippet license

If I use a code snippet from ros answers, then, should my program be at least CC licensed?

What if I use an url link to the answer as a comment inside my code?

2016-07-19 03:04:21 -0500 received badge  Notable Question (source)
2016-06-27 07:11:41 -0500 received badge  Popular Question (source)
2016-06-23 22:52:07 -0500 asked a question How to run without a machine name from launch file?

I have a group of robots. I start the programs from a "master" computer. In that computer I set up the machine names and then from a main launch file I decide with programs to run in which robot/machine, everything works.

<machine name="robot_1" address="..." user=".." env-loader="..." />

Now, I am debugging one of the programs independently, so there is no need to assign machine names. Usually I am calling several launch files, and in the launch files I run nodes like this:

<node machine="$(arg machine_name)" name="node_name" pkg="pkg_name" type="node_name" >
       ... setup ...
</node>

If I do not set up the machine name beforehand, ROS trows an error. So, is there a way to run in "this machine" without assigning a machine name? I mean, without having to change the launch files or running the configuration script to assign a machine name.

The program I am want to debug is not in the same package as the configuration file so with this I would not have to make changes in the launch files every time I want to debug.

2016-04-26 08:45:11 -0500 marked best answer Select between a network or local publisher

I am running 4 robots in a network. I was wondering if it is possible to select/configure if a published topic is available for all the robots in the network or only for itself. Right now when I run the programs all the topics are available for everyone in the network.

A robot is processing an image and at the same time it is sending information through the network, I think it makes no sense to publish the image topics on the network.

In other words if a topic is not needed on the network, does it get published on the network?

This question is related.

2016-04-26 03:54:34 -0500 received badge  Famous Question (source)
2016-04-26 01:22:56 -0500 marked best answer Network data loss using 4 robots

I have a group of four robots. Right now I am doing testings on the data transmission over a wireless network, the output of rqt_graph is shown below.

image description

  • Robot 1, 2 and 3 are different robots sending a message.
  • Leader 1, 2 and 3 are the same leader robot running the listener 3 times.

So, I have 4 robots, 3 sending, 1 receiving. I want my application to be as real time as possible. I am running at 30 Hz. First I tough to put nothing on the stack, so the data I receive is always the newest one, the publishers and subscribers are set with a stack size of 1, but with that I lose a lot of data. The output is shown below:

  • Machine is the robot sending data
  • Message is the message number received
  • Counter is the message number expected

I print out whenever Message and Counter are different and at every second.

[ INFO] [1458884633.094665493]: Machine <0> Message<150>
[ WARN] [1458884633.249164663]: Machine <1> Message<188> Counter <186>
[ WARN] [1458884633.249326863]: Machine <1> Message<192> Counter <189>
[ INFO] [1458884633.261020475]: Machine <2> Message<270>
[ WARN] [1458884633.367932119]: Machine <0> Message<154> Counter <152>
[ WARN] [1458884633.368090775]: Machine <0> Message<158> Counter <155>
[ WARN] [1458884633.619671753]: Machine <1> Message<202> Counter <196>
[ WARN] [1458884633.720845046]: Machine <0> Message<165> Counter <163>
[ WARN] [1458884633.721000330]: Machine <0> Message<168> Counter <166>
[ INFO] [1458884633.832237240]: Machine <1> Message<210>
[ WARN] [1458884633.972283715]: Machine <2> Message<289> Counter <285>
[ WARN] [1458884633.972402930]: Machine <2> Message<291> Counter <290>
[ INFO] [1458884634.102028388]: Machine <0> Message<180>
[ WARN] [1458884634.154272541]: Machine <1> Message<217> Counter <214>
[ WARN] [1458884634.154369931]: Machine <1> Message<219> Counter <218>
[ INFO] [1458884634.262470496]: Machine <2> Message<300>
[ INFO] [1458884634.832749255]: Machine <1> Message<240>
[ WARN] [1458884635.340362798]: Machine <0> Message<215> Counter <209>
[ WARN] [1458884635.340468232]: Machine <0> Message<217> Counter <216>

Then, I tried increasing the stack to 10 elements, and the output was improved:

[ INFO] [1458885577.781345375]: Machine <0> Message<150>
[ INFO] [1458885578.197521359]: Machine <1> Message<180>
[ INFO] [1458885578.806767762]: Machine <0> Message<180>
[ INFO] [1458885578.973456886]: Machine <2> Message<240>
[ WARN] [1458885578.973578372]: Machine <2> Message<249> Counter <241>
[ INFO] [1458885579.348755549]: Machine <2> Message<270>
[ INFO] [1458885579.417701869]: Machine <1> Message<210>
[ INFO] [1458885579.781167298]: Machine <0> Message<210>
[ WARN] [1458885580.121854098]: Machine <1> Message<222> Counter <218>
[ WARN] [1458885580.121951202]: Machine <1> Message<228> Counter <223>
[ INFO] [1458885580.390034144]: Machine <1> Message<240>

If I increase the stack then I start experiencing a lag. I think I will have to do a trade between the speed in the transmission and the stack size to something that suits my application. But, I was wondering if there is a way to improve the network communication? Maybe some settings in ROS or my network that I am not taking into account.

EDIT 1

As al_dev suggested, changing to UDP improved the transmission, but now I can't get to work one detail. I am ... (more)

2016-04-04 09:08:21 -0500 received badge  Notable Question (source)