A computer vision and hardware streaming interface for education
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
475c415047adbf0a22026dfc8e3f00fc4e82902a879f63a0022507f6168bac5c
|
|
| MD5 |
ab171840c0359c00eb5d150685ad2e22
|
|
| BLAKE2b-256 |
c0e1c8bb2a2decde797d538bc0a8d8c4403a59d4f3d36d871083c6aa88d0f4a9
|
File details
Details for the file ilo_arena-1.0.2.post1-py3-none-any.whl.
File metadata
- Download URL: ilo_arena-1.0.2.post1-py3-none-any.whl
- Upload date:
- Size: 44.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bc05ca24d58540e5e9d3424b4e68552f04b5015e4af92da0f630b8148add241
|
|
| MD5 |
dfb14694b0f30636f9842ea8bba2c5c1
|
|
| BLAKE2b-256 |
5f250f928fe944bc9c87b99d7edbecd803cce57c32ba85a8f3d668240f0c129a
|