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

PaulBouchier's profile - activity

2021-10-20 15:13:36 -0500 received badge  Famous Question (source)
2021-10-20 15:13:36 -0500 received badge  Notable Question (source)
2021-10-20 15:13:36 -0500 received badge  Popular Question (source)
2020-04-14 10:39:25 -0500 received badge  Nice Answer (source)
2020-03-31 15:51:46 -0500 edited question roslaunch in docker slow

roslaunch in docker slow I created a script & launch file which spawns 40 copies of a node that just prints an alive

2020-03-31 11:36:30 -0500 asked a question roslaunch in docker slow

roslaunch in docker slow I created a script & launch file which spawns 40 copies of a node that just prints an alive

2019-05-13 01:19:34 -0500 marked best answer How to plot a message bool in a bag file?

A lot of times there's a bool in a message which qualifies analog data in the message; e.g. nav_data_valid or is_stopped, and which needs to be viewed to understand node behavior. I know I can look at these values in rqt_bag by viewing the raw message, but that doesn't readily show 1-cycle blips in these booleans, or put them in the context of related variables like speed. rqt_bag and bag-tools/plot.py don't allow plotting bools.

I have to imagine this is a common use case - how do people handle it? Thanks for any suggestions.

2019-05-12 19:17:16 -0500 answered a question How to plot a message bool in a bag file?

Found that bag-tools/plot.py does actually plot bools as value 0 or 1 for False or True.

2019-05-12 17:51:47 -0500 edited question How to plot a message bool in a bag file?

How to plot a message bool in a bag file? A lot of times there's a bool in a message which qualifies analog data in the

2019-05-12 17:04:08 -0500 asked a question How to plot a boolean in a bag file?

How to plot a boolean in a bag file? A lot of times there's a bool in a message which qualifies analog data in the messa

2019-05-12 16:49:37 -0500 asked a question How to plot a message bool in a bag file?

How to plot a message bool in a bag file? A lot of times there's a bool in a message which qualifies analog data in the

2019-03-21 03:04:34 -0500 received badge  Self-Learner (source)
2019-03-01 04:56:04 -0500 received badge  Famous Question (source)
2018-06-06 17:51:36 -0500 received badge  Famous Question (source)
2018-05-24 03:49:27 -0500 received badge  Notable Question (source)
2018-04-29 17:02:44 -0500 marked best answer ros_tutorials roscpp talker/listener loses first message or two

This must've been seen before...I ran into it while trying to track down a lost message from a command-line app which publishes one message then exits. I'm running ros kinetic on Ubuntu 16.04.4. My colleague has duplicated the problem using the ros_tutorials, and even found it happens on indigo!

I downloaded the ros_tutorials and when I run the listener then the talker, I see the first one or two messages are not received by the listener. Note: I am careful to start the listener many seconds before the talker, so I know it's sitting there waiting to receive messages on the topic.


terminal 1:

$ rosrun roscpp_tutorials listener
[ INFO] [1522884464.985198808]: I heard: [hello world 3]
[ INFO] [1522884465.084941089]: I heard: [hello world 4]
[ INFO] [1522884465.184948624]: I heard: [hello world 5]

terminal 2:

$ rosrun roscpp_tutorials talker
[ INFO] [1522884464.684117550]: hello world 0
[ INFO] [1522884464.784338065]: hello world 1
[ INFO] [1522884464.884241317]: hello world 2
[ INFO] [1522884464.984259097]: hello world 3
[ INFO] [1522884465.084324610]: hello world 4
[ INFO] [1522884465.184348827]: hello world 5
^C[ INFO] [1522884465.284327998]: hello world 6

EDIT: The use case is I'm using a command-line utility to inject a fault-notification DiagnosticStatus message onto /diagnostics, where the diagnostic_aggregator is already up and running, and other publishers have been publishing for some time. In this case it is important to not lose messages - it is not a "emit sensor-data" use case, and the service model cannot be used.

FWIW the python talker/listener do not lose initial messages. The problem goes away if I put ros::Duration(1).sleep() between the call to advertise and the call to publish, but does not go away if I put a ros::Rate sleep() for 10 seconds between the advertise and the publish.

Once the messages start flowing they all come through - it's the first one or two that get lost.

EDIT2: The following code snippet in the talker seems to prevent initial packet loss. Advertising:

  ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 10, true);

  ros::Duration(0.5).sleep();
  ros::spinOnce();
  ros::Duration(0.5).sleep();

Inside the loop:

chatter_pub.publish(msg);
ros::spinOnce();
ros::Duration(0.5).sleep();

Something seems broken. Does anyone have any clues?

EDIT3: Per suggestion from @gvdhoorn I added chatter_pub.getNumSubscribers() between the ROS_INFO that prints what the talker is about to publish, and the actual publish.

Talker output:

$ rosrun experiments talker1
[ INFO] [1522935255.630339354]: hello world 0
[ INFO] [1522935255.630375560]: Number of subscribers before publishng: 0
[ INFO] [1522935255.730489884]: hello world 1
[ INFO] [1522935255.730574901]: Number of subscribers before publishng: 0
[ INFO] [1522935255.830478047]: hello world 2
[ INFO] [1522935255.830555734]: Number of subscribers before publishng: 0
[ INFO] [1522935255.930438125]: hello world 3
[ INFO] [1522935255.930517228]: Number of subscribers before publishng: 1
[ INFO] [1522935256.030550391]: hello world 4
[ INFO] [1522935256.030636388]: Number of subscribers before publishng: 1

Listener output:

$ rosrun experiments listener2 
[ INFO] [1522935255.931268459]: I heard: [hello world 3]
[ INFO] [1522935256.031134685]: I heard: [hello world ...
(more)
2018-04-27 19:22:51 -0500 marked best answer Custom messages in different package - Is tutorial correct?

In our system with >100 custom packages, there are >20 custom_msgs packages which provide for communication between packages. This question concerns correctly setting up CMakeLists.txt so the necessary messages get built before packages that depend on them.

The Defining Custom Messages tutorial shows how to declare build and exec dependencies in package.xml, and also says you need to declare a build dependency on message_generation and an exec dependency on message_runtime - this all makes sense.

The tutorial states you need to add the following to CMakeLists.txt:

find_package(message_generation)
catkin_package(CATKIN_DEPENDS message_runtime)
add_message_files(FILES your_msg_file.msg)

Is the last line correct? I understand add_message_files is needed in the package that declares the messages, but is it really also needed in packages that use the messages in the custom_msgs package? That would imply that every package that uses a custom message would need to list the messages it uses - it doesn't seem right.

Does the last line need to be deleted from the tutorial?

2018-04-27 19:22:51 -0500 received badge  Scholar (source)
2018-04-27 11:39:06 -0500 commented answer Custom messages in different package - Is tutorial correct?

Fixed http://wiki.ros.org/ROS/Tutorials/DefiningCustomMessages Thanks for your help!

2018-04-26 09:20:37 -0500 received badge  Popular Question (source)
2018-04-25 18:30:28 -0500 commented answer Custom messages in different package - Is tutorial correct?

Thanks for the confirmation @gvdhoorn. I didn't know whether to trust the catkin documentation you pointed to, but I see

2018-04-25 11:46:37 -0500 asked a question Custom messages in different package - Is tutorial correct?

Custom messages in different package - Is tutorial correct? In our system with >100 custom packages, there are >20

2018-04-16 11:56:46 -0500 received badge  Necromancer (source)
2018-04-05 10:34:04 -0500 edited answer ros_tutorials roscpp talker/listener loses first message or two

As @gvdhoorn and @knxa noted, this is expected behavior (though perhaps surprising), because the advertise() call return

2018-04-05 10:32:24 -0500 edited answer ros_tutorials roscpp talker/listener loses first message or two

As @gvdhoorn and @knxa noted, this is expected behavior (though perhaps surprising), because the advertise() call return

2018-04-05 10:31:43 -0500 edited answer ros_tutorials roscpp talker/listener loses first message or two

As @gvdhoorn and @knxa noted, this is expected behavior (though perhaps surprising), because the advertise() call return

2018-04-05 10:31:07 -0500 answered a question ros_tutorials roscpp talker/listener loses first message or two

As @gvdhoorn and @knxa noted, this is expected behavior (though perhaps surprising), because the advertise() call return

2018-04-05 09:57:12 -0500 received badge  Notable Question (source)
2018-04-05 09:55:43 -0500 edited question ros_tutorials roscpp talker/listener loses first message or two

ros_tutorials roscpp talker/listener loses first message or two This must've been seen before...I ran into it while tryi

2018-04-05 08:50:04 -0500 commented question ros_tutorials roscpp talker/listener loses first message or two

Thanks for the suggestion gvdhoorn. I updated the post with edit3 with a code snippet that waits until getNumSubscribers

2018-04-05 08:48:35 -0500 edited question ros_tutorials roscpp talker/listener loses first message or two

ros_tutorials roscpp talker/listener loses first message or two This must've been seen before...I ran into it while tryi

2018-04-05 08:12:02 -0500 edited question ros_tutorials roscpp talker/listener loses first message or two

ros_tutorials roscpp talker/listener loses first message or two This must've been seen before...I ran into it while tryi

2018-04-05 08:10:42 -0500 edited question ros_tutorials roscpp talker/listener loses first message or two

ros_tutorials roscpp talker/listener loses first message or two This must've been seen before...I ran into it while tryi

2018-04-05 08:10:18 -0500 edited question ros_tutorials roscpp talker/listener loses first message or two

ros_tutorials roscpp talker/listener loses first message or two This must've been seen before...I ran into it while tryi

2018-04-05 08:06:35 -0500 commented answer ros_tutorials roscpp talker/listener loses first message or two

I edited the question to clarify the use case - the listener has been up a long time (diagnostic_aggregator). I can't us

2018-04-05 07:33:41 -0500 edited question ros_tutorials roscpp talker/listener loses first message or two

ros_tutorials roscpp talker/listener loses first message or two This must've been seen before...I ran into it while tryi

2018-04-05 07:32:06 -0500 edited question ros_tutorials roscpp talker/listener loses first message or two

ros_tutorials roscpp talker/listener loses first message or two This must've been seen before...I ran into it while tryi

2018-04-05 07:30:52 -0500 received badge  Popular Question (source)
2018-04-05 07:21:51 -0500 edited question ros_tutorials roscpp talker/listener loses first message or two

ros_tutorials roscpp talker/listener loses first message or two This must've been seen before...I ran into it while tryi

2018-04-04 18:35:16 -0500 asked a question ros_tutorials roscpp talker/listener loses first message or two

ros_tutorials roscpp talker/listener loses first message or two This must've been seen before...I ran into it while tryi

2018-03-19 13:54:18 -0500 answered a question Show ROS_DEBUG ROS_INFO with catkin_make run_tests

I ran into a variant of this problem. In my case, the first test would print ROS_INFO messages, but subsequent tests wou

2017-04-19 16:02:38 -0500 marked best answer Seeking guidance on rtk gps topic names, message types

I will shortly release a new package that supports the swiftnav piksi rtk-gps module ( http://www.swiftnav.com/piksi.html ) and would like to get the message types and topic names correct. rtk-gps enables 2cm accuracy in ideal conditions, and it provides the rover position relative to a base station, which may or may not be at a surveyed location.

The driver currently publishes: 1. the gps data (3m accuracy) in message type sensor_msgs::NavSatFix on topic gps/fix 2. the rtk fix (2cm accuracy best case) in message type nav_msgs::Odometry on topic gps/rtkfix. 3. the gps time in message type sensor_msgs::TimeReference on gps/time

My question is, is this correct?

It could also publish velocity based on the rtk fix, if you think that would be useful and can suggest a message type/topic name

Since it is a gps sensor, I imagine it will frequently be a data source for robot_pose_ekf (which subscribes to nav_msgs::Odometry on topic /vo) or for robot_localization (which subscribes to message nav_msgs::Odometry on topic /odometry/gps).

Can the experts out there please guide me as to message types and topic names. I know topic names are less critical because they can be remapped, but it would be nice to make them maximally compatible.

Thanks

Paul

2016-06-05 08:41:15 -0500 answered a question Rosserial Arduino - Serial Port failure when interrupted

Nothing jumps to mind as a problem in your code. Does Hello World run on the arduino mega? If it does, I suggest you break the system down to try & discover exactly what's breaking it, and why.

Some suggestions: - Publish "Hello" in your main loop and when you stop seeing it come out in ROS is the exact time when the system died - Turn the motor by hand (vs sending a command). If it crashes when you turn it by hand then it's the encoder interrupts, as you suspect. If not, then something else is going on. - Blink the arduino LED in your main loop. Does it keep blinking when the serial port read failure happens? If not, Arduino has crashed.

Hope this helps

Paul

2016-05-24 07:41:41 -0500 received badge  Famous Question (source)
2016-01-13 00:10:51 -0500 received badge  Great Answer (source)
2015-11-10 23:42:32 -0500 marked best answer How do I use eclipse with python (pydev)

This page explains how to use eclipse with C++: http://www.ros.org/wiki/IDEs#Eclipse. This page explains how to set up eclipse with pydev to edit python files: https://wiki.nps.edu/display/~thchung/ROS+--+Using+the+Eclipse+IDE

But nothing seems to tell me how to actually run python ros packages under eclipse, set breakpoints, etc. When I try to run it fails with an exception when trying to load the manifest:

Traceback (most recent call last):
  File "/home/bouchier/ros_workspace/randomWalk/src/randomWalker.py", line 6, in <module>
    import roslib; roslib.load_manifest('randomWalk')
  File "/opt/ros/fuerte/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/fuerte/lib/python2.7/dist-packages/roslib/launcher.py", line 93, in _generate_python_path
    m = rospack.get_manifest(pkg)
  File "/usr/lib/pymodules/python2.7/rospkg/rospack.py", line 118, in get_manifest
    return self._load_manifest(name)
  File "/usr/lib/pymodules/python2.7/rospkg/rospack.py", line 157, in _load_manifest
    retval = self._manifests[name] = parse_manifest_file(self.get_path(name), self._manifest_name)
  File "/usr/lib/pymodules/python2.7/rospkg/rospack.py", line 149, in get_path
    raise ResourceNotFound(name, ros_paths=self._ros_paths)
rospkg.common.ResourceNotFound: randomWalk

I've single-stepped through rosserial_python (which is what I really want to run in a debugger), and it gets the same error. I've tried running from different directories, & it seems to be unable to find manifest.xml when running in eclipse. (It runs fine from rosrun).

How do python developers do debugging? Is there an easy fix to use eclipse? Any other toolsets I should be using?

Thanks

Paul