Metadata-Version: 2.4
Name: osiris_agent
Version: 0.2.4
Summary: OSIRIS agent for ROS2/Humble
Home-page: https://github.com/nicolaselielll/osiris_agent
Author: Nicolas Tuomaala
Author-email: nicolas.tuomaala00@gmail.com
License: Apache-2.0
Keywords: ros2 humble agent
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: websockets
Requires-Dist: psutil
Requires-Dist: pyzmq
Provides-Extra: ros
Requires-Dist: rclpy; extra == "ros"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: summary

# OSIRIS Agent

![PyPI](https://img.shields.io/pypi/v/osiris_agent.svg)
![Python](https://img.shields.io/pypi/pyversions/osiris_agent.svg)
![License](https://img.shields.io/pypi/l/osiris_agent.svg)
![CI](https://github.com/nicolaselielll/osiris_agent/actions/workflows/ci.yml/badge.svg)

A ROS2 Humble node that bridges your robot to the OSIRIS remote monitoring platform via WebSocket.

## Install

Install the OSIRIS agent on your robot:
```bash
pip3 install osiris-agent
```

## Quick Start

### 1. Add token to your environment

```bash
export OSIRIS_AUTH_TOKEN=your-token-here
```

### 2. (Optional) Enable behaviour tree collector

If you're using BT.CPP with Groot2 monitoring:

```bash
export OSIRIS_BT_COLLECTOR_ENABLED=true
```

Default host is `127.0.0.1`. Default port for server is `1667` and for publisher `1668`. To change these:

```bash
export OSIRIS_BT_HOST=127.0.0.1
export OSIRIS_BT_SERVER_PORT=1667
export OSIRIS_BT_PUBLISHER_PORT=1668
```

### 3. Start agent

```bash
osiris_node
```

## Usage & Configuration

### Required Environment Variables

- `OSIRIS_AUTH_TOKEN` — Your robot authentication token from the OSIRIS platform

### Optional Environment Variables

**Behaviour Tree Monitoring (BT.CPP + Groot2):**
- `OSIRIS_BT_COLLECTOR_ENABLED` — Set to `true` to enable BT.CPP tree monitoring (default: `false`)
- `OSIRIS_BT_HOST` — Groot2 ZMQ host address (default: `127.0.0.1`)
- `OSIRIS_BT_SERVER_PORT` — Groot2 REQ/REP server port (default: `1667`)
- `OSIRIS_BT_PUBLISHER_PORT` — Groot2 PUB/SUB publisher port (default: `1668`)

## BT.CPP Integration

The agent automatically collects behaviour tree events from BT.CPP when `OSIRIS_BT_COLLECTOR_ENABLED=true`. Your BT.CPP application must:

1. Enable Groot2 monitoring in your code
2. Use the standard Groot2 ZMQ ports (1667/1668) or configure custom ports via environment variables

The collector uses BT.CPP's standardized Groot2 protocol, so it works with any behaviour tree without custom configuration.

## Contributing

Open issues and PRs at: https://github.com/nicolaselielll/osiris_agent

## License

Apache-2.0 — see the LICENSE file.

## Changelog

See release notes on GitHub Releases for v0.1.0 and future versions.
