11/15/2024

RF RTLS 의 개념

1. RTLS  개념 

주로 RF 통신기반으로 나오는 이야기 이며, 위치를 파악하는 기술이다. 

  • RTLS(Real Time Location System, Real Time Tracking System)
RF에서 가끔 나오는 이야기이며, GPS 없이 위치를 파악하는 기능


  • AoA(Angle of Arrival)
최소 2개 이상의 Anthena를 이용하여 들어오는 신호 위상(Phase)차이를 이용하여 방향을 감지하는 방법이다.
Anthena 의 설계에 따라 다르겠지만, 좀 깊게 들어가면, Angle-Azimuth 와 Angle-Elevation 으로 2가지 방향으로 설계가 가능하며, Radar를 보면 쉽게 이해가 간다. 

  • Radar 의 AoA 이해 
Radar의 AoA를 이해를 하면  최근 BLE의 AoA도 금방이해가능하며, 구지 깊게 설명 



2. BLE의 RTLS 

최근에 TI가 Channel Sounding과 함께 Demo를 보여줘서 RTLS 부분을 간단히 정리한다.
아래에서 한글자료들을 찾았으며, 간단히 링크만 


  • RTLS의 용어 및 설명 
  1. Angle of Arrival (AoA)    -> Radar 와 거의 동일  
    1. N 개의 RX Anthena 를 이용하여, 도착시간의 차이를 Phase 차이로 계산 
  2. Time of Arrival (ToA)      -> Network Ping과 유사
    1. ToF라고도 하며, 왕복거리를 걸린 시간으로 나누면 됨 
  3. Time Difference of Arrival (TDOA)  -> Time Sync를 어떻게 맞출지가? 
    1. 2개 이상에서 Anchor들 사이 ToA or ToF 기반으로 위치 측정 , 삼각측량과 비슷 
  4. Received Signal Strength (RSS)      -> 거의 이제 잘 사용하지 않는 것 같음 
    1. 각 Channel의 RX 신호 세기
  5. Time of Flight (ToF)                     -> RF의 경우, Beacon Packet RTT 계산? 


  • RTLS AoA BLE Beacon 기반으로 설명 
BLE기반으로 한글로 잘 설명해주셔 감사 

  • TI Wireless connectivity->RTLS
  1. AoA(Angle-of-Arrival):  
    1. RX의 Anthena 는 최소 2개 이상필요하며, Radar 거의 유사 
    2. n개의 RX Anthena의 Phase 차이로 위치를 파악 
  2. AoD(Angle of Departure)
    1. TX의 Anthen 최소 2개 이상 필요  
    2. RX에서 아래 그림 같은 구조 
    3. Beaforming으로 TX 다중 안테나를 이용하여 하는 것 같음



  1. AoA(Angle-of-Arrival) :  수신측(RX) 기반으로 안테나 최소 2개 이상으로 RX에서 Angle 파악 
  2. AoD(Angle of Departure): 송신측(TX) 기반으로 방향감지 Packet 전송에서 RX Angle 파악 

AoA의 결론 
RX 의 안테나 최소 2개 이상으로, 아래와 같이 Radar 와 거의 동일하게 측정하는 것 같다.

https://dev.ti.com/tirex/explore/node?node=A__AQ0TYkLXd7cPWtNUtMqjSw__com.ti.SIMPLELINK_ACADEMY_CC13XX_CC26XX_SDK__AfkT0vQ__LATEST 



1.2 BLE 의 Channel Sounding (RTLS) 

Channel Sounding
BLE에서 2개가 통신을 하면서 Beacon 기반으로 Radar처럼 Range 와 방향을 찾는 기술인 것 같으나, 현재 TI 데모를 보면, Range만 측정가능  


Channel Sounding Range 측정방법  
  1. Phased-Based Ranging (PBR)
  2. Round-Trip Time (RTT) 
아래에도 AoA의 언급이 없음 

Phased-Based Ranging (PBR)
Radar 처럼 Phase 차이로 Range를 측정(initiator 가 Range 파악)
https://www.bluetooth.com/learn-about-bluetooth/feature-enhancements/channel-sounding/

Round-Trip Time (RTT) 

https://www.bluetooth.com/learn-about-bluetooth/feature-enhancements/channel-sounding



  • Phase 차이로 쉽게 Radar 처럼 Range 측정 (AoA 설명은 없음)
4 Bluetooth Channel Sounding Flow for Phase-Based Ranging
Appendix A: Basics of Phase Based Ranging and Multi-Carrier Phase Ranging

https://www.ti.com/lit/an/swra791/swra791.pdf

RTT
  1. Initiator ToD -> Reflector ToA = ToF
  2. Reflector ToD -> Initiator ToA = ToF

https://www.ti.com/lit/an/swra791/swra791.pdf


자세한 설명이 없어, BLE의 Phy칩에서 Beacon기반으로 상위 Refletor로 반사파를 보내주는 것으로 생각?? 
일단 Initiator 와 Refector 와 Sync를 어떻게 맞추는 지는 잘 모르겠으며, 상위 Channel Souding Draft Specfication 의 링크도 깨짐  

AoA까지 된다고 하면, RX 의 안테나 설계에 따라 방향도 감지가 가능할 꺼 같다.
아쉬운 점은 상위 TI에서도 RTLS의 AoA 를 문서로 남겼지만, BLE Channel Sounding에는 별도 언급이 없고,  Range만 측정가능한 걸로 보인다.   


  • Channel Sounding 기술 시연
아래 기술시연을 보면, AoA는 아직 아닌 것 같으며, Range만 가능 

11/14/2024

RF Radar 와 RF Comm. 비교

1. RF Radar 정보    


Radar 시장분석 과 TI Radar 문서자료구성 


저번에 RF관련된 자료
이전에 RF에 관련된 자료수집했으나, 글을 아직 미완성이며, 추후?? (자료만 보자)


1.1 관련용어들 

RF가 아니더라도, 통신(Communication) 과 방송시스템(NTSC,PAL)을 배웠으면, 금방 이해하기 빠르다.
Radar 와 비교하기전에, 기본적인 것들은 알고 들어가자.

  • Modulation
Analog 신호 or Digital Data를 전송하는 방법으로 세부내용은 아래 wiki
  1. AM(Amplitude Modulation) 
  2. FM(Frequency Modulation)
  3. PM(Phase Modulation)

  • Division/Multiplexing
즉 상위에서 Modulation을 했으면, 이를 합치고, 분할하는 방법
  1. TDM(Time Division Multiplexing)
  2. FDM(Frequency Division Multiplexing)

  • Radar의 역사와용어



2. RF 의 Anthena 구조 

RF Communication(WIFI/BLE/4G) 와 Radar의 공통점 과 다른 점을 간단히 비교해보도록 하자. 

  • SISO/SIMO/MIMO
RF에서 Anthena 부분이며 Input은 TX, Output RX 각 용어들은 Anthena 갯수에 따른 구조라고 생각하면 된다. 
  1. SISO(Single Input Single Ouput)            : 1 TX  - 1 RX
  2. SIMO(Single Input Muptiple Output)      : 1 TX, -  x RX 
  3. MIMO(Mutiple Output Multiple Output) : x TX  -  x RX

  https://en.wikipedia.org/wiki/MIMO



2.1 MIMO-WIFI(RF-Comm.) 

WIFI통신에서 MIMO의 기술은, 여러 SubCarriers 에서 QAM (Data)기반으로 OFDM으로 1 채널을 생성한다. 
그리고, 1개 이상의 채널되면, 안테나 갯수에 따라 동시 송수신 가능하다고 생각하면 될 듯 하다.

물론 세부적으로 들어가면, 상위내용들이 각 WIFI Spec에 따라 다 다를 것이며, 간단히만 비교한다.

  • Channel 의미 와 Bandwith
2.4GHz 의 Channel 의 갯수 Bandwith는 20MHz 이며, 보통 HT20으로 사용(확장도가능) 
QAM(1 ~ n Subcarriers) -> OFDM = 1 Channel 

 https://en.wikipedia.org/wiki/IEEE_802.11g-2003

  1. 1x1 SISO   : 1개 Channel Bandwith 사용하며, HT20/40 Bandwith 확장가능(ESP32도 아마될 듯)
  2. 2x2 MIMO : 2개 Channel Bandwith를 동시 사용가능 
  3. 4x4 MIMO : 4개 Channel Bandwith를 동시 사용가능 
물론, 802.11g에서는 MIMO가 안되는 것 같으며, 상위 예제일 뿐 각 아래의 Spec에 가서 보시길 




2.2 MIMO-FMCW Radar 

  • FMCW의 기본이해 
세부내용은 TI사이트에 가도 있으며, 아래부분에서 이해하자 
상위 통신처럼 Digtal Data 전송이 아니라, TX 와 RX 차이를 Analog로 분석.

TI의 FMCW 기본으로 이해 한 후, SIMO/MIMO -> AoA 다시 보도록하자.


  • AoA(Angle of Arrival)
최소 Anthena 2개 이상으로 Phase 차이를 이용하여 위치(Angle) 파악하는 개념이며 Virtual Array 구성방법이다.
즉 Anthena 설계를 이해하는 중요한 요소이다. 
DOA(Direction of Arrival Estimation)이라고 하며, RX Channel에서 가능하며, Phase 차이이용하여 삼각함수로 각 Angle 위치 파악한다.
  1. 좌,우 Angle: Azimuth  , 최소 2개 RX에서 좌/우,수평  Phase 차이 
  2. 상,하 Angle: Elevation , 최소 2개 RX에서 상/하, 수직 Phase 차이 


  • AoA(Angle of Arrival) 기본용어 
  1. lamda: Wavelength 의 길이, 즉 Radar의 Center Freuqency의 길이 
  2. theta:  Angle의 입사각? 
  3. d : Anthena 사이의 거리   (보통 lamda/2) 
  4. d * sin(theta): Anthena 사이거리에  삼각함수 이용하여 길이 (아래그림 참조)
  5. omega: ( (2*phi) / lamda ) * d * sin(theta)  -> Lamda 기반 Phase(위상) 차이 

AoA 기본 전제조건 
  1. 물체가 좌측 위치 일 경우 (좌측기준의 +theta, 우측기준 -theta)
  2. 물체가 1개 일 경우
  3. 물체의 움직임이 없음 
  4. MIMO 부터 Virtual Array 가능 

  • AoA-SIMO-1-TX 와 4-RX 경우 
거리 d 가 동일, dsine(theta) 동일하게 증가하고, omega도 동일하게 증가 (RX1,RX2,RX3,RX4)
즉 RX1 Phase 0이고, RX4 Phase 차이 -> 3 omega

https://www.ti.com/lit/an/swra554a/swra554a.pdf

  • AoA-SIMO-1-TX 와 8-RX 경우 (omega 기반 Phase 차이확인)
상위와 동일하게 최대 Phase 차이가 7omega 까지 된 상 
RX1 과 RX8 Phase 차이 7 omega 이지만, Max Phase 차이 있을텐데, 이 부분 추후에~~
https://www.ti.com/lit/an/swra554a/swra554a.pdf

  • AoA-MIMO-2-TX 와 4-RX 경우 (omega 기반 Phase 차이확인)
TX1 과 TX2 의 거리 4d 이며, TX도 Phase 차이가 존재하여, RX에 아래와 같이 구성된다. 
아래 TI 문서에 빨간색 TX2일 것이며, 문서오류  
  1. RX1-TX1: 0             ->  기준으로 Phase 차이 0 (좌측물체)
  2. RX2-TX1: 1 omega
  3. RX3-TX1: 2 omega
  4. RX4-TX1: 3 omega
  5. RX1-TX2: 4 omega   (TX1,TX2 의거리 4d x omega)
  6. RX1-TX2: 5 omega
  7. RX1-TX2: 6 omega
  8. RX1-TX2: 7 omega   ->  RX1-TX1 과 RX1-TX2의 7 omega Phase 차이 
2 x 4 = 8  Virtual Array 생성
https://www.ti.com/lit/an/swra554a/swra554a.pdf

  
즉 Angle-Azimuth  Virtual Array 계산쉽다.

  
  • AoA-MIMO-3-TX 와 4-RX 의 Virtual Array 
TX1 와 TX3  거리         4d
TX1 와 TX2  거리         sqrt(4+1)d
각 RX1 부터 거리간격   1d 
Virtual Array 구성은 총 12 Array로 아래와 같이 구성  
  1. Angle-Azimuth(수평) 파악 가능  (상위에서 쉽게 이해)
    1. TX1-RX1 : 0 omega  ->기준 Channel Phase 차이 0 (좌측물체)
    2. TX1-RX2 : 1 omega
    3. TX1-RX3 : 2 omega
    4. TX1-RX4 : 3 omega
    5. TX3-RX1 : 4 omega  (TX1,TX3 의거리 4d x omega)
    6. TX3-RX2 : 5 omega
    7. TX3-RX3 : 6 omega
    8. TX3-RX4 : 7 omega
  2. Angle-Azimuth(수평) 파악 가능 (TX1 과 TX2 거리 간단히 계산?)
    1. TX2-RX1 : sqrt(4+1) * 1 omega  -> Calibration 용으로 사용?
    2. TX2-RX2 : sqrt(4+1) * 2 omega
    3. TX2-RX3 : sqrt(4+1) * 3 omega
    4. TX2-RX4 : sqrt(4+1) * 4 omega  
  3. Angle-Elevation (수직) 파악
    1. TX2-RX1,TX2-RX2,TX2-RX3,TX2-RX4: 0 -> 기준 Channel Phase 0, (상위물체)
    2. TX1-RX3,TX1-RX4,TX3-RX1TX3-RX2 : 1 omega 

방향은 기준 Channel을 어디로 하는지가 중요하며, 그 기반의 Phase 차이를 이용하여 방향알기 때문에 설정은 DSP 엔지니어 마음인 것 같다.
상위 TX2-RX1도 기준채널로 하면, TX2-RXx Line만 Azimuth도 각 Phase offset은 omega 되니, 측정가능하다.



https://www.ti.com/lit/an/swra554a/swra554a.pdf

  • AoA-MIMO-2-TX 와 4-RX 의 Virtual Array 
물리적 안테나 구조(Physical Anthena Array)  Fig(a) 와 Fig(b)  2개는 다르다. 
하지만, Fig(a) 와 Fig(b) 의 Virtual Array 구성은 동일하다 
오직 Angle-Azimuth(수평)만 파악가능 
  1. Fig(a)의 경우, 상위와 거의 동일 TX1 과 TX2 사이 4d라서 상위 동일 구성 
  2. Fig(b)의 경우, TX1 과 TX2 1d 이고 대신 RX가 2d 이므로 한칸 건너서 구성  

https://www.ti.com/lit/an/swra554a/swra554a.pdf


  • Anthena Array 기본설계 개념 와 이해 
상위를 제대로 이해를 했다면, 물리적 안테나 Array 구성도 쉽게 이해가 될 것이다.
TI 에서 Cascade된 Anthena 구성도 상위를 이해를 하면 쉽게 이해가 가능하다. 
  


  • Antena gain vs Angle
  1. FoV , 각도에 따른 LNA의 Amp 값 확인 
  2. Range FFT Size 확인 
https://www.ti.com/lit/an/swra553a/swra553a.pdf


  • Division/Multiplexing
FMCW Radar도 FM(1Chirp) Multiplexing/Division이용하여 다중화를 한다.
이미 Modulation FM을 사용하니, FDM는 사용 못하고, TDM 과 BPM을 사용한다고 한다.
  1. TDM: 이미 총 FM(1Chirp) 갯수는 정해져 있으며, 각 Time을 나누어서 사용 
  2. BPM: 아직 이해가 안되지만, 일단 개념은 위상 180차이를 해서, 동시에 받겠다는 것임
  3. 개인생각: Bandwith를 나누고, 통신처럼 Channel 구성해서 TDM으로 해도 더 나을 듯 한데, 이것은 없음 (싱크 문제?)
Bandwidth 10Ghz이면, 각 2GHz 나누고, Chirp Slope Time을 증가시켜서 FFT Size에서도 문제없게?


3. RF Communication 과 Radar 비교 

RF 통신(Commuincation) 과 Radar를 간단히 비교하고 차이를 알아보도록 하자.

  • RF Comm. 와 Radar 비교 
  1. WIFI/BLE/4G/5G  :  거리 1D, 편도거리 
    1. 통신은 2개의 개체가 있어야 통신가능 
    2. Digital Data 전송가능 
    3. RTLS(Real Time Location System) 기능이용 (추후에 다시 설명?,아직 개발중?)
      1. AoA를 이용 (Phase 기반으로 측정, Radar 와 거의 유사)
      2. 거리측정 도입이 되어 RSSI기반으로 가능 
      3. 이외 다양함 (LTE의 경우, Cell 기반의 RSSI 값과 삼각측량방법, RTT시간 등.) 
  2. Radar:  거리 2D, 왕복거리 
    1. Radar는 센서이므로  TX 와 RX(반사파) 에 차이를 Analog 신호 분석 
    2. Digital Data 전송 불가능 
    3. FMCW Radar 센서분석 
      1. Range - 거리측정 가능
      2. Doppler - 속도측정 가능 
      3. Angle - 방향측정가능 (SIMO,MIMO 일경우 부터 가능)
      4. 카메라와 확장 (영상 과 확장 Spartial Resolution 결합) 

최근 TI의 BLE 6.0 데모를 보면, Channel Sounding 나오는 것을 보면 AoA까지는 안되는 듯 하며, Range 측정까지만 (이 부분은 추후별도 설명 )

기술적으로 RF통신에서 RTLS를 통해, Radar 처럼 구현을 하려고 함 

11/08/2024

TinyML(Edge AI) 의 Tools

1. TinyML 의 Edge AI Tool

  • TinyML -> Edge AI Foundation 변경?
최근에 TinyML이 이름을 Edge AI Foundation으로 이름을 변경하려고 하는 것 같으며, 
추후 이부분 다시 계속 알아보겠으나, LinkedIn도 거의 이름을 동일하게 변경하려는 것 같다.

  • TinyML의 Radar 관련 사항 
TinyML을 많이 보다가 Radar에 관련된 부분들을 아래와 같이 간단히 자료를 모으고 분류한다.
나중에 TI TinyML의 경우는 세부적으로 분석할 필요가 있어, 이부분은 나중에 하도록 한다.


1.1 TinyML(Edge AI) 의 관련자료  

Meetup 과 Linkedin 으로 자주 보는 것으로 구지 Radar가 아니여도, 많이 보고 있어,  관련된 Radar TinyML을 별도 수집하여 정리한다. 



1.2 TI 의 Edge AI Tool 

TinyML에로 사용가능한 것으로 보이며, TI에서 Edge Impuse 같은 프로그램 없이 별도로 자체제작한 것으로 보인다. 

  • TI 의 Edge AI Studio
TI에서 제공하는 Edge AI 기능으로, 영상을 보면, 거의 Edge Impluse 와 비슷하다. 
TI가 아니더라도, 요즘 ARM기반으로 되어있다면 얼추 다른 Tool을 이용하여 개발가능하다. 
ARM이 아니더라도 각 Chip Core 별로 AI Inference Lib 거의 나오며, 쉽게 연동가능하도록 하는 Tool 들이 존재한다.  
다만, 각 사용가능한 AI Model들은 정해져 있을 것 같으며, 나도 아직 사용을 못해봤다. 

TI에서 별도로 Tool도 제공

Edge AI 관련 설명 



2.3 Infenion 의 Edge AI Tool

Meetup에서 직접봤지만 Infenion도 TI처럼 각 Tool을 이용하여 Edge AI를 해보려고 하는 것 같다.

ARM 기반의 WIFI로, ARM의 NPU 탑재?? 

  • Infenion Edge AI Tool
Edge Impulse 와 거의 비슷한 것으로 보이며 아래 사이트에서 제공
Imagemob Studio(아직 사용 못해봄)

  • Embedded Edge Intelligence with Infineon New Products and Imagimob Studio
Imagimob Studio 와 PSOC Edge 관련사용법이며 TinyML에서 발표 

  • ModusToolbox Machine Learning User Guide 

Radar 개발 IDE 와 Tools 정리

1. 기존 IDE-Tools 비교와 정리 


각 Chip 제조사에서 제공해주는 IDE Tool이 VS code 혹은 Ecplise 기반으로 제공을 해주고 있다.
VS Code는 간단하고 편하지만, Node.js 기반이라 느리기 때문에 복잡한 디버깅은 좀 그렇다.
Ecplise 기반으로 된 Tool 기반으로 다 제공을 해주며, 그 후에, VS Code도 확장제공해주는 것 같다.

  • IDE-Eclipse 사용방법 
각 Chip 제조사들이 주로 Eclipse 기반으로 IDE를 구축을 하며, 이 기반의 PlugIn로 확장하여 사용한다. 

  • VS Code 사용방법 
편하기는 한데, Debugging 과 Profilling 하기에는 너무 느리고, 자주 먹통 
장점은 최근에는 Github에서 Web Browser에서도 실행이 될 정도로 호환성일 것 같음. 

  • Debugging 과 Profile 관련내용 


반드시 알아야 할 것은 Eclipse이며 이와 같이 연동하는 각 Debugging 과 Profiling 기술인것 같다. 


1.1 TI 의 Radar IDE 와 Tools 

TI는 기본적으로 DSP를 사용해야 하기 때문에 CCS는 거의 기본으로 사용해야 하며, 아래의 mmwave Studio가 별도로 추가되어 사용되어 지는 것 같다. 

  • TI 전체 Radar S/W 개발환경
TI의 전체 S/W 구조 와 각 Tool 사용을 쉽게 파악가능하며, mmwaveSDK 기반에 다시 상위 Example로 다양한 S/W 제공 
  1. CCS (Code Composer Studio)
  2. mmWave Studio

  

  • TI 의 CCS(Code Composer Studio) 
TI의 DSP 과 ARM과 같이 Ecplise기반으로 Debugging을 위해서는 알아야 하는 Tool이며, 예전에 정리한 것과 기능이 많이 변경은 되었을 거 같다.
세부 사용법은 CCSv6,7의 사용법 유사하리라 생각되며 아래 Manual을 보도록 하자. 

Development Tools -> Integrated Development Environments -> Code Composer Studio

Code Composer Studio Academy 

Code Composer Studio User's Guide
가능하다면, 아래의 User Guide로 반드시 확인  

CCS 의 Download 

CCSv6/7 기반으로 정리 
TI CCS 기본사용법으로, ARM/DSP(OS, Linux, TI BIOS)  Debugging으로 이전에 정리 


  • TI 의 mmWave Studio
TI에서 SDK 와 각 GUI Tool을 Ecplise 기반으로 제공(현재 추측?)을 해주고 있으며, 거의 CCS와 비슷하리라 본다.(아직 사용 못해봄)
CCS 처럼 TI BIOS 와 GEL 이라든지, 이게 다 되는지는 정확히 잘 모르겠다. 
Download 해서 설치해보려고 했더니, 등록을 까지 해야 하는 것 같아 Download 안함
TI에서 무료라고 하니, 나중에 mmWave EVM 있다면 그때 설치하도록 하겠음 
Manual을 보면 Radar에서 쉽게 디버깅이 가능하도록 많은 Visual 기능이 존재함 

mmWave EVM이 있다면, 본인 Radar Chip 맞게 설치


  • Evaluation & development tools
아래 사이트를 방문할때 마다 Update 되어서 각 Tools들 확인(이름도 변경될 수 있음)
아직 미완성된 부분있어 추후 방문하면, 괜찮을 듯 함     

A. TI mmWave Sensing estimator

Radar Chirp Design과 Power 측정가능 Tool로 나중에 반드시 필요할 듯 
아래 Tab 에 따라 Basic/Advance/Power Estimator 제공 
https://dev.ti.com/gallery/view/mmwave/mmWaveSensingEstimator/ver/2.4.0/

B. Out of the box demo visualizer

 Web 기반으로 각 개별 Plot을 보여주는 visualizer 로 보이며, 아래의 쉽게 파악 
Web에서 바로 실행가능 및 설정가능 



  • Advanced algorithm development
Matlab 부분참조 와 Radar Data 수집방법 (상위 mmWave Studio) 
Matlab 부분참조




  • TI mmWave 다양한 Radar Project  
TI 모든 Radar Project는 다 볼수는 없지만, 아래에서 대충 각 Example들을 살펴보도록 하자  



1.2 Infenion 의 Radar IDE 

TinyML Meetup에서 우연히 알게되었으며, Tool 사용법은 TinyML or Infenion 아래 Youtube를 통하거나, Infenion 사이트에서도 익혀도 될 듯 하다. 
아래의 TinyML 보면, Infenion의 Radar도 Chirp 디자인도 다 되는 것으로 보인다. 

  • Infenion 의 Radar Tool 과 SDK 
Infineon XENSIV 60GHz  (ESP32도 동일한 Core(XENSIV) 저가 DSP로 많이 이용되는 듯함?)
  1. Radar Development Kit (아직 사용 못해봄)
  2. Radar Fusion GUI  (아직 사용 못해봤으나, 봐도 Ecplise 기반)

  • 상위 Tools 사용법 
tinyML Hackathon Challenge 2023 - Infineon XENSIV 60GHz Radar Sensor and devkit explanation

  • Infenion 제공기반의 OpenSource(Radar RDK)
상위 sdk기반에 구현한 것 같은데, 추후 시간되면보도록 하겠음 

11/07/2024

Radar 시장분석 과 TI Radar 자료분석

1. Radar 시장

우선 Radar 시장을 크게 보면, 내 개인생각으로 다음과 크게 2가지 로 분류하고 다양하게 사용되어지는 것 같다.

  • Radar 일반시장
  1. Radar IoT or 일반 
    1. Healthcare:  사람의 몸을 중심으로 Radar를 이용하여 정보를 얻음 
    2. Industrial:  Robot 를 비롯하여, Drone , 다양하게 센서로 적용  
    3. Camera :  Camera의 확장으로 Radar를 접목 (4D Image Point Cloud)
      1. ITS : 도로 감시 와 교통량 측정 
      2. 일반 카메라: Camera 와 접목하여 확장하여 사용  
  2. Radar Automotive: 아래참고 
    1. Radar센서를 여러개 사용(Cascade)하여 다중채널로 4D image Radar 센서
    2. 이외 다양한 후방 및 전방, 다양한 Radar 센서(MRR/LRR/SRR)들 

Radar 사용목적을 보면, 개인생각으로 다음과 같으며, 틀리 수 도 있음

  • Radar 사용목적  
  1. Camera 대신에 Radar 만 사용(Healthcare, 물체 움직임파악)
  2. Camera 기능확장해서 Radar 와 Camera 사용 (4D image Point Cloud)

1.2 Radar 문서자료 와 TI Radar 사이트구성 

TI에서 Radar 원리를 TI 사이트 에서 문서로 제공해주다가, Radar 교육을 아래처럼 TI 사이트로 제공을 해주고 있다.
TI Radar를 이용해서 mmWaveSDK 기반으로 쉬운 Radar 개발구현이 목적일 것이라고 생각한다.

  • TI 의 Radar Overview
TI Radar에 관련된 자세한 내용은 서술은 하지 않겠으며, 각 정보를 쉽게 얻을 수 있다.
우선 각 TI Radar 종류( Atutomotive or Industirial) 파악 하고 각 RoadMap을 파악하도록하자.

Technical Article 부터 White Paper 를 비롯해서 관련 Datasheet에 자세히 나오며 세부적인 기술도 자세히 서술해주고 있다. 


Radar 관련자료를 찾다보니, 전부 TI에서 많이 공유해주기 때문에 일단 다 TI 중심의 Radar로  보기로 하겠다. 

  • TI mmWave radar Portfolio Overview
Industrial 과 Automotive  나누어 제공하며, 세부내용은 아래에서 참조 

분명 TI Radar Chip Package Naming 나오는 문서가 있을텐데, 아직 찾지를 못함

각 나라마다 사용하는 주파수 허용 과 법률 



  • mmWave Radar Sensors 의 구성 
  1. Device documentation: Radar Datasheet 이곳에서 찾도록 
  2. Embedded Software:  TI에서 제공하는 SDK 와 Toolbox 
    1. mmWave low-power SDK
    2. Radar Toolbox 
  3. Hardware kits and boards: Radar EVM  관련정보  
  4. Training
    1. Radar Academy 

  • Training-> Radar Academy
TI에서 문서와 동영상으로만 제공하다가, 이제는 RADAR관련지식을 웹사이트에 같이 올렸으며, 기존문서와 차이라면 
최근에 TI에서 제공해주는 Tool들과의 연관성 과 기본원리를 아주 자세히 설명을 해주고 있다. 

  • Embedded Software -> Radar Tool Box 

  • Embedded Software -> Radar Tool Box -> Example Projects 
TI Board로 진행 Radar Project 들로 매번 새롭게 올라오므로, 각 개별 Project을 보도록 하자 


TI에서 세부적인 문서 와 Example Project를 비롯하여 HW Design 도 각 설명을 해주고 있으며, 
관련부분들은 상위에 쉽게 찾아 볼수 있다.


1.2 Radar 와 다른센서들 비교  

최근에는 TI에서 LiDAR 와 PIR(적외선 카메라)도 제공하는 것으로 보이며, 아래사이트에 간단히 각 장점 과 단점을 비교해준다.
 
  • Radar vs LIDAR Module 비교 
TI에서 소개는 하지만, TI PIR 센서는 없는것 같으며, Radar 와 비교 
  https://dev.ti.com/tirex/explore/node?node=A__AXK97ThQVGib-PT.Hgk30Q__RADAR-ACADEMY__GwxShWe__LATEST


2. 각 반도체 회사 흐름파악  

Radar에 관련된 자료들을 모아보니, 각 Chip 제조사들의 솔루션들의 변화를 알아야 할 것 같아 간단히 정리한다.
각 Chip 제조사의 Automotive 에 들어가는 Chip 종류(ADAS,Cockpit, Zone architecture,이외 ECU)가 많으며, 이를 다 파악 할 수는 없다.
주로 내가 확인하고자 하는 것은 통신기술(5G 와 C-V2X, WIFI7, 통신은 주로 C-V2X) 과 센서기술(주로 Radar or Lidar) 

보통 ADAS or Digital Cockpit/IVI 중심으로 보면될 것 같으며, Cockpit는 Hypervisor 사용하여 Dual OS에 최고성능으로 사용되어진다고 한다.
거기에 요즘 NPU를 넣어 vLLM까지 확장해서 사용하려고 하는데, 이건 Smartphone AP도 거의 동일하게 따라가는 듯 하다.

요즘 NVIDIA Drive 와 Qualcommn(Adreno) 유행일 듯, 다만, 발열문제!! 

  • Qualcomm Automotive 
C-V2X가 제대로 되면, 자동차에서 4D Image RADAR가 많이 필요 없을 듯(개인생각?)   

Cohda Wiresless
상위 Qualcomm 사이트 존재, 아래 사이트 Qualcomm C-V2X 개발 (이전에 NXP기반로)
예전에 V2X(DSRC)로 개발할때, 간단히 정리한 것 (MK5x일듯)

  • Samsung Automotive 
Exynos는 일단 링크만,
Odroid(Exynos)보드를 가지고,논적이 있어 아래에 링크
요즘 Odroid도, AMlogic or Rockchip을 사용하지 Exynos는 거의사용안함 

  • MediaTek Automotive 
MediaTek는 5G 와 V2X 있는데, C-V2X 없는듯 함. 

  • TI Automotive 
TI의 경우, Cockpit 보다는, 거의 ADAS Radar 와 일반 과 DSP 중심으로 다양하게 제공하는 듯

Davinchi(DMxxx) Series   
Davinci Series 는 Multimedia 칩이며, 다양하게 사용되며, TI 기본일 것 같다. (TI DSP도 기본)

Sitara(AMxxx) Series
Davinci를 이해하면 금방 이해가능해서, 아래 간단히 링크만. 

TDA Series 
OMAP에서 더 발전되어, ADAS 용 거의 사용하는 듯하며, Sitara(AM67)하고 거의 유사? 

  • Axis Communication
TI 기반으로 카메라 솔루션 업체로 잘 알고 있으며, 현재 TI Radar도 카메라에 확장 적용완료했음  

  • NXP Automotive 
NXP의 Automotive에 들어가는 SoC은 다룬 경험은 없어 아래 링크만,

NXP Radar 
간단히 NXP Radar를 살펴볼수 있으며, SRAM 엄청나다.(SRAM을 보면, FPGA 사용해도 될듯)

NXP V2X (DSRC)
이곳에 V2X는 상위 Cohda Wiresless에서 구현했으며, 이제 Qualcomm의 시대로 가는 듯 

NXP iMX Series 
Freescale-> NXP로 인수합병된 후, 나도 사용한지가 오래되어, 링크만,

  • Hisilicon Auo 정보
V2X 에서 C-V2X 변경되는 듯 하고, ADAS에서는 다양한 Radar 지원, 
Digital Cockpit에서 ISP에 왜 DVR이 있는지를 모르겠음 (현재 Blockbox용으로 추측)


  • 이외 정보들
Radar는 중국 뿐만 아니라, Radar만 전문으로 하는 기업들이 꽤 많은 것 같은 것 같다.
직접 Radar Chip 사용하지 않고, 설계해서, 하는 곳도 의외로 많으 것 같다

상위내용들은 간단히 살펴 보는 것이며, 틀리수도 있음 


2.1 TI Radar 적용한 국내기업들 확인  

헬스케어로는 AI하틴루 개발한 피플멀티 와 아래의 SRS(Smart Radar System) 이 주로 사용하는 것 같으며, 
자동차(Automotive)쪽으로 경험이 없기에, 현재 잘 모르겠으며, 아래 SRS 중심으로 보겠다.
다른 곳을 찾으면, 그 때 다시 좀 더 알아보도록 하겠다. 

  • 피플멀티
AI 하틴루로 주로 헬스케어 제품으로 사용 


SRS 사업의 Roadmap 

SRS 의 헬스케어 솔루션과 4D image Radar 768 Ch 쉽게파악 

SRS Radar 와 Global Radar(Aptive/Contiental/Magna/Weifu) 비교 파악가능  


1/22/2024

Rust 기반의 Virtio

1. Rust 언어 

Rust는 대충 다 알 거같아, 만약 필요하다면 그때 다시 언급하며, Linux Kernel 이나 Open Source에서 가장 이슈인 언어인 것 같다. 
나도 보기만 여러번 보고, 간단히만 사용해봤지, 아직 더 알아야 하기에 나중에 안 다음에 자세히 남기겠다. 

Rust 관련 

Linux 
추후 한번 사용해보지 


2. 가상화(Virtualization)

가상화는 한마디 Hypervisor라는 가상 CPU를 이용하여 Guest OS를 실행하여 동시에 동작시키는 것이다. 
일단 Docker 와 가상화 차이부터 그림으로 알자 

Docker 와 가상화 차이 
Hypervisor 존재여부차이  

가상화(Virtualization,Hypervisor)
이전에 간단히 가상화 부분을 정리한 것이며 간단히 참고만하자 

AMP/SMP 관련내용 
상위내용에 AMP/SMP 빼먹어서 아래참고  

ARM용 Multi Core방식소개 
오래전에 ARM용 Multi Core 방식을 간단히 정리한 것이며, 틀리수 있다. 
(상위에도 ESP32링크에도 있음) 



2.1 가상화 중요성 

요즘 Embedded SoC/AP의 성능이 좋은 것은 기본적으로 Hypervisor 사용하고 이를 통신하면서 사용한다. 
자동차로 보면, IVI 를 가상화로 돌리는 것을 많이 볼 것 같다. 
Host OS는 RTOS(QNX)기반으로 사용하고 Guest OS를 Linux/Android로 동작하겠다는 것 같으며, 거의 추세로 가는 것 같다. 
임베디드에서도 가상화는 필요하다. 


2.2 Window 가상화 

Window에서는 주로 나의 경우, Virtual Box 와 VMWare로 사용했으며, 아래를 참조하고 알아두기만 하자.
최근에 Broadcom이 VMware인수 했으니, 어떻게 될지도 지켜봐야하니 

  • Virtual Box 
VMWare의 경우, 유료라서 내가 Blog에 기록은 안한 것 같은데, 찾으면 나올 것 같기도 하다(귀찮음, 나중에 다시 VMWare는)

  • VMWare
나도 사용한지 너무 오래되었으며, 가장 기대하는 것은 Cloud 기반이며, 추후 사용해보고, 그때~~~  


참고로, 상위 두 개도 Linux에서 지원해주며, Window용으로 한정해서 생각하지 마시길~ 


2.3 Linux Rust 기반 Virtio

Linux에서 사실 Virtio는 사용한 기억이 거의 없으며, 나중에 시간이 되면 한번 사용해보겠다.

  • Virtio 관련설명 
설명을 잘해주셔서 감사하며, 나중에 사용해보도록 알아보도록 하겠다. 
QEMU이 이것을 사용하는 줄은 몰랐으며, QEMU은 Yocto에서 쉽게 사용가능하다  
KVM도 지금보니, 다시 업데이트 된 것 같으며, Wiki에서 쉽게 이해하시길 

  • Rust Virtio
그림을 보면 쉽게 이해가 가며, 가장 내가 주의깊게 보는 것은 공유메모리이며, 나중에 좋은 AP에서 이용해보도록 하겠다.  
관련소스 

  • Chip 제조사 링크 
참고로, Samsung Exynos 처럼 TI 도 카메라 12개 까지 되는 것이 봤는데, 위치를 찾았다.

1/10/2024

ESP TinyML (Edge AI)

1. Edge AI (TinyML)  

TinyML을 Meetup or Linkedin을 통해 여러번 보기만 하고, 관련자료들을 거의 잘 정리하지 않아, 
아래와 같이 간단히 정리하도록 한다. 
우선 TinyML 을 알기전에 기본적인 Machine Learning 과 Deep Learning을 좀 알아보고 
Tensorflow or Edge Impulse를 사용해보는게 맞을 것 같다. 


ESP32/ARM 기반의 TinyML
TinyML 관련된 부분 내용이며, 개발 Tool 과 Inference를 위한 NN network 관련자료 

Tensorflow/Tensorboard 
Tensorflow 와 Tensorboard 기본사용법 과 분석방법  (오래되어 많이 까먹음) 

MNIST 모델의 기본이해 
가장 기본인 MNIST 모델을 이해

CNN(Convolutional Neural Network) 관련자료 
Convolution Network 예전에 정리한 자료 

Jupiter/Colab 사용법 
기본 Jupyter(Colab) 사용법 


1.1 Edge AI/TinyML 개발 Tool 

Edge Impulse or Tensorflow Lite를 사용방법은 서로 비슷하리라고 본다. 
아직 Edge Impulse는 사용해보지 못하고 매번 글만 읽어 보기만 했으며, 관련 Tool들만 간단히 소개한다. 

TensorFlow Lite for Microcontrollers
TinyML 기반으로 진행할 경우, Tensorflow 와 Tensorboard로 진행 

Edge Impuse 
TinyML Meetup에서 알게되었으며, 이걸로도 많이 진행하며, 주로 보면 Tensorflow와 비슷하리라 본다. 

TensorFlow Lite for ESP32 
ESP32 의 Tensorflow 관련자료 


1.2 Edage AI Use Case 와 Cloud 

Edge AI, TinyML을 주로 많이 사용하는 것 같으며, ARM 뿐만 아니라 ESP32 시리즈 각 CPU 아키텍쳐마다 
이를 지원을 해주는 것으로 보인다. 

  • Edge AI Use Case
요즘 Edge AI , TinyML은 거의 들어갈 것으로 보이며, 핵심을 주로 보면, Cloud와 조합이다.
Edge는 Edge 일 뿐이며, Cloud와 어떻게 조합할 것이며, 역할을 어디까지 정하는게 중요할 것 같다. 

  • Google Firebase 
Realtime Database를 제공해주고 있으며, 간단한 IoT를 제작하여 실시간으로 확인하고 싶다면 괜찮은 것 같다. 

  • AWS 
AWS는 현재 거의 사용해본게 AWS EC2 와 IoT(S3) 만 사용해봐서 뭐라고 말을 못하겠다.
추후에 AWS를 좀 더 잘 알면, 그때 더 보도록 하자. 특히 Lamda !!! 

  • AWS/GCP/Azure 
Could를 사용해보면, 항상 이곳에서 이 기능을 제공하며, 거의 다 다른 곳에서도 비슷한 기능을 제공해준다.  
나도 Cloud를 좀 더 사용해보고 말을 해야 겠지만, 얼추 제공은 다 해주는 것 같다. 

  • RealTime Chart 관련자료 
이전에 Chart 관련 JavaScript을 Firebase기반으로 Realtime으로 이용한 적 있는데, 추후 이를 다시 이용할때 확인 


2. ESP 기반의 TinyML 분석 

ESP32 or ESP32-S3 기반으로 TinyML을 구성하기 위해서는 기본적으로 아래의 Component기본으로 사용한다.
ARM 과 달리 ESP 경우 DL을 별도로 또 제공해주고 있다. 

ESP-NN(Neural Network)
ARM도 이를 제공하고 있으며, 나중에 Inference할 때 같이 사용 

ESP-DL(Deep Learning Model)
아래를 보면, ESP32-S3기반으로 성능측정된게 있는데, Data Cache만 64KB사용했을 경우이다.

ESP32 Memory (SRAM)
문제는 나중에 SRAM이 될 것 같으며, 이 부분은 별도로 생각을 해야 할 것 같다. 


2.1 Human Activity Recognition Edge AI 

ESP32-S3 기반의 TinyML기반 동작되어진다. 
마지막에 보면 Model을 ESP-DL로 Converting 해서 사용하며, 이는 .cpp 와 hpp로 구성되어진다. 
나중에 직접 실행을 해보면 알겠지 ㅋㅋㅋ (Fine Tuning 도)
 
  
  • Model 구조 
CNN 기반으로 가속도계 센서 기반으로 사람의 행동 파악
  1. Input: 가속도계 센서 (MPU6050)
  2. Output: 7가지 행동패턴 

  • Tensorflow 기반의 CNN 구조 및 설명 
Model을 만들어가면서 설명해주고 있어 괜찮음


  • Espressif Blog (Human Activity Recognition)
상위 내용들은 모두 아래의 Blog 기반으로 작성되어있으며, 아래의 Blog을 읽으면 세부적인 내용이 나온다.  

2.2 Hand Gesture Recognition Edge AI 

ESP32-S3 기반의 TinyML기반 동작되어지며, 상위와 비슷하다.
Jupyter를 Colab을 사용한다고 하며, 나중에 ESP-DL Format으로 Convert해서 사용한다고 하며, 
ONNX로 한다고 하는데, 내가 까먹었다. (CNN는 동일) 

  • ONNX
나중에 시간되면 다시 보면 되겠지 

  • Edge AI H/W Optimzation 과 관련내용 
좋은 설명을 해주고 있는데, 내가 아직 이해를 다 못하겠다. 
  
  • Model 구조 
CNN 기반으로 Model이며, 카메라에서 얻은 것을 ESP32-S3 EYE
  1. Input: Camera Image (ESP32-S3 EYE)
  2. Output: 손가락 Pattern (현재 6개의 Gesture, score기반으로 구분)

Model의 Dataset (Kaggle 것 사용)

  • 관련자료 수집


Espressif Blog (Hand Gesture Recognition)
상위 내용들은 모두 아래의 Blog 기반으로 작성되어있으며, 아래의 Blog을 읽으면 세부적인 내용이 나온다.  


2.3 기타 Edge Impuse 기반 자료

  • Edge Impuse 기반 진행 
ESP32 TinyML 
개발 Tool : Edge Impulse 와 Arduion IDE으로 진행을 한 것으로 보이며, 다양하게 존재하며 
대부분 카메라 중심으로 되어있다.