컨텐츠로 건너뛰기

ROS2 지원

업데이트 예정 안내 BATCAM FX2의 ROS 2 연동 기능은 2026년 3분기(3Q) 펌웨어 업데이트를 통해 지원될 예정입니다. 본 페이지는 사전 안내용이며, 세부 사양은 정식 배포 시 변경될 수 있습니다.

ROS 2란?

ROS 2(Robot Operating System 2)는 로봇 소프트웨어 개발을 위한 오픈소스 프레임워크입니다. 이름에 “Operating System”이 들어가지만 실제 운영체제가 아니라, 여러 장치와 프로그램(노드)이 데이터를 주고받으며 협업할 수 있도록 해 주는 미들웨어입니다.

ROS 2는 데이터 통신에 DDS(Data Distribution Service)를 채택하여, 실시간성·안정성·분산 처리에 강점을 가집니다. 이를 통해 센서, 액추에이터, 연산 장치 등이 네트워크상에서 표준화된 방식으로 메시지를 교환할 수 있습니다. 로봇·자율주행·산업 자동화 분야에서 사실상의 표준 프레임워크로 자리 잡고 있습니다.

핵심 개념

ROS 2를 이해하는 데 필요한 기본 용어는 다음과 같습니다.

용어설명
노드 (Node)하나의 기능을 수행하는 실행 단위. BATCAM FX2는 하나의 노드로 동작합니다.
토픽 (Topic)데이터가 흐르는 통로(채널). 발행자가 데이터를 올리고 구독자가 받아갑니다.
메시지 (Message)토픽을 통해 오가는 데이터의 형식(음향 데이터, 영상 프레임 등).
발행/구독 (Publish/Subscribe)데이터를 보내는 쪽(발행)과 받는 쪽(구독)이 토픽으로 연결되는 통신 방식.
서비스 (Service)요청-응답 방식의 통신. 설정 변경·명령 전달 등에 사용.

BATCAM FX2의 ROS 2 지원

ROS 2 지원이 추가되면 BATCAM FX2는 하나의 ROS 2 노드로 동작하며, 로봇 및 상위 제어 시스템과 표준 ROS 2 인터페이스로 직접 연동할 수 있습니다. 별도의 변환 게이트웨이나 커스텀 통신 코드 없이, ROS 2 환경에 익숙한 개발자라면 손쉽게 데이터를 수신할 수 있습니다.

이를 통해 이동형 로봇, 자율주행 플랫폼, 협동로봇 등에 BATCAM FX2를 탑재하여 이동하면서 음향 점검을 수행하거나, 로봇의 다른 센서 데이터와 음향 정보를 융합하는 응용이 가능해집니다.

FX2 Stream Message for ROS 2

BATCAM FX2 시스템을 위한 전용 ROS 2 메시지 패키지입니다. 장비가 송출하는 음향·빔포밍 데이터와 실시간 영상을 ROS 2 환경에서 표준 메시지 형태로 수신할 수 있도록 커스텀 메시지 정의(Custom Message Definition)를 제공합니다.

설치 및 빌드

패키지를 빌드하기 전에 아래 명령으로 Python 의존성을 모두 설치합니다.

bash

Terminal window
pip install -r requirements.txt

개발·테스트 환경

구분내용
빌드·테스트 환경Python 3.10.16 / ROS 2 Jazzy (Ubuntu 24.04 이상)
호환 목표(Target)ROS 2 Humble (Ubuntu 22.04 또는 동등 환경)

영상 토픽 (Video)

FX2의 실시간 광학 카메라 영상과 음원 위치가 합성된 오버레이 영상은 ROS 2 표준 영상 메시지로 발행되어, 별도 변환 없이 RViz 등 표준 ROS 2 도구에서 바로 확인할 수 있습니다.

데이터설명메시지 타입
카메라 영상실시간 광학 카메라 영상 스트림sensor_msgs/Image
음향 오버레이 영상빔파워맵(음원 위치 히트맵)이 합성된 영상sensor_msgs/Image

메시지 타입 (Message Types)

FX Stream 패키지는 다음과 같은 커스텀 메시지를 제공합니다.

LevelTrigger.msg — 레벨(음압) 트리거 정보

TypeName
float64decibel

WsAudio.msg — WebSocket 오디오 스트림 데이터

TypeName
float64gain
float32[]ws

LPointAudio.msg — 지정 지점(Listening Point) 오디오 데이터

TypeName
float64gain
float32[]lpoint0
float32[]lpoint1
float32[]lpoint2

Beamforming.msg — 빔포밍 결과 데이터

TypeName
float64gain
float64[]bf
float64[]level
int32[]param1
int32[]param2
int32[]theta
int32[]pos_x
int32[]pos_y
int32[]v_pos_x
int32[]v_pos_y

위 메시지 정의 및 필드 구성은 개발 진행에 따라 변경될 수 있으며, 정식 업데이트 시 상세 API 문서와 함께 배포됩니다.

요구 사양 요약

  • ROS 2 배포판: Humble 이상 (Jazzy에서 빌드·테스트 완료)
  • 네트워크: 동일 서브넷 내 이더넷 연결 (DDS 통신)
  • 지원 예정 시점: 2026년 3분기