Quickstart
Use this page for the first run after installing R2Kernel. The goal is simple. confirm the installed runtime, prepare your Python environment, open the local Web Console, and choose the next path.
1. Install R2Kernel
Complete Installation first.
The commands below write the install prefix as <prefix>; the default prefix is
listed in Installation. Install output
includes the following.
- runtime under
<prefix>/runtime - SDK payloads under
<prefix>/sdk - tutorials under
<prefix>/tutorials - license and notice documents under
<prefix>/licenses
Source the installed environment helper in each shell that will run R2Kernel commands.
. <prefix>/env.sh
2. Check Python SDK Availability
Ubuntu / Debian.
sudo apt update
sudo apt install -y python3-venv python3-pip
The installer prepares a versioned Python environment under
<prefix>/sdk/python/environments, selected through sdk/python/current.
After sourcing env.sh, installed tutorials use this interpreter and SDK;
managed package launches use the install-managed interpreter independently
of a development shell's activated virtual environment, unless a package
explicitly configures another interpreter.
. <prefix>/env.sh
python3 -c 'import r2kernel; print("R2Kernel Python SDK ready")'
Use a separate virtual environment only for an isolated development shell.
Source env.sh before activating it: sourcing again afterwards can put the
managed interpreter ahead of the development interpreter. The explicit host
Python below avoids creating a development environment through the managed one.
. <prefix>/env.sh
unset PYTHONPATH
/usr/bin/python3 -m venv r2kernel-quickstart
. r2kernel-quickstart/bin/activate
python -m pip install <prefix>/sdk/python/r2kernel_client-*.whl
unset PYTHONPATH removes the installed SDK path injected by env.sh so the
development interpreter imports its own installed wheel; add any unrelated
custom import paths explicitly afterwards. Activation changes shell python,
not R2KERNEL_PYTHON or managed package launch policy.
You do not need an SDK source checkout for normal installed tutorial runs.
3. Check The Control Backend
If r2kernel-control.service was installed.
sudo systemctl status r2kernel-control.service --no-pager
The important line is Active: active (running). The service uses
<prefix>/runtime/config.yaml by default. A new installation serves the
bundled Web Console on HTTP port 18080 and the HTTP API on port 8001.
Check readiness.
curl -sf http://127.0.0.1:8001/api/v1/ready
Open the local Web Console.
http://127.0.0.1:18080/
HTTPS Console defaults to port 18443 when enabled. Existing explicit ports
are preserved, including legacy 8081/8443 and ui_port: 0 API sharing.
Missing Console port values use the current defaults; inspect the effective
configuration after upgrading.
If your browser is running on a different machine, replace 127.0.0.1 with the
runtime host address. Do this only on a trusted network or after enabling Web/API
security.
If systemctl status also shows pmc ... bind failed: Permission denied
line, that message is from linuxptp time-sync telemetry, not from the Web
Console itself. Check the dedicated time-sync service separately.
sudo systemctl status r2kernel-timesyncd.service --no-pager
r2kernel timesync doctor
4. If Services Were Skipped
Some tutorial and package flows require the resource service. If installation skipped system services, register them before running managed packages.
sudo <prefix>/bin/r2kernel system install \
--prefix <prefix>
For cross-host or site-specific configs.
sudo <prefix>/bin/r2kernel system install \
--prefix <prefix> \
--config /path/to/config.yaml
For time-sync details, use Time Sync Operations.
5. Continue
After the first install check, continue in this order. Tutorial checks are covered on the pages that use them.
- Operate - service status, Web Console, resource control, time sync, security, and deployment checks.
- Develop - the cleaner robot tutorial and subsystem/package development workflow.
Clone source repositories only when you need editable source work.
- clone
r2kernel-sdkfor editable SDK development or source-level SDK tests - use the entry repository's
r2kernel.reposmanifest when you need the matching SDK and docs source workspace - clone
r2kernel-demoseparately when you want complete robotics application demos