반응형 AI42 AoA(Angle of Arrival) 스캐너 4대에서 얻은 방위각(Azimuth)과 고도각(Elevation) 정보를 사용하여 태그의 위치를 추정 (Z 무시) 각 스캐너의 (x, y) 위치는 알고 있음각 스캐너에서 태그까지의 방향은 azimuth (방위각, θ)만 사용elevation (고도각)은 무시그럼 각 스캐너에서 나오는 건 XY 평면상의 직선이 됩니다.우리는 4개의 직선의 교점을 최소제곱으로 구해 태그 위치를 추정할 수 있습니다.✨ 2D 자바스크립트 코드function degreesToRadians(deg) { return deg * Math.PI / 180;}// azimuth θ (deg) → 2D 방향 벡터 [x, y]function azimuthToDirection(azimuthDeg) { const azimuth = degreesToRadians(azimuthDeg); const x = Math.cos(azimuth); c.. 2025. 5. 27. AoA(Angle of Arrival) 스캐너 4대에서 얻은 방위각(Azimuth)과 고도각(Elevation) 정보를 사용하여 태그의 위치를 추정 ✅ 입력4대의 AoA 스캐너: 각 스캐너는 (x, y, z) 좌표를 알고 있음각 스캐너가 감지한 태그의 방위각 (azimuth, θ) 및 고도각 (elevation, φ)✅ 출력태그의 3D 위치 (x, y, z) 추정📐 풀이 아이디어각 스캐너에서 얻은 Azimuth + Elevation은 방향 벡터를 뜻합니다.이 방향 벡터는 해당 스캐너 위치에서 태그까지의 직선을 정의하므로, 4개의 직선의 교점을 찾으면 태그 위치를 추정할 수 있습니다.실제로는 직선들이 완벽히 교차하지 않기 때문에, 최소제곱법(least squares) 으로 최적의 교차점을 찾게 됩니다.🏗️ 자바스크립트 코드아래 코드는 각 스캐너에서 직선의 파라메트릭 방정식을 만들고, 그 직선들 사이의 최소 거리점(최적 교차점)을 구합니다.funct.. 2025. 5. 27. WebSocket 로드밸런싱 WebSocket 연결을 통해 하나의 클라이언트가 대량의 데이터를 지속적으로 전송할 경우, HAProxy가 해당 연결에 대해 로드밸런싱을 하지 못하는가?🔍 결론부터 말하면:기존 WebSocket 연결이 이미 맺어진 상태라면, HAProxy는 해당 연결을 다른 백엔드 서버로 옮겨 로드밸런싱할 수 없습니다.즉, WebSocket 연결은 세션이 고정되어 있기 때문에, 연결이 맺어진 후에는 로드밸런싱이 불가능합니다.🧠 자세한 설명1. WebSocket의 특징WebSocket은 long-lived(지속적인) TCP 연결입니다.초기에는 HTTP handshake로 시작하고, 업그레이드(Upgrade: websocket) 후에 단일 TCP 연결이 지속됩니다.따라서 로드밸런싱은 연결이 생성될 때 1회만 이루어지고,.. 2025. 5. 16. ArubaOS 종류 ArubaOS는 HPE Aruba에서 제공하는 네트워크 운영 체제로, 사용 목적과 환경에 따라 다양한 버전(종류)으로 제공됩니다. 아래는 주요 ArubaOS의 종류와 특징입니다:✅ 1. ArubaOS 8.x전통적인 온프레미스 기반의 컨트롤러 중심 아키텍처모바일 퍼스트 설계: 사용자와 장치의 상태를 기반으로 정책 제어Key Features:Mobility Master 구조 (중앙 집중형 관리)AP clustering, ARM(Adaptive Radio Management)고급 보안 (Role-based access, AppRF 등)적용 대상: 중대형 기업, 교육 기관, 병원 등✅ 2. ArubaOS 10.x차세대 ArubaOS, 클라우드 중심 구조Aruba Central 연동 필수컨트롤러리스 + 분산형 구.. 2025. 5. 16. Node.js에서 TCP 소켓을 사용하여 JSON 데이터를 안전하게 수신하는 서버 아래는 Node.js에서 TCP 소켓을 사용하여 JSON 데이터를 안전하게 수신하는 서버 예제입니다. 이 예제는 길이 프리픽스 방식(length-prefixed) 을 사용하여 데이터가 모두 수신됐는지 판단합니다.✅ Node.js TCP 서버 (길이 프리픽스 + JSON 수신 처리)const net = require('net');// 유틸: Buffer 앞 4바이트로부터 길이 읽기function readMessageLength(buffer) { return buffer.readUInt32BE(0); // Big Endian 4바이트 정수}// TCP 서버 생성const server = net.createServer((socket) => { console.log('클라이언트 접속'); let.. 2025. 5. 15. 이전 1 2 3 4 ··· 9 다음 반응형