Ask Your Question

ben's profile - activity

2017-11-30 10:28:09 -0500 marked best answer artifacts when visualizing mesh with librviz

I'm working on a project in which we are trying to visualize large meshes with textures in a custom written app that uses librviz. When loading collada files that were downloaded from 3D Warehouse, we notice a few bad things that happen when visualizing them.

Specifically, we experienced two problems when visualizing this mesh:

  1. Some textures weren't loaded at all - After we downloaded it, we had to fix the .dae file so that librviz wouldn't crash because the image paths were wrong. First, we had to go change the file paths of the textures so that they were correct. Then we had change the filenames so they were case sensitive. At this point, we didn't get any errors or warnings from rviz (even with the rviz logger set to DEBUG).
    • ex. Check out the cars in the images below.
  2. White "artifacts" when visualizing the mesh from some perspectives. If I were to move the camera around, the white lines would disappear in some areas and show up in other areas. It's difficult to find a perspective that makes them disappear.
    • ex. Check out the white lines in the images below.

I've seen the very impressive gazebo worlds that the folks at OSRF made for the DRC, so I would bet it's either a problem in rviz that doesn't exist in gazebo OR I'm doing something wrong.

Any advice on how to make the meshes visualize properly from ALL perspectives and to make all of the textures load would be much appreciated.

(Please note that I really don't know much about 3D graphics in I use the term "artifacts" here because I hear people using it to describe a whole bunch of crap that happens when working with meshes. Please tell me if there is a real term that describes what we're seeing...)

image description image description image description

2015-08-20 11:32:51 -0500 received badge  Good Answer (source)
2014-12-11 04:14:19 -0500 received badge  Nice Answer (source)
2014-02-03 16:09:57 -0500 commented answer How do I convert a mesh to a pointcloud for use with pcl ICP

Does this conversion sample points on the surfaces or strictly converts the vertices in the STL file into points in the point cloud? If not, is there any tool out that does sample points on the surfaces?

2014-01-28 17:28:57 -0500 marked best answer tool to remove points from point cloud

I was wondering if there is an interactive-marker based tool available that I can use to remove points from a pointcloud or pointcloud2 by clicking on them or highlighting a set of points. Then when the desired pointcloud remains, you can press a key that writes a PCD file. As far as I know, I don't think it would be too hard to write but I'm hoping that it's already available in the object-modeling community. I can see it as a part of the tool chain after you use roboearth to make the model.

If there is no such tool, I would appreciate any advise on quickly cleaning up a PCD file other than just writing a quick program to delete points within a bounding box (guess and check...).


(By the way - if this doesn't exist for point clouds, maybe it exists for other 3D data types such as octomaps? In general, maybe we need a tool that can do this for pointcloud, pointcloud2, octomap, laser scan etc.)

2014-01-28 17:26:33 -0500 marked best answer performance comparison of math libraries

I was wondering if anyone has benchmarked the performance of the commonly used math libraries in the ROS community such as the KDL, Bullet & Eigen. In my work, I have to do hundreds of thousands of rotations & transformations at run time and right now I'm primarily using the KDL but I never looked into the performance of the individual libraries to determine if one is much faster or much slower than the others.

In a quick search on, I found a couple of pages, MathLibraries & RotationMethods, that discuss the libraries but don't offer a performance comparison. If someone has any insight into this topic, I'll post it on the MathLibraries page.

Should I assume that all of these libraries have comparable performance? If no one responds, then I'll just do some simple benchmarking of my own and post the results.

2014-01-28 17:24:47 -0500 marked best answer localizing multiple ARMarkers using ar_pose

I have some general questions about ARMarkers and also the ROS wrapper, ar_pose. I searched for general information on using them in practice but couldn't find any detailed information.

  1. What is the maximum number of ARMarkers that can be used in a scene at once? I'm assuming it depends on the dimensions of the markers...
  2. What's the expected amount of error when localizing a marker from 5ft away?
  3. What's the smallest size marker that a camera can localize 'accurately' from 5ft away? (Is there such a thing as 4cm x 4cm markers? Do they get smaller than that?)
  4. How much does the accuracy improve when going from a 640x480 camera to a 2MP camera?
  5. What is the average frame rate from the ar_pose node that is capable of detecting multiple armarkers? When using a 640x480 camera and a 2MP camera?

My goal is to put markers on 25 dishes or so on a tabletop and some shelves. The camera won't ever be more than 6ft away. Is that doable?

Any tips or lessons learned from experience would be appreciated.

Thank you very much in advance!

2014-01-28 17:22:50 -0500 marked best answer down sample camera image on driver or image_proc level

In addition to producing higher resolution images than the wge100 cameras, the PR2's Prosilica also puts out images with much better color quality. In the perfect world, I would have a camera on the PR2 that can spew out images at the same frame rate of the wge100 cameras but with the image quality of the Prosilica.

I was wondering if there is a way to down sample the images from the Prosilica camera on the driver level or at least have it done by the image_proc node. We obviously down sample the received images in code but we are getting them at 2fps and would like to get them at a faster frame rate and at a lower resolution. If the images were to be down sampled by the driver or by the image_proc node, maybe the travel time would be shorter and we would get a faster frame rate? I don't actually know how fast the camera can spit out images.

Just to be clear, I know that you can crop the images using dynamic_reconfigure but I'm wondering whether it can down sample the entire image somehow. I'm a vision noob so I think this is probably feasible - I just don't know how to do it.

2014-01-28 17:22:49 -0500 marked best answer prosilica calibration freezes during calibration step

I don't have any experience calibrating the prosilica camera on the PR2. I followed this tutorial but the calibration process tends to freeze up on me.


  1. PR2 is plugged into the basestation. Ran this whole process from the basestation as well.
  2. v1.0.0 of pr2_calibration on the robot.

What I did:

  1. Ran: roslaunch pr2_calibration_launch calibrate_prosilica.launch
  2. Moved around the checkerboard until the 'Calibrate' button showed up.
  3. Clicked on 'Calibrate'
  4. Nothing happens for at least a half hour.....'top' tells me that the cameracalibration process takes %86 of the CPU.
  5. I eventually kill it.

What am I doing wrong? Am I not waiting long enough?

2014-01-28 17:22:41 -0500 marked best answer edit logger levels programmatically or from the command line

I searched around on this site, the roscpp/logging page and on the rosconsole wiki page but as far as I can tell there are two obvious ways of changing the logger level and they are:

  1. using rxloggerlevel (maybe through rxconsole too?)
  2. modifying the ROSCONSOLE_CONFIG_FILE

Now, I just found this page, and it told me that using roscpp I can programmatically change the logger level as in rosconsole/examples/example.cpp. So, in writing this question I figured out half of my question but I thought I might as well ask this anyway:

Is there a way to modify the logger level from the command line? Something along the lines of:

roslog {package_name/logger} {logger level}

ex. "roslog sbpl DEBUG" or "roslog sbpl/my_log DEBUG"

Regarding, changing the logger level programmatically, I'll follow the example code and post any questions here if it doesn't work as expected.

2014-01-28 17:22:08 -0500 marked best answer how to programmatically add/remove displays in rviz

I was wondering if there is a way to programmatically add and remove Displays in rviz? I would think that if the feature existed it would come in the form of a topic or service that a node can publish to or call to add or remove a Display of a certain DisplayType.

2014-01-28 17:21:50 -0500 marked best answer retrieve raw IR image from Kinect

Is there anyway to retrieve the raw IR image using the openni_kinect stack? Any other stack?

I'm pretty sure the old kinect calibration that was part of a different stack and that used a different driver published the raw IR image but it seems like the old calibration tutorial was taken down.

2014-01-28 17:21:50 -0500 marked best answer pre-release test error on hudson

I'm using the fancy code release system for the first time and it seems to be very impressive how everything gets auto-magically generated for you however I ran into a problem last week when I tried a pre-release test.

I should mention that I'm the repository maintainer and so I first followed the Repository Setup Instructions - so just bear in mind that the problem may not be with the stack itself but maybe it's a problem with the entire repo configuration in the rosdistro.

I tried to run a Hudson Pre-Release test and I got the following error in Diamiondback and Unstable on all of the platforms. It doesn't seem like it even got up compiling code so I don't know where to start debugging the problem...

Command failed: Command '['sudo', 'chroot', '/home/rosbuild/chroot/prerelease_unstable_sbpl_arm_planning_lucid_amd64', 'su', 'rosbuild', '-s', '/bin/bash', '-c', "HUDSON_URL='' BUILD_URL='' BUILD_TAG='hudson-prerelease_unstable_sbpl_arm_planning_lucid_amd64-1' JOB_NAME='prerelease_unstable_sbpl_arm_planning_lucid_amd64' BUILD_ID='2011-03-17_14-10-59' BUILD_NUMBER='1' JOB_URL='' EXECUTOR_NUMBER='0' /tmp/"]' returned non-zero exit status 255 ectory_filters', 'pr2_kinematics'] Adding dependencies of stack sensor_msgs Command failed, shutting down chroot Shutting down

You can also check out the entire hudson console output.

Does anyone know how I can resolve this problem?

Thanks in advance.

2014-01-28 17:21:47 -0500 marked best answer how to change the svn URL on a package/stack wiki page

I wrote some documentation on the page of a stack and some packages that I created. I can't seem to figure out how to change the autogenerated 'Source:' URL that pops up at the top of the page. Right now it's pointing to trunk but I want it to point to a released version in the tags folder instead. I've noticed for a while that many official WG stacks and packages have the svn URL of trunk not of a tagged release. Why is that? I'm assuming the wiki autogenerator uses the path to the highest level package in the ROS_PACKAGE_PATH with that package name - that would put the code in trunk above a released folder in tags...but this is just a theory.

How can I change the svn URL to a tagged release?


2014-01-28 17:21:40 -0500 marked best answer log4cxx error on node shutdown in diamondback rc3

I installed diamondback RC3 yesterday on a machine that was upgraded from Ubuntu 9.04 to 10.04 over the weekend. (Maybe upgrading instead of a fresh install was a bad idea?)

log4cxx seems to be having a problem. Every time I ctrl+c a launch file that I ran, I get an error that looks like this:

log4cxx: No appender could be found for logger (ros.sbpl_arm_planner).
log4cxx: Please initialize the log4cxx system properly.


log4cxx: No appender could be found for logger (ros.planning_environment).
log4cxx: Please initialize the log4cxx system properly.

Is log4cxx set up incorrectly? Has anyone seen this before?

2014-01-28 17:21:38 -0500 marked best answer How to programmatically reset Gazebo

Students in the class I'm TAing are wondering if there is a way to programmatically reset the Gazebo simulation so they can debug their projects faster. I could benefit from this too :). A couple of them said that they looked through the documentation and couldn't find anything in the Gazebo API.

Is it possible to programmatically reset a Gazebo simulation?



2014-01-28 17:21:38 -0500 marked best answer retrieve the bounding box of a mesh

Before I venture into figuring out how to make a bounding box of a mesh from a .mesh file or .stl file, I thought I would ask on this forum if the following has already been done somewhere in ros-pkgs:

  • retrieve a mesh file when the file path is in the resource_retriever format: "package://pr2_description/meshes/forearm_v0/forearm.stl"

  • compute a bounding box for the mesh

Maybe I'm just being lazy but I feel like it must have been done somewhere.

thanks, ben

2014-01-21 08:35:13 -0500 commented answer change sbpl_lattice_planner preference to reverse motion?

Within the last 6 months, we posted more tutorials on the sbpl website that you might find useful. Here's a really good one written by Victor Hwang - with really good pictures. It describes how to generate motion prims:

2014-01-14 22:42:29 -0500 received badge  Famous Question (source)
2013-11-22 00:27:10 -0500 commented answer Create a Wiki Mirror

The newest tarball seems to be missing images(other files?) that were contained in previous tarballs. Is this a planned change? It seems like it is definitely missing the ROS logo & the little globe icon next to links. The most recent tarball (without docs):