Category Archives: ROS

Are you using ROS?

Source from:

The results are in from the January 2014 ROS user survey. Thanks to everyone who participated!

We had a total of 336 responses. We’ll walk through the questions, one at a time:

In general, for what do you use ROS?


Not surprisingly, the lion’s share of ROS users consider themselves to be doing research. That’s where we started, and we expect to continue to see high participation in the research community. But we also see about 1/3 of respondents classifying themselves in education and 1/3 in product development, with a smaller share of self-identified hobbyists. Those are all areas for future growth in ROS usage.

What about ROS convinced you to use it?


Interestingly, the top response here is the communications system. When we set out to build ROS, we started with the communications system, because we believe that robotics problems are most naturally solved by developing distributed systems, and further that developing those systems is hard, requiring solid, easy to use tools. It looks like our users appreciate the effort that’s been put into ROS middleware.

Also near the top are what we can call the “healthy open source project” benefits: friendly licensing, helpful community, and playing nicely with related open source projects.

How do you primarily use ROS?


Most users are working with a single robot, but a substantial number of people are working with multiple robots, which was outside the initial design of ROS. Multi-robot support definitely needs improvement, but clearly people are already getting something out of ROS in multi-robot environments.

With what type(s) of hardware do you use ROS?


At least in part because most robots in the world (or at least in research labs) are basically cameras and/or lasers on wheels, we see most of our users working on those platforms. But we also see a fair number of people working with arms and hands, and we expect that the number of legged systems will grow in the future.

Have you shared and/or released your own ROS packages?


Here we see a familiar pattern in open source development: most users don’t share their code with the community. That’s OK with us, because we know that not everybody is in a position to share their code (for example, commercial users who are building ROS-based products). But if you can share code, please do!

Which ROS packages are most important to you?


Here, we have some clear winners. Visualization is important: rviz is a critical piece of infrastructure in our community, and the rqt library of visualization components is also heavily used. Also highly ranked are planning libraries (navigation and MoveIt!), perception libraries (PCL and OpenCV), coordinate transform management (tf), and simulation (Gazebo). Interestingly, we see the OpenNI driver in the top ten, perhaps reflecting the long-standing connection between ROS and Kinect-like devices, dating back to the ROS 3D Contest.

Where should future ROS development focus?


Less clarity here; basically we should do more of everything.

What is your top priority for future ROS development?

The free-form answers we received in response to this question are challenging to quantify. At a high-level, here’s a qualitative distillation of common themes, in no particular order:

  • more / better documentation
  • more / better / more up-to-date tutorials
  • improved usability
  • greater stability, less frequent releases
  • better multi-master / multi-robot support
  • consolidation of related parts into coherent wholes
  • better / more mature middleware
  • better / more attentive maintenance of core libraries and tools
  • add features and fix bugs in rqt
  • get to “production quality”
  • IDE support
  • real time support

Would you be willing to anonymously report usage statistics?


About 1/2 of respondents are willing to install a plugin to roscore that would track and anonymously report usage statistics, which would let us automatically collect data on which packages, nodes, launch files, etc. are most heavily used. Any volunteers to write that plugin?

Funny error/warning settings on “rosmake”

When compiling a ros package, it only shows warnings with the following messages.

make[3]: *** [CMakeFiles/cyphy_pole_vision.dir/src/pole_vision.cpp.o] Error 1
 make[3]: Leaving directory `/home/enddl22/workspace/ros/groovy/sandbox/cyphy_pkgs/cyphy_pole_vision_manual/build'
 make[2]: *** [CMakeFiles/cyphy_pole_vision.dir/all] Error 2
 make[2]: Leaving directory `/home/enddl22/workspace/ros/groovy/sandbox/cyphy_pkgs/cyphy_pole_vision_manual/build'
 make[1]: *** [all] Error 2
 make[1]: Leaving directory `/home/enddl22/workspace/ros/groovy/sandbox/cyphy_pkgs/cyphy_pole_vision_manual/build'
 [ rosmake ] Output from build of package cyphy_pole_vision_manual written to:
 [ rosmake ] /home/enddl22/.ros/rosmake/rosmake_output-20130715-180924/cyphy_pole_vision_manual/build_output.log

Where do errors happen in my code?

By default, rosmake only shows the latest 40 error/warning messages and In my case, there are many warnings on Eigen library which buries error messages.

I should manually open the log message or type “make” instead “rosmake”.

You also can see more information by setting

make VERBOSE=1

ROS upgrade and rosdep problem.

Recently I upgraded my ROS platform from Fuerte to Groovy using precompiled package. Once running rosdep command, it spit out the following error message.

enddl22@enddl22-laptop:/usr/local/bin$ rosdep
Traceback (most recent call last):
File "/usr/local/bin/rosdep", line 4, in <module>
import pkg_resources
File "/usr/lib/python2.7/dist-packages/", line 2819, in <module>
parse_requirements(__requires__), Environment()
File "/usr/lib/python2.7/dist-packages/", line 588, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: rosdep==0.9.5


and even roscore keeps saying

AttributeError: 'module' object has no attribute 'RosStreamHandler'

and can’t run at all.

After devoting a couple of hours to google, I could find the reason why ros’s essential utils do not work.

Source from:

$ sudo rosdep init
 $ rosdep update

UPDATE: you seem to have an old rosdep version installed somewhere. What does this show?

$ which rosdep

If it says something like /usr/local/bin/rosdep, then you need to uninstall the pip or easy_install version you had previously installed.

Previous ros system searches /usr/local/bin/ and there is rosdep, rosversion and etc. in the folder. This directory should be /usr/bin/. After manually delete those files then rosdep and roscore starts to work as expected.

If you use easy_install before, don’t forget to clearly remove it from your system. Otherwise your system will be messed up.