RTI Labs, Python 지원 Connext DDS 커넥터 출시 - 이제 Connext 제품군에 포함
이 기사가 처음 게시된 이후 많은 것이 변경되었습니다. 오늘날 RTI Labs 프로그램의 베타 테스터 덕분에 Python이나 JavaScript에서 직접 DDS에 접근할 수 있습니다. RTI Connector for Connext® DDS가 Connext 제품군에 통합되었습니다.
이번 주 우리는 고객에게 차세대 산업용 IoT 기술에 대한 조기 접근을 제공하는 무료 이니셔티브인 RTI Labs를 소개하게 되어 기쁩니다. RTI Labs 하에 출시된 프로젝트는 실험적이며, 참가자가 새로운 아이디어를 프로토타이핑하고 실제 피드백을 통해 제품 로드맵을 형성할 수 있게 합니다. RTI와 커뮤니티 모두에게 윈윈입니다.
우리는 세 가지 실험적 프로젝트로 프로그램을 시작하며, 첫 번째는 RTI (R) Connector for Connext DDS입니다. 이미 RTI Connext 5.3.0을 다운로드하고 RTI Launcher를 실행했다면 'Lab' 탭에 새로운 아이콘이 눈에 띌 것입니다. 그중 하나가 Connector 아이콘입니다.

Connector 아이콘을 클릭하면 커뮤니티 포털의 RTI Connector 페이지가 열립니다. Connector는 RTI 연구팀이 데모 개발과 빠른 테스트를 가속화하기 위해 만들었습니다. RTI Prototyper에 대한 Lua 인터페이스로 시작하여 Python과 JavaScript/node.js 지원으로 확장되었습니다.
RTI Connector란?
RTI Connector for Connext DDS는 RTI Connext DDS의 모든 기능을 가볍고 스크립터블한 인터페이스로 제공합니다. JavaScript, Python, Lua를 지원하며 Connext의 XML 앱 생성과 동적 데이터 기능을 기반으로 합니다. 이 기사는 Python API에 초점을 맞추지만, 같은 원칙이 JavaScript/node.js와 Lua/Prototyper에도 적용됩니다.
활용 사례
초기 사용자들은 Connector를 여러 시나리오에서 가치 있게 여겼습니다:
- 테스트: 분산 시스템의 구성요소가 준비되지 않았을 때 Connector가 누락된 DDS 부분을 에뮬레이트하여 격리된 테스트를 가능하게 하고 통합 지연을 줄입니다.
- 프로토타이핑: 최소한의 코드로 데모나 개념 증명을 빠르게 구축합니다. 네이티브 Connext API보다 종종 10배 적은 코드량입니다.
- 사용자 인터페이스: Connector를 PyQt 같은 Python UI 프레임워크와 결합하여 DDS 데이터를 발행하거나 구독하는 간단한 대시보드를 만듭니다.
- 통합: PyPI에 112,439개 이상의 패키지를 호스팅하는 Python의 방대한 생태계를 활용하여 서드파티 기능을 추가하고 DDS로 통신합니다.
- 기타: RTI 커뮤니티 포럼에서 고유한 사용 사례를 공유하고 미래 개선을 돕습니다.
RTI 시작하기
다음은 Python에 대한 기본적인 익숙함을 가정합니다. RTI Connector는 Python 3 및 이전 릴리스와 작동하며, 모든 주요 엔터프라이즈 운영 체제에서 실행되고 Raspberry Pi 같은 임베디드 보드에서도 지원됩니다. 전체 플랫폼 목록은 웹사이트에서 확인 가능합니다. 다른 환경 지원이 필요하면 포럼에 문의하세요.
PyPI에서 Connector 설치:
pip install rticonnextdds_connector
또는 저장소 복제:
git clone https://github.com/rticommunity/rticonnextdds-connector.git
저장소에는 여러 실행 준비 예제가 포함되어 있습니다:
- simple/writer.js – 작성자 생성, 인스턴스 설정, 샘플 발행.
- simple/reader.js – 리더 검색, 샘플 가져오기, 내용 검사.
- simple/read_and_write.py – 각 샘플 읽기, 두 필드 반전, 다시 쓰기.
- mixed/ – 시퀀스 길이, wait() 사용 등 업데이트된 예제.
API 개요
더 깊은 탐구를 위해 GitHub 저장소의 README를 참조하세요. 아래는 핵심 API의 간결한 연습입니다.
먼저 Connector 라이브러리 임포트:
import rticonnextdds_connector as rti
원하는 구성과 XML 파일로 Connector 인스턴스 생성:
connector = rti.Connector("MyParticipantLibrary::Zero", "./ShapeExample.xml")
첫 번째 문자열은 구성 이름을, 두 번째는 XML 기반 앱 생성 파일을 가리킵니다. 샘플 파일은 저장소에 있습니다.
getOutput으로 데이터 작성자, getInput으로 데이터 리더에 접근:
output = connector.getOutput("MyPublisher::MySquareWriter") input = connector.getInput("MySubscriber::MySquareReader")
두 메서드 모두 XML에 정의된 엔티티 이름을 받아들입니다.
딕셔너리나 개별적으로 작성자 필드 설정:
output.instance.setDictionary(sample) output.instance.setNumber("y", 2)
리더 측에서 read() 또는 take()로 샘플 검색 후 반복:
input.read() # or input.take() numOfSamples = input.samples.getLength() for j in range(1, numOfSamples+1): if input.infos.isValid(j): x = input.samples.getNumber(j, "x") y = input.samples.getNumber(j, "y") # …
샘플을 딕셔너리로도 접근 가능:
sample = input.samples.getDictionary(j)
멀티스레딩 작업 시 Connector 접근 보호 - 예제는 저장소에 있습니다.
제한 사항
RTI Connector는 많은 작업을 단순화하지만 의도적으로 경량입니다. 컴파일된 타입이 아닌 동적 데이터만 지원하며, 전체 Connext DDS Pro 제품군에서 사용 가능한 일부 고급 기능이 없습니다. 특수 사용 사례의 경우 문서를 검토하거나 지원에 문의하여 대체 솔루션을 찾으세요.
비용
RTI Connector는 무료입니다. 미래 릴리스를 형성하는 데 도움이 되는 피드백만 요청합니다. 귀하의 통찰이 우리의 로드맵에 영향을 미칩니다.
결론
이 게시물은 Python용 RTI Connector의 높은 수준 개요를 제공합니다. 배우는 가장 좋은 방법은 실험입니다. 패키지를 다운로드하고, 예제를 실행하고, RTI 커뮤니티 포럼에서 경험을 공유하세요. 귀하의 피드백은 도구를 개선하고 차세대 기능을 계획하는 데 매우 소중합니다.