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

How to know when a ROS Package can be installed (on Ubuntu)

asked 2019-04-01 07:06:47 -0500

Yehor gravatar image

updated 2019-11-07 10:28:48 -0500

gvdhoorn gravatar image

Hello,

Could you please help me to figure out how can I install a ros related modules on Ubuntu? For example, I want to get this module, how can I do that?

Thanks

edit retag flag offensive close merge delete

Comments

@Yehor: I've updated the title of your question, as "module" is terminology that is used in Python development. Your question appears to be about ROS packages (which, when they are written in Python, could also contain modules).

gvdhoorn gravatar image gvdhoorn  ( 2019-04-01 07:13:49 -0500 )edit

1 Answer

Sort by » oldest newest most voted
16

answered 2019-04-01 07:24:09 -0500

gvdhoorn gravatar image

updated 2021-08-24 05:48:13 -0500

For example, I want to get this module (message_filters), how can I do that?

Released packages

In general, if possible, you should always prefer to use apt or apt-get on Ubuntu (and Debian).

Installing packages using the binaries provided through the ROS buildfarm is the most efficient way, as it automatically takes care of things like resolving dependencies (ie: it installs everything needed to be able to use a package).

For your specific package, you would run something like this in a command shell:

# this should be run every now and then
sudo apt update

# this actually installs the package
sudo apt install ros-kinetic-message-filters

After following the on-screen prompts, apt should install the package and you can immediately start using it.

There are a number of ways to see whether a package has been released:

  1. use the ROS wiki: a released package for which a wiki page exists has a number of buttons at the top of the page. For message_filters we see:

    ROS distro buttons at the top of the message_filters wiki page

    Notice the indigo, kinetic, lunar and melodic buttons. Clicking on those will switch the wiki page to the version specific to that particular ROS release. Upon clicking on those buttons, a number of badges will appear/disappear just below the Package Summary heading:

    package badges on the wiki for message_filters in melodic

    Notice the Released, Continuous Integration and Documented badges here again for message_filters.

    The important one here is Released. This badge being shown tells us that message_filters has been released into ROS Melodic and should be available for installation using apt.

  2. use the ROS Index. Similar to the ROS wiki, this will list packages which have been registered with the ros/rosdistro repository. Search the available packages using the search box in the top right of the page.

  3. use the status pages: these pages can be found here: repositories.ros.org/status_page and are periodically updated by the ROS buildfarm. Even if a package does not have a wiki page (they have to be created by a human), a released package will show up on these pages.

    For ROS Kinetic, we would open the ros_kinetic_default.html page (refer to #q301220 for why there are multiple Kinetic pages) and search for message_filters by typing it in the textfield at the top-left of the page.

    If a package has been released through the ROS buildfarm, the page should show you one or more rows after having filtered everything based on your query. Released packages will show up. If the page is empty, a package is not released. Refer to the legend (coloured squares, top of the page) for an explanation of the meaning of the coloured squares in the rightmost columns.

No release available

If a package is not available, the next option is to try and build the package "from sources". This essentially means that you'll try to compile it on your own machine in a Catkin workspace.

<personal_opinion_based_on_years_of_experience>

Do not do this, unless absolutely necessary.

</personal_opinion_based_on_years_of_experience>

There are only a few reasons to attempt a build from source:

  1. there are no binaries available ...
(more)
edit flag offensive delete link more

Comments

1

And after typing all of that, I realised this is a duplicate of (at least) #q257780.

gvdhoorn gravatar image gvdhoorn  ( 2019-04-01 08:00:22 -0500 )edit
4

Even though this is a dupe, this is, IMO, the most comprehensive answer about this topic, especially with all the side details and links to relevant questions!

So a very big +1 and thanks for this write-up!

mgruhler gravatar image mgruhler  ( 2019-04-01 08:28:44 -0500 )edit

The most common thing I ran into was a mismatch between the actual package name and the name of the package on the webpage. Take canopen_master for Melodic. It says it's supported.

http://wiki.ros.org/canopen_master

But running this command fails:

sudo apt install ros-$ROS_DISTRO-canopen_master

Running this command lists all packages for your ROS distro.

apt list ros-$ROS_DISTRO-*

Note that the actual package is canopen-master and not canopen_master. The below command runs fine

sudo apt install ros-$ROS_DISTRO-canopen-master
votecoffee gravatar image votecoffee  ( 2020-08-26 17:30:04 -0500 )edit
3

That's not a mismatch, but the way ROS package names are converted into Debian .deb package names.

gvdhoorn gravatar image gvdhoorn  ( 2020-08-27 13:28:37 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2019-04-01 07:06:47 -0500

Seen: 3,608 times

Last updated: Aug 24 '21