1. 서 론
국내 도로법 제 91조에 따르면 교통사고로 인한 도로 시설 파손의 경우 원상복구에 소요되는 비용을 사고 원인자가 부담한다[1].그러나 고속도로와 달리 국도나 지방도의 경우에는 약 절반에 해당하는 사고가 원인자를 찾지 못해 이를 세금으로 충당하고 있다 [2].또한, 파손된 시설물이 방치된다면 추가적인 사고와 시설물의 파손을 야기할 수 있다.이러한 문제를 해결하기 위해 도로의 모든 구역에 CCTV를 설치하는 것은 비용적으로 한계가 있으며, 설치된 CCTV 를 감시하고 관리하는 데에 많은 인원과 비용이 소모된다[3]. 따라서 시설물에 충돌이 가해졌을 때, 정확한 충돌 시간과 시설물의 파손 여부를 실시간으로 파악하고 기록하여 정보를 제공할 수 있는 충돌 감지 시스템이 필요하다[4, 5].
현재 가장 많이 사용되는 시설물 충돌감지 방법은 진동 센서와 3축 가속도 센서를 이용한다[6, 7]. 진동센서는 시설물에 충돌이 가해지고 발생하는 진동을 감지하는 방식이며, 3축 가속도 센서는 시설물에 가해진 충돌 가속도를 측정하여 충격량이 미리 정의한 임계치 이상일 경우에 충돌이 발생하였다고 판단하는 방식이다.
그러나 이러한 기존의 시설물 충돌감지 방법은 단순히 충돌 발생 시각과 충돌 발생 여부에만 초점이 맞춰져 있다.이는 충돌 후의 시설물 상태에 대한 정보를 제공하지 않는다.예를 들어, 센서의 단순 오작동으로 임계치 이상으로 전극이 튈 경우에는 충돌이 발생하였다고 판단한다.이러한 경우에는 충돌이 실제로 발생하지 않았더라도 이를 확인할 방법이 없으며, 실제 충돌이 발생하였는지 확인하기 위해 현장에 가서 직접 확인해야 한다.이러한 문제점을 해결하기 위해 시설물에 가해진 충돌 데이터를 수집하고, 감지하는 새로운 방법이 필요하다.그 중에서 9축센서는 3축 가속도 센서뿐만이 아니라 3축 자이로 센서, 그리고 3축 지자기 센서로부터 데이터를 수집한다. 3축자이로 센서는 일정 시간동안 회전하는 각도인 각속도를 측정하며, 시설물에 부착된 센서가 움직이는 정도를 측정할 수 있다[8, 9].3축 지자기 센서는 센서 주위의 자기장을 측정하며, 이를 통해 지구 자기장을 측정하여 3축 자기장 센서가 놓여져 있는 방위각을 측정할 수 있다[10].
따라서 본 논문에서는 9축센서를 이용하여 시설물의 충돌을 감지하는 알고리즘을 제안하고자 한다. 제안한 알고리즘에서는 3축 가속도로 충격량을 측정한 후 시설물에 충돌이 발생하였다고 판단되면, 가속도 센서와 지자기 센서를 종합적으로 분석해서 시설물에 충돌이 가해진 방위각을 산출하여 보정한다. 특히, 시설물에 충돌이 발생한 후 기울어진 각도를 가속도 센서와 자이로 센서로 확인할 수 있다. 이것은센서의 오작동으로 시설물에 충돌이 발생하였다고 판단되더라도 산출된 시설물의 충돌방향과 시설물의 충돌인지 여부를 확인할 수 있다.제안한 9축 센서 기반의 시설물 충돌감지 알고리즘의 정확도는 데이터의 측정 주기와 충돌감지 알고리즘의 호출 주기에 따라 다르다.따라서 이는 두 조건을 변경하여 충돌 감지 정확도 평가 실험을 통해 최적의 데이터 측정 주기와 알고리즘 호출 주기를 확인한다.
본 논문의 2장에서는 시설물 충돌 시나리오와 이를 기반으로 한 기존의 충돌감지 알고리즘을 제시하며, 9축센서 중 하나인 MPU9250센서에 대해 살펴본다. 3장에서는 본 논문에서 제안하는 9축 데이터를 이용한 시설물 충돌감지 알고리즘을 제시한다. 4장에서는 제안한 알고리즘의 유효성을 확인하기 위해실험 환경을 구성하고, 충돌 데이터를 수집한다. 또한, 9축센서 데이터의 측정 주기와 충돌감지 알고리즘 호출 주기를 변경하며, 충돌감지 정확도를 평가한다. 마지막 5장에서는 결론을 맺는다.
2. 관련 연구
2.1 시설물 충돌 시나리오
일반적으로 도로에서 자동차가 시설물과 충돌할 경우의 시나리오는 Fig.1과 같다.Fig.1의 (a) 에서보면 충돌 전에는 시설물이 지면과 수직인 방향으로 중력 가속도(9.80665m/s2)를 받는다[11]. 그러므로 시설물에서는 지면과 수직인 방향으로 가속도 데이터가 측정된다.Fig.1의 (b)는 시설물에 충돌이 발생한 상황이다.이때, 시설물은 중력 가속도뿐만이 아니라 충돌 방향으로 충돌 가속도 데이터가 측정된다
Fig. 1. Collision scenario and usage of gravitational acceleration data, (a) before a collision with the facility, (b) collision of facilities, and (c) after a collision with the facility.
Fig. 2. 3-axis acceleration data for facility collisions, (a) before the collision and (b) after the collision.
[12].Fig.1의 (c)는 시설물에 충돌이 발생한 후 시설물이 기울어진 상황이다.이때 (a)와 달리 수직이 아닌 방향으로 중력 가속도가 측정된다.
즉, 중력 가속도는 시설물에 충돌이 발생하였는지에 대한 여부와 상관없이 일정하게 측정되며, 시설물의 기울기에 따라 측정되는 방향이 다르다. 또한, Fig.1의 (b)와 같이 시설물에 충돌이 발생한다면 중력 가속도 외에 충돌 가속도가 추가적으로 측정된다. 이를 통해 시설물에 충돌이 가해졌는지 여부를 판단할 수 있으며, 3축 가속도 센서로 중력 가속도와 충돌가속도를 측정할 수 있다.
2.2 3축 가속도 센서를 이용한 충돌감지
3축 가속도 센서는 x축, y축, 그리고 z축에서 발생하는 가속도 데이터를 측정하며, 각 축은 서로 수직을 이룬다[13].3축 가속도 센서가 부착된 시설물이 충돌에 의해 충격을 받으면 Fig.2와 같이 데이터 값의 변화가 생긴다.Fig.2의 (a)구간은 시설물이 충격을 받기 전 상태에서 측정된 3축 가속도 데이터이다. z축은 지면과 수직을 이루고 있으므로 항상 중력 가속도가 측정되며, x축, y축은 아무 힘도 받지 않아 0m/s2가 측정된다[14].그러나 충돌이 발생하면, Fig. 2의 (b)구간과 같이 x축, y축에서 측정되는 가속도 데이터가 급격하게 변화하며, z축으로는 충돌 가속도가 측정되지 않으므로 변화가 적은 것을 볼 수 있다.
3축에서 측정된 가속도 데이터는 식 (1)을 이용해 충격량을 산출하며, 이를 통해 얻은 가속도 충격량은 Fig. 2와 같이 나타난다[15,16]. 예를 들어, Fig. 2의 (a)에서는 x축, y축에서 0 m/s2이며, z축에서 9.80665 m/s2이므로 산출되는 충격량은 9.80665m/s2이다. 그러나 Fig. 2의 (b)와 같이 x축, y축에서 충돌 가속도가 측정된다면, 산출되는 충격량은 9.80665 m/s2 이상으로 나타난다. 이는 충돌 가속도가 증가할수록 산출되는 충격량이 증가하므로, 시설물에 가해진 충돌 강도 기준에 따라 임계치를 정의하여 충돌발생 여부를 감지할 수 있다.
\(\text { Acceleration shock data }=\sqrt{x^{2}+y^{2}+z^{2}}\) (1)
이러한 방식을 이용한 기존의 시설물 충돌감지 알고리즘은 Fig. 3과 같이 동작한다[17]. Fig. 3을 보면 3축 가속도 데이터가 수집되는 과정에서 시설물에 충돌이 발생할 경우 시설물에 가해진 충격량을 측정한다. 만약, 미리 정의해둔 충격량 임계치를 초과하지 않는다면 시설물에 충돌이 발생하지 않았다고 판단하고, 다시 가속도 데이터를 수집한다. 그러나 충격량 임계치를 초과할 경우에는 충돌감지 알고리즘은 시설물에 충돌이 발생하였다고 판단하고, 충돌 발생 시각과 산출된 충격량을 확인할 수 있다.
Fig. 3. One of the existing algorithm for collision detection.
그러나 이러한 3축 가속도 데이터로 충돌 발생 여부만을 판단하는 것은 한계가 있다.예를 들어, 가속도 센서의 단순한 오작동으로 잡음이 발생한다면 충돌이 발생하지 않았음에도 불구하고 충격량 임계치를 초과할 수 있다.이 경우에는 충돌감지 알고리즘에서 시설물에 충돌이 발생하였다고 판단하여 충격량 로그 파일에 충돌 정보를 기록한다.이러한 경우, 충격량 로그 파일에 기록된 정보만으로는 실제 충돌 발생 여부를 확인할 수 없으며, 해당 시설물이 설치된 현장을 직접 방문하고 확인하여야 한다.
이러한 문제점을 해결하기 위해 시설물에 충돌이 가해졌을 경우, 실제로 충돌이 발생하였는지 판단하기 위한 추가적인 정보가 필요하다.그러나 이는 3축 가속도 데이터만으로 판단하는 데에 한계가 있다.
2.3 9축센서와 데이터
9축센서(MPU9250)는 3축 가속도 데이터뿐만이 아니라, 3축 자이로 데이터, 그리고 3축 지자기 데이터를 실시간으로 측정할 수 있는 센서이다. 기존의연구에서 MPU9250센서는 다양한 9축센서 중 가장 정확하며, 정지 상태에서 잡음으로 인해 최대 10.5 m/s2의 가속도 충격량을 보인다[18, 19]. MPU9250센서가 정지된 상태에서 측정되는 9축 데이터는 다음 Table1과 같이 나타난다.Table1에서 MPU 9250 센서는 x축은 동쪽, y축은 북쪽, 그리고 z축은 지면과 수직을 향하고 있으므로, 3축 가속도 센서는 z축으로 중력 가속도를 받는다.3축 자이로 센서는 각 축에서의 자이로스코프 값을 측정하며, 센서가 이동할 경우, 해당 축에서 측정되는 데이터가 변화한다[8, 9]. 3축 지자기 센서는 주변의 자기장을 측정하며, x축과 y축에서 측정한 지구 자기장 데이터를 이용하여 센서가 놓여진 방위각을 측정할 수 있다[10].
Table 1. Measured data at stop state from MPU9250 sensor.
이렇듯 9축센서에서 측정되는 데이터를 이용하여 시설물에 충돌이 가해진 순간의 충격량뿐만이 아니라 충돌 후 시설물에 대한 추가적인 정보를 획득할 수 있다.따라서 본 연구에서는 시설물에 충돌이 가해졌을 경우에 MPU9250센서에서 측정되는 데이터를 분석하고, 이를 이용한 시설물 충돌감지 알고리즘을 제시하고자 한다.
3. 9축센서 기반의 시설물 충돌감지 알고리즘
3.1 제안한 알고리즘 개요
제안한 9축센서 기반의 시설물 충돌감지 알고리즘에서는 충돌이 발생할 경우에 가해지는 가속도 충격량, 충돌방향, 그리고 충돌 후 시설물의 기울기를 산출한다.이를 위해 시설물로부터 9축 데이터를 수집하여 버퍼에 저장한 후, 일정 주기마다 충돌 감지 알고리즘을 호출한다.충돌감지 알고리즘은 Fig.4와 같이 3가지 과정(Phase)으로 충돌을 감지한다.Fig. 4의 첫 번째 단계에서는 버퍼링된 데이터를 이용하여 시설물에 가해진 충격량을 실시간으로 산출한다. 이때, 시설물에 가해진 충격량이 미리 정의해둔 임계치를 초과하지 않을 경우에는 단순한 잡음이나 시설물에 손상이 가해지지 않는 작은 충돌로 판단한다. 그러나 임계치를 초과할 경우에는 Fig.4의 두 번째 단계에서 충돌이 가해진 방향을 측정한다.이때, 3축 가속도 데이터를 이용해 충돌이 가해진 방위각을 측정하며, 3축 지자기 데이터를 이용해 방위각을 보정한다. Fig.4의 세 번째 단계에서는 충돌이 가해진 후 시설물의 상태를 확인하기 위해 3축 가속도 데이터를 이용하여 시설물의 기울기를 측정하고, 3축 자이로 데이터로 보정한다.
Fig. 4. Collision detection algorithm based on 9-axis sensor.
이 알고리즘에서는 시설물로부터 9축 데이터를 측정하는 측정주기와 충돌감지 알고리즘을 호출하는 호출주기가 충돌을 감지하는 데에 직접적인 영향을 준다.예를 들어, 9축 데이터의 측정주기가 길면 시설물에 충돌이 발생한 순간의 9축 데이터를 측정하지 못할 수 있다.또한, 알고리즘의 호출주기가 길면, 실시간으로 충돌감지 결과를 제공하지 못한다. 이와 반대로 알고리즘의 호출주기가 짧으면 충돌이 발생한 상황의 데이터 중 일부가 버퍼에서 손실되어 강한 충돌을 약한 충돌로 오인할 여지가 있다. 따라서 이는 실제로 충돌을 가하여 충돌감지 알고리즘의 정확도를 비교하는 실험을 통해 결정한다.
3.2 시설물 충격량 측정 알고리즘
본 연구에서는 시설물에 가해진 충격량에 따라 충돌 강도를 3가지로(각각 충돌 없음, 약한 충돌)로 정의한다. 각 충돌 단계는 충격량의 임계치에 따라 결정되므로 임계치의 선택은 매우 중요하다.그러나 시설물에서 측정되는 충돌 가속도는 같은 충돌이 발생하더라도 시설물에 따라 다르므로 각각의 임계치를 하나의 값으로 정의하는 것은 불가능하다.
따라서 본 논문에서는 움직이지 않는 시설물에 자동차가 충돌하였을 때 발생하는 충돌 가속도에 대한 기존의 연구를 기준으로 각 단계의 임계치를 정의한다. 예를 들어, Fig.5는 충돌 없음, 약한 충돌, 그리고 강한 충돌이 발생하였을 때의 충격량 그래프이다. Fig.5의 (a)는 약한 충돌의 임계치로 충돌 없음과 약한 충돌을 구분하는 기준이다.이를 선택하기 위해 고려해야 할 사항은 충돌이 발생하지 않았을 때 측정되는 3축 가속도 데이터의 범위와 주위 환경에서 측정되는 잡음이다.정지된 상태의 MPU 9250 센서에서 측정되는 3축 가속도 데이터는 기존의 연구에서 측정된 데이터와 식 (1)을 이용하여 최대 10.5m/s2를확인하였다[19].만약, 임계치를 10.5m/s2보다 작게 할 경우, 시설물에 충돌이 발생하지 않아도 센서에서 측정된 가속도 데이터의 오차로 충돌이 발생하였다고 판단될 여지가 있다.
Fig. 5. Impact thresholds for no collision, light collision, and strong collision, (a) weak collision threshold and (b) strong collision threshold.
따라서 임계치는 10.5m/s2이상으로 정의하여야 한다.또한, 충돌이 아닌 외부 진동에 의해 측정되는 잡음은 가속도 데이터에 영향을 주지 못하므로[20], Fig.5에서 (a)의 임계치는 10.5m/s2에서 약간의 여유를 주어 11m/s2로 정의한다.Fig.5의 (b)는 약한 충돌과 강한 충돌을 분류하는 기준이다.기존의 연구에서 고정되어 있는 가드레일에 자동차가 충돌하는 충격량의 기준을 19m/s2로 하였을 때 정확도 97%를 획득하였다[17].따라서 Fig.5에서 (b)의 임계치는 19m/s2로 정의한다.
이를 통하여 산출한 가속도 충격량이 Fig.5의 (a) 를 초과할 경우에는 약한 충돌이 발생하였다고 판단하며, (b)를 초과할 경우에는 강한 충돌이 발생하였다고 판단한다.특히, 강한 충돌이 발생할 경우에는 시설물이 파손될 가능성이 있으므로, 추가적으로 시설물에 충돌이 가해진 방향과 충돌 발생 후 시설물의 기울기를 측정한다.
3.3 시설물 충돌 방향 측정 알고리즘
시설물에 충돌이 가해진 방향은 3축 가속도 데이터와 3축 지자기 데이터를 이용하여 산출한다.이는 3개의 단계로 구분하며, Fig.6과 같다.Fig.6의 step 1은 3축 가속도 데이터의 변화량 그래프를 분석하여 충돌 방향을 산출한다.step2에서는 3축 가속도 데이터를 이용하여 9축센서가 바라보는 방향을 기준으로 하는 방위각을 산출한다.마지막으로 step3에서는 3축 지자기 데이터를 이용하여 센서가 놓여진 방향과 상관없이 북쪽을 기준으로 하는 방위각을 산출하며, 최종적으로 시설물에 충돌이 가해진 방위각을 획득할 수 있다.
Fig. 6. Process of measuring the direction of collision of facilities.
3.3.1 3축 가속도 데이터 분석
시설물에 충돌이 발생하였을 때 측정되는 3축 가속도 데이터는 다음 Fig.7과 같이 나타난다.Fig.7의 (a)는 시설물의 아래 측에서 충돌이 발생했을 때의 그래프의 변화이다.그래프를 보면 MPU9250센서의 y축에서 충돌이 발생하였으므로 y축 가속도 데이터가 양의 값을 보이다가 음의 값으로 변화한다. 이에비해 Fig.7의 (b)는 시설물의 위에서 충돌이 발생했을 때의 그래프이며, (a)와는 반대로 y축 가속도 데이터가 음의 값을 보이다가 양의 값으로 변화한다.Fig. 7의 (c)는 시설물의 왼쪽에서 충돌이 발생했을 때의 그래프이며, x축 가속도 데이터가 양의 값에서 음의 값으로 변화한다.그와 반대로 Fig.7의 (d)는 오른쪽에서 충돌이 발생한 경우이며, x축 가속도 데이터가 음의 값에서 양의 값으로 변화한다.
Fig. 7. 3-axis acceleration data according to the collision direction, (a) south collision 3-axis acceleration data, (b) north collision 3-axis acceleration data, (c) west collision 3-axis acceleration data and (d) east collision 3-axis acceleration data.
따라서 시설물에 가해진 충돌 방향은 x축 가속도 데이터와 y축 가속도 데이터의 변화로 파악할 수 있다. 그러나 실제 시설물에서 발생하는 충돌은 Fig. 7과 같이 4개의 방향으로만 발생하지 않으므로 이를 위해 추가적인 충돌 방향 측정 방법이 필요하다.
3.3.2 시설물 충돌 방위각 측정
시설물에 충돌이 발생한다면 충돌 방향에 따라 x 축 가속도 데이터와 y축 가속도 데이터가 변한다. 충돌은 어느 방향에서나 발생할 수 있으며, 이에 따라 측정되는 가속도 데이터는 다음 Fig.8과 같다. 충돌이 특정 축에 가까울수록 다른 축에 비해 큰 데이터변화량을 보인다.예를 들어, Fig.8을 보면 x1은 y1에비해 증가량이 크다.따라서 y축보다 x축에 가까운 충돌이 발생한 것으로 볼 수 있다.충돌 방향을 측정하는 데에 있어서 x1와 y1는 비례하며, 이는 다음 식 (2)와 같이 산출한다.
식 (2)를 보면 Fig. 7의 그래프의 형태에 따라 측정된 충돌 방위각을 다르게 산출한다. 예를 들어, x1이 음의 값이고 y1이 음의 값이면 충돌은 센서의 위쪽과 오른쪽에서 발생한 것이다. 따라서 Fig. 9를 보면 9축센서를 기준으로 0˚∼90˚에서 충돌이 발생한 것으로 볼 수 있다. 또한, 역 탄젠트로 구한 방위각은 x축을기준으로 하였으므로, 90˚에서 산출한 방위각(θ1˚)을뺀 방향이 충돌이 발생한 방위각이다.
\(\theta_{1}^{\circ}= \begin{cases}90^{\circ}-\arctan \left(\frac{\left|y_{1}\right|}{\left|x_{1}\right|}\right) & \left(x_{1}<0, y_{1}<0\right) \\ 90^{\circ}+\arctan \left(\frac{\left|y_{1}\right|}{\left|x_{1}\right|}\right) & \left(x_{1}>0, y_{1}<0\right) \\ 270^{\circ}-\arctan \left(\frac{\left|y_{1}\right|}{\left|x_{1}\right|}\right) & \left(x_{1}>0, y_{1}>0\right) \\ 270^{\circ}+\arctan \left(\frac{\left|y_{1}\right|}{\left|x_{1}\right|}\right) & \left(x_{1}<0, y_{1}>0\right)\end{cases}\) (2)
Fig. 8. Amount of change in acceleration data according to the collision direction.
이를 통해 Fig.9와 같이 0˚∼360˚의 충돌 방위각을 산출할 수 있다.그러나 이는 시설물에 부착된 9축 센서가 놓여진 방향은 고려하지 않는다.이는 3축 지자기 센서를 이용하여 보정한다.
Fig. 9. Collision direction measurement using 3-axis acceleration data.
3.3.3 시설물 충돌 방위각 보정
3축 가속도 데이터로 산출한 충돌 방위각은 시설물에 부착된 센서의 방향은 고려하지 않는다. 예를들어, Fig.10과 같이 시설물에 부착된 9축센서가 북쪽을 기준으로 θ2˚ 위치에 있다면 θ1˚에서 발생한 충돌은 북쪽을 기준으로 θ1˚ +θ2˚에서 발생한 충돌이다. 이를 고려하기 위해 모든 시설물에 센서를 부착할 때마다 방위각을 측정하는 것은 번거롭고 까다로운 작업이다.따라서 3축 지자기 데이터를 이용해 이를 보정한다.
Fig. 10. Collision direction considering the direction of the sensor.
3축 지자기 센서는 주위의 자기장을 측정하며, x 축 지자기 데이터와 y축 지자기 데이터를 이용하여 센서가 놓여져 있는 방위각을 산출할 수 있다. 따라서 센서의 방위각을 이용해 Fig.10과 같이 9축 센서가 놓여진 방향과 상관없이 일정한 충돌 방위각을 반환한다.
그러나 9축센서의 단순한 오작동으로 충돌이 발생하지 않았더라도 충돌이 발생하였다고 판단된다면 충격량, 충돌 방위각 또한 잘못된 정보일 것이다. 실제 현장 방문 없이 실제 충돌 여부를 확인하기 위해 시설물에 충돌이 가해진 순간뿐만이 아니라 충돌이 발생한 후 시설물에 대한 정보가 필요하다. 3.4 시설물 기울기 측정 알고리즘
3.5 9축센서에서 발생한 잡음 제거 과정
시설물에 강한 충돌이 발생한다면 시설물은 기울기가 변하며, 이에 따라 시설물에 부착된 9축센서 또한 기울어진다. 9축센서가 기울어진다면 3축 가속도 센서가 받는 중력 가속도가 변화하고, 이는 식 (3)을 통해 충돌 후 시설물의 기울기를 측정한다[21].
\(\text { Facilitytilt data }=\arctan \left(\frac{x}{\sqrt{y^{2}+z^{2}}}\right), \arctan \left(\frac{y}{\sqrt{x^{2}+z^{2}}}\right)\) (3)
이때, 시설물에 충돌이 발생하고 시설물이 기울어지는 동안에는 기울기를 측정하는 것이 불필요하다. 예를 들어, 시설물에 충돌이 발생하고 기울어지는 동안에 측정되는 가속도 데이터는 중력 가속도 뿐만이 아니라 충돌 가속도가 포함된다. 이 상황에서 시설물의 기울기를 측정하는 것은 부정확하며, 이에 따라 적절하지 못한 정보를 제공할 위험이 있다. 따라서 이를 3축 자이로 데이터를 이용해 보정한다. 3축 자이로 데이터는 x축, y축, 그리고 z축으로 센서가 이동하는 정도를 측정하여 시설물의 움직임을 감지할 수 있다. 즉, 시설물이 충돌이 가해지고 기우는 동안에 측정되는 3축 자이로 데이터는 0 m/s2 이상이며, 이 경우에는 시설물의 기울기를 측정하지 않는다.
3.5 9축센서에서 발생한 잡음 제거 과정
이와 같이 제안한 9축센서 기반의 시설물 충돌 감지 알고리즘은 시설물에 가해진 충돌에 대한 추가적인 정보를 산출하여 센서의 오작동으로 인한 잡음을 제거한다.시설물에 실제로 충돌이 가해진 상황과 오작동으로 잡음이 발생한 상황은 다음 Fig.11과 같이 나타난다.Fig.11의 (a), (b), 그리고 (c)는 시설물에 실제로 충돌을 가하여 시설물이 기울어질 때 측정되는 9축 데이터이다. 예를 들어, Fig.11의 (a)에서는 100ms시점에서 충돌이 발생하였을 때, x축 가속도 데이터는 0m/s2에서 약 7m/s2로 급격하게 변화하며, Fig.7의 (c)와 같이 시설물의 왼쪽에서 충돌이 발생한 것을 알 수 있다.시설물에 충돌이 발생한 후기 울기는 식 (3)을 이용해 산출한다.이 경우 x축으로 6m/s2, y축으로 0m/s2, 그리고 z축으로 8m/s2의중력 가속도가 발생하며, 시설물의 기울기는 x축으로 약 36.8°, y축으로 0°가 된다.Fig.11의 (b)는 3축 자이로 데이터의 변화이다.100ms시점에서 시설물에 충돌이 발생하므로, 이 경우 y축 자이로 데이터가 급격히 변화한다.이는 시설물이 충돌 가속도를 받아 기울어지고 있는 상태를 의미하므로, 이 시점의 시설물의 기울기를 측정하지 않는다.마지막으로 Fig.11 의 (c)는 3축 지자기 데이터의 변화이다. 100ms시점에서 충돌이 발생하므로, 이 시점의 x축 지자기 데이터와 y축 지자기 데이터를 측정하여 Fig.10과 같이 충돌 방위각을 산출한다.
Fig. 11. 9-axis data in facility collision, (a) Facility collision 3-axis acceleration data, (b) Facility collision 3-axis gyroscope data, (c) Facility collision 3-axis geomagnetic data, (d) 3-axis acceleration data due to sensor error, (e) 3-axis gyroscope data due to sensor error, and (f) 3-axis geomagnetic data due to sensor error.
그에 비해 Fig.11의 (d), (e), 그리고 (f)는 9축 센서의 오작동으로 측정된 잡음이며, 기존의 가속도 데이터만을 이용한 충돌감지 알고리즘에서 충돌이 발생하였다고 판단될 여지가 있다.그중에서 Fig.11의 (d)는 3축 가속도 데이터의 변화이다.예를 들어, Fig. 11의 (d)에서는 150ms시점에서 정의한 임계치를 초과해 충돌이 발생한다고 판단될 것이다.이때, z축 가속도 데이터는 중력 가속도가 아닌 30m/s2이상으로 측정되며, x축, y축 가속도 데이터 또한 센서의 오작동으로 값이 크게 변화한다.이러한 경향은 Fig. 11의 (e)인 3축 자이로 데이터에서도 나타난다. 그러나 Fig. 11의 (d)에서 센서의 오작동 이후를 보면, Fig.11의 (a)인 실제 충돌과 달리 시설물의 기울기가 변하지 않는다.이 같은 사실을 볼 때, Fig.11의 (d) 에서 충돌이 발생한다고 판단한 결과는 센서의 오작동으로 인한 오류임을 알 수 있다.또한, Fig.11의 (f)는 3축 지자기 데이터이며, 150ms이후에 측정되는 지자기 데이터의 값의 변화가 없음을 볼 수 있다.즉, 충격량의 임계치를 넘었지만, 센서의 오작동으로 인한 잡음에서는 충돌방향과 시설물의 기울기가 측정되지 않아 실제로는 충돌이 발생하지 않음을 알 수 있다.따라서 제안한 9축센서 기반의 시설물 충돌 감지 알고리즘에서 산출되는 추가적인 정보를 분석한다면 실제 충돌과 센서의 오작동으로 인한 잡음을 분리할 수 있으며, 이를 통해 좀 더 신뢰성 있는 충돌정보를 제공할 수 있다.
이와 같이 제안한 9축센서 기반의 시설물 충돌 감지 알고리즘의 유효성을 확인하기 위해, 실제로 알고리즘을 구현한 후 시설물에 가해진 충돌 감지의 정확도를 비교하고 평가하는 실험을 하고자 한다.
4. 실험 및 평가
4.1 실험환경 및 실험 데이터
9축센서 기반의 시설물 충돌감지 알고리즘의 정확도 실험은 충돌 데이터를 수집하는 과정에서 잡음을 제거하는 과정과 충돌감지 정확도 평가과정으로 나누어 진행한다.Fig.12에서처럼 실험을 위해 충돌 감지 프로토타입 디바이스를 구현하였으며, Fig.13 처럼 실험환경을 구축하였다.Fig.12의 (a)는 9축 데이터 측정센서인 MPU9250이며, 이는 인쇄회로기판에 고정하고, Fig.12의 (c)와 같이 하우징하여 외부에서 발생하는 잡음의 영향을 최소화하였다.9축 데이터는 SPI(SerialPeripheral Interface)통신을 이용하여 Fig.12의 (b)인 RaspberryPi4modelB에서구현한 시설물 충돌감지 알고리즘으로 전송하였다. RaspberryPi보드 위에 사용한 운영체제 커널 버전은 5.10.63이며, 실행환경 플랫폼으로 Node.js14.15.3 을 사용하였다.Fig.12의 (c)는 Fig.13의 (a)인 시설물에 (b)와 같이 부착하여 시설물에 가해지는 충돌을 감지하였다.Fig.13의 (a)는 도로 시설물로 가정한 시설물이며, 높이는 1, 750mm, 폭은 350 mm이다. 이는 바닥에 고정되며, 19m/s2이상의 강한 충돌이 발생하더라도 바닥으로부터 분리되지 않아 선택하였다. 또한, 하우징 된 MPU9250센서는 바닥으로부터 1, 300mm지점에 설치하였다.이는 가로등 설치공사지침서에서 권고하는 1, 200mm이상 1, 600mm 이하의 위치에 해당한다.실제 개발과 실험결과 확인은 Windows11환경에서 SSH(secureShell) 접속프로그램인 Putty0.76을 이용하였다.실험에 사용한 소스 코드는 9축 데이터 수집 모듈과 제안한 충돌 감지 알고리즘으로 모듈화하였다[22].
Fig. 12. Device prototype for collision detection, (a) MPU9250 sensor, (b) algorithm on a raspberry Pi 4 model B, and (c) sensor housing.
Fig. 13. Experiment environment for collision detection, (a) experimental facility that resembles to CCTV mounted pole and (b) collision detection prototype device.
실험을 위한 충돌 데이터는 실제로 차량이나 보행자가 시설물에 충격을 가할 때 측정되는 9축 데이터를 수집해야 하지만, 100회의 충돌 데이터를 수집해야 하는 제약사항으로 인해 Fig.12의 시설물에 손으로 충격을 가하여 측정하였다.이때, 손목에 스마트폰(SM-G955 N)을 부착한 후, 3축 가속도 데이터 측정 어플인 SensorBoxforAndroid6.93을 이용하여, 각 충격에 대한 가속도 충격량을 산출하였다. 충돌데이터는 약한 충돌(11m/s2이상 19m/s2미만)50 회, 강한 충돌(19m/s2이상)50회로 모두 100회의 충돌 데이터이며, 각 충돌 사이의 간격은 15, 000ms 로 하였다. 실험 데이터를 수집하는 데에 있어서, 15, 000ms주기 외에 발생한 충돌 데이터는 센서의 오작동으로 인한 잡음으로 정의하였으며, 제안한 충돌 감지 알고리즘이 실제 충돌과 센서의 오작동을 분류하는 기준은 충돌 후 충돌 방향이 산출되며, 시설물이 10°의 기울기로 3, 000ms이상 유지한다고 정의하였다. 이는 3.5와 같이 센서의 오작동으로 인한 잡음을 제거하였다.
4.2 실험 및 성능분석
시설물 충돌감지 알고리즘의 측정주기와 데이터 측정 주기를 결정하기 위해 두 조건을 다르게 적용시킨 충돌감지 결과와 정확도를 기록하였다.이때, 사용한 충돌 데이터는 3.5의 충돌 방위각 측정과 충돌 후 시설물의 기울기를 고려하여 센서의 잡음으로 인한 충돌 데이터가 제거된 데이터이다.충돌감지 정확도를 산출하는 방법은 혼동 행렬(confusionmatrix) 을 이용하였다[23].혼동 행렬은 다음 식 (4)와 같이 시행한 모든 경우의 수에 대해 정답을 맞춘 경우의 수로 정확도를 산출한다.충돌감지 알고리즘은 실험데이터인 약한 충돌 50회(W, Weakcollision), 강한 충돌 50회(S, Strongcollision)에 대해약한 충돌, 강한 충돌, 그리고 충돌이 발생하지 않음(N, Notmeas- ured)으로 판단한다.따라서 충돌감지 정확도는 충돌 데이터 100회에 대해 약한 충돌을 약한 충돌로 판단한 경우의 수와 강한 충돌을 강한 충돌로 판단한 경우를 정답(TP, TN)으로 정의하였으며, 약한 충돌을 강한 충돌, 충돌 없음으로 판단하거나 강한 충돌을 약한 충돌, 충돌 없음으로 판단한 경우를 오답(FN, FP)으로 정의한다.
\(\text { Accuracy }=\frac{T P+T N}{T P+T N+F P+F N}\) (4)
Table 2의 예에서 보면, 충돌감지 알고리즘 호출주기를 10 ms, 측정주기를 5 ms에서 1,000 ms로 다양하게 변경하였을 때의 충돌감지 실험결과이다. 측정주기가 5 ms일 때를 보면 약한 충돌 50회에 대해 약한 충돌 50회를 감지한 것을 볼 수 있었다. 그러나 강한 충돌 50회에 대해서는 39회를 강한 충돌로 판단하였지만, 11회는 약한 충돌로 판단하였다. 이는 100 회의 충돌에 대해 89회를 정확히 산출하였으므로 정확도는 89%인 것을 볼 수 있었다. 그러나 이 경우에는 Table 4의 호출 주기를 50 ms, 측정주기를 5 ms로 하였을 경우인 94%보다 정확도가 낮은데, 이는 알고리즘의 호출주기가 너무 짧아, 강한 충돌로 인한 충격량을 산출하기 전에 약한 충돌로 성급하게 판단했기 때문이다. 또한, 측정주기를 10 ms로 증가시켰을 경우에도 동일한 정확도를 보였다.
Table 2. Confusion matrix for 50 weak collisions and 50 strong collisions in a 10 ms invocation cycle.
이와 같은 방식으로 알고리즘의 호출주기를 10 ms, 20ms, 50ms, 100ms, 200ms, 500ms, 그리고 1, 000ms로 바꿨을 경우의 결과를 Table2부터 Table 8까지 기록하였다.특히, Table8의 알고리즘 호출 주기가 1, 000ms, 데이터 측정주기가 1, 000ms인 경우를 보면 약한 충돌 50회와 강한 충돌 50회를 전부 감지하지 못해 정확도가 0%인 것을 확인하였다. 이는 충돌이 발생하였지만, 데이터 측정주기가 길어 충돌이 감지되는 순간의 데이터를 측정하지 못하였기 때문이다.
Table 3. Confusion matrix for 50 weak collisions and 50 strong collisions in a 20 ms invocation cycle.
Table 4. Confusion matrix for 50 weak collisions and 50 strong collisions in a 50 ms invocation cycle.
Table 5. Confusion matrix for 50 weak collisions and 50 strong collisions in a 100 ms invocation cycle.
Table 6. Confusion matrix for 50 weak collisions and 50 strong collisions in a 200 ms invocation cycle.
Table 7. Confusion matrix for 50 weak collisions and 50 strong collisions in a 500 ms invocation cycle.
Table 8. Confusion matrix for 50 weak collisions and 50 strong collisions in a 1,000 ms invocation cycle.
Fig.14는 Table2부터 Table8까지의 결과에서 가장 우수한 성능을 보인 경우에 대한 정확도 그래프이다. 예를 들어, Fig.14의 (a)는 충돌감지 알고리즘 호출 주기에 대한 충돌감지 정확도 그래프이다. 충돌감지 알고리즘의 호출주기가 길어질수록 정확도가 증가하는 것을 볼 수 있으며, 100ms이상에서 전부 올바르게 판단하여 정확도가 100%임을 확인하였다. 그러나 호출주기가 너무 길어진다면 충돌 발생 여부를 실시간으로 제공하지 못할 것이다.따라서, 본 연구에서는 제안한 알고리즘의 호출주기를 1, 000ms로 결정하였다.Fig.14의 (b)는 9축센서 데이터의 측정 주기에 대한 충돌감지 정확도 그래프이다. 9축센서측정주기가 짧을수록 정확도가 증가하는 것을 볼 수 있으며, 10ms이하에서 100%의 정확도를 확인하였다. 그러나 9축 데이터의 측정주기가 너무 짧다면 저성능의 IoT디바이스에서 일정 시간 동안 연산해야 하는 데이터의 양이 증가하므로, 본 연구에서는 데이터의 측정주기를 10 ms로 하였다.
Fig. 14. Collision detection algorithm accuracy graph, (a) accuracy according to algorithm invocation cycle and (b) accuracy according to the 9-axis data measurement cycle.
결과적으로 실험을 통해 잡음이 섞인 9축 데이터 측정 주기가 짧을수록 충돌감지 알고리즘의 정확도가 높으며, 충돌감지 알고리즘의 호출주기가 길 수록정확도가 높음을 알 수 있었다.특히, 1, 000ms의 충돌 감지 알고리즘 호출주기와 10ms의 9축 데이터 측정 주기에서 50회의 약한 충돌과 50회의 강한 충돌을 전부 감지하여 충돌감지 정확도 100%를 획득하였다. 이는 기존의 센서의 잡음을 고려하지 않는 충돌 감지 알고리즘에서 획득한 97%보다 우수한 결과이다[17].
5. 결 론
도로시설물의 충돌을 감지하고 사고의 원인자를 파악하는 것은 매우 중요한 일이다.그러나 이를 위해 도로의 모든 시설물에 CCTV를 설치하고, 이를 관리하는 것은 매우 많은 인력과 비용이 소모되므로 비효율적이다.따라서 시설물에 충돌이 발생하면 이를 감지하여 알릴 수 있는 충돌감지 시스템이 필요하다. 그러나 기존의 시설물 충돌감지 알고리즘은 충돌 발생 여부에만 초점이 맞추어져 있어, 센서의 오작동으로 인한 잡음이 발생할 경우, 실제로 충돌이 발생하였는지 확인하기 어렵다는 한계가 있다.
따라서 본 연구에서는 9축 데이터를 이용하여 시설물에 충돌이 발생한 순간뿐만이 아니라 충돌 후 시설물의 정보를 제공하는 충돌감지 알고리즘을 제안하였다. 제안한 알고리즘은 시설물에 충돌이 발생하였을 경우 충격량을 측정하고 임계치를 초과하는지를 판단한다.임계치를 초과하는 경우에는 시설물에 충돌이 가해진 방향과 충돌 후 시설물의 기울기를 측정하여 실제로 충돌이 발생하였는지, 센서의 오작동으로 인한 충돌 데이터인지 판단한다.제안한 알고리즘의 성능평가를 위해 50회의 약한 충돌과 50회의 강한 충돌을 감지하는 충돌감지 정확도 평가 실험을 하였으며, 10ms의 9축 데이터 측정주기와 1, 000ms 의 충돌감지 알고리즘 호출주기에서 센서의 잡음 데이터를 제거하고, 100%의 충돌감지 정확도를 획득하였다. 따라서 제안한 9축센서 기반의 충돌감지 알고리즘을 이용한다면 센서에서 발생한 잡음을 파악하기 어렵다는 기존의 한계점을 개선하여 좀 더 효율적이고 신뢰성 있는 시설물 충돌에 대한 정보를 제공할 수 있을 것으로 기대한다.
참고문헌
- Road law in Korea(2022), https://law.go.kr/ (accessed January 3, 2022).
- A plan to secure the effectiveness of the causative charge in the event of facility damage due to a traffic accident(2017), https://www.acrc.go.kr/acrc/index.do (accessed January 4, 2022).
- S.Y. Heo, T.H. Moon, and J.Y. Kim, "Cost-Benefit and Spatial Effects of CCTV on Crime Prevention," Journal of the Korean Association of Geographic Information Studies, Vol. 21, No. 3, pp. 63-75, 2018. https://doi.org/10.11108/KAGIS.2018.21.3.063
- H. Wei, L. Gui, and F. Li, "A Review of Shock Detection Technology Based on Embedded System," 25th Chinese Control and Decision Conference (CCDC), pp. 2336-2341, 2013.
- T.H. Lee and S.J. Park, "Pedestrian-Vehicle Collision Detection System Using Acceleration and Gyroscope Sensors in Smart Phone," Journal of Knowledge Information Technology and Systems, Vol. 12, No. 5, pp. 785-794, 2017. https://doi.org/10.34163/jkits.2017.12.5.018
- A. Cismas, M. Ioana, C. Vlad, and G. Casu, "Crash detection using imusensors," 21st International Conference on Control Systems and Computer Science (CSCS), pp. 672-676, 2017.
- V. Goud, "Vehicle Accident Automatic Detection and Remote Alarm Device," International Journal of Reconfigurable and Embedded Systems, Vol. 1, No. 2, pp. 49-54, 2012. https://doi.org/10.11591/ijres.v1.i2.pp49-54
- H. Ha and B.Y. Hwang, "Machine Learning Model of Gyro Sensor Data for Drone Flight Control," Journal of Korea Multimedia Society, Vol. 20, No. 6, pp. 927-934, 2017. https://doi.org/10.9717/KMMS.2017.20.6.927
- J.G. Kang, "Pose Control of Mobile Inverted Pendulum using Gyro-Accelerometer," Journal of the Korea Society of Computer and information, Vol. 15, No. 10, pp. 129-136, 2010. https://doi.org/10.9708/JKSCI.2010.15.10.129
- S.Y. Cho, "Biaxial Accelerometer-Based Magnetic Compass Module Calibration and Analysis of Azimuth Computational Errors Caused by Accelerometer Errors," Journal of Institute of Control, Robotics and Systems, Vol. 20, No. 2, pp. 149-156, 2014. https://doi.org/10.5302/J.ICROS.2014.13.9008
- S.H. Choi, J.S. Kim, T.S. Kim, and Y.S. Yu, "Design and Implementation of an Elevator Vibration Measuring System using 3-Axis Acceleration Sensor," Journal of Korea Multimedia Society, Vol. 16, No. 2, pp. 226-233, 2013. https://doi.org/10.9717/KMMS.2013.16.2.226
- N. Kumar, A. Barthwal, and D. Acharya, "Modeling Vehicle Collision Events using Internet of Things," 2019 IEEE 16th India Council International Conference (INDICON), pp. 1-4, 2019.
- H. Cho, S. Kim, J. Baek, and P.S. Fisher, "Motion Recognition with Smart Phone Embedded 3-Axis Accelerometer Sensor," 2012 IEEE International Conference on Systems, Man, and Cybernetics (SMC), pp. 919-924, 2012.
- Y.W. Bai, S.C. Wu, and C.L. Tsai, "Design and Implementation of a Fall Monitor System by Using a 3-Axis Accelerometer in a Smart Phone," IEEE Transactions on Consumer Electronics, Vol. 58, No. 4, pp. 1269-1275, 2012. https://doi.org/10.1109/TCE.2012.6414995
- D. Chen, Y. Zhang, W. Feng, and X. Li, "A Wireless Real-Time Fall Detecting System Based on Barometer and Accelerometer," 2012 7th IEEE Conference on Industrial Electronics and Applications (ICIEA), pp. 1816-1821, 2012.
- S. Hong, S. Lee, and D. Jeong, "Design and Implementation of a Fall Recognition System Based on 3-Axis Acceleration Data and Altitude Data for Improvement of Fall Recognition Accuracy and Convenience," The Journal of Korean Institute of Information Technology, Vol. 18, No. 1, pp. 115-125, 2020. https://doi.org/10.14801/jkiit.2020.18.1.115
- D. Yang, M. Deng, and X. Jiang, "Design and Implementation of Vehicle Collision Detection and Alarm System Based on Smartphone," In IOP Conference Series: Materials Science and Engineering, Vol. 787, No. 1, 2020.
- J. Zheng, M. Qi, K. Xiang, and M. Pang, "IMU Performance Analysis for a Pedestrian Tracker," International Conference on Intelligent Robotics and Applications, pp. 494-504, 2017.
- MPU9250 3-axis acceleration data analysis measured at a stationary state (2022), https://github.com/KiHyeon-Hong/MPU9250_data_in_a_stationary_state_csv (accessed January 6, 2022).
- I.H. Turunen-Rise, A. Brekke, L. Harvik, C. Madshus, and R. Klaeboe, "Vibration in Dwellings from Road and Rail Traffic-Part I: A New Norwegian Measurement Standard and Classification System," Applied Acoustics, Vol. 64, No. 1, pp. 71-87, 2003. https://doi.org/10.1016/S0003-682X(02)00052-X
- X. Yao, G. Sun, W.Y. Lin, W.C. Chou, K.F. Lei, and M.Y. Lee, "The Design of an In-Line Accelerometer-Based Inclination Sensing System," 2012 IEEE International Symposium on Circuits and Systems (ISCAS), pp. 333-336, 2012.
- Collision detection algorithm based on 9-axis sensor in CCTV facility(2022), https://github.com/KiHyeon-Hong/9-axis_shock_algorithm_paper (accessed January 8, 2022).
- O. Caelen, "A Bayesian Interpretation of the Confusion Matrix," Annals of Mathematics and Artificial Intelligence, Vol. 81, No. 3, pp. 429-450, 2017. https://doi.org/10.1007/s10472-017-9564-8