O projeto ROS-LLM é uma estrutura ROS para aplicações de inteligência incorporada. Ele permite interações de linguagem natural e grande controle baseado em modelo de movimento e navegação do robô para qualquer robô operando em ROS.
O ROS-LLM permite que você utilize funcionalidades baseadas em modelos de linguagem grande, como GPT-4 e ChatGPT, para tomada de decisão e controle de robôs.
Esta estrutura foi projetada para ser fácil de estender. Simplesmente fornecendo uma interface de função para o seu robô, seguindo o exemplo fornecido, você pode integrar e usar o ROS-LLM em dez minutos.
ROS-LLM oferece uma solução simples para criar rapidamente experiências interativas e de controle com qualquer robô.
? Integração ROS : Interage suavemente com o Sistema Operacional do Robô (ROS) para controle robótico expansivo.
? Suporte a modelos de linguagem grande : aproveita GPT-4 e ChatGPT para melhorar a tomada de decisões e o gerenciamento de tarefas.
Interação Natural : Facilita a comunicação intuitiva com robôs por meio de engajamento conversacional.
Controle flexível : utiliza sistemas baseados em LLM para tarefas como movimento e navegação com base na interpretação de modelos de linguagem.
? Extensibilidade simplificada : Fornece uma interface fácil para integração perfeita das funções do robô.
Desenvolvimento Rápido : Cria experiências interativas de controle de robôs rapidamente, às vezes em menos de dez minutos.
Exemplos instrucionais : oferece tutoriais e exemplos abrangentes para facilitar a compreensão e implementação.
?️ Armazenamento de histórico : retém históricos de bate-papo locais para revisão e referência convenientes.
Siga as instruções abaixo para configurar o ROS-LLM:
1. Clone o Repositório:
Use o comando abaixo para clonar o repositório.
git clone https://github.com/Auromix/ROS-LLM.git
2. Instale dependências:
Navegue até o diretório llm_install
e execute o script de instalação.
cd ROS-LLM/llm_install
bash dependencies_install.sh
3. Defina as configurações do OpenAI:
Se você não tiver uma chave de API OpenAI, poderá obter uma na plataforma OpenAI. Use o script abaixo para configurar sua chave de API OpenAI.
cd ROS-LLM/llm_install
bash config_openai_api_key.sh
4. Defina as configurações da AWS (opcional):
Para recursos de interação natural na nuvem, defina as configurações da AWS. Se preferir usar ASR local, esta etapa pode ser ignorada.
Para plataformas embarcadas de baixo desempenho, é recomendado o uso de serviços de nuvem ASR para reduzir a pressão computacional, e para hosts pessoais de alto desempenho, é recomendado o uso de serviços ASR locais para acelerar a resposta.
cd ROS-LLM/llm_install
bash config_aws.sh
4. Defina as configurações do OpenAI Whisper (opcional):
Para recursos de interação natural local, defina as configurações do OpenAI Whisper. Se você preferir usar o Cloud ASR, esta etapa pode ser ignorada.
Para plataformas embarcadas de baixo desempenho, é recomendado o uso de serviços de nuvem ASR para reduzir a pressão computacional, e para hosts pessoais de alto desempenho, é recomendado o uso de serviços ASR locais para acelerar a resposta.
pip install -U openai-whisper
pip install setuptools-rust
5. Construa o espaço de trabalho:
Navegue até o diretório do seu espaço de trabalho e construa o espaço de trabalho.
cd < your_ws >
rosdep install --from-paths src --ignore-src -r -y # Install dependencies
colcon build --symlink-install
6. Execute a demonstração:
Obtenha o script de configuração e inicie a demonstração do Turtlesim com Cloud ASR.
source < your_ws > /install/setup.bash
ros2 launch llm_bringup chatgpt_with_turtle_robot.launch.py
comece a ouvir
ros2 topic pub /llm_state std_msgs/msg/String " data: 'listening' " -1
Para usar a estrutura com seu próprio robô, modifique os pacotes llm_robot
e llm_config
para atender às especificações do seu robô. Isso permite que você personalize o comportamento do seu robô.
Estamos nos esforçando continuamente para aprimorar o ROS-LLM para melhor atender os desenvolvedores e roboticistas da comunidade. Abaixo estão os principais desenvolvimentos que planejamos realizar nas próximas atualizações:
Adicionar um mecanismo de agente permite que tarefas de sequência longa sejam bem divididas.
Planejamos adicionar um mecanismo de feedback para o robô receber informações de funções externas. Isto ajudaria significativamente os processos de tomada de decisão baseados em modelos.
Uma nova interface para navegação do robô também está em desenvolvimento. Permitirá a utilização desta estrutura em tarefas orientadas para a navegação.
A adição de outras interfaces de entrada de sensores é outro grande desenvolvimento. Isto irá incorporar a percepção ambiental nas premissas de decisão do modelo, preparando-o para funcionalidades como evitar obstáculos.
Nosso objetivo é ampliar os recursos do ROS-LLM integrando modelos que permitem entrada visual, como o Palm-e. Isso permitiria o uso de tecnologias avançadas de visão computacional para uma melhor interação com o ambiente.
Por último, mas não menos importante, focaremos na otimização contínua do framework. Estamos empenhados em melhorar a racionalidade e extensibilidade do ROS-LLM para facilitar aos desenvolvedores a personalização e extensão da estrutura de acordo com suas necessidades.
Fique de olho neste repositório para atualizações. Suas sugestões e contribuições são sempre bem-vindas!
Se você achar este projeto útil, considere dar-lhe uma estrela no GitHub! Seu apoio nos ajuda a melhorar o projeto e incentiva um maior desenvolvimento. Não se esqueça de compartilhá-lo também com seus amigos e colegas que possam ser benéficos. Obrigado pelo seu apoio!
Contribuições são bem-vindas! Leia as diretrizes de contribuição antes de enviar uma solicitação pull.
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.