# Does ROS source installation variant "mobile" work?

Raspberry Pi 3, ROS Kinetic, Ubuntu 16.04 (32-bit)

The "robot" variant works fine. But it does not include navigation stack and what I would consider other mandatory packages. So I tried "mobile", like this:

rosinstall_generator mobile --rosdistro kinetic --deps --wet-only --tar > kinetic-mobile-wet.rosinstall wstool init -j8 src kinetic-mobile-wet.rosinstall

Result:

The following unreleased packages/stacks will be ignored: mobile
No packages/stacks left after ignoring unreleased


Which seems to suggest that variant is not working.

Is there a way to add the navigation stack (and other packages) after the fact, into the "robot" variant?

edit retag close merge delete

Sort by » oldest newest most voted

tl;dr: there is no mobile variant. So the error you receive would seem to be expected.

All variants are defined in REP 150: ROS Melodic and Newer Metapackages.

For ROS Melodic, they include:

• ros_core
• ros_base
• robot
• perception
• simulators
• viz
• desktop, and
• desktop_full

mobile is not a defined variant.

Where did you see it mentioned?

it does not include navigation stack and what I would consider other mandatory packages

The navigation packages are not included in any variant. Or at least, not in a variant defined by REP 150.

Edit:

Thanks for pointing out REP 150. I was not aware of that REP, as I was simply following what appears in: http://wiki.ros.org/Installation/Source

ie. "In addition to the 3 variants above, more are defined in REP 131 such as robot..."

Looks like that page needs to be updated for Melodic and should point to REP 150.

Note that REP 131 DOES include "mobile" (and also navigation!).

Yes, it does.

I am surprised to find that REP 150 contains no variant that includes navigation. What is the thinking behind that?

I'm not sure. It looks like mobile (and some of the other variants) already didn't appear any more in REP-142 (which was submitted in ros-infrastructure/rep#71).

I've tried to find related discussions on the old ROS mailing lists, but nothing really turns up.

Perhaps @tfoote remembers why those variants were removed.

How should I build from source to include navigation?

The top-level (ie: meta) package for navigation appears to be called navigation (who'd have thought? ;)).

So you should be able to do something like this:

rosinstall_generator --rosdistro=kinetic --tar --deps navigation > navigation.rosinstall


That should get you all packages in the navigation metapackage.

But: please make sure you actually need to build things from source. You state you are running "ROS Melodic, Ubuntu 18.04 (64-bit)" on an RPi. If I'm not mistaken, that would be bionic on arm64 (or ARMv8). According to this page there are plenty of binary packages available for that combination.

Refer to #q320046 for information on how to figure out when something is available as a binary package, and for which platforms.

Edit 2:

Thanks for the comments and suggestions. Yes, I do indeed actually need to build from source.

As long as you are absolutely sure.

And I would like the equivalent of "mobile" as specified in REP 131. But regarding your suggestion:

rosinstall_generator --rosdistro=kinetic --tar --deps navigation > navigation.rosinstall


... the above just gives me the navigation sources and omits everything else. So, manually merge the two 'src' trees (obtained from variants navigation and base)? Or what?

there is no need to manually do anything. Either:

• ask wstool to merge in the new .rosinstall file, or
• supply rosinstall_generator with more package names instead of just the one. Like so:

rosinstall_generator --rosdistro=kinetic --tar --deps robot navigation slam_gmapping laser_pipeline perception_pcl > robot_and_navigation.rosinstall


Refer to the rosinstall_generator --help for more information on which ...

more

Thanks for pointing out REP 150. I was not aware of that REP, as I was simply following what appears in:

http://wiki.ros.org/Installation/Source

ie. "In addition to the 3 variants above, more are defined in REP 131 such as robot..."

Note that REP 131 DOES include "mobile" (and also navigation!).

I am surprised to find that REP 150 contains no variant that includes navigation. What is the thinking behind that?

How should I build from source to include navigation?

( 2019-11-23 09:49:11 -0500 )edit

Thanks for the comments and suggestions. Yes, I do indeed actually need to build from source. And I would like the equivalent of "mobile" as specified in REP 131. But regarding your suggestion:

rosinstall_generator --rosdistro=kinetic --tar --deps navigation > navigation.rosinstall


... the above just gives me the navigation sources and omits everything else. So, manually merge the two 'src' trees (obtained from variants navigation and base)? Or what?

( 2019-11-23 11:16:33 -0500 )edit

Sorry. My bad. Too many projects. The platform I'm actually using to test this is:

Raspberry Pi 3, ROS Kinetic, Ubuntu 16.04 (32-bit)

I've updated the original wording to reflect that.

( 2019-11-23 13:05:48 -0500 )edit

No problem.

( 2019-11-23 13:13:19 -0500 )edit

It worked. Thanks for your help!

( 2019-11-23 21:43:41 -0500 )edit