Skip to main content

A unified Python client for Roboreactor edge devices and robot simulators.

Project description

roboreactor

Official Python client library for connecting edge devices, emulators, and robot controls directly to the RoboReactor ecosystem.


Installation

pip install roboreactor

Create RoboReactor Account

To use the SDK:

  1. Sign up at https://roboreactor.com/
  2. Create a project
  3. Generate your secret_token

You will need:

  • Email
  • Project Name
  • Secret Token

Initialize Client

from roboreactor import RoboReactor

client = RoboReactor(
    email="your_email@example.com",
    project_name="Your_Project",
    secret_token="YOUR_SECRET_TOKEN"
)

Verify Authentication Token

Verify your API connection before starting your robot system.

from roboreactor import RoboReactor

client = RoboReactor(
    email="your_email@example.com",
    project_name="Robot_Project",
    secret_token="YOUR_SECRET_TOKEN"
)

status = client.verify_token()

if status:
    print("Connection verified!")
    print(status)
else:
    print("Authentication failed.")

Send Joint Feedback Sensors

Upload robot joint sensor feedback to RoboReactor cloud.

from roboreactor import RoboReactor 
client = RoboReactor( 
    email="your_email@example.com", 
    project_name="Robot_Project", 
    secret_token="YOUR_SECRET_TOKEN" ) 
    joint_feedback = { "joint_1": { 
        "angle_deg": 35.5 
        }, 
    "joint_2": { 
        "angle_deg": 12.8 
        }, 
    "joint_3": {
         "angle_deg": -8.2 
         } 
    }  
response = client.update_feedback_sensors(joint_feedback) 
print(response)

Send Navigation Control

Send target coordinates, robot orientation, and joint targets.

import math
from roboreactor import RoboReactor
client = RoboReactor( 
    email="your_email@example.com", 
    project_name="Robot_Project", 
    secret_token="YOUR_SECRET_TOKEN" ) 

# 2. Define your joint targets in DEGREES
# The client will automatically convert these to radians before sending
my_joint_targets = {
    "base": 90.0,    # Was 1.57 rad
    "shoulder": 180.0,    # Was 0.785 rad
    "wrist": -30.0    # Was -0.523 rad
}

# 3. Send the navigation control
# Orientation (roll, pitch, yaw) is also expected in degrees
response = client.send_navigation_control(
    x=2.5, 
    y=0.0, 
    z=1.5, 
    roll_deg=0.0, 
    pitch_deg=0.0, 
    yaw_deg=0.0, 
    joint_targets_deg=my_joint_targets, # Pass degrees here
    robot_name="Robot_arm_01"
)

# 4. Handle the response
if response:
    print("Navigation command sent successfully!")
else:
    print("Failed to send navigation command.")

Convert Euler Angles to Quaternion

Utility function for converting Euler angles into quaternion format.

from roboreactor import RoboReactor

quaternion = RoboReactor.euler_to_quaternion(
    roll_deg=0,
    pitch_deg=45,
    yaw_deg=90
)

print(quaternion)

Send Generic Sensor Telemetry

Upload custom sensor payloads such as IMU, GPS, battery, and telemetry data.

from roboreactor import RoboReactor

client = RoboReactor(
    email="your_email@example.com",
    project_name="Robot_Project",
    secret_token="YOUR_SECRET_TOKEN"
)

# 2. Prepare your sensor data
# The structure should match what the API expects for the 'sensor_payload'
my_sensor_data = {
    "BMS_sensor": {
        "main_pack": 60.5,
        "temp_sensor_5": 35.5
    },
    "Motion_sensor": {
        "imu_1": {"x": 1.05, "y": -0.02, "z": 1.0}
    }
}

# 3. Post the data
response = client.post_sensor_data(my_sensor_data)

# 4. Handle the response
if response:
    print("Data sent successfully:", response)
else:
    print("Failed to send sensor data.")

Fetch IoT Remote Commands

Retrieve IoT control commands from RoboReactor cloud.

from roboreactor import RoboReactor

client = RoboReactor(
    email="your_email@example.com",
    project_name="Robot_Project",
    secret_token="YOUR_SECRET_TOKEN"
)

commands = client.fetch_iot_control()

print(commands)

Robot Edge Loop Example

Example continuous runtime telemetry loop for robotics edge devices.

import time
from roboreactor import RoboReactor

client = RoboReactor(
    email="your_email@example.com",
    project_name="Robot_Project",
    secret_token="YOUR_SECRET_TOKEN"
)

while True:

    telemetry_payload = {
        "runtime": {
            "cpu_temp": 48.2,
            "loop_rate_hz": 120
        }
    }

    client.post_sensor_data(telemetry_payload)

    commands = client.fetch_iot_control()

    if commands:
        print("Received Commands:", commands)

    time.sleep(1)

Features

  • Secure cloud authentication
  • Real-time robotics telemetry
  • Navigation target streaming
  • Joint control streaming
  • Quaternion utilities
  • Generic telemetry upload
  • IoT remote command retrieval
  • Edge-device architecture support

Example Architecture

Robot / MCU / SBC
        │
        ▼
RoboReactor Python SDK
        │
        ▼
RoboReactor Cloud API
        │
        ├── Telemetry Dashboard
        ├── Motion Streaming
        ├── IoT Remote Control
        └── Multi-Robot Coordination

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

roboreactor-0.1.8.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

roboreactor-0.1.8-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file roboreactor-0.1.8.tar.gz.

File metadata

  • Download URL: roboreactor-0.1.8.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for roboreactor-0.1.8.tar.gz
Algorithm Hash digest
SHA256 1db4f0af39a0dc852d82bde67a493a4b28af12f3b8349749bb277bfc15c1fe0c
MD5 e1f5a7b6f5af34ded3d7d330f25a6b40
BLAKE2b-256 93d034b7600316f88c7c13df6e0c7739cef7e7baf79efb1d78373063234d61ed

See more details on using hashes here.

File details

Details for the file roboreactor-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: roboreactor-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for roboreactor-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 728bb88dc4c295aa783f69f543eaceb6626fd3b62b9a7e551f15da535e144af2
MD5 ad4e9fcab43340bb8ccad46316ef021d
BLAKE2b-256 652e51576638c78c51feb9e9a5a2251d48a23a2e4fef4952f2918f205a61bd63

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page