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

Bill Smart's profile - activity

2020-08-11 10:31:35 -0500 received badge  Good Answer (source)
2018-08-27 03:14:49 -0500 received badge  Good Answer (source)
2017-03-15 17:17:26 -0500 received badge  Nice Answer (source)
2017-03-14 14:03:46 -0500 received badge  Great Answer (source)
2017-03-14 14:03:46 -0500 received badge  Guru (source)
2017-02-09 20:53:25 -0500 received badge  Nice Answer (source)
2017-02-09 13:22:44 -0500 answered a question ¿How can i get the exact date and hour of an event?

The time is in Unix time, seconds since 1970. You can transform it to a more readable format with the functions in <ctime> for C++ or the time module in Python.

2016-12-15 01:51:46 -0500 commented question Do you have an estimate of how many developers are using ROS?

I've heard @Brian Gerkey use 100,000 as an estimate of total users. This is consistent with downloads to unique IPs, and probably way more than the number of actual developers contributing to the code base.

2016-04-13 07:40:07 -0500 received badge  Good Answer (source)
2016-02-09 22:12:20 -0500 received badge  Nice Answer (source)
2015-10-05 08:53:52 -0500 received badge  Good Answer (source)
2015-09-29 07:50:56 -0500 received badge  Good Answer (source)
2015-06-02 00:18:04 -0500 commented answer to input data from a csv file in cpp
2015-06-02 00:12:23 -0500 answered a question How to write to a file using roslaunch (Python)

When you run it with roslaunch, it's running in a different environment and (probably) trying to write the file somewhere else in the file system (and probably somewhere you don't have permissions). In Python, try opening the file with it's full pathname (probably starting with /home) and see if that works. If it does, then that's your problem.

2015-03-18 14:36:17 -0500 received badge  Nice Answer (source)
2015-01-08 10:34:07 -0500 answered a question Best implementation of robot state control

smach is probably the best option. It's not currently under development, but it works well, and and covers exactly what you want to do.

2014-12-18 14:10:29 -0500 received badge  Nice Answer (source)
2014-07-30 20:48:15 -0500 received badge  Nice Answer (source)
2014-07-28 18:48:09 -0500 answered a question What is the meaning of the nine dots?

The story that I know is that it's a mounting hole pattern. If you look at the PR2 robot, there are mounting plates on the sides of the "neck" and on the top of the head, where you can bolt on extra hardware. This makes the robot more versatile, since you can add stuff to it. The ROS pattern is meant to be a visualization of these mounting holes, with the implication that ROS is also versatile, and that you can add extra stuff onto it.

Someone from the early Willow Garage days might be able to confirm this or, alternatively, tell me that I'm making things up.

2014-07-25 10:10:41 -0500 received badge  Nice Answer (source)
2014-07-24 12:53:44 -0500 answered a question Limit linear velocity

Write another node the subscribes to the Twist message, enforces any limits you want to set (such as maximum speed), and then publishes the new, modified Twist. Have this node subscribe to the topics published by your original node, and publish to the lower-level drivers for the wheelchair.

2014-07-22 18:41:16 -0500 received badge  Necromancer (source)
2014-07-22 14:21:19 -0500 commented question RVIZ in Hydro slows down when displaying point cloud from Kinect

Are you using the proprietary nVidia drivers?

2014-07-22 12:44:12 -0500 answered a question Very slow when rviz the kinect

The most likely cause is that you're not using hardware accelerated video drivers. Rviz works best with nVidia graphics cards and the propriety driver. My guess is that you're using software rendering (as opposed to taking advantage of the hardware on the GPU), and that this is what's causing the slow-down. I'd suggest that you make sure you're using hardware-accelerated video drivers, and see if that helps.

The best long-term solution, though, is probably to switch to an nVidia video card.

2014-07-21 02:12:17 -0500 commented answer What means 'ground truth'

... Technically, no sensor can give you ground truth, since they're making measurements, but good ones (like the ones Austin mentions) can give you measurements that are close enough to ground truth that they can be treated as being such.

2014-07-21 02:10:41 -0500 commented answer What means 'ground truth'

I'll quibble with Austin's definition a little. Ground truth is the actual information that you're trying to estimate with a sensor. For odometry, it's the actual position of the robot, delivered by a simulation or estimated (with high accuracy) by high-accuracy sensors...

2014-06-17 23:44:01 -0500 commented answer Why publish if no one is subscribing?

Where's it being sent to? All the information travels over TCP sockets, which need a process on each end.

2014-05-08 19:19:52 -0500 received badge  Nice Answer (source)
2014-05-08 13:16:02 -0500 commented question How to find a node type during runtime

A related thought: what are the ramifications of rewriting rosrun to use the roslaunch machinery, rather than just exec'ing the node (other then automatically starting up a core if one isn't already running)?

2014-05-08 13:12:08 -0500 commented question How to find a node type during runtime

A bit of background: we're trying to automatically record which nodes are being run. We've instrumented roslaunch (minimally) to do this, but we're looking for a similarly minimal way to do this with rosrun.

2014-01-28 17:28:07 -0500 marked best answer rospy Subscriber object not getting destroyed?

This just came up in an assignment that I'm grading, and I can't figure out why it works. In the constructor of a class, there is:

self.sub = rospy.Subscriber('/odom', Odometry, self.seek_goal)

followed immediately by

self.sub = rospy.Subscriber('/base_scan', LaserScan, self.laser_agg)

My understanding is that, when self.sub is reassigned, the original Subscriber should go out of scope, get destroyed, and get garbage-collected. However, both callbacks seem to run happily for the duration of the node's existence.

Any Python gurus out there with any insight? I could guess about the object not getting reaped, but it should still go out of scope (and get destroyed), right?

2013-12-15 06:17:09 -0500 commented answer ROS related very basic question.

Perhaps a more useful way of thinking about ROS is that it's like POSIX for robots. A set of abstractions, communications mechanisms, and a way to interact with the underlying hardware without needing to know the exact details of this hardware. This is an analogy that Brian Gerkey came up with,

2013-12-05 19:00:02 -0500 received badge  Necromancer (source)
2013-12-05 03:47:08 -0500 answered a question how can I register a Callback when using ros::spinOnce ?

Another way to do it would be to split the GUI elements into their own node, which would publish control messages (or issue service calls) to the node that does the work. Since the GUI node wouldn't subscribe to anything, it wouldn't need a spin().

2013-11-05 18:01:03 -0500 commented answer C++ compiler crashed

You should use whatever graphical package manager your distribution supports to reinstall g++. That should replace all of the compiler files to their original state.

2013-11-04 14:42:31 -0500 commented answer C++ compiler crashed

Try reinstalling the compiler, perhaps, to make sure that your files are correct?

2013-11-03 22:53:54 -0500 commented answer C++ compiler crashed

Randomly, I noticed that the code claims to be a header file (.hpp), but the error was generated by a source file (.cpp). Shouldn't make a difference for your error, though.

2013-11-03 22:51:09 -0500 commented answer C++ compiler crashed

Hmmm. It seems that the error is being triggered by the inclusion of ros.h, which is odd, since it's the first real line of code. Can you compile other things that include ros.h?

2013-11-03 16:49:05 -0500 answered a question C++ compiler crashed

You should never, ever edit the system files, especially for the compiler. The problem is probably being caused by some line before line 13 in your qnode.cpp file, but not actually causing an error until that file is included. My guess is that you're not closing a quote in one of the files you include before line 13, or not closing a quote on an include directive.

Don't forget to undo your changes to the system file.

2013-10-31 07:36:17 -0500 received badge  Nice Answer (source)
2013-10-24 05:33:16 -0500 answered a question what is the simplest method of extracting a 2D map file from the scenario?

Take a look at the slam_gmapping tutorial.

2013-10-03 23:40:33 -0500 received badge  Great Answer (source)
2013-09-17 12:54:50 -0500 answered a question need help understanding tf

When you publish a new frame, you have to specify how it relates to an existing frame, by giving an offset and a quaternion rotation. sentTransform takes a StampedTransform as an argument. The StampedTransform consists of a timestamp, a transform, a frame, and a child frame. The transform tells you how to get from the frame to the child frame. This is the information that TF needs to do its job.

2013-09-11 03:49:42 -0500 received badge  Nice Answer (source)
2013-09-10 12:17:26 -0500 answered a question subscribe and publish - doesn't work properly

chatter_pub is being destroyed at the end of the function, before the message gets out. You should always create publishers at a more global scope, either as a global variable, or by wrapping your implementation up in a class, and having the chatter_pub as a member variable.

Similar problem to this question, although it was about a subscriber, not a publisher.