본문 바로가기

인천대학교 통학버스 챗봇

  • 홍가인
  • 인천대학교
  • 작품구분일반형
  • 공개여부비공개
  • 카테고리정보, 웹/앱, 기타
  • 등록일2020-06-19
  • 팀원(공동개발자)김나연, 김현정
  • 출품 경진대회2020년-1학기 산학 캡스톤디자인 경진대회(학생팀 & 멘토 모집)

상세설명

1. 수행배경

인천대학교에는 타 지역에서 통학을 하는 학생들이 많아서 여러 지역으로 운행하는 통학버스가 있습니다. 하지만 기존의 경우, 통학버스에 관한 승/하차 장소 및 시간에 대한 정보가 학기 초에 업로드되고 그 후로는 따로 공지가 올라오지 않아 해당 정보를 찾아보기가 다소 어렵습니다. 또한 우천에 따른 교통상황의 변동과 같이 긴급 변동사항을 곧바로 확인할 수 있는 시스템이 체계적으로 마련되어 있지 않아서 커뮤니티 등에 관련 질문을 올리는 학생들이 많습니다. 다음 표는 학교 게시판에 올라온 통학버스 관련 질문사항입니다. 다음을 보시면 많은 학생들이 통학버스에 관해 질문을 올릴 곳이 마땅치 않다는 사실을 알 수 있습니다.

 

 

 

   

이 뿐만 아니라 티켓 발권에 관한 불편함도 존재하였습니다. 통학버스를 이용하는 학생들 중 온라인 발권이 되지 않아 직접 교내 복지회관 1층까지 가야 한다는 불편함을 호소하는 학생들이 많이 있었습니다.

이러한 점들을 해소하기 위하여 저희는 통학버스에 관한 모든 정보를 제공해주는 매체를 개발할 필요성을 느꼈습니다. 그리고 그 매체를 선정하는 데 있어서 학생들에게 접근성이 가장 편리한 것을 우선 순위로 두고 고려해보니 챗봇을 개발할 필요성을 느꼈습니다. 챗봇 시스템은 카카오 I 오픈빌더를 이용하여 구축하고, 챗봇에는 통학버스 노선, 노선별 승/하차 시간 및 장소, 티켓 금액, 기사님 연락처 데이터를 등록하였습니다.

구체적인 목표 사항으로는 개인이 원하는 노선 또는 정류장을 검색하여서 원하는 경로만 쉽게 확인할 수 있고, 정류장을 검색하면 승차 장소와 해당 시간을 확인할 수 있습니다. 특히, 장소의 경우에는 헷갈리지 않도록 각 승하차 장소마다 로드맵 사진을 첨부하여 위치를 한 눈에 볼 수 있게 구성하였습니다. 또한 긴급변동사항의 경우 통학버스 챗봇과 플러스 친구가 되어있으면 모두가 알림을 받을 수 있도록 하였습니다.

 

2. 수행기간

추진일정표

일련번호

주요내용

추진일정

기간

()

4

5

6

1

카카오톡 플러스친구 개설

 

 

1

2

카카오 I 오픈빌더 참여 신청

 

 

1

3

오픈빌더 시나리오 구성

 

 

2

4

통학버스 데이터 등록

 

 

1

5

지도 노선 코딩 및 실험

 

 

2

6

마무리 테스트

 

 

1

가장 먼저 챗봇 플랫폼을 설계하기 위해 카카오톡 플러스 친구를 개설하였습니다. 46일에 카카오톡 플러스 친구를 개설 신청해놓고 신청 수락이 날 때까지 기다렸습니다. 신청 수락이 410일에 완료되었습니다. 이에 이어서 카카오 I 오픈빌더 참여 신청도 413일에 진행하였습니다. 카카오 I 오픈빌더 참여 수락이 날 때까지 기다린 결과, 417일에 참여 수락이 났습니다. 챗봇과 플러스 친구를 연동시켜서 작업을 할 setting 환경이 완료되어서, 420일부터 본격적으로 챗봇 제작에 관한 도움말이나 주요 기능 사용법을 보고 공부하는 시간을 51일까지 가졌습니다.

54일부터 515일까지 카카오 I 오픈빌더에 대한 기본 시나리오를 구성하였습니다. 완료한 기본 시나리오에 대해 518일부터 520일까지 간단한 작동 테스트를 거친 후, 521일부터 526일까지 더욱 상세한 시나리오 구성을 진행하였습니다. 527일부터 529일까지 전체적인 시나리오에 대한 작동 테스트를 거쳐서 모든 챗봇 시나리오에 대한 테스트를 구동하였습니다.

61일부터 63일까지 수집한 모든 작년의 통학버스 데이터를 챗봇 오픈빌더에 등록하는 작업을 거쳤습니다. 64일부터 612일까지 통학버스의 상세 노선을 띄우는 지도에 대한 코딩과 GPS 수신 테스트 실험을 하는 작업을 거쳤습니다. 615일부터 618일까지 마지막으로 마무리 작업을 하는 차원에서 챗봇 구동 테스트를 완료하였습니다.


3. 개발작품 설명

- 카카오톡 플러스친구 개설

챗봇과 연결시켜서 구동할 플러스친구를 개설하였습니다. 저희 팀의 이름대로 인천대학교 BinUS’ 라는 채널 이름으로 개설하였습니다. 통학버스 관련 챗봇이므로 카테고리는 자동차/교통 > 교통으로 설정하였고, 학교 기관에서 쓰이는 챗봇이므로 카테고리는 기관/단체 > 공공/행정으로 설정하였습니다.

- 카카오 I 오픈빌더 참여 신청

챗봇 제작을 위해 카카오 I 오픈빌더 신청을 하고 권한을 부여 받았습니다.

 

- 오픈빌더 시나리오 구성

기본적으로 셋팅 되어 있는 기본 시나리오 외에 저희가 만들 챗봇에 관한 내용을 담을 시나리오들을 구성하였습니다. 큰 시나리오로 승하차 장소, 티켓 금액, 기사님 연락처, 노선 및 시간, 기타 발화를 추가하였습니다. 각 시나리오 안에는 통학버스가 다니는 지역인 송내, 수원, 일산, 청라, 광명에 대한 세부 시나리오를 연결시켰습니다. 기타 발화 시나리오 안에는 첫 인사, 끝 인사, 사과 시나리오를 넣어서 챗봇을 처음에 작동시킬 때 첫 인사로 반갑게 맞이하고, 마지막에는 끝 인사로 사용을 유도하는 식의 시나리오를 연결시켰습니다.

 

- 시나리오 블록 내용 구성 및 데이터 등록

다양한 시나리오에 속한 각 블록의 세부 내용들을 채워주었습니다. 여러 가지의 패턴 발화를 넣어서 사용자가 원하는 응답을 얻는 과정을 이끌어 내었습니다. 챗봇 내에서 버튼을 눌러서 구동하는 것이 아닌, 발화를 입력하여도 원하는 응답과 정보를 얻을 수 있게끔 사용자 발화에 대한 머신러닝 학습을 반복해서 진행하였습니다엔티티를 등록하고 분류하여서 챗봇이 비슷한 맥락의 단어들을 알아듣고 묶어서 정리할 수 있게끔 학습시켰습니다. 예를 들어, bus.location 엔티티에서는 통학버스가 지나는 노선에 해당하는 지역들을 모두 포함시켰습니다승하차 장소를 응답해주는 블록의 경우에는 승하차 장소의 로드뷰 사진과 장소에 관한 상세한 설명을 넣어서 사용자가 한눈에 알아보기 쉽고 이해하기 용이하도록 응답을 작성하였습니다머신러닝 학습을 통해 챗봇의 성능을 강화시켰습니다수집한 작년 기준의 통학버스 관련 데이터들을 구성된 시나리오와 블록에 등록하는 작업을 하였습니다.

 

- 지도 노선 코드 작성

통학버스의 실제 노선을 지도 위에 나타내기 위해서 T map api를 이용하여서 javascript 기반으로 코드 작성을 진행하였습니다. 이번 학기는 코로나 19로 인해 통학버스를 운행하지 않는 관계로, 작년 2학기 기준으로 통학버스 실제 노선을 지도 위에 구현해 보았습니다. 출발지점과 도착지점을 설정하고, 경유지점을 찍어주면 실시간으로 교통 상황을 탐색하여서 최적 경로를 찾아주는 API 코드를 이용하여서 송내, 수원, 광명, 청라, 일산 노선을 각각 자세하게 구현하였습니다. 노선 별로 색깔을 달리하여 차별화를 두었습니다.

 

- GPS 수신기 실험

통학버스의 실시간 위치를 버스 내부에서나, 버스를 기다리면서 확인할 수 있도록 GPS 수신기를 통해 실시간 위치를 받아오는 기능을 추가하였습니다. 통학버스 업체가 1년마다 변경되는 특성 상, 컴팩트하고 정확한 위치 수신이 가능한 기기를 찾아보았고, 그 결과 Gper 수신기를 이용하여 실험을 진행하였습니다. Gper 수신기로 위치를 수집하면, 그 위치 데이터는 Catchloc 서버로 연동되어 자동으로 저장이 됩니다. Catchloc 서버를 통해서 저장된 위치들을 시각적으로 쉽게 확인할 수 있고, 거리나 속도 등의 부수적 요소들을 포함해서 위치데이터를 엑셀 파일로도 다운로드가 가능합니다. 이번 학기는 코로나 19로 인해 통학버스를 운행하지 않는 관계로, 통학버스의 실시간 위치를 지도 위에 띄우는 것을 진행하지 못했습니다. 대신 Gper 수신기를 가지고 조원 한명이 집에서부터 학교까지 가는 길에 수신 실험을 해서 위치 데이터를 받아온 것을 시간 순서에 따라 주기적으로 상세 노선을 그린 지도 위에 띄우는 작업으로 대체하였습니다. Catchloc API를 이용하여 localhost로 구간지정을 해서 위치데이터를 json 형식으로 가져오고, json 형식의 데이터를 setInterval 함수와 ajax function을 이용하여 5초 주기로 위치를 띄우는 작업을 진행하였습니다.


4. 활용방안

개인이 원하는 노선 또는 정류장을 검색하여서 원하는 경로만 쉽게 확인할 수 있고, 지도를 보여주어 지금 버스가 어느 위치에 있는지 버스 위치를 마커로 찍어 실시간으로 확인이 가능합니다. 또한 정류장을 검색하면 승차 장소와 해당 시간을 확인할 수 있습니다. 특히, 장소의 경우에는 카카오 플러스 챗봇 안에서 승차장소 블록에 로드 뷰를 볼 수 있는 옵션을 추가하여, 해당 정류장을 클릭한다면 정류장의 사진이 뜨게 됩니다. 따라서 정류장의 위치를 헷갈리지 않고 정확하고 신속하게 찾을 수 있습니다. 또한, 학교의 일정에 따른 통학버스의 긴급 변동사항은 플러스친구가 되어 있으면 모두가 알림을 받을 수 있습니다.
 
이번 20201학기에는 코로나로 인해 실제 통학버스가 운행하지 않아서 임의로 조원 중 한 명이 대표하여 GPS장치를 가지고 시외 버스를 타며 위치 추적을 하는 실험으로 대체 하였지만, 20202학기에 실제로 통학버스에 Gper 수신기를 부착하여 운행 한다면, 실제로 통학버스를 이용하는 학생들의 편리성이 매우 높아질 것입니다. 지도에 실시간으로 버스의 위치를 마커로 찍어 학생들에게 정보를 전달하는 매체가 아예 없었던 전에 비해, 학생들이 통학버스에 관한 편리성의 인식률이 높아져 이에 따른 이용률 자체가 증가할 것입니다. 또한 실시간 위치정보 뿐만 아니라 통학버스의 관련 정보들을 알림으로 받을 수 있어 통학버스가 외부 시내버스에 비해 가격도 저렴한 것을 학생들이 인지 후 경제적으로 도움이 될 것이고, 통학 버스만의 이벤트관련 사항을 알림으로 받으며 효율적으로 이용가능 할 것입니다.
또한 외부적으로 보았을 때 서칭을 해본 결과 타 대학교 중 몇몇 학교는 버스실시간 알림 서비스를 실행 하였지만, 제대로 활용이 되지 못하고 있거나 학생들이 이러한 시스템이 존재하는지 조차 모르고 있어 시스템을 방치하고 있는 경우가 많이 있음을 알 수 있었습니다. 만약 우리의 시스템이 인천대학교 안에서 잘 활성화 되어 모듈화가 된다면, 챗봇은 개발 되었지만 버스 실시간 알림 서비스가 제대로 구축되지 않는 타 대학교나, 타 기업에게 우리의 시스템을 이용하여 구축을 도와줄 수 있는 점 또한 기대 할 수 있을 것입니다.


소개 영상

소개 슬라이드

기타자료

댓글