Episode 6. 공모전의 걸음마를 떼다

2023. 6. 18. 01:26취뽀를 향해서/취준일기(완)

Episode 6   |   공모전의 걸음마를 떼다

 

 

 

이전 포스팅인 Episode 5에서 설명한 것과 같이 우여곡절 끝에 첫 공모전을 시작하게 되었다. 전혀 다른 배경을 가진 팀원들, 익숙하지 않은 환경에서 공동의 목표를 향해 나아가는 과정은 흥미로웠고 새로운 자극이 되었다. 우리가 참여한 국방로봇 경진대회는 총 두 단계의 심사 과정을 거쳐야 했다. 1차로 서면심사를 통과한 이후 목표한 Spec에 적합한 로봇을 개발 후 이를 대회장에서 시연해야 했다. 1차 심사의 결과가 8월에 나오기 때문에 그전까지는 모두가 서류 통과를 위해 노력을 기울였다.

 

내가 주로 담당한 분야는 기존 군용 로봇의 용도 분석 및 고객 니즈 탐색이었다. 기술적인 분야의 경우 로봇 플랫폼에 대해 더 깊은 이해를 하고 계신 분들이 계셨기에, 나의 강점을 발휘해야 했다. 네이버 블로그를 활용해 자동차 기업을 조사하며 특정 상품이 속해 있는 산업을 분석하는 방법에는 익숙해져 있었다. 그래서 이런 나의 특기를 발휘할 수 있는 쪽에 초점을 맞춰 임무를 수행했다.

 

자료를 찾을 때 3가지 소스를 활용했다. 첫째, 국내 군에서 로봇을 활용하는 사례를 조사했다. 수행 업무의 차이에서 발생하는 다른 니즈, 그리고 우리나라의 국방 환경에 적합한 로봇이 어떤 것인지 알아야 했기 때문이다. 둘째, 외국의 로봇 활용 사례에 대해 조사했다. 그중에서도 군용 로봇의 활용 빈도가 가장 높은 EOD 분야의 활용 사례에 주목해 스펙과 주요 기능을 분석했다. 마지막으로 논문을 통해 전문가의 의견을 참조했다. 그 결과 군용 로봇은 경량화와 장기간 사용에 대한 니즈가 가장 많은 것을 파악할 수 있었다. 해당 정보를 종합해 고객의 니즈와 현재 상품에서 가장 차이가 많은 경량화에 초점을 맞춰 참가제안서를 작성했다. 그리고 8월 후반즈음 1차 서면심사 통과 사실을 팀장님의 메일을 통해 알 수 있었다.

 

 

 

1. 업무분장으로부터 시작되는 팀워크

 

주로 프로젝트를 진행했던 개포디지털혁신파크 2층 교육장
주로 프로젝트를 진행했던 개포디지털혁신파크 2층 교육장

 

이제 심사를 통과했으니 로봇을 개발해야 했다. 그리고 이를 효율적으로 수행하기 위한 업무분장 즉 R&R을 정해야 하는 상황이었다. 그리고 이런 상황에서 내가 어떻게 팀에 기여할 수 있을지를 생각해보아야 했다. 나의 현재 상황을 객관적으로 보면 S/W 쪽에 취약하기 때문에 로봇의 제어보다는 H/W를 설계하는 것이 팀에 가장 크게 기여할 수 있을 것이라 판단되었다. 특히 대학교 캡스톤프로젝트를 진행하며 Autodesk Inventor에 대한 숙련도를 어느 정도 높인 만큼 기구의 설계를 무리 없이 해낼 수 있을 것이라는 자신이 있었다. 내가 역량이 된다면 전기차 플랫폼과 직접적으로 관련 있는 전장 시스템 설계 혹은 통신 쪽의 업무를 수행했겠지만, 팀이 학습이 아닌 성과를 목표하는 만큼 잘할 수 있는 것을 해야 했다.

 

 

1) 기구개발의 어려움을 경험하다

 

로봇 제작 첫날 업무 분장이 마무리되었고 나는 로봇의 하단 기구부 설계를 담당해야 했다. 설계를 진행하며 요구되었던 사항은 크게 2가지였다. 첫째, 제어 메커니즘을 단순화할 수 있는 설계를 구현할수록 유리했다. 로봇의 임베디드 장치 연산 속도, 그리고 제어의 복잡성을 줄이기 위해 기구의 자유도를 줄여야 했다. 둘째, 임무 수행을 원활히 할 수 있도록 운반물을 험지에서도 안전하게 보호할 수 있어야 했다. 이는 대회 과정에서 자문을 해주신 멘토님의 조언에 따라 버킷 구조를 채용해 해결할 수 있었다. 여기에 더불에 설계 및 제작이 최대한 빨라야 했다. 실증 테스트 기간이 길어질수록 에러를 잡고 기능의 정확도를 높일 수 있는 만큼 신속한 업무 처리가 필요했다.

 

로봇의 하단 기구부 설계를 위해 고안했던 3가지의 Mechanism

 

이를 위해 바로 설계에 돌입했다. 설계안이 반려를 받기도 했고 보완해야 할 부분도 있었기에 거의 하루~이틀 사이에 새로운 기구부를 설계해야 했다. 실제 설계 과정은 학업 과정만큼 편안하지 않고 여러 제약조건이 존재했다. 첫째, 제한된 품목을 사용해야 했다. 멘토님께서 감사하게도 모터와 같은 부품을 지원해 주셔서 우리는 비용을 절감할 수 있었지만, 이는 설계 시 해당 제품의 동작을 고려한 설계가 진행되어야 함을 뜻했다. 학창 시절 이런 제한된 조건에서 설계를 진행해보지 않았던 나에게는 상당히 낯선 환경이었다.

 

매일 새로운 설계를 해야 하는 상황은 조금 버겁게 느껴지기도 했다. 집에서 한 번 메커니즘을 구현하는데 최소 7시간 이상이 걸렸던 것으로 기억한다. 그러기에 오전부터 설계를 진행해도 새벽 3시에서 4시가 넘어갈 때 즈음 일을 마무리하는 상황도 빈번했다. 7일 정도의 시간을 소요했다. 그 기간 동안 로봇의 하단 기구부는 Mechanism A > Mechanism B > Mechanism C의 순서로 변경되었다. 그리고 Mechanism C가 멘토님의 최종 컨펌을 통과함에 따라 본격적인 제작을 수행할 수 있게 되었다.

 

이 과정에서 2가지를 확실히 체감할 수 있었다. 첫째, 설계는 결코 쉬운 일이 아니라는 것이다. 실제 기업에서 존재하는 비용, 품질, 사용 리소스와 같은 제약 조건에 의해 설계의 난이도가 높게 올라감을 체감할 수 있었다. 둘째, 내가 설계 업무와 잘 맞지 않는다는 것을 깨달았다. 기계공학을 전공했지만 메커니즘을 바로바로 생각하고 떠올리는 능력이 부족하다는 것을 느꼈다. 향후 기업에 입사 후 업무를 수행할 때에도 이런 능력이 필요할 텐데, 해당 역량이 보완되지 않는다면 성과를 내기 힘들 것이라 느낀 만큼 전공과 이질적이더라도 내 역량을 가장 잘 발휘할 수 있는 분야를 계속 탐색해 나가고자 했다.

 

 

반응형

 

 

2) 간접적인 구매 경험을 쌓다

 

공구 및 부속품을 구매하러 다녔던 문래동, 구로공구상가, 성수공구상가 이미지
공구 및 부속품을 구매하러 다녔던 문래동, 구로공구상가, 성수공구상가

 

 

설계안을 세운 뒤 제품을 제작하기 위한 물품 구매를 진행했다. 내가 담당해야 했던 하단 하드웨어는 알루미늄 프로파일과 그 결합 부품들, 3D 프린팅 부위와 포맥스를 활용한 버킷으로 구성되었다. 해당 품목을 온라인으로 배송할 수 있었지만 시간을 단축시키기 위해 서울 내 공구상가를 직접 돌아다니며 구매를 진행했다. 이는 멘토님께서 우리들에게 말씀해 주신 직접 돌아다니며 구매를 진행해 보라는 조언에서 기인한 것이기도 하다.

 

내가 가장 많이 방문했던 곳은 구로공구상가였다. 구로공구상가는 프로파일 결합 전용 부품들을 함께 판매하고 있었기 때문이다. 여기에 더해 전자부품을 포함한 많은 부속재를 판매하고 있었기에 혹시 팀원들이 필요한 물건이 있다면 이를 함께 둘러볼 수 있다는 장점도 있었다. 제품 제작을 위해 프로젝트 종료 시까지 한 5번 정도는 공구 상가를 방문했었던 것 같다. 그 과정에서 단순 구매를 하는 것뿐만 아니라 시장 상인분들께 아이디어에 대한 질문도 드리면서 현실적인 부분을 보충해 갈 수 있었다. 여담으로 포맥스 구매를 위해서는 성수 공구 상가를 들렀는데 생각보다 크기가 커서 쩔쩔매며 개포까지 물건을 들고 왔었던 기억도 있다.

 

온라인으로 물건을 구매해야 하는 상황도 있었다. 나에게 필요했던 품목으로는 리니어 액추에이터를, 팀 전체의 니즈에 의해서는 배터리팩에 대한 견적을 받았다. 전기차에 익숙했기 때문에 리튬-이온 배터리를 기본으로 가정하고 많은 업체에 견적서를 요청했다. 하지만 LFP 배터리가 안전하다는 멘토님의 조언에 따라 해당 안은 기각되었다. 반면 리니어 액추에이터 구매는 내가 세웠던 계획대로 진행될 수 있었다. 당초 고려했던 업체에서 제품이 품절되었다는 소식을 접하고 이를 해외 직구로 돌리는 전략을 세웠다.

 

팀원들과의 회의를 통해 리니어 모터에 필요한 Spec을 결정했다. 해외 구매를 위해 알리익스프레스와 알리바바를 참조했다. 중국에서 구매를 진행할 때 빠른 배송과 저렴한 가격이라는 장점을 확보할 수 있을 것이라 판단했기 때문이다. 후보군에 10개의 모터 업체를 골랐다. 그리고 이를 Duty Cycle, 비용, Power, Stroke와 같은 성능 지표에 각각 배점을 매겨 각 제품을 평가했다. 그 결과 150mm Stroke의 리니어 액추에이터를 고를 수 있었고 2주 내 배송을 마침으로써 일정 지연을 방지할 수 있었다.

 

 

반응형

 

 

3) 설계와는 또 다른 제작의 어려움

 

제작에 사용했던 알루미늄 프로파일 결합 부품들
제작에 사용했던 알루미늄 프로파일 결합 부품들

 

제품이 모두 조달된 이후 로봇 하드웨어의 제작을 시작했다. 알루미늄 프로파일이 제품 결합이 쉽다는 장점을 믿고 구매했지만 실제 제작 과정에서는 뜻하지 않은 어려움을 접할 수 있었다. 먼저 프로파일을 조립하며 렌치로 볼트를 조이는 과정에서 발생한 토크 때문에 구조물의 일부 부위가 살짝 틀어지는 상황이 발생했다. 하지만 이는 조이는 것을 보다 단단히 하면 해결할 수 있는 문제였기 때문에 간편한 문제였다.

 

주로 발생했던 문제 중 하나는 바로 알루미늄 프로파일의 길이 오차가 발생하는 것이었다. 우리는 절단기를 사용해 직접 프로파일을 잘랐기 때문에 제작 과정에서 오차가 필요적으로 발생할 수밖에 없었다. 최대한 길이를 맞추려고 노력했지만 그럼에도 불구하고 미세한 오차는 발생할 수밖에 없었다. 설계 과정에서는 이런 오차를 예상할 수 없기 때문에 오차를 줄이는 과정에서 많은 시간을 소요하게 되었다.

 

둘째, 연결 부위에서 발생한 간극으로 인해 운동 과정에서 틀어짐이 발생하는 것이었다. 이 문제를 해결하기 위해 2주 정도의 시간을 사용했다. 모터가 회전함에 따라 기울어지며 올라가는 것을 보정하고 싶어 서포트 구조를 공고히 하는 방법을 사용하기도 했고 알루미늄 판을 활용해 3mm 볼트 연결부에서 발생하는 틈을 줄이기 위한 노력을 기울였다.

 

변수가 발생하는 대다수 부분에 대한 변경을 시도했지만 모두 실패했고 남은 것은 모터의 혼을 제거하는 방법뿐이었다. 하지만 생산 공정에서 모터혼이 너무 단단하게 고정되었기 때문에 이를 분리하는 것이 힘들었고, 설사 성공한다 하더라도 파손의 우려가 있었다. 해당 이슈가 로봇의 절대적인 동작에 큰 영향을 끼치는 문제는 아니었기에 이를 무시하고 넘어가는 것으로 합의할 수밖에 없었다. 그리고 이런 변수를 접하고 해결하기 위해 노력하는 과정에서 설계와 실제 제작 사이에 차이가 있고, 이를 고려한 설계가 필요함을 직접 느낄 수 있었다.

 

 

반응형

 

 

2. 돌발상황에 대처하는 자세

 

Yolov5로 수류탄 이미지를 학습시켰던 과정

 

프로젝트를 수행하며 가장 어려웠던 점은 바로 우리가 예상치 못한 문제 상황이 갑작스럽게 발생한다는 것이었다. 개인적으로 마주했던 돌발상황은 바로 임무 수행을 위한 객체인식을 담당해야 했다는 것이었다. 한 팀원분께서 개인적 사정으로 팀을 이탈하게 되었다. 업무 공백을 줄여야 했고 때마침 하단 하드웨어 설계가 마무리됨에 따라 이를 진행했다. 물론 프로젝트 팀장님께서 카메라 가지고 놀아보라는 말씀도 해주셨기 때문에 겸사겸사 인식 기능도 보완할 겸 이를 담당하게 되었다.

 

앞선 포스팅에서 말한 것과 같이 내가 컴퓨터 비전을 다시 만날 줄 몰랐던 상황이 약간 문제가 되었다. 그래서 인터넷의 힘을 빌려 쉽고 빠르게 적용할 수 있는 AI 학습 모델을 탐색했고, Yolov5를 찾아낼 수 있었다. Yolo를 활용한 이유는 빠른 영상 처리 속도로 인해 로봇에 많이 탑재된다는 기능적인 측면과 구현이 용이하다는 쉬운 난이도라는 2가지 장점을 확보할 수 있었기 때문이다. Yolov5를 적용하며 몇 가지 어려움을 접했다. 스마트폰 카메라로 이미지를 2,000장 정도 찍어서 학습시켰는데 실제 학습과정에서 이미지가 회전된 상태로 학습되어 버리는 문제가 있었다. 또한 이를 Depth Camera와 연동 지어 거리를 측정하기 위해 개별 Obj를 어떤 환경에서도 인식할 수 있게 만들어야 했다.

 

이 과정에서 팀원분들의 도움을 정말 많이 받았다. 거리를 측정하기 위한 Camera Calibration 과정이나 Yolov5가 동작하는 코드 수정 과정에서 발생한 에러를 함께 고민해 주셨기에 문제를 해결할 수 있었다. 그리고 학습된 결과를 분석하며 문고리와 수류탄을 혼동하는 문제를 수정하기 위한 추가 데이터 수집, 로봇의 이동을 고려한 위험물 이미지의 판별 방식을 고려한 이미지 재촬영 등을 통해 정밀도를 첫 시도 대비 높일 수 있었다. 개인적으로 이를 통해 Python을 다루는 역량을 확실히 키울 수 있었기에 미지의 영역에 뛰어들었던 것이 향후 내 인생에 있어 큰 도움이 된 것은 자명하다.

 

 

반응형

 

 

프로젝트 당시 지원 받았던 로봇 플랫폼
프로젝트 당시 지원 받았던 로봇 플랫폼

팀 차원에서 가장 어려웠던 문제는 바로 로봇이 높은 경사의 계단을 등반하는 것이었다. 우리는 지원받은 로봇 플랫폼을 활용했기 때문에 기초 Spec에 대해서는 우리가 조정할 수 있는 것이 없었다. 그런데 로봇의 실증 테스트 과정에서 로봇이 20도 이상의 경사를 등반하지 못한다는 이슈를 접하게 되었다. 우리가 대회에서 30도 경사의 계단을 등반하는 어려운 과제를 부여받은 만큼 이를 해결해야 했다. 특히 해당 코스의 배점이 높았기 때문에 문제를 해결하지 못한다면 수상 역시 멀어질 수 있는 위기 상황이었다.

 

이를 해결하기 위한 많은 시도들이 이어졌다. 배터리팩의 용량을 늘리거나 혹은 모터의 Limit을 잠시 해제하는 등의 노력이 이어졌다. 플랫폼의 트랙 부위에 있는 기구 구조를 변형하는 방법도 제한되었다. 여기에 더해 내부 무게중심을 최적화하기 위한 전장 부품의 재배치 또한 수행되었던 것으로 기억한다. 기억이 너무 오래되어 확실하지 않지만 이런 시도들 끝에 로봇이 마침내 계단 경사를 극복하는 것을 확인할 수 있었다. 그리고 이 과정에서 나 자신에 대한 많은 부족함을 느낀 것이 사실이다.

 

문제를 해결함에 있어 내가 공학적인 해결책을 빠르게 내놓지 못한다는 점이 계속 마음에 걸렸다. 다른 분들이 발생한 문제를 해결하기 위한 공학적 솔루션을 빠르게 제시하는 것에 비해 나는 그 원인을 도출하는 능력이 상대적으로 떨어진다는 것을 확실히 느낄 수 있었기 때문이다. 부족한 지식을 탓하거나 혹은 진정한 "연구"를 처음 접해서라는 변명을 할 수 있지만 그래도 좀 많이 부끄러웠다, 4년 동안 전공지식을 배웠음에도 능력의 부족에 조금의 좌절을 느끼기도 했고 그분들에게 부러움을 느끼기도 했다. 그래서 내가 뒤처지지 않기 위해서는 졸업 이후에도 끊임없는 학습을 통해 최대한 역량을 보충하는 것이 필요하다는 것을 느꼈고 성장하고자 하는 의지로 이어졌다.

 

 

반응형

 

 

3. 포항에서의 1박 2일

 

21년 8월부터 시작된 프로젝트는 마감을 향해 달리고 있었다. 기존 10월에 진행이 예정되어 있던 대회 심사는 사정으로 인해 12월로 미뤄진 상태였다. 그 사이 로봇 개발은 거의 완료되었으며 실증 테스트를 진행하며 부족한 부분을 보완하고 있었다. 아직까지 해결하지 못한 문제가 많았지만 대회가 다가오며 팀에서 느끼는 압박감은 점차 커져만 갔다.

 

대한민국육군, 한화디펜스, KIRO 주관으로 열린 2021 국방로봇경진대회
대한민국육군, 한화디펜스, KIRO 주관으로 열린 2021 국방로봇경진대회 / 사진 출처: 한국로봇융합연구원 공식 Youtube

 

그리고 마침내 12월 셋째 주, 포항으로 내려가 결전을 시작하게 되었다. 열심히 준비했던 프로젝트가 당일의 대회로 끝난다는 사실이 긴장되기도 하고 고생한 만큼 성과가 났으면 좋겠다는 바람도 있었다. 대회 장소가 포항이었기 때문에 서울에서는 거리가 멀어 그 전날 출발했다. 차를 렌트해 로봇 플랫폼과 필요한 물품들을 실었고 포항에 있는 펜션으로 향했다. 펜션에서도 개발은 멈추지 않았다. 그 전날 발생했던 문제가 해결되지 않아 이를 해결해야 했고 나는 끝까지 버티지 못했지만 몇몇 팀원들은 밤을 새 가며 이를 개선하기 위해 노력했었다.

 

그리고 마침내 한국로봇융합연구원 주도로 진행되는 국방로봇 대회장에 진입했다. 이전에 문서로 보았던 5개의 코스가 있는 것과 함께 총 10팀을 위한 대기 공간이 마련된 것을 확인할 수 있었다. 각 팀은 30분에서 1시간 정도의 테스트 시간을 부여받았다. 이때 예기치 못한 문제가 발생하고야 말았다. 험지를 구현하기 위해 사용된 풀이 억세서 내가 설계한 하단 구조물에 휨이 발생해 버린 것이었다. 현장을 미처 탐색하지 못해 발생한 문제로, 이를 다시 보완하기 위한 버킷 구조를 설계하고 있었다. 그런데 하필이면 급발진이 다시 발생해 다른 코스 시험 도중 우리에게 남아있던 유일한 모터가 파손되는 일이 발생했다.

 

버킷이 파손되어 해당 구조 없이 대회를 진행한 장면 / 사진 출처: 한국로봇융합연구원 공식 Youtube
버킷이 파손되어 해당 구조 없이 대회를 진행한 장면  / 사진 출처: 한국로봇융합연구원 공식 Youtube

솔직히 이때 당시 멘탈이 많이 무너졌었다. 렌터카를 이용할 수 있는 환경이었기 때문에  근처 업체를 통해 휜 알루미늄 프로파일을 구매하고 포맥스를 활용한 새로운 버킷 구조를 제작하면 된다는 수습안을 마련했는데 이를 활용할 수 없었기 때문이다. 내가 안전하지 못한 설계를 한 탓에 팀원들의 고생을 허사로 돌렸다는 자책감도 들었고, 모두가 임무 수행을 위해 노력했는데 이렇게 무너지게 된다는 것이 너무 힘들었다. 다행히 다른 팀원분들께서 도와주셔서 생각을 정리할 수 있었고, 논의를 통해 하단 버킷이 없는 상태로 임무를 수행하는 방안을 택하게 되었다.

 

각 팀별로 테스트를 마친 이후 본격적인 평가가 시작되었다. 예상보다 임무를 잘 수행한 미션도 있었지만 실제 현장과 테스트 공간의 차이 때문에 작동하지 않았던 기능들이 더 많았었던 것으로 기억된다. 그래도 팀원들의 많은 노력이 있었기에 다른 팀과 비교했을 때 더 나은 임무 수행 능력을 가져올 수 있었던 것 같다. 그렇게 모든 팀의 평가가 마무리된 이후 발표만을 기다리고 있었다. 개인적으로는 우리의 기대치보다 현장에서 낮은 결과를 보였기에 큰 기대를 하고 있지 않았다.

 

그리고 대회 발표장에 들어가 심사를 기다리던 와중 대회 3등에 우리 팀이 지명되었다는 사실을 접했다. 첫 공모전에 정말 운이 좋게 수상할 수 있어서 조금의 기쁜 감정을 느꼈다. 하지만 그보다 컸던 것은 자책감이었다. 해당 사건이 여러 문제가 겹쳐 발생한 것이기에 나 자신 때문에만 발생한 문제가 아니었지만, 그래도 버킷 재질을 다른 것으로 고안했어야 하나, 안전장치를 만들면 우리가 노력한 것만큼 더 높은 성적을 거둘 수 있지 않았을까라는 생각을 떨치기는 힘들었던 것 같다.

 

 

반응형

 

 

취업을 한 지금 그때를 돌이켜보면 6개월이라는 프로젝트 기간 동안 많은 것을 받은 점에 대해 감사드린다. 어떻게 보면 나에게 있어 인생을 바꿀 수 있는 프로젝트였기 때문에 더욱 가슴에 와닿는 기억이다. 프로젝트 공간을 활용하는 것은 물론 진행 과정에서 많은 도움을 주신 연구원분들과 발생한 문제 해결을 함께 고민해 주신 멘토님들 덕분에 이런 성적을 거둘 수 있었다. 뿐만 아니라 개인적으로 귀찮은 질문을 드렸음에도 정말 정성껏 답변해 주신 학교 교수님이 큰 도움이 되어주셨다. 그리고 무엇보다도 정말 부족한 나였지만 내색하지 않고 많은 것을 얻어가고 성장할 수 있도록 도와준 다른 팀원분들이 아니었다면 문제를 해결해나갈 수 없었을 것이다. 이 글을 빌어 실명을 밝히지는 못하지만, 프로젝트 진행을 도와주신 모든 분들께 감사의 인사를 드리고 싶다.

 

 

 

 

- Episode 6 끝 -

 
반응형