3.3. Pre-built Packages
3.3.1. Why do I need Pre-built Packages?
Simple answer: you don’t. It’s mere convenience to be able to install packages we would like to use via a simple apt install
command.
Alternatively, we would need to clone the source code of the packages we would like to use and build them ourselves.
3.3.2. When not to install Pre-built Packages?
If you want to modify certain packages to your needs, you want to have the source code inside your workspace(s). Pre-built packages and the installatio from source are not mutually exclusive. This means, it is perfectly fine to install all the packages from pre-built binaries and overlay them with the modified built-from-source version in your workspace. The last sourced version of a package takes precedence over all prior versions.
Hint
This also implies if you want to work with the pre-built version of a package, make sure you do not have a local version in one of your sourced workspaces.
Deleting the source files is not sufficient, you need to remove the corresponding files/directories in the install
directory inside your workspace as well.
3.3.3. Which Packages can I Install via apt
?
To find out which packages can be installed from our repository, execute
$ curl -s https://repositories.hippocampus-robotics.net/ubuntu/dists/noble/main/binary-amd64/Packages \ | grep "^Package: " \ | cut -d" " -f2 | sort -u ros-jazzy-acoustic-msgs ros-jazzy-alpha-msgs ros-jazzy-buttons-msgs ros-jazzy-dvl ros-jazzy-dvl-msgs ros-jazzy-esc ros-jazzy-gantry-msgs ros-jazzy-hardware ros-jazzy-hippo-common ros-jazzy-hippo-common-msgs ros-jazzy-hippo-control ros-jazzy-hippo-control-msgs ros-jazzy-hippo-msgs ros-jazzy-mjpeg-cam ros-jazzy-path-planning ros-jazzy-px4-msgs ros-jazzy-rapid-trajectories-msgs ros-jazzy-remote-control ros-jazzy-state-estimation-msgs ros-jazzy-uvms-msgs
We can install them by
$ sudo apt install ros-${ROS_DISTRO}-<PACKAGE_NAME>
for example, if we want to install the remote control package the command would be
$ ros-${ROS_DISTRO}-remote-control
Tip
There are meta-packages such as (not necessarily limited to) hippo_full
, hippo_robot
or hippo_common_msgs
.
They do not contain any source code, but depend on other packages to make the installation of bundles of packages more convenient.
For example, hippo_full
depends on (almost) all our message packages and all the other ros2
packages we provide.
This way, instead of installing all these packages one by one, the installation just boils down to
$ sudo apt install ros-jazzy-hippo-full
and all the dependencies get installed automatically.