UWB x AGV(TurtleBot) 연동 레퍼런스 구축 프로젝트
검토중
프로젝트 설명
1. 프로젝트 개요
1.1 프로젝트 목적
- 본 프로젝트는 당사의 UWB(Ultra Wideband) 기반 실내 위치 인식 기술을 활용하여, 기술 설명 및 시연, 개발자 교육용 예제 등에 활용 가능한 **표준 레퍼런스 사례(Reference Case)**를 제작하는 것을 목적으로 한다.
- 실제 상용 서비스 운영을 목표로 하지 않으며, UWB 위치 기술을 이동 로봇(ROS2)에 어떻게 적용할 수 있는지를 보여주는 '시연 및 교육' 중심의 프로젝트이다.
1.2 프로젝트 범위
- UWB 기반 실내 위치 인식 기술과 이동 로봇(TurtleBot3) 하드웨어 연동
- ROS2 기반 예제 코드 구현
- 핵심 시나리오 3종 구현 (위치 시각화, 추종 제어, 지오펜싱)
- 교육 및 기술 시연 목적의 데모 구성 및 문서화
1.3 당사 UWB 실내 위치 인식 제품 소개
당사는 UWB 기반 실내 위치 인식 기술을 핵심 제품으로 보유하고 있으며, 센티미터(cm) 단위의 정밀 위치 인식을 제공합니다.
당사 UWB 위치 인식 제품은 다음과 같은 특징을 가진다.
- 실내 기준 좌표계 기반의 정밀 위치 인식
- 약 10Hz 이상의 실시간 위치 업데이트
- USB 시리얼 인터페이스를 통한 간단한 외부 시스템 연동
- 로봇, 사람, 자산 등 다양한 이동 대상에 적용 가능
제품 매뉴얼
Welcome to UWB Creator Kit Q1 | UWB Creator Kit Q1 | Growspace Manual
제품 영상
UWB 초정밀 실시간 위치 측위 시스템
2. 시스템 구성 및 하드웨어 지급
2.1 하드웨어 구성
이동 로봇
- 모델명: TurtleBot3 Burger
- 수량: 1대
- 포함 범위
- 신규 구매
- 로봇 조립
- 기본 구동 세팅(ROS2 Humble 기준)
비용 및 특이사항
- TurtleBot3 Burger 1대의 구매 및 조립 비용은 본 프로젝트 전체 용역비에 포함하여 정산한다.
- 하드웨어 구매 비용은 별도 항목으로 분리하지 않는다.
- 프로젝트 종료 후 TurtleBot3 Burger 로봇의 소유권은 당사에 귀속된다.
위치 인식 장치
- 장치: UWB Creator Kit Q1 (앵커 3EA, 리스너 1EA, 태그 1EA 등 풀세트)
- 조달 방식: 계약 체결 즉시 당사에서 개발자에게 택배 발송(대여).
- 반납: 프로젝트 종료 후 로봇과 함께 당사로 반납한다.
2.2 연동 범위
- UWB 위치 태그의 로봇 물리적 장착
- UWB 태그 ↔ PC 간 USB 시리얼 통신
- 로봇 제어 시스템과 UWB 위치 정보 연동
2.3 개발 및 테스트 환경 (필수 요건)
- 공간 확보: 본 프로젝트는 UWB 앵커 설치가 필수적이므로, 개발자는 최소 5m x 5m 이상의 실내 테스트 공간을 자체적으로 확보해야 한다.
- 연동 범위: UWB 태그의 로봇 물리적 마운팅, USB 시리얼 통신 연결, ROS2 시스템 연동.
3. 소프트웨어 개발 범위
본 프로젝트의 소프트웨어는 ROS2 기반 교육·시연용 예제 코드 형태로 구현한다.
3.1 개발 환경
- 운영체제: Ubuntu 22.04 LTS
- ROS 버전: ROS2 Humble
- 언어: Python (C++ 혼용 가능하나, 교육용 목적상 Python 권장)
- 시각화 도구: RViz2
3.2 기능 요구사항
(1) 위치 데이터 연동
UWB 위치 태그에서 출력되는 위치 데이터를 수신하여
ROS2 환경에서 활용 가능하도록 연동한다.
- USB 시리얼 통신 기반 위치 데이터 수신
- 수신 데이터 파싱 로직 구현
- ROS2 Topic 발행
- 위치 업데이트 주기: 약 10Hz
(2) 예제 1 – 위치 시각화
로봇의 내부 오도메트리 위치와
UWB 기반 위치 정보를 동시에 시각화한다.
- UWB 위치 데이터를 ROS 메시지로 변환
- RViz2 상에서 다음 정보 동시 표시
- 로봇 오도메트리 기반 위치
- UWB 기반 위치
- 두 위치 정보의 차이를 직관적으로 비교 가능
(3) 예제 2 – 로봇 추종 (Follow Me)
특정 UWB 태그를 추종 대상으로 설정하고,
로봇이 일정 거리를 유지하며 이동하도록 구현한다.
- 추종 대상: 특정 UWB 태그
- 목표 거리: 약 50cm 유지
- 위치 제어 시 UWB 위치 정보 우선 활용
- 위치 업데이트 주기: 약 10Hz
(4) 예제 3 – 가상 구역 (지오펜싱)
2D 평면 상 가상 구역을 설정하고, 로봇이 해당 구역에 진입할 경우 특정 동작을 수행한다.
- 2D 좌표 기반 가상 구역 정의
- UWB 기반 위치로 영역 진입 여부 판단
- 진입 시 트리거 동작
- 강제 정지
- 또는 알림 메시지 발생
4. 비기능 요구사항
4.1 코드 품질 및 가독성
- 교육용 예제를 고려한 코드 구조
- 주요 로직에 대한 한글/영문 주석 병기
- ROS2 표준 패키지 구조 준수
4.2 확장성
- 예제 코드 모듈화
- 향후 다른 로봇 또는 위치 태그로 확장 가능하도록 구성
5. 산출물
5.1 소프트웨어 산출물
- 소스 코드: 전체 ROS2 패키지 소스 (Git 리포지토리 또는 압축 파일)
- 문서:
- 프로젝트 환경 설정 및 실행 가이드 (README.md)
- 각 예제(1, 2, 3)별 알고리즘 설명 및 구조도
- 하드웨어 반납: TurtleBot3(조립 완료 상태) 및 UWB 키트 일체
5.2 문서 산출물
- 프로젝트 구성 및 실행 방법 안내 문서
- 예제별 동작 설명 문서
- 교육·시연용 설명 자료