Camera Agent Project는 컨테이너 기반으로 MobileX Station에 부착된 웹캠 카메라들을 IP 카메라처럼 활용할 수 있게 하는 프로젝트로 Falcon을 보완하기 위해 진행되었습니다. 이 프로젝트의 주요 목표는 다음과 같습니다:
웹캠을 IP 카메라로 변환: 기존 MobileX Station의 웹캠을 IP 카메라와 같은 기능성을 가진 장치로 전환합니다. 이를 통해 네트워크를 통한 원격 접근과 제어가 가능해집니다.
중앙화된 카메라 관리: WebUI를 통해 현재 사용 가능한 모든 카메라의 목록을 확인하고 관리할 수 있습니다. 이는 시스템 관리자에게 직관적이고 효율적인 카메라 관리 환경을 제공합니다.
서비스 모니터링: 카메라를 사용하는 다양한 서비스들의 상태를 실시간으로 확인하고 추적할 수 있는 기능을 제공합니다. 이를 통해 시스템의 안정성과 성능을 지속적으로 모니터링하고 개선할 수 있습니다.
이 프로젝트는 기존 하드웨어 자원을 최대한 활용하면서도 IP 카메라의 유연성과 기능성을 제공함으로써, 코드 재사용성을 높이고 디지털 트윈 프로젝트와 연계하여 개발 진행 예정입니다.
web-UI 는 light 버전만 지원됩니다.
그 외 프로젝트 요구사항 관련
기존에 사이트가 없어서 해당 서버의 경우 요구사항을 README.md 에 같이 정리했었는데 , 이후 생성되는 DT 서비스 관련 repo 와 프로젝트들의 요구사항은 아래 사이트에서 별도로 통합 유지 관리 예정 입니다.
https://smartx-team.github.io/digital-twin-hub/
Swagger 로 기본 API 사용법이 제공되긴하나 Omniverse 전체 API 를 관리하는 gitblog 생성하여 해당 Repo에 API 및 문서 이력 관리 진행 예정
ver 240930
Agent 와 visibility Server 통신
Web-UI 동작 예시
주요 스택: FAST API(gRPC로 대체될 수 있음), Gstreamer
목적: Gstreamer 기반으로 웹캠과 같은 일반 카메라 장비를 IP 카메라 처럼 사용할수 있도록 지원하고, 카메라 상태를 주기적으로 Visibility Server 에 주기적으로 전송
또한 스트리밍 on/off 등 동적으로 조절할 수 있는 API를 지원하여, 네트워크 상태등에 따라 유동적으로 생성되는 데이터 크기를 조절할 수 있음
Rtsp 프로토콜로 스트리밍 되기에 여러 서비스에서 동시에 카메라의 데이터에 접근하기 수월해지고, 전체 시스템를 관리하기도 쉬어짐
–
자세한 정보: Agent/README.md
주요 스택: Flask, tinyDB
목적: Agent 들의 현재 상태를 관리하고, 사용자가 사용하는 WebUI 를 위해 기본적인 CRUD 기능 지원
자세한 정보: Backend/README.md
목적: Agent들의 시간 동기화를 위한 컨테이너 기반 PTP 서버
자세한 정보:
목적: Agent들의 관리를 위한 WebUI
rtsp_port
와 agent_port
를 분리하여 저장하도록 DB 스키마 수정agent_register.yml
)에 agent_port
필드 추가AgentRegister
클래스에서 agent_port
를 처리하도록 수정AgentModel
과 Database
클래스에서 agent_port
를 저장 및 관리하도록 수정SetFrameTransmission
엔드포인트에서 Agent의 IP와 포트를 통해 스트림 제어 명령 전송/start_stream
및 /stop_stream
엔드포인트와 연동agent_port
정보를 포함하여 서버에 전달agent_port
를 사용하여 통신flask_cors
를 사용하여 CORS 설정 추가CORSMiddleware
를 사용하여 CORS 설정 추가자세한 정보:
모든 서버 기능들은 컨테이너 베이스로 유지됨, 도커 파일은 프로젝트마다 있음 MobileX 에서는 K8S 에 자동 배포 유지되도록 세팅 해둘것임