Metadata-Version: 2.4
Name: norrdog
Version: 0.1.0
Summary: NorrBot Studio SDK — drive the Go2 robot dog, simulated or real, from your own Python
Author-email: NorrSpect AB <software.dev@norrspect.com>
Maintainer-email: NorrSpect AB <software.dev@norrspect.com>
License-Expression: LicenseRef-Proprietary
Project-URL: Homepage, https://github.com/Proxie-Studio/norrdog-studio
Project-URL: Source, https://github.com/Proxie-Studio/norrdog-studio/tree/main/vscode-extension/python
Project-URL: Issues, https://github.com/Proxie-Studio/norrdog-studio/issues
Keywords: robotics,norrbot,norrspect,unitree,go2,education,vscode
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Education
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Typing :: Typed
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: vision
Requires-Dist: pillow>=9; extra == "vision"
Requires-Dist: numpy>=1.21; extra == "vision"
Dynamic: license-file

# norrdog

The NorrBot Studio SDK for the **Go2 robot dog** — write plain Python in your
own editor and drive either the browser simulator or a real Unitree Go2.

```python
from norrdog import dog, wait

dog.stand()
for _ in range(4):
    dog.move(1.0)
    dog.turn(90)

frame = dog.camera("front")
frame.save("shot.jpg")
print(frame.dominant_color())
```

## This package needs the VS Code extension

`norrdog` is the client half of a pair. On its own it does nothing: it sends
commands over a loopback socket to the **NorrDog Studio Connector** extension
for VS Code, which owns the link and forwards them to the robot.

```
your python  ──127.0.0.1:8011──▶  NorrDog Studio Connector  ──▶  Studio page
                                        (VS Code)            ──▶  real Go2
```

So before anything here will run:

1. Install the **NorrDog Studio Connector** extension in VS Code.
2. Open the NorrBot Studio page, or connect a Go2 over rosbridge.
3. Press **Connect to Desktop** in the extension's panel.

Without that, every call raises `LinkError` with instructions.

## Install

```bash
pip install norrdog
```

`Image.array()` additionally needs Pillow and NumPy:

```bash
pip install "norrdog[vision]"
```

Nothing else is required — the SDK is standard-library only, and dials
`127.0.0.1:8011` by default. Set `NORRDOG_LINK=host:port` if you moved the
extension's `norrdog.clientPort`.

## What it covers

```
motion    move  turn  strafe  velocity  jump  sit  stand  stop  wait
sensors   imu  pose  twist  ultrasonic  battery  state
camera    camera() -> Image
          Image: save  to_bytes  array  show  dominant_color  brightness  find
mqtt      publish  subscribe  get_message
world     set_terrain  reset
```

Method names, units and sign conventions match the in-browser NorrBot Studio
SDK exactly, so a program written in the browser Code Studio runs here
unchanged. Units are metres, degrees, and REP-103 signs (x forward, y left,
z up; positive yaw turns left).

Two things only this version can do, because your code is not inside a browser:
`Image.save()` writes a real file to disk, and `dog.frames(seconds, fps)`
yields a clip you can save frame by frame.

Requires Python 3.9 or newer.

## Licence

Copyright © 2026 NorrSpect AB. All rights reserved.

This package is **proprietary**. Downloading it from PyPI does not grant any
licence to use, copy, modify or distribute it. See `LICENSE`, or contact
software.dev@norrspect.com for licensing.
