0
$\begingroup$

Rosanswers logo

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)

Originally posted by Shaunak Vyas on ROS Answers with karma: 17 on 2018-10-09

Post score: 0


Original comments

Comment by l4ncelot on 2018-10-09:
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.

Comment by gvdhoorn on 2018-10-09:
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 ..

Comment by gvdhoorn on 2018-10-09:
.. 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 ..

Comment by gvdhoorn on 2018-10-09:
.. cannot retard or delay the development of ROS because of compatibility concerns with books that may be available unfortunately.

Comment by Shaunak Vyas on 2018-10-09:
@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.

Comment by gvdhoorn on 2018-10-10:\

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 ..

Comment by gvdhoorn on 2018-10-10:
.., 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.

Comment by gvdhoorn on 2018-10-10:
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.

Comment by Shaunak Vyas on 2018-10-10:
@gvdhoorn : Click Here and you will find a folder called "chefbot" which contains the packages.

Comment by Shaunak Vyas on 2018-10-10:
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. That is all the question is about. If the packages are version specific, it affects the development process.

Comment by gvdhoorn on 2018-10-10:
The packages are not version specific, the releases are.

Building pkgs that haven't been released into a specific version of ROS is a common practice. At least until they get released.

In any case: there is no magic bullet here. Releasing a pkg is work done by humans, and needs to be ..

Comment by gvdhoorn on 2018-10-10:
.. done for every ROS release. That is just how the system works right now.

If there are no maintainers or other users willing to do the release, pkgs don't get released.

Other distribution models can be considered, but that is not something to do on ROS Answers. ROS Discouse would be more suited.

Comment by gvdhoorn on 2018-10-10:
re: chefbot: I'm not entirely sure what you want me to do. If anything, I would 'complain' to the authors of the chefbot packages. But then again, they created the pkgs for Kinetic, not Melodic, so it's unfair to blame them for this.

Comment by l4ncelot on 2018-10-10:
@Shaunak Vyas, please see tutorial on catkin here. You need to have some basic understanding of how things work in ROS before requesting, even kindly, anything from anyone in this amazing community.

Comment by gvdhoorn on 2018-10-10:
@all: I've updated the books page to clarify the situation. The list is just a list. It is not an "official list", nor have any of the books necessarily been reviewed or endorsed.

Comment by Shaunak Vyas on 2018-10-10:
@gvdhoorn:

@all: I've updated the books page to clarify the situation. The list is just a list. It is not an "official list", nor have any of the books necessarily been reviewed or endorsed.

Thank you for clarification.

Comment by Shaunak Vyas on 2018-10-10:
@l4ncelot :

You need to have some basic understanding of how things work in ROS before requesting, even kindly, anything from anyone in this amazing community.

Thank you for motivating. Time to understand catkin now.

Comment by Shaunak Vyas on 2018-10-10:
As chefbot is based on ROS Kinetic, I tried to install ROS Kinetic in my Ubuntu 18.04 but it could not find it. I think the lower versions of ROS should be installable in higher versions of Ubuntu that can resolve this version compatibility issue upto some extent.

Comment by l4ncelot on 2018-10-10:
@Shaunak Vyas, again... kinetic binaries might not be able from official distribution, but you can install it from source here. But as the tutorial says it's not expected to work out of the box.

Comment by l4ncelot on 2018-10-10:
@Shaunak Vyas, this is again not fault of ROS itself. You should've learned this information before installing ubuntu.

Comment by l4ncelot on 2018-10-10:
@Shaunak Vyas, but why do you want to install kinetic on ubuntu 18.04? We told you kinetic packages can be compiled even on melodic. You just need to do it manually from source instead of using apt install.

Comment by Shaunak Vyas on 2018-10-10:
@l4ncelot I am using git clone to get the packages into my ~/catkin_ws/src folder, go to the ~/catkin_ws path and then apply rosdep install --from-paths src --ignore-src --rosdistro=melodic -y. This is how I am trying to source my updated workspace. I am not using apt install.

Comment by gvdhoorn on 2018-10-10:
Let's take a step back.

@Shaunak Vyas: your initial question was (in a way) "can't we just release pkgs for all ROS versions instead of a single one". I believe we covered that in the many comments and the answer by @jarvisschultz.

Your remaining issue seems to be that you can't get ..

Comment by gvdhoorn on 2018-10-10:
.. your workspace to build when trying to build some packages from source that have not yet been released into Melodic.

I would advise you to post that as a new question. ROS Answers is not a regular forum, but a Q&A site, with an ideal ratio of 1 Q to 1 A.

Comment by Shaunak Vyas on 2018-10-10:
@gvdhoorn : You are absolutely right. Let’s do as you suggested and put this in the back burner for now.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

@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.


Originally posted by jarvisschultz with karma: 9031 on 2018-10-09

This answer was ACCEPTED on the original site

Post score: 2


Original comments

Comment by Shaunak Vyas on 2018-10-09:
@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.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.