Le projet ROS-LLM est un framework ROS pour les applications d'intelligence incorporée. Il permet des interactions en langage naturel et un contrôle à grande échelle du mouvement et de la navigation du robot pour tout robot fonctionnant sur ROS.
ROS-LLM vous permet d'utiliser des fonctionnalités basées sur des modèles de langage étendus, tels que GPT-4 et ChatGPT, pour la prise de décision et le contrôle des robots.
Ce framework est conçu pour être facile à étendre. En fournissant simplement une interface fonctionnelle pour votre robot, en suivant l'exemple fourni, vous pouvez intégrer et utiliser ROS-LLM en dix minutes.
ROS-LLM offre une solution simple pour créer rapidement des expériences interactives et de contrôle avec n'importe quel robot.
? Intégration ROS : interagit en douceur avec le système d'exploitation du robot (ROS) pour un contrôle robotique étendu.
? Prise en charge des grands modèles linguistiques : exploite GPT-4 et ChatGPT pour une prise de décision et une gestion des tâches améliorées.
Interaction naturelle : facilite la communication intuitive avec les robots grâce à un engagement conversationnel.
Contrôle flexible : utilise des systèmes basés sur LLM pour des tâches telles que le mouvement et la navigation basées sur l'interprétation du modèle de langage.
? Extensibilité simplifiée : fournit une interface simple pour une intégration transparente des fonctions du robot.
Développement rapide : crée rapidement des expériences interactives de contrôle de robot, parfois en moins de dix minutes.
Exemples pédagogiques : propose des didacticiels et des exemples complets pour une compréhension et une mise en œuvre plus faciles.
?️ Stockage de l'historique : conserve les historiques de discussions locales pour un examen et une référence pratiques.
Suivez les instructions ci-dessous pour configurer ROS-LLM :
1. Clonez le référentiel :
Utilisez la commande ci-dessous pour cloner le référentiel.
git clone https://github.com/Auromix/ROS-LLM.git
2. Installer les dépendances :
Accédez au répertoire llm_install
et exécutez le script d'installation.
cd ROS-LLM/llm_install
bash dependencies_install.sh
3. Configurez les paramètres OpenAI :
Si vous ne disposez pas de clé API OpenAI, vous pouvez en obtenir une auprès d'OpenAI Platform. Utilisez le script ci-dessous pour configurer votre clé API OpenAI.
cd ROS-LLM/llm_install
bash config_openai_api_key.sh
4. Configurez les paramètres AWS (facultatif) :
Pour les capacités d'interaction naturelle du cloud, configurez les paramètres AWS. Si vous préférez utiliser l'ASR local, cette étape peut être ignorée.
Pour les plates-formes embarquées de pointe à faible performance, il est recommandé d'utiliser les services cloud ASR pour réduire la pression de calcul, et pour les hôtes personnels hautes performances, il est recommandé d'utiliser les services ASR locaux pour accélérer la réponse.
cd ROS-LLM/llm_install
bash config_aws.sh
4. Configurez les paramètres OpenAI Whisper (facultatif) :
Pour les capacités d'interaction naturelle locale, configurez les paramètres OpenAI Whisper. Si vous préférez utiliser le cloud ASR, cette étape peut être ignorée.
Pour les plates-formes embarquées de pointe à faible performance, il est recommandé d'utiliser les services cloud ASR pour réduire la pression de calcul, et pour les hôtes personnels hautes performances, il est recommandé d'utiliser les services ASR locaux pour accélérer la réponse.
pip install -U openai-whisper
pip install setuptools-rust
5. Créez l'espace de travail :
Accédez au répertoire de votre espace de travail et créez l'espace de travail.
cd < your_ws >
rosdep install --from-paths src --ignore-src -r -y # Install dependencies
colcon build --symlink-install
6. Exécutez la démo :
Sourcez le script d'installation et lancez la démo Turtlesim avec cloud ASR.
source < your_ws > /install/setup.bash
ros2 launch llm_bringup chatgpt_with_turtle_robot.launch.py
commencer à écouter
ros2 topic pub /llm_state std_msgs/msg/String " data: 'listening' " -1
Pour utiliser le framework avec votre propre robot, modifiez les packages llm_robot
et llm_config
en fonction des spécifications de votre robot. Cela vous permet de personnaliser le comportement de votre robot.
Nous nous efforçons continuellement d'améliorer ROS-LLM pour mieux servir les développeurs et les roboticiens de la communauté. Vous trouverez ci-dessous les principaux développements que nous prévoyons d'entreprendre dans les prochaines mises à jour :
L’ajout d’un mécanisme d’agent permet de bien répartir les tâches de longue séquence.
Nous prévoyons d'ajouter un mécanisme de retour pour que le robot reçoive des informations provenant de fonctions externes. Cela faciliterait considérablement les processus de prise de décision basés sur des modèles.
Une nouvelle interface pour la navigation des robots est également en préparation. Il permettra l’utilisation de ce cadre dans des tâches orientées navigation.
L’ajout d’autres interfaces d’entrée de capteurs constitue un autre développement majeur. Cela intégrera la perception environnementale dans les prémisses de décision modèles, en préparant à des fonctionnalités telles que l’évitement d’obstacles.
Nous visons à étendre les capacités de ROS-LLM en intégrant des modèles permettant une saisie visuelle, comme Palm-e. Cela permettrait d’utiliser des technologies avancées de vision par ordinateur pour une meilleure interaction avec l’environnement.
Enfin et surtout, nous nous concentrerons sur l’optimisation continue du framework. Nous nous engageons à améliorer la rationalité et l'extensibilité de ROS-LLM pour permettre aux développeurs de personnaliser et d'étendre plus facilement le framework en fonction de leurs besoins.
Gardez un œil sur ce dépôt pour les mises à jour. Vos suggestions et contributions sont toujours les bienvenues !
Si vous trouvez ce projet utile, pensez à lui donner une étoile ️ sur GitHub ! Votre soutien nous aide à améliorer le projet et encourage son développement ultérieur. N'oubliez pas de le partager également avec vos amis et collègues qui pourraient en bénéficier. Merci pour votre soutien !
Les contributions sont les bienvenues ! Veuillez lire les directives de contribution avant de soumettre une pull request.
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.