ROS 스터디 #10: 서비스 로봇

2021년 02월 10일 수요일 19:00
ZOOM 화상회의


지금까지 살펴봤던 ROS를 활용한 예시 중, 지난 시간까지 다루었던 TurtleBot3을 기반으로 실제로 특정 서비스를 제공할 수 있는 로봇을 제작한 사례를 살펴보자.

하드웨어 수량 역할
Service Robot (로봇) 다수 서비스 로봇 본체
제어/모니터링 PC (확인하고자 하는 Service Robot 수만큼) 서비스 로봇의 작동 상태를 확인(디버깅)하기 위한 노드가 디스플레이되는 PC
E-Menu Tablet (주문용 디바이스; 태블릿 등) 다수 서비스 로봇에게 명령을 내리는 노드. 실제 사용자와 상호작용하는 부분
Service Core 단일 메인 시스템이 작동하는 서버

위 영상에서 소개된 로봇처럼, 여러 곳에서 명령을 받아 여러 대의 로봇이 하나의 통제 시스템 아래에서 각각 동시에 작동한다.
각 파트는 아래와 같은 방법으로 메시지를 송수신하게 된다.

E-Menu Tablet 패드 ID / 주문내용 → Service core 목표 위치 좌표 → Service Robot
← 주문 가능 상황 / 로봇 상태 ← 로봇 상태


출처: 12_서비스_로봇.pdf

TurtleBot3 기반이므로, 로봇 동작에 핵심적인 노드가 TurtleBot3 작동 예제에서 보았던 것와 비슷한 구조로 되어있음을 볼 수 있다.
출처: 12_서비스_로봇.pdf

로봇 작동 명령을 내리는 사용자 측 인터페이스로, Android 운영체제 태블릿 상에서 ROSJAVA를 이용해 앱을 제작한다.
ROS는 운영체제와는 관련없이, 각 노드 간 통신 방식을 통일하는 역할의 메타 운영체제이므로, Android 앱에서 ROS 통신방식에 맞는 데이터만 송수신한다면 하나의 ROS 노드로서 작동할 수 있다.
다만 Android 프로그래밍은 이 스터디에서 다루고자 하는 범위 밖이므로 다루지 않는다.

TurbleBot3을 기반으로 한 더욱 다양한 활용 예시는 Awesome TurtleBot3 Projects 에서 확인해보자.

  • activity/public/2020/ros/210210.txt
  • 마지막으로 수정됨: 4년 전
  • 저자 david