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

Can't ROS version compatibility issue for packages be resolved forever?

asked 2018-10-09 06:53:52 -0500

updated 2018-10-09 23:59:21 -0500

I have been running ROS Melodic on Ubuntu 18.04. As it is the latest version of ROS and ROS does not allow the packages built in previous versions, I am really stuck in my project development. I am referring some very nice books and their ROS packages to understand ROS as a beginner, but the books and the packages are created sometime back and hence they have ROS Indigo/Kinetic based data. As a result, I am limited to theoretical reference only. I am referring the books that are listed as Standard Books for ROS.

For example, currently I am referring the Chapter 9 of the book ROS Robotics Projects that has Chefbot working as autonomous robot. The robot is developed based on ROS Kinetic and hence are its ROS packages. When I try to source the workspace using those packages, I end up with this error:

shaunak@robokits:~/catkin_ws$ rosdep install --from-paths src --ignore-src --rosdistro=melodic -y
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
chefbot_bringup: Cannot locate rosdep definition for [depthimage_to_laserscan]
chefbot_gazebo: Cannot locate rosdep definition for [create_node]
chefbot_description: Cannot locate rosdep definition for [create_description]

I also tried rosdep install --from-paths src --ignore-src --rosdistro=melodic -y -r to ignore the errors and initiate catkin_make_isolated --force-cmake(I am not using catkin_make as it does not work for other packages) but it throws an error of not being able to process the package.

So I kindly request the community members to work in a direction which will remove this ROS version compatibility issue. I do not expect the solution to be robust as of now, but some patch development should be initiated that is what I suggest. I am keen and ready to be the part of this process provided some guidelines are given regarding the versioning of the packages.

  • Shaunak Agastya Vyas (TINU)
edit retag flag offensive close merge delete

Comments

1

You should still be able to build the package even if it's not written specifically for melodic. Just building the package from source should be fine. Being said it doesn't mean you won't have any issues. But most of the time you should be alright.

l4ncelot gravatar image l4ncelot  ( 2018-10-09 07:23:43 -0500 )edit
2

Just to reiterate @l4ncelot's point:

As it is the latest version of ROS and ROS does not allow the packages built in previous versions

This is not actually true. It's perfectly possible to build packages from source, in a Catkin workspace.

If you can post about an actual problem with a ..

gvdhoorn gravatar image gvdhoorn  ( 2018-10-09 07:42:09 -0500 )edit
2

.. specific package, we can see whether we can help you solve that. Right now this question is too ambiguous and not something we can do something about.

Also:

the books and the packages [..] have ROS Indigo/Kinetic based data

This is a problem with those books, not necessarily with ROS. We ..

gvdhoorn gravatar image gvdhoorn  ( 2018-10-09 07:43:10 -0500 )edit
2

.. cannot retard or delay the development of ROS because of compatibility concerns with books that may be available unfortunately.

gvdhoorn gravatar image gvdhoorn  ( 2018-10-09 07:43:34 -0500 )edit

@gvdhoorn

.. cannot retard or delay the development of ROS because of compatibility concerns with books that may be available unfortunately.

kindly see the edited question.

Shaunak Vyas gravatar image Shaunak Vyas  ( 2018-10-09 23:53:32 -0500 )edit
1

As a result, I am limited to theoretical reference only. I am referring the books that are listed as Standard Books for ROS.

there are no "standard books for ROS".

The wiki page you link to is just a page listing some of the books available to the general public. They are not endorsed or ..

gvdhoorn gravatar image gvdhoorn  ( 2018-10-10 01:18:06 -0500 )edit

.., reviewed or recommended in any way.

The wiki is editable by anyone with an account. After registering, you could also add a book to that list.

gvdhoorn gravatar image gvdhoorn  ( 2018-10-10 01:18:57 -0500 )edit
1

As to the pkgs that rosdep can't find: those all appear to be pkgs related to the Turtlebot 2, which indeed haven't been released yet. See #q305162 for another recent question about that.

What you can try is to place those pkgs in your Catkin workspace and to build them from source.

gvdhoorn gravatar image gvdhoorn  ( 2018-10-10 01:21:08 -0500 )edit

1 Answer

Sort by » oldest newest most voted
2

answered 2018-10-09 07:35:33 -0500

updated 2018-10-09 08:53:38 -0500

@l4ncelot is completely correct. The APIs and features of ROS have been fairly stable for a long time, likely your older references are completely valid, you'll just need to modify how you install any packages that they are working with. Often a package released on an older ROS version may also be released on a newer ROS version. If that is the case, you simply need to add modify calls to apt-get to refer to melodic instead of Indigo or Kinetic. E.g. sudo apt-get install ros-melodic-std-msgs. To check if a package has been released for Melodic you can try using apt-cache search to search the available packages on your machine:

jarvis@togwotee:~⟫ apt-cache search std-msgs
cl-std-msgs - LISP interface for Standard Robot OS Messages
libstd-msgs-dev - C/C++ headers for Standard Robot OS Messages
python-std-msgs - Python interface for Standard Robot OS Messages
ros-std-msgs - Message definitions for Standard Robot OS Messages
ros-melodic-std-msgs - Standard ROS Messages including common message types representing primitive data types and other basic message constructs, such as multiarrays.

You can also visit the ROS wiki page and check out the status at the top of the page. Clicking the different ROS distributions in blue rectangles right at the top will change page to be for different ROS releases. Right below, there are some green informational bubbles letting you know if the package has been released for that version of ROS. Note that if that particular wiki page doesn't have a Melodic section, that's a good sign the package hasn't been released yet.

If a package hasn't been released yet, it's often just a matter of finding the source code for the package, adding it to your workspace, ensuring you have the correct dependencies (tools like rosdep and rosinstall can help greatly with this) and then running catkin_make. If you're lucky, this will "just work", and it likely will much of the time. In my experience, the most likely packages to have issues are packages related to simulation. This is because Gazebo and its APIs have evolved rapidly and each version of ROS is built around different Gazebo versions. Sometimes API changes in Gazebo are precisely why a particular simulation package hasn't been released in a newer version of ROS.

Finally, you are asking "the community members" to release all packages for all versions of ROS (a tall order for reasons that have little to do with ROS itself). As a ROS user, you are part of that community. It takes all of our efforts to keep packages up-to-date and bug free. The best way to help ensure a healthy ecosystem is to contribute yourself. File bug reports, submit pull requests, volunteer to maintain orphaned packages, release your own packages, etc. These are all ways you can help the community. This may feel intimidating as a beginner, but stick with it and you'll be ready to help out in no time.

edit flag offensive delete link more

Comments

@jarvisschultz : I have elaborated my question with an edit.

This may feel intimidating as a beginner, but stick with it and you'll be ready to help out in no time.

Thank you for motivating. I am in.

Shaunak Vyas gravatar image Shaunak Vyas  ( 2018-10-09 23:58:12 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2018-10-09 06:53:52 -0500

Seen: 1,222 times

Last updated: Oct 09 '18