More than 30,000 Questions on ROS Answers

We've reached another milestone for ROS Answers, 30,000 questions asked!


The 30,000th question was asked Friday by @Mani who regularly helps answer others questions as well.

To see the many contributors to the site please view the list of users

Congratulations to the community for making the site the thriving resource that it is today. Keep up the fantastic work, and keep the questions--and answers--coming.

With the awareness on the site. If you've asked a question and not marked it answered. Please consider revising it with more details or to add clarity. And likewise consider trying to answer one question each time you're on the site.

Grid Map Library

From Péter Fankhauser via ros-users@:

We'd like to announce our new Grid Map package, developed to manage two-dimensional grid maps with multiple data layers and designed for mobile robotic mapping in rough terrain navigation.

The package is available for ROS Indigo, Jade, and Kinetic and can be installed from the ROS PPA. After multiple development cycles and use in many projects, the library is well tested and stable.


  • Multi-layered: Developed for universal 2.5-dimensional grid mapping with support for any number of layers.

  • Efficient map re-positioning: Data storage is implemented as two-dimensional circular buffer. This allows for non-destructive shifting of the map's position (e.g. to follow the robot) without copying data in memory.

  • Based on Eigen: Grid map data is stored as Eigen data types. Users can apply available Eigen algorithms directly to the mapdata for versatile and efficient data manipulation.

  • Convenience functions: Several helper methods allow for convenient and memory safe cell data access. For example, iterator functions for rectangular, circular, polygonal regions and lines are implemented.

  • ROS interface: Grid maps can be directly converted to and from ROS message types such as PointCloud2, OccupancyGrid, GridCells, and our custom GridMap message.

  • OpenCV interface: Grid maps can be seamlessly converted from and to OpenCV image types to make use of the tools provided by OpenCV.

  • Visualizations: The grid_map_rviz_plugin renders grid maps as 3d surface plots (height maps) in RViz. Additionally, the grid_map_visualization package helps to visualize grid maps as point clouds, occupancy grids, grid cells etc.

Source code, documentation, and tutorials available at

Originally published at the ROS Industrial blog:

This summer, Risto Kojcev, sponsored by the Google Summer of Code (GSOC) and directed by the Open Source Robotics Foundation (OSRF) and the ROS-Industrial (ROS-I) Consortium developed a user friendly ROS Interface to control and change a manipulator into Cartesian Impedance control mode. The external forces that the robot applies to the environment can also be set with the developed interface.

Risto shares:

Our first goal was to create a set of common messages containing the necessary parameters for setting Impedance and Force control. This allows interaction between the ROS ecosystem and the ROS driver of the robot. The messages are created based on the commonly used parameters for Impedance/Force control and discussion with the ROS community. The relevant current set of ROS messages are available in the majorana repository. I would also like to encourage the Robotics community to contribute to this project by sharing their suggestions. I believe that this set of messages could still be more generalized and improved based on community input.

The second goal was to develop a user interface which allows the user to set the necessary parameters for Cartesian Impedance/Force Control and interactively switch between control modes. In this case I have expanded previous GSoC 2014 Project: Cartesian Path Planner Plug-In for MoveIt!. The updated plugin now contains the relevant UI fields for setting Cartesian Impedance and Force Control. Depending on the implementation and the properties of the robot controller, this plugin also allows interactively switching between control modes during runtime.

From Weijia Yao via ros-users@

I am a member of NuBot team, a RoboCup Middle Size League, participating team. We have built a simulation system based on ROS ang Gazebo to research into multi-robot cooperation strategies. Although it mainly focuses on soccer robots, it could be modified for other purposes as well. If you are interested, please check out this repository: single_nubot_gazebo. There is a simulation competition based on this, check out simatch.

Gaitech Educational Portal for ROS

From Anis Koubaa via ros-users@

Gaitech International Ltd is happy to announce the release of its educational portal, Gaitech EDU.


Gaitech EDU provides a comprehensive educational framework on Robot Operating System (ROS) through a series of tutorials and online videos.

Gaitech EDU is an educational website on robotics and in particular on Robot Operating System (ROS). The objective is to provide an easy-to-follow educational content that helps in better mastering the concepts of ROS and promoting its use for developing robotics software. Gaitech company strives to contribute to the development of ROS and provides its customers and ROS users with technical support and an open education framework to learn ROS.

Gaitech Education website is NOT meant to be a substitue of ROS wiki documentation website, but a complementary website that is more oriented to providing education and teaching material.

As the primary objective of Gaitech EDU is to promote education of ROS, tutorials were designed with teaching objectives in mind. Each tutorial starts with Learning outcomes that the student or the learned is expected to know at the end of the tutorial. Then, the tutorial is provided in both textual format and/or video illustrations. Finally, a series of review questions are proposed so that the student self-evaluation his understanding about the concepts presented in the tutorial. It can be used as additional teaching resources in robotics courses using ROS.

More details could be found in the FAQs in the website

In addition, Gaitech provides the Gaitech EDU Forum where users and customers may ask questions and post comments about the educational content. In addition, a mailing list is available to stay tuned with any updates of the educational content.

Enjoy using and sharing Gaitech EDU portal. We will be happy to receive your comments about the Gaitech EDU Portal.

New Package: rosparam_handler package

From Claudio Bandera via ros-users@

so I was very frustrated with how I had to define parameters for my nodes in several places. The declaration, the call to getParam and then everything again in a second place when I wanted to have a parameter that is configurable through dynamic reconfigure. Furthermore, you had to make sure the redundant parameters lived in the same namespace, otherwise you would run into serious trouble... This made it quite hard and error prone to add or refactor parameters later.

To solve this problem, I have created the rosparam_handler package. It is inspired by the cfg files and code generation provided by dynamic_reconfigure, but extends the functionality greatly.

The rosparam_handler let's you:

  • specify all of your parameters in a single file
  • use a generated struct to hold your parameters
  • use a member method for grabbing the parameters from the parameter server
  • use a member method for updating them from dynamic_reconfigure.
  • make your parameters configurable with a single flag.
  • set default, min and max values
  • choose between global and private namespace
  • save a lot of time on specifying your parameters in several places.

If this sounds interesting to you, have a look at the README, Tutorials and the source code at

Please let me know if you have any feedback, suggestions or any trouble using the package.

The Barcelona ROS Summer Course will start in 2 weeks

Ricardo Téllez via ros-users@

The Barcelona ROS (Robot Operating System) Summer Course will start in 2 weeks. This is the final call.


  • A single week of basic ROS learning in Barcelona. These courses are available for students and teachers with no previous knowledge of ROS. 100% practical since minute one.

  • Dates: 5th to 10th of September

  • Morning (from 9:30 to 13:30): teaching by doing exercises. Teaching is 100% practical. Students must complete several exercises along with the teachers' explanations of different subjects.

  • Afternoon (from 14:30 to 16:30): working on a ROS project. Students are presented with a project they have to solve by the end of the week working by themselves in the afternoons, with the support of the teachers.

  • Exam and ROS Certification: There will be a test at the end of the course. Those who pass the test with at least 8 out of 10 will receive a ROS certification.

  • Spots Still Available: due to the high demand of the course, we increased the number of seats to 13. There only remain 3 free spots.

  • Location: Gran Via de les Corts Catalanes, 608, 3ºD, 08007 Barcelona, SPAIN


  • Monday: ROS BASICS: basic structure of ROS programs and its concepts

  • Tuesday: ROS TOPICS: how to create topics and how to access them

  • Wednesday: ROS SERVICES: how to create services and how to use them

  • Thursday: ROS ACTIONS: how to create action servers and use them

  • Friday: ROS DEBUG: ROS tools that allow to find errors and debug

  • Saturday: Course Exam from 9:30 to 11:30


  • Basic knowledge of Python programming

  • A laptop (can have any operating system)



  • You can contact us with questions and doubts here:

From Limor Schweitzer and his team at RoboSavvy:

Small step for Virtual Reality (VR), big step for autonomous robots. One of the key issues with autonomous robot applications is indoor localization. HTC Vive has singlehandedly solved this age-long problem.

This 800$ system (will go down to 200$ in a few months once lighthouses and base stations are available without the headset in addition to minuscule lighthouse sensors) is comparable to a 150 000$ Ir marker multi-camera system. The Vive gives you 60fps, 0.3mm resolution, across any size internal volume (currently a 5m cube box but will be extendable) So unless you are doing indoor 3D drones, you don't need more than 60Hz and a camera system will give ~cm resolution. No other indoor localization system can get anywhere close to the Vive specs.

Initially the idea was to just use this to calibrate our robot's odometry/localization mechanisms (visual, wheels, LIDAR, IMU) However, there was this unexpected turn of events the past month whereby Valve is opening up the technology for non-VR applications so it may actually be possible to rely on this for real indoor applications and use the other forms of localization as backup.

We ended up integrating the Vive API for tracking the handheld devices with ROS. This provides ROS robots with the most precise absolute indoor localization reference. Source code is available at:

Find this blog and more at

Please submit content to be reviewed by emailing

Monthly Archives

Find recent content on the main index or look in the archives to find all content.