El proyecto ROS-LLM es un marco ROS para aplicaciones de inteligencia incorporada. Permite interacciones de lenguaje natural y un control basado en modelos grandes del movimiento y la navegación del robot para cualquier robot que opere en ROS.
ROS-LLM le permite utilizar funcionalidades basadas en modelos de lenguaje grandes, como GPT-4 y ChatGPT, para la toma de decisiones y el control de robots.
Este marco está diseñado para ser fácil de ampliar. Simplemente proporcionando una interfaz funcional para su robot, siguiendo el ejemplo proporcionado, puede integrar y utilizar ROS-LLM en diez minutos.
ROS-LLM ofrece una solución sencilla para crear rápidamente experiencias interactivas y de control con cualquier robot.
? Integración ROS : interactúa suavemente con el sistema operativo del robot (ROS) para un control robótico expansivo.
? Compatibilidad con modelos de lenguajes grandes : aprovecha GPT-4 y ChatGPT para mejorar la toma de decisiones y la gestión de tareas.
Interacción natural : facilita la comunicación intuitiva con los robots a través de la interacción conversacional.
Control flexible : utiliza sistemas basados en LLM para tareas como movimiento y navegación basados en la interpretación de modelos de lenguaje.
? Extensibilidad simplificada : proporciona una interfaz sencilla para una integración perfecta de las funciones del robot.
Desarrollo rápido : crea experiencias interactivas de control de robots rápidamente, a veces en menos de diez minutos.
Ejemplos de instrucción : ofrece tutoriales y ejemplos completos para facilitar la comprensión y la implementación.
?️ Almacenamiento del historial : conserva los historiales de chat locales para una revisión y referencia convenientes.
Siga las instrucciones a continuación para configurar ROS-LLM:
1. Clonar el repositorio:
Utilice el siguiente comando para clonar el repositorio.
git clone https://github.com/Auromix/ROS-LLM.git
2. Instalar dependencias:
Navegue hasta el directorio llm_install
y ejecute el script de instalación.
cd ROS-LLM/llm_install
bash dependencies_install.sh
3. Configure los ajustes de OpenAI:
Si no tiene una clave API de OpenAI, puede obtener una de OpenAI Platform. Utilice el siguiente script para configurar su clave API OpenAI.
cd ROS-LLM/llm_install
bash config_openai_api_key.sh
4. Configure los ajustes de AWS (opcional):
Para conocer las capacidades de interacción natural en la nube, configure los ajustes de AWS. Si prefiere utilizar ASR local, puede omitir este paso.
Para plataformas integradas de borde de bajo rendimiento, se recomienda utilizar servicios en la nube ASR para reducir la presión informática, y para hosts personales de alto rendimiento, se recomienda utilizar servicios ASR locales para acelerar la respuesta.
cd ROS-LLM/llm_install
bash config_aws.sh
4. Configure los ajustes de OpenAI Whisper (opcional):
Para capacidades de interacción natural local, configure los ajustes de OpenAI Whisper. Si prefiere utilizar ASR en la nube, puede omitir este paso.
Para plataformas integradas de borde de bajo rendimiento, se recomienda utilizar servicios en la nube ASR para reducir la presión informática, y para hosts personales de alto rendimiento, se recomienda utilizar servicios ASR locales para acelerar la respuesta.
pip install -U openai-whisper
pip install setuptools-rust
5. Construya el espacio de trabajo:
Navegue hasta el directorio de su espacio de trabajo y cree el espacio de trabajo.
cd < your_ws >
rosdep install --from-paths src --ignore-src -r -y # Install dependencies
colcon build --symlink-install
6. Ejecute la demostración:
Obtenga el script de configuración e inicie la demostración de Turtlesim con ASR en la nube.
source < your_ws > /install/setup.bash
ros2 launch llm_bringup chatgpt_with_turtle_robot.launch.py
empieza a escuchar
ros2 topic pub /llm_state std_msgs/msg/String " data: 'listening' " -1
Para utilizar el marco con su propio robot, modifique los paquetes llm_robot
y llm_config
para adaptarlos a las especificaciones de su robot. Esto le permite personalizar el comportamiento de su robot.
Nos esforzamos continuamente por mejorar ROS-LLM para servir mejor a los desarrolladores y especialistas en robótica de la comunidad. A continuación se detallan los desarrollos clave que planeamos llevar a cabo en las próximas actualizaciones:
Agregar un mecanismo de agente permite dividir bien las tareas de secuencia larga.
Planeamos agregar un mecanismo de retroalimentación para que el robot reciba información de funciones externas. Esto ayudaría significativamente a los procesos de toma de decisiones basados en modelos.
También está en proyecto una nueva interfaz para la navegación de robots. Permitirá la utilización de este marco en tareas orientadas a la navegación.
La incorporación de otras interfaces de entrada de sensores es otro avance importante. Esto incorporará la percepción ambiental en las premisas de decisión del modelo, preparándolos para funcionalidades como la evitación de obstáculos.
Nuestro objetivo es ampliar las capacidades de ROS-LLM mediante la integración de modelos que permitan la entrada visual, como Palm-e. Esto permitiría el uso de tecnologías avanzadas de visión por computadora para una mejor interacción con el entorno.
Por último, pero no menos importante, nos centraremos en la optimización continua del marco. Estamos comprometidos a mejorar la racionalidad y extensibilidad de ROS-LLM para que sea más fácil para los desarrolladores personalizar y ampliar el marco de acuerdo con sus necesidades.
Esté atento a este repositorio para obtener actualizaciones. ¡Tus sugerencias y contribuciones siempre son bienvenidas!
Si encuentra útil este proyecto, considere darle una estrella ️ en GitHub. Su apoyo nos ayuda a mejorar el proyecto y fomenta un mayor desarrollo. No olvides compartirlo también con tus amigos y colegas a quienes les pueda resultar beneficioso. ¡Gracias por su apoyo!
¡Las contribuciones son bienvenidas! Lea las pautas de contribución antes de enviar una solicitud de extracción.
Copyright 2023 Herman Ye @Auromix
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.