Metadata-Version: 2.4
Name: rebot_rtde
Version: 0.1.0
Summary: Python RTDE client for the reBot control box
Requires-Python: >=3.10
Description-Content-Type: text/markdown

# rebot_rtde

`rebot_rtde` 是 reBot 控制箱的上层主机 Python SDK。它通过持久 TCP 连接
MiniPC，内部完成协议协商、Recipe 配置、控制权申请、状态接收和心跳维护。

## 安装

在源码目录安装：

```bash
cd /home/rebot/rebot_rtde
python -m pip install .
```

发布到 Python 包索引后可直接安装：

```bash
python -m pip install rebot_rtde
```

## 基本调用

```python
from rebot_rtde_control import RTDEControl


IP = "192.168.100.2"
rebot_control = RTDEControl()

try:
    rebot_control.connect(IP)
    q = [0.0, -1.57, 1.57, 0.0, 1.57, 0.0]
    rebot_control.servoJ(q, speed=0.1)
finally:
    rebot_control.disconnect()
```

`q` 使用弧度，必须包含六个有限数；`speed` 使用 rad/s，可以是一个正数或
六个正数组成的序列。

`servoJ()` 是实时流接口，每次调用只发送一帧目标。连续轨迹应由上层程序以
约 60 Hz 持续调用，不能依靠一次调用完成整段运动。超过 100 ms 没有新目标时，
MiniPC 看门狗会停止跟踪并保持当前位置。

`servoJ()` 返回 `True` 只表示本机已经发出该帧，不表示控制箱已经应用目标。

## 公共接口

- `connect(ip, port=5000)`：连接控制箱并启动控制会话；
- `isConnected()`：返回当前连接状态；
- `servoJ(q, speed=None)`：发送一帧六轴关节目标；
- `pause()`：暂停实时数据流并保持当前位置；
- `disconnect()`：暂停、释放控制权并关闭连接。

调用 `pause()` 后需要先执行 `disconnect()`，再重新连接才能继续发送目标。
未传入 `speed` 时使用构造函数的 `default_speed`，默认值为 `0.1 rad/s`。

## 异常

SDK 公开以下异常：

- `RTDEConnectionError`：连接失败或连接已经断开；
- `RTDETimeoutError`：控制箱响应超时；
- `RTDEProtocolError`：协议数据不合法；
- `RTDEControlError`：控制箱拒绝请求；
- `RTDEError`：以上异常的公共基类。

## 控制箱要求

调用 SDK 前，MiniPC 上的控制守护进程、IPC 服务和网络服务必须已经启动，
并允许上层主机访问 TCP 5000 端口。同一时刻只允许一个上层主机持有控制权。

网络控制不能替代实体急停。首次真机运行时应限制速度和运动范围，并由现场
人员全程监护。
