Tag Archives: ROS

Are you using ROS?

Source from: ros.org

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?

for-what-do-you-use-ros.png

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?

what-about-ros.png

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?

how-use-ros.png

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?

which-hardware.png

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?

released-pkgs.png

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?

which-ros-pkgs.png

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?

future-development.png

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?

system-monitor-1.png

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

Working with mini Ubuntu installation and ROS bare-bone.

Usually a single board computer is necessary not to run with fancy GUI such as gnome, KDE, lightdm as there is computational limitations.

I have a tiny single board computer from SECO which has an Intel celeron dual core 1.9GHz with 16 CUDA cores. Although it is possible to execute this guy with standard Ubuntu GUI and other applications, I need to pay price for them.

One solution to avoid this might be “Installation with minimal packages”. Ubuntu provides not only standard, server version but mini installation is also possible. This might be interesting those who want to install minimal version of Ubuntu with bare-bone ROS.

Here is links.

https://help.ubuntu.com/community/Installation/MinimalCD

http://www.ros.org/wiki/groovy/Installation/Ubuntu

Choose bare-bone installation for ROS.

After installation these two, I tried to compile ROS package that I used on ROS-electric desktop version.

There are dependency issues on compilation since I installed ROS as bare-bone which only contains core part and essential packages and stacks.

This raises a question “How do I know which dependencies are missed?”

For example, I have a package that has a dependency to “tf”. ROS spits out this error message :(

Traceback (most recent call last):
 File "../cfg/onlineQR.cfg", line 4, in <module>
 import roslib;roslib.load_manifest(PACKAGE)
 File "/opt/ros/groovy/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/groovy/lib/python2.7/dist-packages/roslib/launcher.py", line 98, in _generate_python_path
 packages = get_depends(pkg, rospack) 
 File "/opt/ros/groovy/lib/python2.7/dist-packages/roslib/launcher.py", line 51, in get_depends
 vals = rospack.get_depends(package, implicit=True)
 File "/usr/lib/pymodules/python2.7/rospkg/rospack.py", line 201, in get_depends
 s.update(self.get_depends(p, implicit))
 File "/usr/lib/pymodules/python2.7/rospkg/rospack.py", line 201, in get_depends
 s.update(self.get_depends(p, implicit))
 File "/usr/lib/pymodules/python2.7/rospkg/rospack.py", line 195, in get_depends
 names = [p.name for p in self.get_manifest(name).depends]
 File "/usr/lib/pymodules/python2.7/rospkg/rospack.py", line 133, in get_manifest
 return self._load_manifest(name)
 File "/usr/lib/pymodules/python2.7/rospkg/rospack.py", line 172, 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 164, in get_path
 raise ResourceNotFound(name, ros_paths=self._ros_paths)
 rospkg.common.ResourceNotFound: angles
 ROS path [0]=/opt/ros/groovy/share/ros
 ROS path [1]=/home/enddl22/workspace/groovy/sandbox
 ROS path [2]=/opt/ros/groovy/share
 ROS path [3]=/opt/ros/groovy/stacks

rospy complains “rospkg.common.ResourceNotFound: angles” the I could resolve this issue by install angle package.

sudo apt-get install ros-groovy-angles