Zorg is an extensible robotics framework designed for the Internet of Things

Configure your robots with Zorg!

Zorg is a Python framework for robotics, and Internet of Things projects. It makes it easy to configure and control your projects by allowing you to write less code while building better robots.

Zorg runs on a variety of platforms, including the Intel Edison and the Raspberry Pi. Zorg supports a wide variety of hardware components, including various analog and digital sensors that come in the Grove Starter Kit. Adding support for new platforms and devices is simple thanks to Zorg's modular design.


import time
import zorg

def move_servo(my):
    angle = 0

    while True:
        my.servo.set_angle(angle)

        angle += 45

        if angle > 135:
            angle = 0

        time.sleep(0.1)

robot = zorg.robot({
    "name": "Zorg",
    "connections": {
        "edison": {
            "adaptor": "zorg_edison.Edison",
        },
    },
    "devices": {
        "led": {
            "connection": "edison",
            "driver": "zorg_gpio.Servo",
            "pin": 5, # Digital/PWM pin 5
        },
    },
    "work": move_servo,
})

robot.start()

Building Robots with Zorg

Zorg is written in Python, so it's easy to leverage other awesome science libraries written in Python such as Scipy, and Scikit Learn to integrate amazing features into your project! Interested in creating web apps to control your robots? Checkout our Web API documentation.

Zorg wraps the MRAA library created by Intel for interacting with IO pins on the Edison microcontroller. While the Python bindings for mraa work great on their own, the benefit of Using Zorg is that we have already created many of the drivers you needed for using sensors and output devices. Zorg also implements multiprocessing so that tasks such as reading and writing from sensors are non-blocking, allowing you to take full advantage of multi-processor boards like the Intel Edison.