Skip to main content

RaphOS

RaphOS is a Debian-based Operating System distribution for the UpBoard computer running inside Raph Rover.

It uses Ubuntu and Fictionlab package archives and comes with:

  • ROS distribution with Raph-specific packages installed,
  • network configured to connect to the router,
  • SSH server for remote access,
  • HTTP server that hosts the Web User Interface,
  • services for starting base functionalities at boot.

Network configuration​

RaphOS configures the network to provide connectivity between Raph Rover and the Teltonika RUTX10 router over Ethernet. The system uses NetworkManager as the default renderer and sets up a bridge interface (br0) on top of the wired Ethernet connection. This gives the rover a static address on the router-side subnet and a default route through the router.

Interfaces​

  • enp1s0 - Wired Ethernet interface connected to the RUTX10 router and added to the bridge br0.
  • br0 - Bridge interface for the rover's wired network connection, assigned static IP 10.10.0.2/24 and default route 10.10.0.1.

The bridge keeps the rover's Ethernet connection on a single subnet with the router. Devices connected to the RUTX10 router can reach the rover at 10.10.0.2, and the rover uses 10.10.0.1 as its gateway and DNS server.

You can learn how to change the router settings in this guide:

📄Configure the Router
Learn how to configure the RUTX10 router on your Raph Rover. This guide covers changing the SSID, password, country code, and wireless channel.

ROS Startup​

RaphOS provides an easy mechanism for adding new functionalities without building any of the base packages. The whole process of starting the ROS nodes can be summarized as follows, using the following files:

  • /etc/ros/robot.launch.xml - a launch file in XML format that starts the robot's functionality. It includes the launch file from the raph_bringup package, which starts the base functionality of the rover. It can be extended by the user, for example, to add additional nodes to be started at boot.
info

A launch file describes a system configuration to be executed. This includes what set of nodes to start, what parameters to pass to each node and many more.

  • /etc/ros/setup.bash - the environment setup file that sets all the environment variables necessary for the successful start of the ROS system. It sources the environment setup file from the target ROS workspace (by default /opt/ros/jazzy/setup.bash), and sets additional environment variables used by ROS or startup services.

  • /etc/ros/urdf/robot.urdf.xacro - the URDF description (in xacro format) that is passed to the Robot State Publisher node. It includes the robot's model from the raph_description package and can be extended by the user to add additional links or joints to the model.

Additionally, systemd user units are used to start the ROS nodes at boot. The following units are defined:

  • ros-nodes.service - A service that starts the /etc/ros/robot.launch.xml ROS 2 launch file.
  • uros-agent.service - A service that starts the Micro-ROS Agent.
  • ros.target - A target that groups the above two services together.

Both services can be configured through the /etc/ros/setup.bash file.

To facilitate managing these services, RaphOS comes with a set of bash aliases:

  • <unit>-start - Starts the specified unit.
  • <unit>-stop - Stops the specified unit.
  • <unit>-restart - Restarts the specified unit.
  • <unit>-status - Displays the status of the specified unit.
  • <unit>-enable - Enables the specified unit to start at boot.
  • <unit>-disable - Disables the specified unit from starting at boot.
  • <unit>-logs - Displays the logs of the specified unit (can be used with -f flag to follow the logs).

Where <unit> can be either ros, ros-nodes, uros-agent.

For example, to stop both services, you can type:

ros-nodes-stop
uros-agent-stop

or just:

ros-stop

To check logs from both services, you can type:

ros-logs

Support​

RaphOS releases are aligned with ROS 2 LTS distributions. Each RaphOS release will be supported until the corresponding ROS 2 LTS distribution reaches its End of Life (EOL). During the support period, we will provide updates, bug fixes, and security patches for the RaphOS release.

New RaphOS releases will be made available up to a year after the corresponding ROS 2 LTS release, with a beta version available a few months prior.

info

For non-LTS ROS 2 releases, official RaphOS releases will not be provided. However, Raph Rover ROS 2 packages will be available for all currently supported upstream ROS 2 distributions.

Releases and support duration​

RaphOS versionROS 2 LTSRelease dateEnd of LifeStatus
1.x.xJazzyMarch 2026May 2029Supported (default)
2.x.xLyricalMay 2027May 2031To be released