Skip to main content

A computer vision and hardware streaming interface for education

Project description

Ilo robot

PyPI Downloads PyPI Downloads / Month

ilo_arena

ilo_arena is a computer vision and hardware streaming interface designed for education. It provides a powerful Python package to control ilo, the new educational robot, directly from your computer based on a video feed using AI to track the robot.

It allows you to move the robot, read sensors, interact with LEDs, and create autonomous behaviors—all in just a few lines of Python.


🌟 Features

  • Automatic Connection: Seamlessly connect to robots detected in the camera's field of view.
  • AI Element Detection: Automatically detect and track elements (robots, boxes, etc.) using YOLO vision models.
  • Intuitive Movement: Move the robot in multiple directions using Python commands and create complex movement loops.
  • LED Matrix Control: Draw and animate using the robot's LED matrix.
  • Real-time Play: Interact with the robot in real time using your keyboard.
  • Sensor Integration: Control and read sensors wirelessly over Bluetooth.
  • Built-in Studio UI: Includes a graphical interface for training custom AI models and visualizing inference streams.

⚙️ Installation and Updates

ilo_arena requires Python 3.8 or higher. You can install it easily using pip.

Install the package

pip install ilo_arena

Update to the latest version

pip install ilo_arena --upgrade

🚀 How to Run

1. Launching the AI Training program

The package comes with a built-in graphical application that lets you train YOLO models. To launch the UI, simply run the following command in your terminal:

ilo_train_ai

2. Running a Custom Robot Script

To control the robot programmatically, write your logic in a Python file and run it using Python:

python your_script.py

💻 Code Example

Here is a simple example to get you started. This script initializes the arena, finds detected elements, and commands the robot to perform a simple movement sequence.

from ilo_arena import Robot, Arena, start_arena, Element

def my_robot_logic(arena: Arena):
    while True:
        try:
            # Fetch all items detected by the AI in the camera view
            elements: list[Element] = arena.get_all_elements()
            
            for element in elements:
                # Attempt to get the connected robot associated with this element
                robot: Robot | None = element.get_robot(element._id)
                
                if robot is not None:
                    # Move forward
                    robot.move("front", 45, 100)
                    arena.sleep(2.0)
                    
                    # Rotate 90 degrees
                    robot.rotation(90, finish_state=True)
                    
                    # Move backward
                    robot.move("back", 70, 100)
                    arena.sleep(2.0)
                    
                    # Stop the robot
                    robot.stop()
                    arena.sleep(1.0)
                    
        except Exception as e:
            print(f"Error encountered: {e}")
            
        # Yield time to the background thread
        arena.sleep(0.1)

if __name__ == "__main__":
    # Start the arena and run the logic in a background thread
    start_arena(my_robot_logic)

📚 Documentation

The physical control of the robot heavily depends on the underlying ilo library. For advanced hardware interactions, refer to the ilo documentation.

To have a list of all available function, you can use

import ilo_arena

ilo_arena.list_function()

🤝 Contributing

Bug reports, patches, and suggestions are welcome! Questions? Contact us via our website.

Powered by Intuition RT

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

ilo_arena-1.0.2.post1.tar.gz (36.7 kB view details)

Uploaded Source

Built Distribution

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

ilo_arena-1.0.2.post1-py3-none-any.whl (44.8 kB view details)

Uploaded Python 3

File details

Details for the file ilo_arena-1.0.2.post1.tar.gz.

File metadata

  • Download URL: ilo_arena-1.0.2.post1.tar.gz
  • Upload date:
  • Size: 36.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for ilo_arena-1.0.2.post1.tar.gz
Algorithm Hash digest
SHA256 475c415047adbf0a22026dfc8e3f00fc4e82902a879f63a0022507f6168bac5c
MD5 ab171840c0359c00eb5d150685ad2e22
BLAKE2b-256 c0e1c8bb2a2decde797d538bc0a8d8c4403a59d4f3d36d871083c6aa88d0f4a9

See more details on using hashes here.

File details

Details for the file ilo_arena-1.0.2.post1-py3-none-any.whl.

File metadata

File hashes

Hashes for ilo_arena-1.0.2.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 2bc05ca24d58540e5e9d3424b4e68552f04b5015e4af92da0f630b8148add241
MD5 dfb14694b0f30636f9842ea8bba2c5c1
BLAKE2b-256 5f250f928fe944bc9c87b99d7edbecd803cce57c32ba85a8f3d668240f0c129a

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