ROS-LLM 프로젝트는 구현된 지능 애플리케이션을 위한 ROS 프레임워크입니다. 이는 ROS에서 작동하는 모든 로봇에 대해 자연어 상호 작용과 로봇 동작 및 탐색에 대한 대규모 모델 기반 제어를 가능하게 합니다.
ROS-LLM은 로봇 의사 결정 및 제어를 위해 GPT-4 및 ChatGPT와 같은 대규모 언어 모델 기반 기능을 활용할 수 있도록 지원합니다.
이 프레임워크는 쉽게 확장할 수 있도록 설계되었습니다. 제공된 예제에 따라 로봇에 기능 인터페이스를 제공하기만 하면 10분 이내에 ROS-LLM을 통합하고 사용할 수 있습니다.
ROS-LLM은 모든 로봇을 사용하여 대화형 및 제어 경험을 빠르게 생성할 수 있는 간단한 솔루션을 제공합니다.
? ROS 통합 : 광범위한 로봇 제어를 위해 로봇 운영 체제(ROS)와 원활하게 상호 작용합니다.
? 대규모 언어 모델 지원 : 향상된 의사 결정 및 작업 관리를 위해 GPT-4 및 ChatGPT를 활용합니다.
자연스러운 상호작용 : 대화형 참여를 통해 로봇과의 직관적인 소통을 촉진합니다.
유연한 제어 : 언어 모델 해석을 기반으로 모션, 내비게이션 등의 작업에 LLM 기반 시스템을 활용합니다.
? 단순화된 확장성 : 원활한 로봇 기능 통합을 위한 쉬운 인터페이스를 제공합니다.
빠른 개발 : 대화형 로봇 제어 경험을 신속하게, 때로는 10분 이내에 생성합니다.
지침 예제 : 더 쉽게 이해하고 구현할 수 있도록 포괄적인 튜토리얼과 예제를 제공합니다.
?️ 기록 저장 : 편리한 검토 및 참조를 위해 로컬 채팅 기록을 유지합니다.
ROS-LLM을 설정하려면 아래 지침을 따르십시오.
1. 리포지토리를 복제합니다.
아래 명령을 사용하여 저장소를 복제하십시오.
git clone https://github.com/Auromix/ROS-LLM.git
2. 종속성 설치:
llm_install
디렉터리로 이동하여 설치 스크립트를 실행합니다.
cd ROS-LLM/llm_install
bash dependencies_install.sh
3. OpenAI 설정 구성:
OpenAI API 키가 없으면 OpenAI Platform에서 얻을 수 있습니다. 아래 스크립트를 사용하여 OpenAI API 키를 구성하세요.
cd ROS-LLM/llm_install
bash config_openai_api_key.sh
4. AWS 설정 구성(선택 사항):
클라우드의 자연스러운 상호 작용 기능을 위해 AWS 설정을 구성하십시오. 로컬 ASR을 사용하려는 경우 이 단계를 건너뛸 수 있습니다.
저성능 엣지 임베디드 플랫폼의 경우 컴퓨팅 부담을 줄이기 위해 ASR 클라우드 서비스를 사용하는 것이 좋으며, 고성능 개인 호스트의 경우 응답 속도를 높이기 위해 로컬 ASR 서비스를 사용하는 것이 좋습니다.
cd ROS-LLM/llm_install
bash config_aws.sh
4. OpenAI Whisper 설정 구성(선택 사항):
로컬의 자연스러운 상호 작용 기능을 위해 OpenAI Whisper 설정을 구성하세요. 클라우드 ASR을 사용하려는 경우 이 단계를 건너뛸 수 있습니다.
저성능 엣지 임베디드 플랫폼의 경우 컴퓨팅 부담을 줄이기 위해 ASR 클라우드 서비스를 사용하는 것이 좋으며, 고성능 개인 호스트의 경우 응답 속도를 높이기 위해 로컬 ASR 서비스를 사용하는 것이 좋습니다.
pip install -U openai-whisper
pip install setuptools-rust
5. 작업공간 구축:
작업공간 디렉터리로 이동하여 작업공간을 빌드합니다.
cd < your_ws >
rosdep install --from-paths src --ignore-src -r -y # Install dependencies
colcon build --symlink-install
6. 데모를 실행합니다:
설정 스크립트를 소싱하고 클라우드 ASR을 사용하여 Turtlesim 데모를 시작하세요.
source < your_ws > /install/setup.bash
ros2 launch llm_bringup chatgpt_with_turtle_robot.launch.py
듣기 시작하다
ros2 topic pub /llm_state std_msgs/msg/String " data: 'listening' " -1
자신의 로봇에서 프레임워크를 사용하려면 로봇 사양에 맞게 llm_robot
및 llm_config
패키지를 수정하세요. 이를 통해 로봇의 동작을 사용자 정의할 수 있습니다.
우리는 커뮤니티의 개발자와 로봇 공학자에게 더 나은 서비스를 제공하기 위해 ROS-LLM을 향상시키기 위해 지속적으로 노력하고 있습니다. 다음은 향후 업데이트에서 수행할 주요 개발 사항입니다.
에이전트 메커니즘을 추가하면 긴 시퀀스 작업을 잘 나눌 수 있습니다.
우리는 로봇이 외부 기능으로부터 정보를 수신할 수 있는 피드백 메커니즘을 추가할 계획입니다. 이는 모델 기반 의사 결정 프로세스에 큰 도움이 될 것입니다.
로봇 내비게이션을 위한 새로운 인터페이스도 파이프라인에 있습니다. 탐색 중심 작업에서 이 프레임워크를 활용할 수 있습니다.
다른 센서 입력 인터페이스의 추가는 또 다른 주요 개발입니다. 이는 환경 인식을 모델 결정 전제에 통합하여 장애물 회피와 같은 기능을 준비합니다.
우리는 Palm-e와 같이 시각적 입력을 허용하는 모델을 통합하여 ROS-LLM의 기능을 확장하는 것을 목표로 합니다. 이를 통해 더 나은 환경 상호 작용을 위해 고급 컴퓨터 비전 기술을 사용할 수 있습니다.
마지막으로 우리는 프레임워크의 지속적인 최적화에 중점을 둘 것입니다. 우리는 개발자가 필요에 따라 프레임워크를 더 쉽게 사용자 정의하고 확장할 수 있도록 ROS-LLM의 합리성과 확장성을 개선하는 데 최선을 다하고 있습니다.
이 저장소에서 업데이트를 확인하세요. 여러분의 제안과 기여는 언제나 환영입니다!
이 프로젝트가 유용하다고 생각되면 GitHub에서 별점을 ️ 주세요! 귀하의 지원은 프로젝트를 개선하고 추가 개발을 장려하는 데 도움이 됩니다. 도움이 될 수 있는 친구나 동료와도 공유하는 것을 잊지 마세요. 귀하의 지원에 감사드립니다!
기여를 환영합니다! 끌어오기 요청을 제출하기 전에 기여 지침을 읽어보세요.
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.