Skip to main content

Navel Remote

This project will be deployed on the navel robot to enable remote control via ZTL

Installation

Clone the repository and set up a virtual environment:

python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install navel-remote

This installs navel-remote in editable mode along with its dependencies (navel, ztl, ztl-web).

Usage

Once installed, two CLI commands are available:

navel-remote --help
navel-camera --help

Remote control server (navel-remote)

Runs the remote control service on the robot and responds to commands received over ZTL.

navel-remote [-h] [-p PORT] [-s SCOPE] [-f]
Flag Default Description
-p, --port 5565 Port to listen on for incoming remote control commands.
-s, --scope /navel Scope to respond to. Clients must use the same scope when publishing commands.
-f, --federated-logging Disabled Enable federated data logging. Requires a configured federation remote and publisher.
-h, --help - Show help information and exit.

Examples

Start the remote control service with the default configuration:

navel-remote

Listen on a custom port and scope:

navel-remote --port 6000 --scope /robot

Enable federated logging:

navel-remote --federated-logging

Notes

  • The service must be running on the robot before remote clients can connect and issue commands.
  • The configured port and scope must match those used by the remote client.
  • Federated logging is optional and only required when integrating with a configured federation logging infrastructure.
  • You can use .service files in the etc folder to enable systemd autostarting.

Camera stream (navel-camera)

Publishes frames from the robot's head camera over ZTL.

navel-camera [-p PORT] [-s SCOPE] [--compress | --no-compress] [-q JPEG_QUALITY]
Flag Default Description
-p, --port 5665 Port to publish on.
-s, --scope /head_cam Scope to publish data under.
--compress / --no-compress --compress JPEG-compress frames before publishing. Cuts payload size roughly 10-20x, which matters over WiFi where an uncompressed ~920KB/frame stream needs ~9.2MB/s to sustain 10fps. Use --no-compress to publish raw navel.Frame objects instead (e.g. for lossless capture on a fast/local link).
-q, --jpeg-quality 80 JPEG quality (1-95) when --compress is enabled; lower values trade image quality for less bandwidth. Ignored with --no-compress.
-h, --help - Show help information and exit.

On startup, navel-camera logs which mode it's running in, e.g. JPEG compression enabled (quality=80) or JPEG compression disabled, publishing raw frames — check that line to confirm compression is actually on.

Viewing the stream

test/display.py is a standalone script (not an installed CLI command) that subscribes to a running navel-camera and displays the stream with matplotlib. Compression is configured entirely on the publisher side (navel-camera's --compress/--no-compress, on by default); display.py has no matching flag because it doesn't need one — it inspects each incoming frame and transparently decodes whichever format was actually sent, JPEG-compressed or raw. Just point it at the remote host:

./test/display.py -r 10.0.1.184
Flag Default Description
-r, --remote navel1-1 Remote host running navel-camera to subscribe to.
-p, --port 5665 Remote port to subscribe to (must match navel-camera's --port).
-s, --scope /head_cam Scope data is published under (must match navel-camera's --scope).

Metadata

Release files for navel-remote 0.4.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for navel-remote 0.4.8
File Size Uploaded
navel_remote-0.4.8.tar.gz 22.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for navel-remote 0.4.8
File Interpreter ABI Platform
navel_remote-0.4.8-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 34.6 kB

Release history Release notifications | RSS feed

0.5.0

2 release files

0.4.9

2 release files

This release

0.4.8 This release

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page