• 검색 결과가 없습니다.

자율주행 로봇 만들기

N/A
N/A
Protected

Academic year: 2022

Share " 자율주행 로봇 만들기"

Copied!
14
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

인공지능시대, 모든 교사를 위한 SW교육

- 미래의 교통, 자동차와 소프트웨어 (2) -

피지컬 컴퓨팅용 자율주행차 기술탐색

자율주행 로봇 만들기

(2)

1 피지컬 컴퓨팅용 자율주행차 기술 탐색

1. 자율주행차 관련 기술 탐색

1자율주행차 기술 단계는 세계적으로 통용되는 미국 국제자동차기술자협회(SAE)에서 분류한 레벨0 ~ 레 벨5까지 6단계로 구분을 합니다. 크게 레벨0~레벨2는 사람이 운전을 주도하되, 자율주행 시스템 일 부 기능이 안전한 주행을 위해 도움을 주는 단계로 차량 자체에서 주변을 인식하고 차량을 제어하는 센서, 전자제어 시스템이 중요합니다. 따라서, 기존의 차량 제조업체 중심으로 발전하고 있으며 대부 분의 최신차량에는 레벨2 단계까지는 탑재되어 있다고 봐도 무방합니다.

레벨3 부터는 사람보다는 자동차와 인공지능에 의한 자율주행시스템이 운전을 주도하며, 레벨3는 위험 한 상황에서 사람에게 알려주지만, 레벨4 부터는 사람이 신경을 쓰지 않아도 되는 단계입니다. 대부 분의 자율주행 기업들이 2020년 까지는 레벨3을, 레벨4와 레벨5는 2025년과 2035년에 상용화를 목 표로 연구개발 중입니다.

우리가 피지컬 컴퓨팅 교구를 활용한 수업에 적용할 수 있는 자율주행차 관련 기술은 무엇이 있을지 자 율주행차 레벨별로 어떤 기술이 있는지 조금 더 살펴보도록 하겠습니다.

자율주행자동차의 기본적인 작동은 사람이 운전하는 원리와 같이 ‘인지→판단→제어’의 3단계를 거칩니 다. 먼저 최종목적지를 입력하고 경로를 결정합니다. 이후 차량에 장착된 센서들과 외부 통신을 통해 주변 상황에 대한 정보를 수집합니다. 그다음부터는 정밀하게 위치를 계산하고, 조향 및 가·감속을 결 정해 차량이 스스로 경로를 따라 운행하게 됩니다.

인지는 센서나 카메라를 통해 환경을 인식하는 것으로, 피지컬 컴퓨팅 교구에서 주변을 빛을 인지하고 소리의 크기를 인식하는 역할과 동일합니다. 판단은 인지한 상황에 대한 정보를 바탕으로 주행전략 을 판단하는 것으로, 프로그래밍으로 소프트웨어를 만들어서 처리하는 것과 같은 역할을 합니다. 마 지막으로 제어는 실질적으로 차량을 제어(ex. 속도조절, 방향제어 등)하는 것으로, 모터를 제어하거나 LED를 켜거나 끄고, 소리를 내는 것에 해당합니다.

따라서, 피지컬 컴퓨팅 교구에서 센서를 통해 인지하고, 모터나 소리 등으로 차량을 제어하는 과정이 자 율주행차의 원리와 거의 비슷하므로 자율주행차의 기술에서 적용되어 수업에 사용할 수 있는 센서나 모터 등의 출력장치를 알아보도록 하겠습니다.

2) 자율주행차 안전 시스템 탐색

자율주행자동차는 각종 센서와 카메라를 통해 주변 환경을 인식하고, 실시간으로 수집한 교통 정보를 처 리하고 분석해서 정확한 판단을 내려야 하고, 하드웨어를 소프트웨어로 제어할 수 있는 기술이 필요합 니다. 현재는 완전한 자율주행자동차의 전 단계 기술들이 적용된 차량들이 출시되고 있습니다. 이는 ‘첨 단 운전자 보조 시스템(ADAS)’라고 불리는 운전자 주행보조 시스템 기술로, 요즘 자동차 회사에서 마케 팅하는 안전 관련 첨단 사양 중 대부분이 ADAS에 해당됩니다.  자동화된 첨단 장비로 안전 운전을 돕는 모든 장치를 ADAS라고 묶어서 부르며, 대표적인 기술은 다음과 같습니다.

(3)

단계 적용 기술 의미

레벨1

크루즈 컨트롤(CC ; Cruise Control) 정해놓은 속도로 주행하는 기술 차선 이탈 경보 시스템(LDWS

; Lane Departure Warning System) 차선 이탈 시 경보를 띄워주는 기술 자동 긴급 제동(AEB ; Autonomous

Emergency Braking, 또는 전방 추돌 장치(FCA ; Forward Coolision Avoidance Assist))

앞쪽의 차나 사람 등 충돌이 불가피하다고 판단 되면 스스로 제동하는 기술

레벨2

차선 유지 지원 시스템(LKAS ; Lane Keeping Assist System)

차선 이탈 시 바퀴를 움직여 차선 안으로 차를 돌려 놓는 기술

적응형 크루즈 컨트롤(ACC ; Adaptive Cruise Control)

센서로 앞 차와의 안전거리를 유지하여 정해놓 은 속도이하로 주행하거나 스스로 정차, 재출발 이 가능한 기술

주차 조향 보조 시스템(SPAS ; Smart parking Assistance System)

스스로 주차할 위치를 탐색하고 핸들을 조작하 면서, 운전자는 기어와 가속 페달만 조절하면서 주차하는 기술

레벨 1인 정도인 ‘운전자 지원’을 위한 ADAS 기술은 크루즈 컨트롤, 자동 긴급 제동, 차성 이탈 경보 시 스템 등 상황에 따라 1개 이상의 운전보조 장치가 개입하는 것으로 운전에 대부분을 운전자가 담당하며 알람이나 긴급 제동등의 기능을 제공하게 됩니다.

레벨 2는 ‘부분 자동화’ 단계로 관련 ADAS 기술은 차선 유지 지원 시스템, 적응형 크루즈 컨트롤, 주차 조향 보조 시스템 등 2개 이상의 주행 기능 융합 기능을 담당하는 것으로 운전자가 운전 중 손과 눈을 잠시 쉴 수 있는 상태를 의미합니다.

레벨 3부터는 인공지능 등 자율주행시스템이 운전의 대부분을 담당하게 되므로 자동차의 안전 장치 이 외에도 고정밀지도, 사물인터넷(IoT), 인공지능, 클라우드, 빅데이터, 5G 통신의 핵심 기술과 같이 발 전해야 합니다. 2020년 중반 안에는 상용화될 것으로 예상되며, 더욱 발전된 소프트웨어 기술과의 융 합이 필요합니다.

3) 자율주행차 형태의 피지컬 컴퓨팅 교구 살펴보기

2015 개정 교육과정에서 피지컬 컴퓨팅 도구는 초등학교 ‘실과’에서는 완성된 형태나 간단한 조립이 가 능한 모듈형태를, 중학교 ‘정보’에서는 여러 센서가 포함된 센서보드의 사용을 제시하였으며, 고등학 교 ‘정보’에서는 전자 회로를 구성하여 마이크로컨트롤러와 입ㆍ출력 장치들을 구성할 수 있도록 명 시되었습니다. 프로그래밍 도구 역시 초ㆍ중학교에서는 스크래치, 엔트리 등의 블록기반 프로그래밍 언어를, 고등학교에서는 파이썬 등의 텍스트 기반 프로그래밍 언어를 제시하였습니다.

이번 연수에서는 자율주행차와 같은 자동차 형태의 완성된 햄스터 로봇으로 블록 기반 프로그래밍 도구 를 활용하여 자율주행차의 레벨1~2에 해당되는 첨단 운전자 보조 시스템(ADAS)의 기술을 시뮬레이 션 해보도록 할 예정입니다.

이를 위해 피지컬 컴퓨팅 교구의 센서 등의 입력장치와 모터, LED 등의 출력장치에 대해 살펴보도록 하 겠습니다.

<햄스터 로봇 살펴보기>

(4)

햄스터 로봇은 가로 3.5cm, 세로 4cm, 높이 3cm 정도의 작고 귀여운 완성형 로 봇으로 여러가지 센서와 모터, LED 등이 포함된 소프트웨어 교육용 로봇입니다.

초등학교나 중학교에서 피지컬 컴퓨팅 수업에 많이 사용되며 쉬운 블록형 프로그 래밍 뿐만 아니라 파이선이나 C와 같은 범용 프로그래밍 도구로도 제어할 수 있 습니다.

- 입력장치 : 근접센서(2개), 바닥센서(2개), 밝기센서, 온도센서 등 - 출력장치 : 모터(2개), 8색 LED(2개), 스피커 등

햄스터 로봇에는 여러가지 센서가 포함되어 있습니다. 자율주행차 기술에 적용할 수 있는 센서에 적용 할 수 있는지 테스트 해보겠습니다.

① 근접센서 : 햄스터 앞쪽에 보면 왼쪽과 오른쪽에 움푹 패어있는 부분이 있습니다. 바로 이 부분이 적 외선을 발산하여 물체에 반사되어 되돌아오는 빛의 양을 측정하여 거리를 측정할 수 있는 근접센서입니다. 대략 1~30cm 범위의 물체를 감지할 수 있으나 어두운색 은 흡수하고 밝은 색은 반사하는 적외선의 특성상 물체의 색상이나 크기 등에 영 향을 받게 됩니다. 자율주행차에서 앞 차와의 거리를 측정해 자등으로 멈추거나 지 정된 속도 이하의 주행이 가능한 적응형 크루즈 컨트롤(ACC) 그리고, 앞에 차나 사람 등 사물이 인 지되면 자동으로 멈추는 자동 긴급 제동(AEB) 기술 등을 시뮬레이션 할 수 있습니다.

② 바닥센서 : 햄스터 로봇의 바닥 부분을 보면 살짝 튀어나와 있는 부분이 있습니다. 그 안에 작원 원 형모형의 바닥센서가 왼쪽가 오른쪽에 하나씩 있습니다. 바닥센서도 근접센서처럼 송 신한 적외선을 수신하여 밝기를 측정하는 센서지만, 근접센서는 거리를 인식하는대신 바닥의 밝고 어두운 전도에 따라 0~100사이의 값을 환산하여 보내줍니다. 이는 바닥 의 색을 어느 정도 감지할 수 있으므로 바닥에 검정색이나 하얀색 선이 있으면 선을 따라움직이거나 차선 안으로만 이동할 수 있도록 프로그래밍 할 수 있습니다. 따라서, 자유주행차에 서 차선을 이탈할 때 운전자에게 경보음 등의 안내를 하는 차선 이탈 경보 시스템(LDWS)이나 그보 다 한단계 발전한 차선을 이탈하게 되면 자동으로 핸들을 조작해서 차선 안으로 돌려놓는 차선 유지 지원시스템(LKAS) 기술을 시뮬레이션 할 수 있습니다.

③ 기타 센서 :

(밝기센서) 햄스터 로봇 앞족의 구멍이 있는 부분에는 빛의 밝기를 감지할 수 있는 밝기 센서 가 내장되어 있습니다. 빛의 단위인 럭스(Lux)의 값을 0~65535까지 측정할 수 있습니다.

밝기센서는 자동차에서는 자동 조명모드로 설정 시 밤이나 터널을 통과할 때 자동으로 실 내등, 헤드라이트 등이 켜지는 등 기본적인 센서로 사용되고 있습니다.

(온도센서) 온도센서가 내장이 되어 –40도~87.5도 까지 온도을 측정할 수 있습니다. 자동차에서 에어컨 이나 히터 등 차량내 온도를 조절하기 위한 공조장치를 제어하는데 사용됩니다.

햄스터 로봇에는 센서 뿐만 아니라 소리를 내는 스피커, 색을 표현하는 LED, 그리고, 로봇을 구동시키는 2개의 모터가 포함되어 있습니다. 자율주행차의 제어는 ‘인지 – 판단 – 제어’의 단계를 거치게 됩니 다. 센서는 ‘인지’부분에 해당되어 주변의 물체나 상황을 판단하게 됩니다. 모터나 LED 등의 구동장치 는 소프트웨어에 의해 판단된 결과로 실제 자동차의 제어를 실시하기 위한 장치입니다. 따라서, 자율 주행차 기술을 적용할 수 있는지 여러 테스트가 필요합니다.

(5)

① 모터 : 모터는 로봇 바닥 부분에 왼쪽과 오른쪽 바퀴에 각각 연결 되어 있습니다. 최대 10cm/초를 움직일 수 성능으로 0(멈춤) ~ 100(최대 속도)까지 100단계로 속도를 제어할 수 있습니 다. 좌우의 모터가 있으므로 왼쪽과 오른쪽 모터를 전진시키면, 로봇이 전진하고, 둘 다 후진을 시키면 로봇이 후진을 하게 됩니다. 또한, 한쪽 모터만

움직이거나 두 개의 모터를 반대로 회전시키면 로봇의 방향을 돌릴 수 있습 니다. 자율주행차에서 주행을 위한 기초적인 구동장치 입니다.

② LED : 로봇 앞쪽 하단에 하얀 커버 안에 왼쪽과 오른쪽 2개의 LED가 내장되어 있습니다. 빨간색, 노 란색, 초록색, 하늘색, 파란색, 자주색, 하얀색으로 7개의 색을 표현할 수 있으며, 자율주행차에서 헤 드라이트나 미등 뿐만 아니라 위급상황 등의 외부에 어떤 정보를 알리는데 사용할 수 있습니다.

③ 스피커 : 로봇 위쪽에는 피에조 스피커가 내장되어 있습니다. 피에조 스피커는 얇은 판에 전기가 흐 르면 진동이 소리로 들리는 원리를 이용해서 “삐”소리를 내거나 주파수에 따른 음(도레미파솔라시 도) 등의 소리를 낼 수 있습니다. 자율주행차에서는 운전자에게 경보음을 안내하거나 음 악을 들려줄 수 있으며, 외부 차량에게 경고의 알림을 기능을 담당할 수 있습니다.

피지컬 컴퓨팅은 사물인터넷의 기초가 되고 센서를 통해 주변 환경을 인식하고, 네트워크를 통해 필요 한 정보를 공유하거나 처리한다는 사물인터넷 특성에서 생각해보면 피지컬 컴퓨팅은 사물인터넷 분 야를 구성하는 중요한 기술입니다. 또한, 피지컬 컴퓨팅 교구는 장난감 같은 흥미로운 도구라는 단순 한 특징 뿐만 아니라 교육적은 측면에서도 긍정적인 영향을 미치게 됩니다.

첫번째는 학습자 스스로 제어할 수 있는 학습 환경을 제공할 뿐만 아니라 학생들은 대부분 로봇 자체에 대해 많은 흥미와 호기심을 가지고 이를 작동시켜 보고자 하는 욕구가 강하기 때문에 학습의 동기 유발에 효과적입니다.

두번째는 가상의 환경에서 추상적인 것을 배우는 것보다 것이 시각적ㆍ물리적으로 구체적이고 직접적인 경험과 결과를 제시하기 때문에 학습이해도가 높습니다.

세번째는 논리적사고력, 창의적 문제해결력 등의 고등 인지능력 뿐만 아니라 흥미와 몰입도 등의 정의 적 능력에도 긍정적 영향을 끼친다는 연구가 많이 있습니다.

네번째는 정보통신기술(ICT)을 접목하여 자신이 필요한 물건을 스스로 설계, 제작, 공유하는 메이커 운동 (Maker movement) 등 학생들의 능동적 태도 변화를 위한 도구로 활용될 가능성이 있습니다.

단순히, 흥미 유발용 학습 동기 뿐만 아니라 학습 이해도, 인지 및 정의적 능력 향상, 능동적 태도 변화 를 가져올 수 있는 교구입니다.

하지만, 피지컬 컴퓨터 교구가 외적 동기유발은 가능하나 내적 동기유발을 시키기 위해서는 학습자 눈 높이에 맞는 수업 사례와 내용이 필요하며, 조립과 꾸미기 등에 시간을 많이 빼앗긴다는 점과 교구 구입 비용이 만만치 않다는 단점도 있습니다.

(6)

정리하기

1) 각종 센서와 카메라를 통해 주변을 인식하고, 수집한 교통 정보를 분석해서 안전하게 제어하는 기술들을 첨단 운전자 보조 시스템(ADAS)라고 한다.

2) 피지컬 컴퓨팅은 초등학교의 경우 ‘실과’과 교육과정에, 중ㆍ고등학교의 경우 ‘정보’과 교육과정에서 편성되어 있다.

3) 햄스터로봇에는 근접센서, 바닥센서, 밝기센서, 온도센서 등이 내장되어 자율주행차의 원리를 익힐 수 있다.

(7)

2 자율주행 로봇만들기

1. 컴퓨팅 사고력 기반 문제해결 과정

2015개정 교육과정에서 소프트웨어 교육 핵심은 컴퓨팅 사고력 함양입니다. 이미 지난 3차시에서 컴퓨 팅 사고력에 대해 학습하고, 컴퓨팅 사고력을 활용한 문제 해결과정을 살펴보았습니다. 이 내용을 다 시 정리하여 CT기반 프로젝트 학습으로 연결시켜보겠습니다.

일반적인 문제해결 과정과 빗대어 보면

문제 해결 과정 컴퓨팅 사고력 기반 문제해결

1. 문제 이해 및 정의 2. 문제 해결 방법의 설계 3. 문제 해결 방법의 구현 4. 결과 분석 및 평가

추상화 자료 수집 및 분석 자료 표현

문제 이해 및 분석, 핵심 요소 추출, 문제 분해, 모델링, 알고리즘

자동화 프로그래밍 및 결과 분석

일반적인 문제 해결과정은 문제를 이해하고 해결할 문제를 정의하고 → 어떻게 해결할지를 설계하게 됩 니다. → 해결할 방법대로 문제를 해결하거나 새로운 것을 만들고 → 잘 해결되었는지 결과를 확인하고 더 좋은 방법이 있는지 평가하게 됩니다.

이와 비슷하게 컴퓨팅 사고력 기반 문제 해결은 크게 추상화와 자동화로 나뉘며 추상화는 문제를 이해하 고 분석해서 필요한 요소는 무엇이고, 불필요한 요소는 무엇인지를 찾고, 큰 문제를 작게 나눠어 해결방 법을 모델링하고 결정된 해결 방법으로 알고리즘을 설계하게 됩니다. 자동화 과정에서는 설계한 알고리즘 대로 프로그래밍하여 그 결과를 확인하고 오류가 없는지, 더 좋은 방법은 없는지 평가하는 과정을 거치게 됩니다. 하지만, 이러한 분류는 고정된 순서를 의미하는 것은 아니며 문제를 해결하는 상황에 따라 융통 성 있게 바뀔 수 있습니다. 특히 ‘자료 수집 및 분석’, ‘자료 표현’의 과정은 문제 해결의 전 과정에서 융통 성 있게 적용할 수 있습니다.

2. ‘자율주행차 만들기’ 프로젝트 수업

‘자율주행차 만들기’ 프로젝트 수업을 위해 2015개정 중학교 ‘정보’과 교육과정을 살펴보겠습니다. 가장 먼저 성취기준을 분석해야 합니다.

<관련 성취기준(2015 개정 중학교 ‘정보’과 교육과정)>

[9정01-01] 정보기술의 발달과 소프트웨어가 개인의 삶과 사회에 미친 영향과 가치를 분석하 고 그에 따른 직업의 특성을 이해하여 자신의 적성에 맞는 진로를 탐색한다.

[9정03-01] 실생활 문제 상황에서 문제의 현재 상태, 목표 상태를 이해하고 목표 상태에 도 달하기 위해 수행해야 할 작업을 분석한다.

[9정04-05] 실생활 문제 해결을 위한 소프트웨어를 협력하여 설계, 개발, 비교・분석한다.

[9정05-02] 센서를 이용한 자료 처리 및 동작 제어 프로그램을 구현한다.

(8)

<CT기반 ‘자율주행차’ 프로젝트 학습 단계>

문제 이해 및 분석

문제 분해

핵심요소 추출 햄스터 로봇의

센서와 구동장 치로 구현할 자 율주행차 기술 분석하기

구현할 기능별 로 작은 문제로 나누기

분해된 문제에 서 필요한 요소 를 추출하기

알고리즘 설계

프로그래밍

테스트 및 검증 문제해결을 위한

알고리즘 표현

설계한 알고리즘을 프로 그래밍하여 자동화

프로그램 테스트 및 평가

1) 문제 이해 및 분석 - 피지컬 컴퓨팅 교구에서 적용할 수 있는 자율주행차 기술 탐색 앞에서 살펴본 햄스터 로봇으로 어떤 기능을 가진 자율주행차를 만들 수 있을까?

레벨1~2 기술 중 햄스터 로봇의 센서나 구동장치에 적용할 수 있는 것이 무엇이 있을까요?

먼저 레벨 1, 2단계의 자율주행 기술을 햄스터 로봇에서 구현할 수 있는 것이 무엇인지 살펴보자.

<자율자동차 기술 단계에 해당되는 피지컬 컴퓨팅 교구 매칭>

단계 적용 기술 의미 센서 및 구동장치

레벨1

크루즈 컨트롤(CC) 정해놓은 속도로 주행하는 기술 차선 이탈 경보 시

스템(LDWS) 차선 이탈 시 경보를 띄워주는 기술 자동 긴급 제동

(AEB)

앞쪽의 차나 사람 등 충돌이 불가피하다고 판단되면 스스로 제동하는 기술

레벨2

차선 유지 지원 시 스템(LKAS)

차선 이탈 시 바퀴를 움직여 차선 안으로 차를 돌려

놓는 기술 바닥센서

주차 조향 보조 시 스템(SPAS)

스스로 주차할 위치를 탐색하고 핸들을 조작하면서, 운 전자는 가속 페달만 조절하면서 주차하는 기술

적응형 크루즈 컨 트롤(ACC)

센서로 앞 차와의 안전거리를 유지하여 정해놓은 속도

이하로 주행하거나 스스로 정차, 재출발이 가능한 기술 근접센서

햄스터 로봇의 센서 중 앞의 장애물은 인식할 수 있는 근접센서는 앞 차와의 거리를 인식해서 속도를 조절하는 적응형 크루즈 컨트를(ACC) 기술과 검정색과 하얀색 등 바닥의 색을 인식할 수 있는 바닥 센서로 차선 유지 지원 시스템(LKAS)을 시뮬레이션 할 수 있습니다.

이때, 그림과 같이 시뮬레이션을 위해 하얀색 위에 검정색으로 차선을 대신하여 사용하도록 하겠습니다.

(9)

2) 문제 분해

햄스터 로봇을 이용하여 자율주행차 기술을 시뮬레이션 하기 위해 작은 문제로 나누는 과정입니다. 문 제 이해 및 분석 단계에서 적응형 크루즈 컨트를(ACC), 차선 유지 지원 시스템(LKAS)을 구현을 결정 했습니다. 그렇다면 두 개의 기능이 무엇이고 어떻게 햄스터 로봇에 적용할지를 생각해보겠습니다.

① 적응형 크루즈 컨트롤(ACC) : 목표한 속도 이하에서 앞 차와의 거리에 따라 차의 속도를 제어하는 기술이며, 앞 차가 멈췄다가 다시 출발하게 되면 운전자의 개입없이도 재출발하게 됩니다. 적응형 크 루즈 컨트롤 기술은 자동긴급제동 기술로 모터의 속도를 제어하게 됩니다.

② 차선 유지 지원 시스템(LKAS) : 자동차가 옆 차선에 침범하지 못하도록 핸들을 조절하여 현재 차선을 유지시키는 기술로 햄스터 로봇에서는 바닥 센서에 의해 옆 차선을 인지하게 되면 로봇의 방향을 조 절하게 된다. 차선 유지 지원 시스템은 앞차와의 간격의 여유가 있어 주행 중일 때 사용되는 기술로 적응형 크루주 컨트롤 기술로 차량이 주행 중일 때만 사용됩니다.

3) 핵심 요소 추출

햄스토 로봇으로 자율주행차를 시뮬레이션 하기 위해 분해한 두 개의 작은 문제를 실제 소프트웨어로 구현하기 위해 필요한 요소를 추출하는 단계입니다.

구현 기술 핵심요소 설명

적응형 크루즈 컨트롤 (ACC)

거리 근접센서의 값

속도 근접 센서의 거리에 따라 모터의 속도를 가감(기본 속도 : 50)

차선 유지 지원 시스템 (LKAS)

바닥 명암 왼쪽과 오른쪽 바닥 센서의 값

속도 왼쪽 바닥센서나 오른쪽 바닥센서가 차선 경계를 만나게 되면 반 대방향으로 로봇을 움직이도록 속도를 제어함.

LED 주행 중일때는 초록색, 바닥에 차선을 닿는 부분만 파란색을 켬.

적응형 크루즈 컨틀로의 경우 근접 센서의 값, 즉 거리에 따라 햄스터 로봇을 속도를 조절하기 위해 모 터의 속도가 필요합니다.

차선 유지 지원 시스템은 바닥의 명암에 따라 햄스터 로봇이 차선을 넘지 못하도록 왼쪽 바닥센서가 차

(10)

꺾어서 차선을 유지토록 합니다. 이때, 바닥이 차선을 닿으면 파란색을 켜도록 하며, 나머지 주행 중 일때는 초록색을 켜도록 합니다.

4) 알고리즘 설계

적응형 크루즈 컨트롤, 차선 유지 지원시스템을 햄스터 로봇에 적용하기 위해서는 햄스터 로봇의 근접 센서, 바닥센서의 값을 인식하여 모터와 LED에 명령을 내려야 합니다.

그렇게 하기 위해서는 먼저 센서의 값을 측정해 보고 각 상황에 따라 모터와 LED의 값을 내리는 알고 리즘이 필요합니다.

근접센서의 경우 위의 <표>와 같이 장애물과의 거리가 10cm 이상이면 근접센서의 값이 30이하이고, 5~10cm 범위면 60에서 30까지의 분포를 보입니다. 또한, 5Cm이하일 때는 70~60까지 이고, 오히려 로봇과 밀착하거나 0.5cm 이하의 거리에서는 인식을 못하는 경우도 생기기 됩니다. 따라서, 5cm 이 하일 때는 자동차를 멈추게하고, LED에서 긴급상황을 알리고자 빨강색으로 설정을 합니다.

장애물과의 거리 근접센서의 값 10cm 이상 30 미만 5cm ~ 10cm 60~30 0.5cm ~ 5cm 70~60

0.5cm 미만 50~0 (인식 못함)

바닥 센서는 하얀색일 때는 80이상, 검정색일 때는 20이하의 값이 입력되나 중간일 때는 20~80까지 변 화가 큰 편입니다. 따라서, 검정색 즉, 20미만이 인식되면 차를 반대편으로 이동시킵니다. 예를 들어.

왼쪽 바닥이 검정색이면 오른쪽 바퀴의 모터를 0으로 정하면 차체가 왼쪽으로 움직이면서 차선을 유 지할 수 있습니다.

바닥 명암 바닥센서의 값

하얀색 80이상

하얀색과 검정색 중간 20~80

검정색 20미만

센서를 모두 테스트해봤다면, 자동 긴급 제동, 적응형 크루즈 컨트롤, 차선 유지 지원 시스템을 거리과 바닥 명암 값에 따라 분류를 해보고, 이를 모터와 LED값과 연동하여 자율주행차의 알고리즘을 만들 어보겠습니다.

(11)

적응형 크루즈 컨트롤 차선 유지 지원 시스템 장애물과의

거리

근접센서

의 값 모터 속도 바닥센서의 값 모터의 값

(왼쪽, 오른쪽) LED의 값 10cm 이상 30 미만 50 왼쪽 검정 20 미만 속도,0 왼쪽 파랑

5cm ~ 10cm 60~30 25

오른쪽 검정 20 미만 0,속도 오른쪽 파랑 양쪽 하얀색 그 외 속도,속도 초록 0.5cm ~ 5cm 70~60 0

상관없음 0,0 상관없음

0.5cm 미만 50~0 0

먼저 차량의 속도를 담당하는 적응형 크루즈 컨트롤은 거리에 따라 속도를 변하게 합니다. 먼저, ① 10cm 이상일 때(즉, 왼쪽 근접센서가 30초과이고, 오른쪽 근접센서도 30초과면) ②속도를 50으로 정 합니다.

③ 앞 차와의 거리가 5cm 미만이면(즉, 왼쪽 근접센서가 60초과이거나 오른쪽 근접센서도 60초과면) ④ 속도를 0으로 멈추도록 합니다.

⑤거리가 5~10cm 라면(①, ③ 이외의 상황이면) ⑥ 속도를 25로 정합니다.

적응형 크루즈 컨트롤 알고리즘

① 왼쪽 근접센서 < 30 그리고, 오른쪽 근접센서 < 30 이면 ② 속도 ← 50

③ 왼쪽 근접센서 > 60 또는 오른쪽 근접센서 > 60 이면 ④ 속도 ← 0

⑤ ①, ③ 이외라면 ⑥ 속도 ← 25

그리고, 차량 속도에 의해 검정색 차선을 넘지 않도록 유지하는 차선 유지 지원 시스템은 적응형 크루 즈 컨트롤에서 지정된 속도로 차의 움직임을 제어하게 됩니다. ① 왼쪽 바닥센서가 20미만으로 검정 색을 인지하게 되면 ② (왼쪽과 오른쪽 모터)를 각각 (속도, 0)으로 제어하면서 차가 오른쪽으로 휘도 록 하면서 ③ 왼쪽 LED를 파란색으로 구현합니다. ④오른쪽 바닥센서가 20이만이면 ⑤(왼쪽과 오른 쪽 모터)를 각각 (0, 속도)로 제어하면서 차가 왼쪽으로 휘도록 하면서 ⑥오른쪽 LED를 파란색으로 구현합니다. ⑦그 외에는 ⑧직진하도록 하며, 주행중이므로 ⑨초록색 LED를 켜도록 합니다.

(12)

차선 유지 지원 시스템 알고리즘

① 왼쪽 바닥센서 < 20 이면

② 왼쪽 모터←속도, 오른쪽 모터←0 ③ 왼쪽 LED ←파란색

④ 오른쪽 바닥센서 < 20 이면

⑤ 왼쪽 모터← 0, 오른쪽 모터←속도 ⑥ 오른쪽 LED ←파란색

⑦ ①, ④ 이외라면

⑧ 왼쪽 모터← 속도, 오른쪽 모터←속도 ⑨ 양쪽 LED ←초록색

실제로는 왼쪽과 오른쪽 바닥센서가 둘다 검정색을 만나는 등 아주 여러가지 예측 상황이 있으므로 이 는 본 연수에서는 생략하도록 하겠습니다. 실제 자율주행차에서는 카메라, 라이다 등 실제 상황을 인 식할 수 있도록 되어있으나, 햄스터 로봇으로 구현하는 것은 어렵습니다.

5) 프로그래밍

설계한 알고리즘을 블록형 프로그래밍 언어인 엔트리를 이용하여 프로그램을 구현해보도록 하겠습니다.

적응형 크루즈 컨트롤 프로그램 소스

앞 차와의 거리가 10cm 이상일 때는 속도를 50으로 설정하고 앞 차와의 거리가 5cm 미만일 때는 속도를 0으로 설정하며, 그 외에는(즉, 5~10cm 일때)는 속도를 25로 설정한다.

(13)

차선 유지 지원 시스템 프로그램 소스

차선을 유지하기 위해 좌ㆍ우 바닥센서로 차선을 감지합니다.

이때, 왼쪽 센서가 검정색을 인식하면 햄스터 로봇을 오른쪽 방향으로 이동시키고, 왼쪽 LED는 파란색을 켜고, 오른쪽 바닥 센서가 검정색을 인식하면 로봇을 왼족 방향으로 이동하고 오른쪽 LED를 파란색 으로 변경시킨다. 그 외(직진, 둘 다 검정이나 본 연수에서는 직진 일 때만 고려한다.)에는 직진하며 초록색 LED를 켠다.

6) 테스트 및 검증

작성한 프로그램을 실행해보겠습니다.

실제 여러 상황을 테스트 해보면서 오류가 있는지, 더 개선할 부분이 있는지를 찾아봐야 합니다. 그리고, 조금 더 정밀한 시뮬레이션을 하려면 앞 차와의 거리에 따라 속도를 세분화하기 위해 수식을 적용하 거나 센서 데이터를 수집하면서 앞으로를 예상하는 머신러닝 등도 적용할 수 있습니다. 다만, 본 연 수에서는 복잡하고 어려운 기술보다는 자율주행차를 이해하기 위한 정도이므로 이 정도로 테스트를 맞치도록 하겠습니다.

실제 학생들과의 수업에서는 테스트 및 검증 단계는 친구나 자신이 만든 프로그램을 분석하기 위해 비 판적 사고력 등의 고등인지능력을 향상시키므로 반드시 필요한 부분이라 할 수 있습니.

(14)

정리하기

1) 2015개정 교육과정에서 명시된 컴퓨팅 사고력(Computational Thinking)의 구성요소는 문제 이해 및 분석, 자료 수집 및 분석, 핵심요소 추출, 문제 분해, 모델링, 알고리즘, 프로그래밍이 있으며 문제해결 과정의 단계로 활용된다.

2) 컴퓨팅 사고력 기반한 자율주행차 만들기 프로젝트 수업에서는 문제 이해 및 분석 → 문제 분해 → 핵심 요소 추출 → 알고리즘 설계 → 프로그래밍 → 테스트 및 검증의 단계를 거치게 된다.

3) 햄스터로봇으로 자율주행차 만들기 수업에서 적응형 크루즈 컨트롤(ACC)와 차선 유지 지원 시스템(LKAS)의 기술을 근접센서와 바닥센서로 주변을 인지하고, 엔트리 프로그래밍 도구로 소프트웨어를 제작하여 모터와 LED로 제어하면서 자율주행차를 시뮬레이션 한다.

참조

관련 문서

[r]

푸스타이 박사 : 유전자변형 감자를 먹인 쥐에서 간 심장이 작아지고 뇌가 수축되는 , 이상 현상을 보인 실험 결과를 발표한 영국 로웨트

자료: 테슬라, 미래에셋증권 리서치센터 자료: 한국무역협회, 미래에셋증권 리서치센터.. 두번째는 소프트웨어 2.0의 도입이다. 더 큰 문제는 실제 운전 상황과 같이 수

다리를 다친 사람을 위한 로봇은 어떠한 기능들이 있어야

그러면 이제 선대칭도형 그리기 프로그램을 수정하여 점대칭도형 그리기 프로그램을 만들어 봅시다 .... 7-8차시 엔트리

먼저 여행상품이나 여행전문가의 블로그 등을 통해 수집된 전문가 기반 여정에서 경로를 추출 하고 이를 패턴화하는 전문가 경로 패턴화 알고 리듬, 여행자가 선택한

분석을 통해 도출한 기능, 재질, 그리고 장점들을 바탕으로 자율주행 모빌리티의 실내 구 조와 가변형 시트 디자인을 진행하였고, 가변형 시트의 스타일링과 수집된 기능,

(c) Result of inner space voxels Fig. Inner space voxels among parts... 본 논문에서 개발한 배수로에서의 역류 경로를 탐색하고 모사하는 알고리즘의 개요는