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)