DOI QR코드

DOI QR Code

시각장애인을 위한 버스 승·하차 시스템

Boarding and Alighting System of Public Bus for Visually Impaired People

  • 강석원 (한국산업기술대학교 컴퓨터공학부) ;
  • 박형근 (한국산업기술대학교 컴퓨터공학부) ;
  • 이지수 (한국산업기술대학교 컴퓨터공학부) ;
  • 홍의성 (한국산업기술대학교 컴퓨터공학부) ;
  • 공기석 (한국산업기술대학교 컴퓨터공학부)
  • 투고 : 2021.07.30
  • 심사 : 2022.02.04
  • 발행 : 2022.02.28

초록

본 논문은 시각장애인의 대중교통, 특히 버스 이용을 보조하기 위한 새로운 방법을 제안한다. 시각장애인의 대다수는 버스 이용에 어려움을 겪는데, 기존의 안내시스템과 점자 블록은 큰 도움을 주지 못하는 것으로 드러났다(2017, 장애인실태조사). 본 논문에서는 시각장애인의 버스 접근성과 이동성 향상을 위해, 다음과 같은 세 가지 기능을 갖춘 시스템을 개발한다: (1)스마트 폰 애플리케이션을 이용한 승차 예약 기능, (2)버스 도착 알림 기능, (3)Beacon을 이용한 무선 하차 벨 기능. 데모환경을 구축한 후 진행한 다양한 실험을 통하여 버스 예약, 탑승, 하차가 원활히 이루어질 수 있음을 확인하였다.

This paper proposes new measures to aid the uses of pubic transport buses by visually impaired people. Many visually impaired people have difficulty using public buses, but current guidance systems and braille blocks are not useful enough, according to a national survey(2017). In this paper, we develop a system with three functions that help to increase the bus accessibility and mobility of visually impaired people: (1)bus reservation using smart phone applications, (2)arrival notification, and (3)wireless bus stop button using Beacon. Experiments have confirmed that our system supports bus reservation, boarding and getting off the bus efficiently.

키워드

Ⅰ. 서 론

오늘날 장애인들의 사회 참여 증가와 그에 따른 사회기반 시스템 제공은 사회적 이슈로 대두되고 있다. 현재 우리나라 국민 200명 중 1명은 시각장애를 앓고 있는 것으로 파악된다. (2017. 장애인실태조사[1]) 기존에 존재하는 BIS(버스정보시스템)와 유도점자블록은 정확성이 떨어지며 활용성이 부족하다. 시각장애인은 버스 이용과정에서 버스 정류장 탐색, 버스 탑승, 하차 벨 구동에 어려움을 겪고 있다.

본 논문에서는 라즈베리파이와 하차 벨 모듈, 사용자의 스마트폰과 스피커를 이용하여 위에 제시된 문제 해결을 위한 여러 기능을 구현한 IoT 시스템을 다룬다. 시스템의 이름은 ‘WeTayo’ 라고 명명한다.

사용자는 스마트폰 ‘WeTayo’애플리케이션으로 승차를 희망하는 정류장을 자신의 위치를 기준으로 가까운 거리순으로 검색할 수 있으며 정류장에서 원하는 버스의 승차 예약을 지정할 수 있다.애플리케이션의 모든 기능은톡백 기능을 사용하여 음성으로 모든 서비스에 제공된다. 승차예약 시 버스에 탑재된 단말기에 승차예약이 표시되며 정류장 도착 후 버스 기사는 버스에 부착된 스피커로 버스 번호를 송출하여 시각장애인의 승차를 유도한다. 하차 시에는 ‘WeTayo’ 애플리케이션을 이용하여 하차 벨 버튼을 구동하여 하차할 수 있다.

본 논문의 구성은 다음과 같다. Ⅱ장에서는 본 논문의 서비스와 유사한 서비스를 비교하고 관련 논문을 분석하였다. Ⅲ장에서는 버스 승·하차시스템에 적용한 기술 및 구현 내용과 애플리케이션의 각 모듈에 관해 기술하였다. Ⅳ장에서는 구현한 실험 및 결과를 분석하여 제품의 성능을 향상할 수 있도록 하는 방법에 대해 논하고 Ⅴ장에서 결론으로 연구 결과 및 향후 계획에 관해 설명하며 본 논문을 마무리한다.

Ⅱ. 관련 연구

아래 표 1은 현재까지 국내에서 시범으로 제공된 시각장애인을 위한 버스 탑승 보조시스템 서비스들이다.

표 1. 관련 서비스

Table 1. Related Service

OTNBBE_2022_v22n1_51_t0001.png 이미지

삼성 투모로우 솔루션에서 소개된 서비스는 사용자의 스마트폰 애플리케이션으로 버스 승·하차 예약을 지정할 수 있고 버스에 장착된 외부 스피커로 정류장에 버스 번호를 송출할 수 있다. 하지만 버스의 실시간 위치 조회가 불가능하고 사용자 위치기반 정류장을 탐색할 수도 없다. 시민 기자단 솔루션에서 소개된 서비스는 음성 수신기가 별도로 필요하며 정류장마다 수신기를 설치해야 한다.

반면 본 논문에서 다루는 ‘WeTayo’는 위에 제시된 서비스들과 차별성을 가진다. 공공 데이터[4] API를 통해 구축한 자체 DB를 연결하여 사용자 위치를 기준으로 가장 가까운 정류장을 안내한다. 사용자는 정류장 도착 후도 착 버스 정보를 실시간으로 애플리케이션을 통해 음성으로 얻을 수 있으며 탑승희망 버스의 승차예약을 지정할 수 있다. 탑승 후에 하차를 희망할 시 애플리케이션의 하차 벨 기능으로 원하는 정류장에서 하차할 수 있다.

윤지영의 논문[5]에서 제시한 버스 도착 안내 애플리케이션은 사용자의 스마트폰 GPS를 기반으로 정류장의 위치를 인식하고 버스 번호를 음성으로 입력하면 버스 도착 정보가 음성으로 안내된다.

고승희의 논문[6]에서 제시한 스마트폰 애플리케이션은 사용자에게 가까운 정류장을 안내하고 실시간 도착 예정 버스 목록을 제공한다. Google Assistant 기능과 가상 키보드를 제공하여 사용자가 원하는 버스를 음성으로 검색할 수 있다.

육상민의 논문[7]에서는 비콘 통신을 이용한 버스 탑승 안내 시스템을 소개하고 있다. 시각장애인이 버스 정류장에 접근하면 비콘 신호로 정류장의 장애인표시 전광판이 작동하고 버스 도착 시 버스 번호를 송출하는 시스템이다.

Ⅲ. 시스템 설계 및 구현

1. Flutter

Flutter[8]는 Android와 iOS 모바일 애플리케이션을 단일 소스코드로 개발할 수 있는 크로스 플랫폼 모바일애플리케이션 개발 프레임워크이다. Android와 iOS의 대표 디자인 가이드를 기본적으로 제공한다. 사용 언어는 Dart를 사용하며 Native 코드를 추가하여 개발할 수 있다.

시각장애인이 사용하는 스마트폰 OS의 다양성과 단일 소스코드 개발로 인한 경제성을 고려하여 Flutter 프레임워크를 채택하였다.

2. Beacon

Beacon[9]은 ‘Bluetooth Beacon’이라고 칭한다. 10m 이내의 기기를 자동으로 인식하고 데이터를 전송하는 근거리 무선통신장치로 Bluetooth 3.0부터 지원하는 BLE[10](Bluetooth Low Energy) 기술을 사용하여 저전력으로 페어링 없이 지속해서 신호를 보낼 수 있는 기술이다.

본 논문에서는 무선 하차 벨 기능을 구현하기 위해 Bluetooth 4.0[11]을 지원하는 스마트폰을 사용하였으며 버스의 기존 하차 벨 모듈과 Raspberry Pi를 연동하여 하차 벨이 동작하도록 설계하였다.

3. 최단거리 알고리즘

정류장 탐색 시 최단거리 알고리즘(Haversine Formula[12], 그림 1)을 적용하였다. 최단거리 알고리즘은 주로 차량 네비게이션에 적용되는 알고리즘으로 곡면상에서 위도와 경도가 정해진 두 지점 사이의 최단 거리를 구하는 알고리즘이다. 본 논문에서는 사용자 위치 기준 가장 가까운 정류장을 탐색하는 API에 위 알고리즘을 적용하였다.

OTNBBE_2022_v22n1_51_f0001.png 이미지

그림 1. 최단거리 알고리즘

Fig. 1. Harversin Formula

두 개의 점 u, w의 경도(latitude)와 위도(longitude) 를 각각 Ux, Wx, Uy, Wy 라고 하고 r 은 구의 반지름 이라고 하면 두 지점 사이의 거리 b는 다음의 Harversin Formula로 계산할 수 있다.

#       (1)

4. 개발환경

본 논문에서는 Raspberry Pi 4B를 기반으로 ‘WeTayo’의 하드웨어를 구현하였다. 릴레이 모듈을 이용하여 Raspberry Pi와 하차 벨 모듈 간의 스위치를 제어하고 Raspberry Pi에 연결된 스피커를 통해 버스 번호를 정류장에 송출한다. 자체적으로 제작한 하차 벨 모듈로 사용자 스마트폰과 라즈베리 파이의 Beacon 송·수신이 발생한다.

위의 표 2는 하드웨어 개발환경에 대해 정리한 표이다.

표 2. 하드웨어 개발환경

Table 2. Hardware environment

OTNBBE_2022_v22n1_51_t0002.png 이미지

시스템 개발을 위하여 채택한 하드웨어 주요 부품으로는 Raspberry Pi와 하차 벨 모듈, 스피커, 토글스위치, 릴레이 모듈이 사용된다. Raspberry Pi는 BLE 기능이 탑재된 4B 모델을 사용하였고, 원활한 통신 환경을 조성하기 위해 8G 메모리로 구성하였다. 스피커는 외부소음에서도 시각장애인이 버스 번호를 정확히 청취할 수 있도록 85dB 이상의 출력을 가진 150W 파워의 스피커로 선정하였다. 하차 벨 모듈은 릴레이 모듈과 결합하여 라즈베리 파이의 신호를 받아 무선으로 하차 벨을 동작시킨다. 아래의 표 3은 소프트웨어 개발환경에 대한 표이다.

표 3. 소프트웨어 개발환경

Table 3. Software environment

OTNBBE_2022_v22n1_51_t0003.png 이미지

서버는 AWS EC2를 사용하여 구축하였다. 웹서버로는 Nginx를 채택하였다. AWS Lambda를 사용해 매일 오전 01:00에 버스 공공 데이터 API 데이터를 다운로드받아 데이터베이스에 자동 업데이트를 위한 스케줄링을 설정하였다.

5. 시스템 설계

애플리케이션은 사용자용 애플리케이션과 버스 기사용 애플리케이션 두 가지를 개발하였다. 아래 그림은 애플리케이션과 서버 간의 통신을 나타낸 소프트웨어 구상도이다.

OTNBBE_2022_v22n1_51_f0002.png 이미지

그림 2. 소프트웨어 구성도

Fig. 2. Software System Diagram

데이터베이스는 버스 공공 데이터 API[32]에서 선별된 데이터를 종합하여 MySQL을 통해 구현하였다. 이후 구축된 서버에서 사용자용 애플리케이션과 버스 기사용 애플리케이션 간의 데이터 전송을 담당하고 애플리케이션에서 요청하는 정보를 데이터베이스에서 가져와 데이터를 처리한다. 하드웨어는 Raspberry Pi를 사용하여 기존 버스에서 사용 중인 하차 벨과 연결하여 무선으로 하차 벨이 동작할 수 있도록 설계하였다.

그림 3은 실제 사용 중인 하차 벨 회로도에 Raspberry Pi와 릴레이 모듈을 연결한 회로도이다.

OTNBBE_2022_v22n1_51_f0003.png 이미지

그림 3. 하차 벨 회로도

Fig. 3. Drop-off Bell Circuit

기존 버스에 장착된 하차 벨을 누르면 벨이 울리고 중문 스위치를 작동시켜 하차 벨의 불빛이 꺼지도록 하는 자기 유지회로에 앞문 스위치 역할을 하는 토글스위치와 하차 벨 제어를 위한 릴레이 모듈을 회로에 추가하였다. 아래 그림은 하드웨어와 서버 및 애플리케이션 간의 통신을 나타낸 하드웨어 구성도이다.

그림 4의 하차 벨 회로도를 토대로 구성된 하차 벨 모듈 제어를 위해 Raspberry Pi를 연결한다. 그리고 Raspberry Pi와 사용자용 애플리케이션 간의 Beacon 송·수신을 통해 하차 벨이 동작하는데 Raspberry Pi의 BLE 기능을 활성화하기 위하여 Bluetooth 4.0 이상을 지원하는 4B 모델을 채택하였다.

OTNBBE_2022_v22n1_51_f0004.png 이미지

그림 4. 하드웨어 구성도

Fig. 4. Hardware System Diagram

아래 그림은 사용자와 서버 간의 통신과정과 데이터베이스 업데이트 과정에서 무중단 자동 배포 설정에 대한 스케줄링 구성도이다.

OTNBBE_2022_v22n1_51_f0005.png 이미지

그림 5. 소프트웨어 구성도(서버)

Fig. 5. Software System Diagram(Server)

서버 개발은 AWS EC2를 사용하여 Ubuntu/Linux OS 환경에서 Apache Tomcat으로 구축한다. AWS EC2는 3.35.30.64의 IP주소를 갖고 ‘wetayo’ 하나의 EndPoint를 가지며 이를 통해 Query와 Mutation를 사용한다.

서버 도메인은 http://3.35.30.64/wetayo으로 사용자가 요청을 보내면 EC2 내부의 Nginx가 http 요청을 받고 해당 도메인을 Apache Tomcat이 작동하고 있는 8081번 포트로 포트포워딩을 해줌으로써 웹 요청을 처리한다. 후에 Github Action을 통해 자동 build가 수행되고 AWS S3에서 build된 파일을 옮겨 저장해 AWS Code Deploy에서 자동 배포를 담당해 서버의 무중단 배포를 구성했다.

Spring Boot로 작성된 서버는 AWS RDS의 MySQL 과 통신한다. 데이터베이스에 저장된 정류장, 노선 정보는 AWS Lambda를 이용해 버스 공공 데이터 API로부터 데이터를 가져와 업데이트되도록 구축하였고 매일 오전 01:00 시에 자동으로 업데이트되도록 Cloud Watch 를 이용해 스케줄링하여 사용 편의성을 높였다.

6. 기능 수행 흐름도

본 논문의 시스템은 시각장애인의 사용성을 고려하여 설계하였다. 아래의 그림 6은 사용자가 애플리케이션을 사용하는 시스템의 시나리오 흐름도이다.

OTNBBE_2022_v22n1_51_f0006.png 이미지

그림 6. 기능 수행 흐름도

Fig. 6. Flow Diagram of ‘WeTayo’

사용자 애플리케이션의 메인화면에서 ‘정류소 선택’ 버튼을 누르면 사용자 기준 반경 200m 내 정류소를 구축된 데이터베이스에서 데이터를 가져와 리스트로 출력한다. 이후 원하는 정류소를 선택하면 해당 정류소에 정차하는 버스의 리스트가 출력되고 원하는 버스를 선택 후 ‘탑승 예약’ 버튼을 누르면 탑승이 예약된다. 모든 동작은 접근성 지침[33]에 따라 대체 텍스트를 통해 음성으로 피드백 받을 수 있다.

사용자가 하차를 희망할 시 사용자 애플리케이션의 ‘하차 벨’ 버튼을 누르면 Raspberry Pi와 Beacon 송·수신을 통해 무선으로 하차 벨을 동작시킨다.

Ⅳ. 실험 및 결과

본 논문에서는 ‘WeTayo’ 시스템을 실제 버스 승·하차에 적용할 수 있는지 확인하기 위하여 데모환경을 구성하여 진행하였다. 버스 공공 데이터 API에서 제공하는 버스 고유 ID와 정류소 ID 값에 특정 값을 할당하여 데모환경을 구성하였고. 데모 위치는 경기도 시흥시 정왕동- 2121 한국산업기술대학교로 선정하였다.

그림 7은 사용자 애플리케이션을 실행한 화면이다. 데모 위치를 기준으로 가장 가까운 정류장인 “한국산업기술대” 정류소를 선택할 수 있으며 주변 정류장이 거리순으로 내림차순 정렬된다. 정류소를 선택하면 한국산업기술대 정류장에 정차하는 버스 리스트를 제공하며 좌우 버튼을 통하여 버스를 선택하고 하단의 탑승 예약 버튼으로 탑승을 예약할 수 있다.

OTNBBE_2022_v22n1_51_f0007.png 이미지

그림 7. 사용자 애플리케이션 실행 화면

Fig. 7. User application execution screen

그림 8은 버스 애플리케이션을 실행한 화면이다. 사용자가 버스 예약을 확정하면 서버를 중계하여 버스 기사 애플리케이션의 중앙 컴포넌트에 예약 여부가 표시된다. 버스 기사는 이를 통해 정류장에 시각장애인의 탑승을 인지할 수 있으며 버스 앞문을 개방함과 동시에 버스 외부 스피커를 통해 도착한 버스 번호를 정류장에 송출하여 시각장애인의 승차를 유도한다.

OTNBBE_2022_v22n1_51_f0008.png 이미지

그림 8. 버스 기사 애플리케이션 실행 화면

Fig. 8. Bus driver application display

그림 9는 사용자 애플리케이션으로 무선 하차 벨을 구동한 화면이다. 그림 10은 무선하차 벨의 모습이다. Bluetooth를 이용하여 사용자 애플리케이션과 OS에서 지정한 범용고유식별자(UUID)를 전송이 가능한 iBeacon[34] 을 사용하였다. 사용자 애플리케이션은 라즈베리파이의 UUID와 major번호를 지정해 비콘 정보를 송신한다. 신호를 수신받으면 major 번호를 앱 고유의 major 번호로 수정하고 수정된 UUID를 다시 송신한다. 라즈베리파이는 신호를 수신받고 릴레이 모듈을 통해 하차 벨을 동작시킨다.

OTNBBE_2022_v22n1_51_f0009.png 이미지

그림 9. 무선 하차 벨 동작

Fig. 9. Wireless button function

OTNBBE_2022_v22n1_51_f0010.png 이미지

그림 10. 무선 하차 벨 모듈

Fig. 10. Wireless buzzer module

이 실험 결과를 통해 시각장애인의 버스 승차와 하차에 있어 모든 과정에 대한 해결방안을 확인할 수 있다.

Ⅴ. 결 론

시중에 서비스되고 있는 시각장애인을 위한 버스 이용 보조시스템들과 기술들을 분석한 결과 대다수 기능이 사용자의 승차에만 집중된 것을 알 수 있었다. 이마저도 사용자의 접근성을 고려하지 않고 설계된 서비스들이 많았고 시스템 업데이트와 유지관리에 소홀한 서비스들을 발견할 수 있었다. 본 논문에서 다루는 버스 승·하차 시스템은 사용자 접근성에 중점을 두어 직관성과 편리성을 목표로 설계하였다. 고 대비 UI·UX를 반영하였으며 간단한 동작으로 애플리케이션을 사용할 수 있도록 구성하였다. 버스 승차–탑승–하차라는 전체적인 시나리오에서 시각장애인들이 이용에 있어 이질감이 들지 않도록 개발하였다. 현재 실제 버스에 부착해 테스트를 진행하지는 못하였지만, 관계부처와의 협의와 지속적인 유지·보수과정을 통하여 서비스 범위를 점진적으로 확장해 나갈 계획이다.

참고문헌

  1. 2017 National Survey on Persons with disabilities, http://repository.kihasa.re.kr/handle/201002/30429
  2. Samsung Tomorrow Solutions(2014) - SonGile, https://news.samsung.com/kr
  3. MBC, news desk, 2019-12, https://youtu.be/saoX-lR-iJ0
  4. Hyun Kyung Noh, et al. "Big Data Analytic System based on Public Data", The Journal of the Institute of Internet, Broadcasting and Communication, vol. 20 no. 5, IIBC, pp. 195-205, Apr. 2020. DOI: https://doi.org/10.7236/JIIBC.2020.20.5.195
  5. Ji Young Yoon, Hyeon Ji Lee, Sung Soo Hwang, "Bus Arrival Guide Application for the Blind and Low Vision", The HCI Society of Korea, pp. 858-861, Jan. 2018.
  6. Seung Hee Ko, Seung Joon Park, Gi Won Sur, Yoo Jung Shin, Jae Young Heo, Sung Soo Hwang, "A Mobile Bus Guide Application Interface to Enhance Information Accessibility of the Low Vision", The HCI Society of Korea, pp, 649-652, Feb. 2017.
  7. Sang min Yuk, Ji yun Kim, "Bus-riding Information System for the Visually Handicapped Using Beacon", The HCI Society of Korea, pp. 427-428, Jan. 2016.
  8. Flutter, https://flutter.dev/
  9. Lee, Seong-Joo, et al. "Smart Cane for the Blind Interworking with Sound Signal Generator." The Journal of The Institute of Internet, Broadcasting and Communication, vol. 17, no. 6, IIBC, pp. 137-143, Dec. 2017. DOI: https://doi.org/10.7236/JIIBC.2017.17.6.137
  10. Minsol Cheon, Jiyoung Lee, Jinkyu Choi, "A Study on Improvement of Indoor Position Using BLE 5.0" The Journal of Korean Institute of Information Technology, vol. 16, no. 4, pp. 43-49. Aug. 2018. DOI: http://dx.doi.org/10.14801/jkiit.2018.16.4.43
  11. Hee Sook Kim, "Design of Tour Guide System using Bluetooth 4.0 and WiFi Sensor Technology" The Journal of the Korea Academia-Industrial cooperation Society, vol. 16, no. 10, pp. 6888-6894, 2015. DOI: https://doi.org/10.5762/KAIS.2015.16.10.6888
  12. Inchul Yang, et al. "A study on a distance based coordinate calculation method using Inverse Harversin Method", Journal of Digital Contents Society, vol. 20, no. 10, pp. 2097-2102, Oct. 2019. DOI: http://dx.doi.org/10.9728/dcs.2019.20.10.2097
  13. Raspberry pi 4 Model B 8GB, https://www.raspberrypi.com/products/raspberry-pi4-model-b/
  14. MTS-102 Toggle Switch, https://www.eleparts.co.kr/goods/view?no=32378
  15. Canleen, CDS-100, 2CH Dynamic Mini Speaker 3W*2, https://www.coupang.com/vp/products/238402461?vendorItemId=4909163780&sourceType=MyCoupang_my_orders_list_product_title&isAddedCart=
  16. SZH-EK082 Arduino 1Ch 5V Relay Module, https://www.devicemart.co.kr/goods/view?no=1358496
  17. Daewoo Bus Stop Bell, https://smartstore.naver.com/miz_tech/products/5217980382?NaPm=ct%3Dkxac7lso%7Cci%3D830e8e11833b2f47588fcc31f2c0d5dd916a6558%7Ctr%3Dsls%7Csn%3D1188832%7Chk%3Dab086396d26deaba566a8b1422bef1ff3cc8aad1
  18. Raspbian, https://www.raspbian.org/
  19. AWS EC2, https://aws.amazon.com/ko/ec2/
  20. AWS CodeDeploy, https://aws.amazon.com/ko/codedeploy/
  21. Nginx, https://www.nginx.com/
  22. Amazon CloudWatch, https://aws.amazon.com/ko/cloudwatch/
  23. AWS Lambda, https://aws.amazon.com/ko/lambda/
  24. Github Action, https://github.com/features/actions
  25. Spring Boot, https://spring.io/projects/spring-boot
  26. AWS RDS, https://aws.amazon.com/ko/rds/
  27. IntelliJ, https://www.jetbrains.com/ko-kr/idea/
  28. Visual Studio Code, https://code.visualstudio.com/
  29. Dart, https://dart.dev/
  30. MySQL, https://www.mysql.com/
  31. Amazon S3, https://aws.amazon.com/ko/s3/
  32. gbis Open API, http://www.gbis.go.kr/gbis2014/publicService.action?cmd=openApiInfo
  33. Mobile Application Accessibility(KSX3253) https://www.nld.go.kr/ableFront/new_standard_guide/accessibility.jsp
  34. iBeacon, https://developer.apple.com/ibeacon/