Skip to content

Server Data Processing(Time Synchronize)

ka-yeon edited this page Jul 6, 2021 · 12 revisions

Data Processing


경로 수정

🕒데이터 가공(시간동기화)

TimeSynchronization/main.cpp

string command = "mkdir -p json 폴더가 만들어질 위치"

json 폴더가 만들어질 위치를 수정해준다.


TimeSynchronization/makejsonThread.cpp

MakeJson* j = new MakeJson("json 파일들이 저장될 위치");

json 파일들이 저장될 위치를 수정해준다.


동작 방식

🕒데이터 가공(시간동기화)

1. Mobile Platform에서 raw data backup

Mobile Platform에서 server로 전송한 데이터는 Server/DIVA2_DATA 폴더 안에 저장된다.

위 경로에 데이터가 저장된 것을 확인한다.

테스트를 위해서 취득된 데이터를 사용할 수 있다. 해당 파일은 DIVA2_DATA에서 다운로드받을 수 있다.
-> 데이터를 Server 폴더 안에 저장한다. Server/DIVA2_DATA/YYYYMDD_0 이와 같은 경로로 데이터가 저장되어야 하고, 날짜 폴더를 코드를 실행할 때 당시의 날짜(현재 날짜)로 변경해주어야 한다.


TimeSynchronization/main.cpp

2. JSON 폴더 생성

// make JSON folder
string command = "mkdir -p json 폴더가 만들어질 위치";
    
const char *c = command.c_str();
system(c);
├─ Server
│  ├─ DIVA2_DATA
│  │      └─ YYYYMDD_0
│  │            ├─ GPS
│  │            ├─ IMU
│  │            ├─ CAN
│  │            ├─ CAM
│  │            │   └─ JPG
│  │            ├─ LiDAR
│  │            │    └─ PCD
│  │            └─ JSON

Server/DIVA2_DATA/YYYYMDD_0에 Json 폴더가 새로 생성된다.


3. MakeJsonThread 동작

// makejsonThread
    MakeJsonThread mMakeJsonThread;
    thread makejsonThread(&MakeJsonThread::run, &mMakeJsonThread);
    makejsonThread.join();

MakeJsonThread가 돌면서 데이터들이 시간동기화 되고, 토큰값으로 연결된 data들이 json 형식으로 저장된다.


Thread 구성

TimeSynchronization/makejsonThread.cpp

//make log, frame, scene, lidar, cam, gps, imu, can json
MakeJson* j = new MakeJson("json 파일들이 저장될 위치");
j->Sensor(5);
    
j->Log(0);
cout<<"make Log json"<<endl;
j->Frame();
cout<<"make Frame json"<<endl;
j->Scene();
cout<<"make Scene json"<<endl;
j->Lidar_Data();
cout<<"make Lidar json"<<endl;
j->Cam_Data();
cout<<"make Cam json"<<endl;
j->Gps_Data();
cout<<"make Gps json"<<endl;
j->Imu_Data();
cout<<"make Imu json"<<endl;
j->Can_Data();
cout<<"make Can json"<<endl;

delete j;

데이터 가공 과정

① GPS의 timestamp 기준으로 시간동기화

② 시간동기화 한 데이터를 frame으로 묶고, 토큰 값을 부여하여 연결

③ 200개의 frame을 묶어 한 개의 scene을 구성

④ 주행데이터와 가공된 각 센서의 데이터가 json 파일로 저장


코드 실행 후 저장되는 json 파일 목록

JSON 폴더 내부에 다음과 같은 이름으로 9개의 json파일들이 저장된다.

log.json, sensor.json, frame.json, scene.json, cam_data.json, lidar_data.json, gps_data.json, imu_data.json, can_data.json