목록
설탕 한 숟갈
휴스타 AI 로봇 교육 3주 차, 생각보다 어렵네 본문
경산-포항을 오간 지 3주가 됐습니다. 어제(1일) 부로 C 프로그래밍 수업을 마쳤는데요. 뿌듯함보다는 또 하나의 과제를 떠안은 기분이랄까요? C 언어 기초부터 레고 마인드스톰 EV3 코딩까지 수업 진도가 너무 빨라서 따라가기 버거웠습니다. 배열이랑 포인터 변수까지 따라잡을만하면 수업 진도는 구조체 영역으로 더 멀리 앞서가기도 합니다.
휴스타 3주 차 일정은 EV3 코딩 수업이 주를 이뤘습니다. 네 다섯 명 단위로 조를 만들고 EV3 마인드스톰 레고 블록으로 라인 트레이서(Line Tracer)를 조립한 뒤 로봇C(RobotC) 프로그램으로 코드를 짜는 식이었습니다. 컴공과(컴퓨터공학과)를 전공한 일부 교육생들은 익숙한 듯 알고리즘을 코드로 풀어내며 문제 해결에 적극적이었으나 기계공학 혹은 전자공학과, 이공계열이 아닌 교육생들은 코드 구성에 어려움을 호소했습니다. 정보통신과를 전공한 저 역시 마찬가지였죠.
프로젝트는 세 분야로 진행됐습니다. 바닥에 빨노초 검지선을 그어서 특정 명령을 실행시키는 신호등 게임, 전방의 장애물을 연달아 피하는 로드 블록(block) 게임, 바닥에 그려진 선을 따라 목적지로 향했다가 최적 경로로 되돌아가는 미로 찾기(Maze) 게임이 이어졌습니다. 첫 프로젝트는 컬러 센서(Color Sensor), 둘째 프로젝트는 초음파 센서(Ultrasonic Sensor)를 각각 EV3에 부착해 간단한(?) 코드를 입히는 식이라 어떤 개념으로 동작하는지 금방 파악할 수 있었습니다.
마지막 프로젝트인 미로찾기는 좀 어려웠습니다. 컬러 센서 세 개(왼쪽, 가운데, 오른쪽)를 모두 이용하는 데다 분기점 별 경우의 수를 모두 고려해야 했거든요. 예를 들면 직우(├) 교차로에서 직진할 경우 가운데와 우측 센서에 검은색 선이 감지됐을 때(and) 앞으로 더 움직여서 가운데 센서에 검은색 선이 인식되면 앞으로 움직여라는 if 조건문을 달아야 합니다.
직진 구간이 없는 역 기역(┌) 굴절 구간, 직진(│)을 뺀 나머지 네 구간(┐, ┤, ┬, ┼)은 좌로만 돌고 막힌 길은 U턴하라는 지시 코드를 짜 줍니다. while을 쓴 반복문 안에서 if(만약~이면)랑 else if(만약~아니면)를 섞어가며 컬러 센서와 좌우 모터의 반응 속도를 정교하게 조절해야 목적지에 도달할 수 있습니다. 우회전, 직진, 좌회전, U턴을 담는 회전 배열(Array)을 따로 만들고 각 상황에 맞게 입히는 식이더군요.
여기서 끝이 아닙니다. 목적지를 찍고 다시 최적 경로대로 출발지로 되돌아가는 코드를 짜야 합니다. 이 파트에서 모든 조가 어려움을 겪었습니다. C 프로그래밍에서 생소했던 스택(Stack) 없이는 구현이 불가능했거든요. 출발지에서 목적지로 향하는 경로를 모두 참조(index)했다가 필요한 경로만 기억시키는 배열을 만들고요. 출발지로 되돌아갈 때 아파트처럼 층층이 쌓아둔 배열(1→5)을 꼭대기부터 역순(5→1)으로 불러서 한 번에 찾아가도록 만듭니다. 이 과정에서 어떤 조는 새벽 2~3시까지 강의실에 남아 브레인스토밍(Brainstorming)을 하더군요. 실로 놀라웠습니다.
알고리즘 구성, 스택을 어떻게 구현할 것인가에 관한 논의가 활발했습니다. 머릿속으로는 어떤 개념인지 이해가 가는데 로봇C에 얽힌 함수명은 C 언어 기초 교육 과정에서 다뤘던 형태랑 달라서 잘 눈에 익지 않더군요. 대학교 졸업과 동시에 코딩과 사회적 거리두기(?)를 했던 게 5~6년이 훌쩍 지나서 감을 찾기까지는 꽤 많은 시간이 걸릴 듯합니다. 내일모레(4일)부터는 지능 로봇 관련 특강이 쭉 이어집니다. 오늘은 평일 내내 뜨거워진 머리를 돌보며 정리 좀 해야겠습니다.
'낙서장' 카테고리의 다른 글
맘스터치 화이트갈릭 싸이버거 솔직 후기 (0) | 2022.04.24 |
---|---|
경산 중산 스타벅스, 가볼 만한가? (0) | 2022.04.24 |
2022 휴스타 로봇 2주 차 교육 후기 (4) | 2022.03.27 |
경산-포항 편도 통학 2시간 반, 가능한가? (0) | 2022.03.20 |
버스에서 분실된 내 폰, 바로 찾을 방법은? (0) | 2021.12.09 |