자율주행과 로봇 교육에 좋은 Pinky - 서울대 농업용 로봇 경진대회에 첫 출격했습니다.
저희는 아주 오래전분터 다양한 기간의 교육 프로그램을 진행한 경험이 있습니다. 블로그에 다 소개하지 못한 여러 교육들을 진행했습니다. 그런데, 그 때 마다 몇 가지 교육에서 불편함 들이 있습니다. 여러 불편함들을 해소하고 싶어서 많은 고민들을 했습니다. 그러다가 작은 로봇을 하나 만들기 시작했는데요. 정확히는 로봇의 컨텐츠를 많이 고민했습니다. 어떻게 하면 효율적으로 교육시간을 활용할 수 있을지를 고민하기 시작했습니다. 그러다가 이번 24년 여름. 서울대에서 주관하는 농업용 로봇 경진대회라는 대회를 진행하면서 이번에 만든 로봇과 그 컨텐츠를 운영하게 되었습니다.
기존 주행로봇 교육의 어려움을 극복하려는 노력
기존의 주행로봇들을 진행하는데는 저희 핑크랩의 욕심이겠지만, 몇몇 아쉬움이 있었습니다. 저희가 진행하는 교육중에는 6개월 정도의 긴 교육이 있습니다. 이 교육에서는 기초부터 찬찬히 접근하고, 한 장소에서 충분하진 않더라도 그래도 장비들을 갖추고 진행을 하게 됩니다. 그러나 1~2주의 단기성 교육은 하다못해 추가 모니터, 키보드, 마우스 조차도 교육의뢰 기관의 사정으로 쉽게 구성하기가 어렵기도 하고, 또 짧은 기간인데, 로봇을 세팅하는데 많은 시간을 소비하는 것도 어렵기도 합니다.
로봇과 노트북 이외에 추가 장비가 필요하지 않도록 교육을 구성
최근 몇 년간 초/중학교 학생들을 대상으로 한 수업에서는 이미 당연하게 구성들을 하고 계신데요. ROS2, 답러닝이 연결되는 수업에서는 그러지 않는 경우가 많았는데, 이번에 저희 핑크랩의 딥러닝 자율주행 교육에서는 로봇과 노트북 이외에 추가로 모니터와 같은 장비는 필요없도록 세팅했습니다.
그래서 위 실제 교육 사진에서 보이듯이, 교육생들이 로봇을 가지고, 본인들 노트북과 함께 교육이 진행되도록 했습니다. 단기성 교육은 주최 기관이 넓은 장소를 확보하기 어렵고, 또 장비를 확보하기도 어려워하게 되는데, 일정부분 해소했습니다. 저희가 세팅한 로봇 환경에 익숙해지지 않아서, 로봇을 통해 인터넷을 세팅하는 과정을 어려워하는 경우도 있었지만, 곧 적응하고 잘들 진행했습니다.
로봇 자체에서 딥러닝 추론이 가능한 환경으로 구성
또 단기성 교육은 네트워크 상황을 미리 세팅하기 어려워서, 다수의 주행로봇들이 각자의 카메라 영상을 노트북으로 보내고, 거기서 딥러닝으로 추론하고, 그 결과를 다시 로봇으로 보내서 주행하게 하는 방식으로는 수업이 진행되기 어려울때가 있습니다. 6개월 정도 진행하는 장기 교육은 팀당 공유기를 할당하고, 거기서 ROS2에서 네트워크 자원을 충분히 사용하도록 하지만, 단기성 교육은 그렇게 진행하는 것이 쉽지 않더라구요.
그래서 저희 핑크랩은 로봇에 사용되는 라즈베리파이5에서 충분히 구동가능한 딥러닝 모델 수준에서 컨텐츠를 구성했습니다. 딥러닝 모델의 학습은 colab이나 학생들의 PC를 이용하더라도, 모델의 사용은 로봇안에서 이뤄지도록 해서 교육장의 네트워크 문제에서 조금 더 자유로워지도록 구성했습니다.
시나리오에 대한 구현 능력 배양
요즘은 chatGPT만 잘 활용해도, YOLO나 비전 처리 관련 코드는 쉽게 얻을 수 있습니다. 저희는 그런 도구를 충분히 활용하게 하면서도, 또 사람이 고민하는 것, 로봇이 잘 동작하게끔 개발하는 과정에 대한 고민도 직접하게 하고 싶었습니다.
그래서 시나리오를 구현하도록 했습니다. 어떨때는 길을 따라가다가, 혹은 아루코마커를 통해 길을 따라가다가, 그 상태를 중단하고, 딥러닝을 이용해서 임무를 수행하고, 다시 딥러닝을 이용한 인식 임무를 종료하고, 다시 주행 모드로 주행을 하는 형태로 진행하도록 유도했습니다. 이렇게 해서 하나의 기능이 아니라, 다양한 기능으로 다양한 상태를 정의하고 그 상태를 어떻게 이어서 시나리오를 구현하는지를 체험하고 개발할 수 있도록 유도했습니다.
대회 소개
7월초 일주일 도안 서울대학교 시흥캠퍼스에서 전국의 30여명의 농업관련 전공인 대학생들을 대상으로 AI로봇 교육이 열렸습니다. 저희 핑크랩이 이렇게 또 좋은 행사를 진행할 수 있어서 참 좋았습니다. 이런 행사를 저희 핑크랩이 진행할 수 있도록 해주셔서 또 고맙습니다.
학생들은 간단히 로봇의 사용, 비전처리, YOLO등을 배운 후 로봇 개발을 시작했습니다. 경기장은 저런 모습이구요.
경기 규정은 이렇게 길따라 주행(이것도 비전이든 뭐든 자율적으로 선택)하고, 미션장에 진입해서는 빨간/파란색 사과가 있는데, 이 중 빨간색 사과를 카운트를 합니다. 그리고 마지막에 와서 익은 사과가 몇 개인지 알려주는 것이죠.
저희 핑크랩의 응원을 받으며 다들 열심히 했답니다.
아직 정식 출시는 아니지만 Pinky 시리즈를 소개한 글도 있습니다.
대회 모습
위 영상의 팀은 교차로에 표시된 아루코마커를 보고 교차로인지를 인식하고 과수원(^^)으로 진입하는 장면입니다.
위 장면은 주행 --> 교차로 진입 후에 사과 나무에서 빨간 사과만 인식하고 돌아나오는 모습입니다. 이렇게 3 군데의 과수원을 모두 돌고 나면,
저렇게 특정 장소에 와서 빨간 사과가 총 몇개인지를 알려주고 돌아갑니다. 사과 갯수를 알려주는 방법은 본인들 노트북에서 프린트되는 것을 심판이 보거나, 부저로 갯수만큼 삑~ 거리면 됩니다. 그리고 돌아갈때는 또 횡단보도에서 멈추었다가 돌아가야 하는거죠.
그리고, 여러기관에서 여러 교육을 이번에 했는데, 저희 핑크랩에 대한 참여자들의 만족도가 가장 높았다는 피드백을 담당하시는 분께 듣고서, 모든 피로가 또 사라지는 마법에 취했습니다.^^
1등팀의 주행 영상은 아래 영상을 봐주세요~~~
https://www.youtube.com/watch?v=VTcbDFXAEJc