국방로봇 경진대회 Research Diary #1

부제 : 대회 분석

국방로봇 경진대회를 목적으로, 이번 년도에는 우리가 열심히 달려볼 생각이다.
그리하여 휴가도 2/5 ~ 2/9로 짧게 지냈고, 설날을 반납하고 다시 달리기 시작했다.
(사실, 설날에도 쉬면 안되긴 할 수준의 실력이긴 하다.)

그렇다면, 대회를 준비하는 마음가짐으로 가장 먼저 해야할 것은 무엇인가?
각자마다 생각하는 방식이 있겠지만, 필자는 아래와 같은 순서를 따른다.


1. 자신이 출전하는 분야의 기초 지식을 쌓는다.

‘내가 로봇 대회를 나가는데 어떤 지식이 필요한지 어떻게 알아요?’ 라는 생각이 들 수도 있다.
이 때, 로봇 대회에 대한 기초 지식은 역학, 통신, 전자 회로, 프로그래밍 등이 있을 것이다.
필자는 이 정보들에 대해서 닥치는 대로 찾아본다.
[ ex) 배틀로봇 완성본을 보며, 게시글에서 설명한 내용을 하나 하나 구글링과 GPT를 통해 정보를 흭득한다. ]

  • 역학적인 내용은 필자가 사대 역학을 전부 배워보고, 이해도 하려 했으나 적용하기란 정말 쉽지가 않다. 이 땐 교수님들께 여쭤보거나, 전문가에게 물어보며 해결해보자. (본인이 대학생이 아니라면 구글링과 유튜브라는 교수님이 있음을 잊지 말자.)

  • 통신적인 부분이 제일 어렵다고 생각한다. 전자 회로, 역학 전부 실제로 사용할 때에는 매우 복잡하게 사용하지 않는다. 심지어, 계산을 해주는 계산기가 있기도 한다. (바퀴 RPM 및 토크 계산기)
    그런데, 여기서 통신에 대해서는 복잡하며, 오류도 많고, 제대로 한국어로 알려주는 사람이 극히 드물다. (대부분 인도의 멋진 공학자 형님들께서 유튜브에 올려주신 내용을 보고 이해한다.)

  • 전자 회로적인 부분에 대해서는 심화적인 내용을 아직까지 써보지 못했다. 기판에 대한 설명은 Datasheet를 통해서도 알 수 있기도 하며, 대부분 유튜브에서 다 설명해준다. (짱.)

  • 프로그래밍은 사실 시간이 모든걸 해결해 주는 종목이라고 생각한다. 한줄, 한줄, 천천히 커피를 마셔가며 코드를 이해해 나갈 때 비로소 그 의미가 있는 종목이기에 오래 달리는 마라톤과도 같다고 생각한다.

2. 대회를 분석한다.

이제 내가 나갈 대회를 분석해 본다.

‘어떤 로봇을 설계했고’, ‘왜 이런 로봇을 설계했는지’.
‘왜 이런 부품을 사용했고’, ‘왜 이런 방식을 채택했는지’.

이 때 조금이나마 더 Detail하게 분석한 팀이 후에 Feedback 과정을 덜 거친다.

3. 설계한다.

이 때가 오래 걸린다.
분석했던 과정에서도 차마 생각하지 못했던 요소들이 이 때 영향을 미치기도 한다.

4. 제작한다.

제작을 진짜 돌입하게 되면, 이제부턴 큰 부분들은 되돌릴 수 없게 된다.
(만약 이 때 조금 잘못 되었음을 느끼면 전부 갈아 엎어야 하는 일도 종종 생긴다.)

5. Feedback

조금이나마 더 많은 오류를 겪은 팀이 우승할 확률이 높다고 생각한다.
더 실력이 늘고, 더 강해진다.
그러나, 대회 당일까지 오류가 발생하면… 그건 조금 슬프다.


위 과정을 전부 거치고 나면, 로봇이 완성되고, 대회를 나갈 준비가 끝나게 된다.
우리는 Ros2에 대한 Basic Programming 공부와, H/W Design을 어느정도 마쳤다고 생각한다.
이제, 우리가 두 번째 단계인 대회를 분석할 시간이 되었다.

그래서 이번 포스팅에서는 대회 분석을 할 것이다. 우리가 나갈 대회가 어떤 대회인지, 어떤 상금과 함께 진행되는지에 대해서 말이다.

이는 H/W와 S/W 양 팀 전부가 정리한 보고서에 대한 내용과 함께 정리될 것이다.

1. 대회 수상 분석하기

Image (출처:올콘 한국 지능형 로봇 대회)

위 대회 중, 우리는 국방 로봇 대회 부문에 신청을 할 것이다.
상격으로는 아래와 같다.

원본 아카이브에 해당 상격 표 이미지가 남아있지 않아 텍스트 설명으로 대체한다.

국방로봇 경진대회의 상격은 매우 높은데, 상금이 가히 매력적이라고 할 수 있다.
1등, 즉 최우수상은 국방부장관상 에, 1,000만원까지 가져갈 수 있는 것이다.

작년에는 7월 부터 서류 접수를 받고, 8월 초에 서류 심사를 진행했다.
이후, 9월 15일부터 9월 17일까지 예선 경기 및 본선 진출팀을 선정했다.

이전에는 본선 진출 팀이 8팀이었다. 즉, 10팀 전부가 합격하는 경우는 없었다.
8팀 중 3팀이 상을 받는, 즉 본선 진출 팀의 37.5% 가 수상한다는 것이다.
그 말은, 본선을 진출만 해도 상을 탈 확률이 매우 높았던 것이다.

물론, 반대로 생각하면 본선 진출이 매우 어렵다는 뜻이다.

40kg에 육박하는 로봇을 제작하는 건 무지막지한 비용이 든다.
물론, 우리의 초점은 ‘40kg’ 이 아니라, ‘로봇’ 이다.

육중한 몸을 이끌고 움직여줄 모터, 그리고 그에 따른 모터의 위치와 힘.
움직일 Manipulator의 무게와 강한 힘을 위한 비싼 Dynamixel.

본 필자는, 이번 로봇을 만들면서 사비를 감당할 생각까지 하고 있다.
만약 수백만원짜리 다이나믹셀과 모터, 카메라를 학교에서 지원해줄 여력이 없으면 본인이 짊어져야 할 무게라고 생각하기에..

실제로, 작년(2023년)에 출품한 작품들 로봇의 제작 비용은 1,000만원을 상회하기도 했다.
그만큼, 비용적 부담이 상당히 크다고 볼 수 있다.


2. 대회 규정 읽기

대회의 규정을 정리하면 아래와 같다.

  1. 팀은 1인 이상 ~ 6인 이하
  2. 자율 주행이 가능해야 한다.
  3. 원경 주행이 가능해야 한다.
  4. 경기장 폭 및 길이를 참고하여 주행 문제 없어야 함.
  5. 상업용 로봇 그대로 출품 불가
  6. 기 개발된 로봇은 추가 기능을 탁월하게 향상시켜야 함. 이를 반드시 입증해야 함.
  7. 로봇의 위치나 장애물을 인지하여 로봇 조종. 즉, 경기장을 볼 수 없음.
  8. 각 장애물에 따라 참가로봇에 필요 부품 탈부착 가능
  9. 한 경기 당 각 팀에게 주어지는 시간 동일, 이 시간동안 교체, 수리, 부품 탈부착을 진행하여야 함. 즉, 교체 및 수리가 간단해야 함.
  10. 로봇 본체에 팀명이 붙어 있어야 함.

정리하자면, 제작해야 하는 로봇은 범용성이 높은 탈 부착이 가능한 자율주행 및 원격 주행이 가능한 로봇 제작이다.

이제, 대회 운영 방식을 보면서 제한 사항을 더 알아보자.

  1. 트랙 폭은 914.4mm
  2. 트랙 내에는 팀원 2명 제외 출입 불가.
  3. 각 구간별 마련된 조종 스테이션에서 조종
  4. 타 팀원과의 대화 불가
  5. 트랙 이탈 시 다시 올려놓되 시간은 계속해서 흘러감.
  6. 구간 포기 후 다음 구간으로 넘어갈 수 있으나, 미션 수행 점수는 0점임.

정리하자면, 이 경우 우리는 모든 구간을 통과해야 하며, 조종 도중 떨어질 우려가 있지만 떨어져도 다시 돌려 놓을 수 있다. 라는 점이 있다.(이는 속도와 관련된 내용을 계산할 때 유용하다.)

다음으로는 평가 점수표다.
자세한 내용은 기준표가 홈페이지에 나와있으니 생략하고, 간략하자면 아래와 같다.

  1. 정찰 수행 능력 (스모그 통과, 피아식별)
  2. 환경 극복 및 구호물자 운반 (구호 물자 담고 험지 극복)
  3. 장애물 식별 능력 (비전마커 정확히 식별)
  4. 경로 확보 및 위험구간 돌파 능력 (빙판길, 제설구간 돌파)

정리하자면, 대부분 험지를 극복하고 장애물을 인식하며 자율 주행을 진행하는 걸 목표로 한다.


3. H/W

Team RO:BIT 영상

Manipulator 기본 이해

Yaw, Pitch, Pitch, Roll, Pitch, Roll 구조의 6자유도 매니퓰레이터를 구상 예정.

디자인 Prototype 및 분석 PPT 2월 13일까지 완성, 천 교수님과의 면담 2월 15일 예정.

시야 개선을 위한 스모그 처리용 팬? (X)
그렇게 효율적인 개선이 진행되지 않았기 때문.

실제로 이전 팀들을 살펴 보면 세 팀 전부 사용했지만 효과가 미미했음. 사용 시간을 늘리는 데 초점을 두고, 팬을 제거할 예정.


4. S/W

Manipulator

Manipulator Moving 설계 시 Inverse Kinetics(역기구학) 공부 필요. 역기구학 자료
2월 13일까지 이해, Ros에 적용하는 것을 이번 방학의 남은 기간 동안의 목표로 함.

통신

SOCKET-CAN 방식과 UDP 통신 방식 중 택 1을 해야할 상황임.

Socket-CAN 방식의 특징은?

  • Socket-CAN 방식은 Linux Kernel에서 기본적으로 제공해주는 방식으로, USB to CAN을 사면 된다.
  • 전기적 Noise에 강하고, 연속적이고 안정적인 신호를 제공하기 위해 중요.

UDP 방식의 특징은?

  • 신뢰성이 낮다
  • 빠른 통신이 가능하다.
  • 데이터 손실 우려가 있다.

이 점에서, 필자가 생각한 부분은 Socket-CAN 방식을 채택하여 통신하는 것이 효율적일 것이라고 판단함.

Embedded

Embedded PC를 이용하여야 함. (Yolov8을 이용한 객체 탐지가 필수적임.)
이 과정에서, yolov8을 사용할 수 있을 수준의 PC는 라즈베리파이보다는 AI 처리에 전문화된 Jetson 계열이 효율적일 것이라 판단.

그 중에서도 우리는 JetsonTx2를 20만원 정도에 구매하였음.

만약 다이나믹셀 모터제어나, 추가 제어가 필요하다면 RaspberryPI 5 를 이용할 예정.

각 환경은 Docker로 구성할 예정이다.

IMU 보드를 이용하여 Gyro 각도를 구해 허프 변환을 통한 정보를 수집할 예정.

OpenCV

OpenCV를 사용하기 위해 JetsonTx2를 구매한 것은 사전에 언급을 해 두었다.

Realsense T265 Camera 구매를 원하는데, 이는 약 46만원부터 시작하는 고가 제품이다. 구매는 고민 중에 있다.
Camera와 LiDAR Sensor을 이용하여 결과를 얻어와야 하므로, 구매는 추후 회의를 통해 이루어질 예정이다.

필요한 물품

OpenCV

  • LiDAR
  • RealSense Camera
  • 적외선 카메라

Manipulator

  • Dynamixel

Embedded

  • Gyro Sensor
  • (IMU Board)
  • Jetson Tx2(구입 완)

Communicate

  • USB to CAN
  • Or 유무선 공유기(UDP WAY)

ETC

  • Wireless Remote Controller
  • 3D Printing , Aluminum 가공
  • Team Name Sticker