안녕하세요. 쏘카 모빌리티 Lab의 찰리입니다. 지난 글에서는 10,000대가 넘는 차량을 운영하는 쏘카에서, 차량의 배터리 상태 관리를 위한 공학적인 접근 방식과 해결 방법에 대해 다뤘습니다. 이번 글에서는 배터리 방전을 사전에 막기 위해 알람 서비스를 도입하고, 운영에 도입한 내용을 공유해 보고자 합니다. 다소 전문적인 지식이 필요했던 지난번 글에 비해 이번 글은 누구나 쉽게 읽으실 수 있을 거라 생각합니다.

목차

  • 의도치 않은 실수들로 생기는 배터리 방전
  • 적당한 차량 상태 조회 주기 찾기
  • 차량이 방전될 상태인지 판단하기
  • 그래서 알림은 어떻게 보내지나요?
  • 조금만 더 세심하게 다뤄주세요. 다 같이 쓰는 차니까요.

의도치 않은 실수들로 생기는 배터리 방전

지난 글을 보면 쏘카에서 일어나는 배터리 방전의 60% 이상이 고객의 사용 습관과 밀접하다고 말씀드렸습니다. 그러나 배터리 방전을 고객께서 의도적으로 내지는 않습니다. 대부분은 어떤 상황에서 방전이 되는지 잘 모르시기 때문에 일어나곤 합니다.

저 역시 의도치 않게 쏘카 차량의 방전을 일으킬만할 경험이 있습니다. 제가 보유하고 있는 차는 시동 버튼을 두 번 눌러 시동을 완전히 종료시키는 반면, 쏘카 차량 (현대/기아차, Jeep)은 시동 버튼을 한 번만 눌러도 시동 종료가 이루어졌습니다. 기어 상태도 시동을 종료하면 자동으로 주차 모드로 바뀌는 제 차와 달리 기어 봉을 직접 P로 옮겨주어야 했습니다. 사실 자동 변속기 차량에서 시동을 P에 두고 시동을 종료하는 일은 대단히 당연합니다. 단지 제가 익숙한 방식과 조금 달랐기에 이런 실수를 저질렀고, 그 결과 차량 반납 불가의 메시지를 받았습니다. 저와 비슷한 상황에 놓였던 고객과 핸들러 입장에서 가시동이나 기어봉 P가 아닌 D 혹은 R 모드 중 강제 반납으로 인한 방전 상황 노출이 대단히 쉬운 일임을 깨닫게 된 순간이었습니다.

주위에 비슷한 사례가 있나 싶어 지인들에게 물어보니, 쏘카 패스를 구독하는 저의 친구 역시 비슷한 경험이 있었습니다. 몹시 더운 여름 어느날 주차 중에 에어컨을 켜고 싶어서 가시동 상태로 송풍기를 열심히 돌리면서 노래도 들었다고 합니다. 그렇게 한 시간 정도가 지났고 차를 다시 움직여 이동하려고 하는데 시동이 걸리지 않았다고 합니다. 친구는 가시동 상태에서 송풍기를 돌리고(에어컨 컴프레셔는 멈춰있어서 바람만 나왔을텐데) 차량 스피커로 음악을 들으면 필요한 전력을 모두 차량 배터리에서 가져 온다는 사실을 몰랐습니다.

이 외에도 고객께서 전혀 의도하지 않았지만 차량의 전원관리에 나쁜 영향을 미칠 수 있는 차량 운용으로 인해 방전이 생기는 경우는 다양할 거라 생각했습니다. 어떻게 해야 고객께서도 방전을 겪지 않아 기분이 좋고 쏘카도 관리 이슈를 줄일 수 있을까요?

저는 이렇게 생각했습니다.

“고객께서 실수하지 않도록 우리가 도와드리자. 알림을 보내드리면 상황 인지를 빨리하실 수 있겠지?”

결론은 고객에게 어떤 형태로든 “알림을 드리자!”였습니다.


적당한 차량 상태 조회 주기 찾기

고객에게 방전될 수 있는 상황임을 알리는 알림을 보내기 위해서는, 먼저 현재 차량의 상태를 알아야 합니다. 쏘카 차량에는 관제 장치가 붙어있는데, 이 장치로부터 차량 상태에 대한 데이터를 주기적으로 받을 수 있습니다. 데이터를 받는 주기는 다음과 같이 3가지 상황에 따라 다릅니다.

  1. 일반 주행 혹은 가시동 상황일 때: 2분에 1회
  2. 시동 OFF 후 정차 중인 상황일 때: 30분에 1회
  3. 문열림/문잠금/시동 상태의 변화가 일어날 때: 각각 1회

위의 주기는 하나의 차량에서 어떤 주기로 차량 정보 데이터를 올려주는지에 대한 내용입니다. 쏘카에서 운영하는 총 차량은 10,000대가 넘고, 차량 각각에서 일어나는 상태 변화 시점은 제각각입니다. 따라서 하나의 시스템이 많은 차량을 다루기 위해선 일정 시점마다 전체 차량을 조회하고, 각 차량의 상태 시점과 이벤트 시점의 시간 차이와 상태 변화 추이를 각각 계산해야 합니다. 따라서 전체 차량의 상태 조회 주기가 너무 늦으면 방전 상태를 늦게 판단할 가능성이 높아지고, 너무 빠르게 하면 알람이 너무 자주 가게 됩니다. 따라서 전체 차량 상태 조회의 적당한 주기를 찾는 것이 중요합니다.

이를 위해 가장 먼저 해야 할 일은 차량 방전이 일어날만한 시나리오를 생각해 보고, 각 시나리오별 전류가 어느 정도로 빨리 소모되는지 측정하는 것이었습니다. 또한 차종별로 장착된 부품의 사이즈나 전력 소모량이 모두 다르기 때문에, 각 차종별로 위의 시나리오에 맞추어 실험을 따로 진행해야 하는 것도 고려해야 했습니다.

처음에는 차량 방전이 일어나기 쉬운 사용 시나리오를 찾는 일부터 시작해보았습니다. 가시동 중 노래 듣기, 송풍기(1~n단까지 모두 다른 케이스로 가정했음), 전조등, 미등, 상향등, 경고등, 실내등 등등 모든 전력 소모 및 방전 요소를 모두 조합한 시나리오를 세웠고 조합한 시나리오별로 전류가 얼마정도 소모되는지 모두 측정하기로 했습니다.

전류 측정은 초등학교 시절 한번 즈음 모두가 거쳐갔을 라디오 조립 키트의 전류 측정보다 아주 조금 어려운 정도입니다 (쉽다는 말을 어렵게 해 보았습니다.). 직접 실험을 해보고 싶으신 분도 계시리라 생각하여 측정법에 대해 설명드리겠습니다.

  1. 우선 배터리의 - 단자에 연결된 터미널을 제거합니다.
  2. 배터리가 제거되는 순간 자동차에 연결된 IBS 단자 (Intelligent Battery Sensor)는 초기화됩니다. 이 센서는 배터리의 상태와 관련된 값을 수집하는 센서인데 이 센서의 초기화 부분은 차량 제조사와 차종마다 모두 상이하므로 다루지 않도록 하겠습니다. 차량 제조사 매뉴얼에 보면 이 센서의 초기화와 관련된 내용이 상세히 적혀 있으니 참고하시면 좋습니다.
  3. 전력계의 모드를 전류 측정으로 전환합니다.
  4. 제거된 터미널에 전력계의 양극 부를 연결하고, 배터리의 - 단자에는 전력계 음극 부를 연결합니다. 이때 측정기의 리드 케이블은 클립형이 좋으며 길고 튼튼할수록 좋습니다. 측정할 때는 보닛을 닫아두는 게 좋기 때문입니다.
  5. 잘 연결이 되었다면 전력계에 전류 값이 표시됩니다.

위의 설명은 고전적인 측정기를 사용하는 방법입니다. 요즈음에는 블루투스로 연동하여 핸드폰으로 값을 받을 수 있는 전류 측정기가 있어서 측정이 비교적 쉽습니다. 블루투스 전류 측정기의 자동차 단자 연결법도 위와 동일합니다.

측정기 연결이 잘 되었다면 미리 세워둔 시나리오별로 전류 소모의 변화를 모두 기록합니다. 다양한 차종에 대해 실험하다 보니 하루에 끝내기는 어려웠고 실험 완료까지 수 일이 걸렸습니다. 측정이 완료된 시점에서 보니 생각보다 방전을 일으키키 정말 쉬운 물건이 자동차구나 싶었습니다.

시나리오 중 한 가지 예를 아래에 공유드리도록 하겠습니다. 실험값과 차종은 모두 예시입니다.

  Avg[A] Max[A] 검출 여부 비고
실내등(개당) 0.6   문 열림 상태로 간접 추론
ACC1 2.1 3 O  
ACC2 7.5 12 O  
송풍기 1단 3   X  
송풍기 2단 4.2   X  
송풍기 3단 6.8   X  
송풍기 4단 11.2   X  
라이트 1단 0.8   단계는 나오지 않음
라이트 2단 8.8   단계는 나오지 않음, 차종별로 ACC2부터 가능함
라이트 3단(High) 9.8   단계는 나오지 않음, 차종별로 ACC2부터 가능함
비상등 3 5.5 X  

그리고 구현 가능한 시나리오는 다음과 같았습니다.

일반적인 시나리오

S1. 시동 OFF + 문 열림: 0.6A 소모
S2. ACC1 단독: 2.1A 소모
S3. ACC2 단독: 7.5A 소모
S4. ACC1 + Light 1단 (흔한 유형): 2.9A 소모
S5. ACC2 + Light 2단 (흔한 유형): 16.3A 소모
S6. ACC2 + 송풍기 2단 (흔히 말하는 차박): 11.7A 소모

최악의 시나리오

SW. ACC2 + 실내등 2개 (문 앞뒤 열림) + 송풍기 4단계 + Light 3단 + 비상등 +핸드폰 충전기: 32.7A 소모

이제 이렇게 세워둔 시나리오 별로 각 차량별 정격 용량의 절반에 도달하기까지 걸리는 시간까지의 시간을 측정했습니다.

예를 들어, 아래는 60Ah 배터리를 사용하는 차량의 경우입니다. 각 S1 - S6는 시나리오를 뜻하며, 값은 시간(hour)입니다.

SW S1 S2 S3 S4 S5 S6
0.5 27.0 7.7 2.2 5.6 1.0 1.4

이렇게 모든 차종에 대해 시나리오에 따른 전류 소모 측정 실험을 마친 후, 전체 차량의 상태 조회의 적당한 주기를 10분으로 결정지었습니다.


차량이 방전될 상태인지 판단하기

위에서 정의한 시나리오는 전류 소모 측정을 위해 어느 정도 미리 생각해두어 생각한 틀일 뿐, 실제로 쏘카 데이터를 기반으로 만들어진 시나리오는 아닙니다. 이제 수집된 데이터로부터 실제로 방전이 될만한 상황인지를 판단해야 합니다. 저희는 쏘카 내 데이터로부터 이런 시나리오를 분석하여 정의하기로 했습니다.

앞서 쏘카 차량에는 관제 단말기가 부착되어 있고, 이 단말기로부터 차량 주행과 관련된 데이터를 주기적으로 수집하고 있다고 말씀 드렸습니다. 수집하는 데이터 중에는 시동/가시동/정지 여부, 전조등 켜짐/꺼짐 여부, 전압 정보 등등 고객님의 차량 운용 패턴과 관련된 데이터가 모두 담겨있습니다. 따라서 과거의 방전 관련 CS 콜이 들어온 시간을 전/후로 주행 데이터를 살펴보면 문제 발생을 일으키는 주요한 운용 패턴을 발견할 수 있습니다.

예를 들면, 여름철에 가장 많이 들어온 방전 관련 CS 콜을 살펴보면 위의 시나리오 중 S6이 가장 많습니다. 주행은 하고 있지만 엔진이 작동하기에 추가적인 기름 소모는 아쉽고, 차에서 좀 쉬고 싶기는 해서 송풍기에서 나오는 바람을 좀 쐬고 있다 보니 발생하는 일입니다. 그 외에도 희귀하지만 인상 깊었던 상황을 공유드리자면, 자주 방전이 일어나 발전기까지 체크했는데도 방전 문제가 개선되지 않았던 차량에 대한 신고를 받고 데이터를 살펴보니, 퓨즈단의 배선이 잘못되어 시동이 꺼진 후에도 암전류가 지속적으로 일어났던 상황이었습니다. 다음의 그림은 각각 “블루투스 계측기를 이용한 전류 측정 사진”과 “같은 잔존 수명을 가진 배터리가 암전류의 유무에 따라 시간당 전압 변화율이 어떻게 달라지는지 보여주는 예시 차트”입니다.

블루투스 계측기를 이용한 전류 측정

같은 잔존 수명을 가진 배터리가 암전류의 유무에 따라 시간당 전압 변화율이 어떻게 달라지는지 보여주는 예시

실험과 데이터를 보기 전에는 고객께서 단순히 전조등만 켜 놓았거나, 송풍기만 켜 놓았다거나, 실내등만 켜두는 등의 단일 조작 위주의 시나리오가 많을 거라 생각했습니다. 그러나 실험과 데이터를 통해, 생각과는 달리 꽤나 다양한 요소가 결합된 시나리오가 많다는 사실을 알 수 있었습니다.

결과적으로 저희는 수집된 데이터가 다음과 같은 조건일 때 방전 알림을 보내야 하는 상황이라고 판단했습니다.

  1. 시동 종료 후 가시동(ACC) 10분 이상 지속 할 때
  2. 시동 종료 후 10분간 문 잠금/열림 연속 10회 이상 시도할 때
  3. 전조등이 켜져 있을 때

데이터 수집은 위에서 정한 대로 10분마다 이루어지며 1~3은 모두 OR 조건으로 엮입니다. 따라서 어느 한 조건이라도 충족이 되면 그 차량은 알림의 대상이 됩니다.

실행 프로세서의 순서도. 실제 시스템 구축은 모비딕 팀 스팍께서 해주셨습니다.


그래서 알림은 어떻게 보내지나요?

위 과정에 의해 DB에 알림 대상이 되는 차량들이 저장되며, 이후에는 쏘카의 서비스 서버가 이 DB를 조회해 알림을 보냅니다.
서비스 서버에서는 대상 차량 확인 후 다음을 고려하여 알람 주기 및 방식을 정합니다.

  • 알림 주기
    • 고객께서 차량 정차 후 정차된 차량으로 돌아오기 어려울 정도로 멀리 떠나기까지 걸리는 시간을 고려해야 합니다.
    • 차량을 정차(강제 반납의 가능성이 높음) 후 고객께서 다른 교통수단으로 갈아타서 이동을 시작하거나, 개인 사정으로 어떠한 연락에도 즉시 확인 및 응답이 불가능하다면 그 고객에게는 어떠한 알림도 무의미합니다.
    • 따라서 고객의 다음 행동이 구체화되어 차량으로 다시 돌아오기엔 어려워지는 상황이 오기 전에 미리 연락을 취해야 합니다.
    • 이 시간은 과거 CS 콜 분석을 통해 10분으로 결정하였습니다.
  • 알림 방식 소모 비용
    • 기존에 쏘카에서 사용하고 있으며 고객에게 친숙한 채널을 최대한 활용하기로 했습니다.
    • 비용적으로도 저렴한 카카오톡 알림을 활용하기로 결정했습니다.

전체 과정을 최종적으로 정리해 보면 다음과 같습니다.

  1. 전체 차량에 대한 상태 데이터를 10분마다 수집합니다.
  2. 미리 세워둔 시나리오를 기반으로 현재 차량이 방전이 될만한 상태인지 판단합니다.
  3. 방전이 될만한 차량을 발견하면, 해당 차량과 고객에 대한 데이터를 DB에 적재합니다.
  4. 쏘카 서비스 서버는 DB에서 알림을 보낼 차량과 고객을 확인합니다.
  5. 해당 고객의 카카오톡으로 10분마다 방전 주의 알림을 보냅니다.

조금만 더 세심하게 다뤄주세요. 다 같이 쓰는 차니까요.

위의 기준으로 쏘카는 본 서비스를 2021년 2월부터 투입했습니다. 성과를 간략히 말씀드리면, 동기 대비 이용건수가 8% 늘어난 상황에서 (2021년 n월 기준) 긴급 출동 건수 35% 감소가 이루어졌으며 방전 비율도 절반 정도 감소 (2021년 n월 기준) 했음을 확인했습니다 (회사의 영업 기밀이기에 자세한 기준을 공개하기 어려운 점 양해 부탁드립니다.).

본 아이디어의 기본 개념은 “고객께서 실수할 확률 자체를 낮추어드리자”입니다. 누구도 쏘카의 차량을 일부러 고장 내고 싶지 않으리라 생각합니다. 단지 자동차에 대한 경험적 이해가 아직 부족해서 혹은 피할 수 없는 상황에 놓여서, 어쩌면 쏘카 정비의 미진한 점으로 인한 일들이 있었겠죠. 이런 상황에 놓이지 않도록 미리 도움을 드리는 일도 쏘카가 기술적으로 해결할 일이라고 생각합니다.

쏘카는 누구나 이용할 수 있고, 누구나 이용하는 ‘카-셰어링’ 서비스입니다. 따라서 쏘카 차량의 주인은 “쏘카”가 아닌 “여러분 모두”라고 생각합니다. 쏘카는 단지 모두가 사용하는 차량에 날개를 달아주는 도우미라고 생각합니다. 앞으로도 좋은 날개를 달기 위해 고객의 주행 환경과 경험 개선을 위한 다양한 기술 기반 아이템을 많이 발굴하도록 노력하겠습니다. 쏘카를 이용해 주시는 쏘카 차량의 주인이신 여러분들께서도 여러분들의 차량을 조금만 더 아껴주시면 감사하겠습니다.

쏘카의 모빌리티 Lab은 모두 높은 수준의 기계 공학 지식을 보유한 인력으로 이루어졌으며, 쏘카의 풍부한 차량 데이터에 기계 공학 지식을 녹여 운영에 필요한 최적 솔루션을 만들고 있습니다. (우리에게 힘을 더해주실 우수한 분을 모시고 있습니다. 언제든지 지원해 주세요)