# 馃 `vlm_robot_agent`
### Author: Edison Bejarano
Library designed to use VLMs in the context of robotics actions for planning and interactions
Un **agente rob贸tico inteligente** basado en modelos de lenguaje visual (VLM), que puede percibir el entorno desde una imagen, planificar acciones y decidir entre **navegar** o **interactuar con personas** para alcanzar un objetivo dado (como entrar en una habitaci贸n, buscar un ba帽o, etc).
---
## 馃殌 Caracter铆sticas
- 馃摲 **Percepci贸n visual** usando un VLM de OpenAI
- 馃 **Razonamiento basado en objetivos** (macro y micro-goals)
- 馃Л Acciones de **navegaci贸n**:
- `forward`, `left`, `right`, `forward_left`, `forward_right`
- 馃檵 Acciones de **interacci贸n**:
- Conversar con una persona que bloquea el paso
- Hacer gestos para pedir que se mueva
- 馃捑 **Memoria de interacciones** y lectura/ejecuci贸n de prompts desde un folder
---
## 馃摝 Instalaci贸n
```bash
pip install vlm_robot_agent
```
---
## 馃洜 Uso b谩sico
```python
from vlm_robot_agent import VLMRobotAgent
agent = VLMRobotAgent(prompt_folder="./prompts")
image = obtener_imagen_de_tu_robot()
goal = "entrar a la oficina 3"
# Loop de ejecuci贸n
while True:
action = agent.step(image, goal)
ejecutar_action_en_robot(action)
if objetivo_cumplido():
break
```
---
## 馃搧 Estructura de prompts
Los prompts se almacenan como archivos `.json` dentro del folder configurado, y puedes cargarlos con:
```python
prompts = agent.load_prompts()
```
---
## 馃З Integraci贸n con robots
- Puede usarse en sistemas ROS, simuladores como Gazebo, o cualquier entorno de robots.
- El agente necesita:
- Imagen actual del entorno (`image`)
- Objetivo a cumplir (`goal`)
- Una funci贸n que ejecute la acci贸n devuelta (`Navigate`, `Interact`)
---
## 馃摎 Ejemplo de acciones
```python
from vlm_robot_agent import Navigate, Interact
# Navegar hacia adelante
Navigate(direction="forward")
# Pedir a una persona que se mueva
Interact(strategy="ask_to_move")
```
---
## 馃搫 Licencia
MIT
---
## 馃 Futuras mejoras
- Seguimiento de progreso con `StateTracker`
- Manejo de m煤ltiples agentes o flujos conversacionales
- Soporte para entrada multimodal (texto + imagen)
<p align="center">
<img src="img/edison-bejarano.png" alt="Edison Bejarano" width="300"/>
</p>
Raw data
{
"_id": null,
"home_page": null,
"name": "vlm-robot-agent",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "robotics, vlm, openai, navigation, interaction",
"author": null,
"author_email": "Edison Bejarano <edison.bejarano@upc.edu>",
"download_url": "https://files.pythonhosted.org/packages/cc/c7/fd298fdb4c57919d6e91663e021f7d47724023959372f4bb57daecae2021/vlm_robot_agent-0.3.0.tar.gz",
"platform": null,
"description": "# \ud83e\udd16 `vlm_robot_agent`\n\n### Author: Edison Bejarano\n\n\nLibrary designed to use VLMs in the context of robotics actions for planning and interactions\n\n\n\nUn **agente rob\u00f3tico inteligente** basado en modelos de lenguaje visual (VLM), que puede percibir el entorno desde una imagen, planificar acciones y decidir entre **navegar** o **interactuar con personas** para alcanzar un objetivo dado (como entrar en una habitaci\u00f3n, buscar un ba\u00f1o, etc).\n\n---\n\n## \ud83d\ude80 Caracter\u00edsticas\n\n- \ud83d\udcf7 **Percepci\u00f3n visual** usando un VLM de OpenAI\n- \ud83e\udde0 **Razonamiento basado en objetivos** (macro y micro-goals)\n- \ud83e\udded Acciones de **navegaci\u00f3n**:\n - `forward`, `left`, `right`, `forward_left`, `forward_right`\n- \ud83d\ude4b Acciones de **interacci\u00f3n**:\n - Conversar con una persona que bloquea el paso\n - Hacer gestos para pedir que se mueva\n- \ud83d\udcbe **Memoria de interacciones** y lectura/ejecuci\u00f3n de prompts desde un folder\n\n---\n\n## \ud83d\udce6 Instalaci\u00f3n\n\n```bash\npip install vlm_robot_agent\n```\n\n---\n\n## \ud83d\udee0 Uso b\u00e1sico\n\n```python\nfrom vlm_robot_agent import VLMRobotAgent\n\nagent = VLMRobotAgent(prompt_folder=\"./prompts\")\n\nimage = obtener_imagen_de_tu_robot()\ngoal = \"entrar a la oficina 3\"\n\n# Loop de ejecuci\u00f3n\nwhile True:\n action = agent.step(image, goal)\n ejecutar_action_en_robot(action)\n if objetivo_cumplido():\n break\n```\n\n---\n\n## \ud83d\udcc1 Estructura de prompts\nLos prompts se almacenan como archivos `.json` dentro del folder configurado, y puedes cargarlos con:\n\n```python\nprompts = agent.load_prompts()\n```\n\n---\n\n## \ud83e\udde9 Integraci\u00f3n con robots\n- Puede usarse en sistemas ROS, simuladores como Gazebo, o cualquier entorno de robots.\n- El agente necesita:\n - Imagen actual del entorno (`image`)\n - Objetivo a cumplir (`goal`)\n - Una funci\u00f3n que ejecute la acci\u00f3n devuelta (`Navigate`, `Interact`)\n\n---\n\n## \ud83d\udcda Ejemplo de acciones\n```python\nfrom vlm_robot_agent import Navigate, Interact\n\n# Navegar hacia adelante\nNavigate(direction=\"forward\")\n\n# Pedir a una persona que se mueva\nInteract(strategy=\"ask_to_move\")\n```\n\n---\n\n## \ud83d\udcc4 Licencia\nMIT\n\n---\n\n## \ud83e\udde0 Futuras mejoras\n- Seguimiento de progreso con `StateTracker`\n- Manejo de m\u00faltiples agentes o flujos conversacionales\n- Soporte para entrada multimodal (texto + imagen)\n\n\n<p align=\"center\">\n <img src=\"img/edison-bejarano.png\" alt=\"Edison Bejarano\" width=\"300\"/>\n</p>\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Agente rob\u00f3tico basado en VLM que navega e interact\u00faa con personas seg\u00fan objetivos visuales",
"version": "0.3.0",
"project_urls": {
"Homepage": "https://github.com/EjbejaranosAI/vlm_robot_agent",
"Repository": "https://github.com/EjbejaranosAI/vlm_robot_agent"
},
"split_keywords": [
"robotics",
" vlm",
" openai",
" navigation",
" interaction"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "a503ccfe46220363a2596fe8ab56d35f58c6b43f5bd386d61097be5255cde9a0",
"md5": "4ae7474b1aeee8b2e029481d33f07b1c",
"sha256": "b4c089768f5c1e62d4319ef025d7db095c90e9691899a91c4f02fa30d99ef650"
},
"downloads": -1,
"filename": "vlm_robot_agent-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4ae7474b1aeee8b2e029481d33f07b1c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 26122,
"upload_time": "2025-07-23T14:37:52",
"upload_time_iso_8601": "2025-07-23T14:37:52.042058Z",
"url": "https://files.pythonhosted.org/packages/a5/03/ccfe46220363a2596fe8ab56d35f58c6b43f5bd386d61097be5255cde9a0/vlm_robot_agent-0.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ccc7fd298fdb4c57919d6e91663e021f7d47724023959372f4bb57daecae2021",
"md5": "b55904d8ffc4c5beed5133018156e0ab",
"sha256": "7c578a59ecc4a823926cd01237033bd1206cb264da025539bb47df810706ca62"
},
"downloads": -1,
"filename": "vlm_robot_agent-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "b55904d8ffc4c5beed5133018156e0ab",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 22059,
"upload_time": "2025-07-23T14:37:53",
"upload_time_iso_8601": "2025-07-23T14:37:53.471862Z",
"url": "https://files.pythonhosted.org/packages/cc/c7/fd298fdb4c57919d6e91663e021f7d47724023959372f4bb57daecae2021/vlm_robot_agent-0.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-23 14:37:53",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "EjbejaranosAI",
"github_project": "vlm_robot_agent",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "pyttsx3",
"specs": []
},
{
"name": "openai-whisper",
"specs": []
},
{
"name": "sounddevice",
"specs": []
},
{
"name": "soundfile",
"specs": []
},
{
"name": "numpy",
"specs": []
},
{
"name": "resources",
"specs": []
}
],
"lcname": "vlm-robot-agent"
}