안녕하세요! 전기정보공학부 19학번으로 재학 중인 공우 15기 황진우입니다. 로봇은 청소기, 무인카페 등 저희 삶 전반에 이미 깊이 관여하고 있습니다. 이런 로봇에 관심을 갖고 계실 많은 분들을 위하여 전기정보공학부 유일의 로봇 관련 수업인 로봇공학개론에 대해서 설명해드리도록 하겠습니다.
1. 과목에서 배울 수 있는 내용
1.1 과목의 전반적인 개요
Introduction to Robotics is a comprehensive course designed to provide students with a solid foundation in the principles and application of robotics. This course will cover a variety of key topics essential for understanding and designing robotic systems. Students will learn about the mechanics of robot manipulators, the mathematics of robot control, and the implementation of algorithms that enable robots to perform complex tasks autonomously.
위는 2024년 1학기 로봇공학개론 수업의 강의계획서에서 발췌한 내용입니다. 로봇공학개론은 말 그대로 “개론” 수업으로서, 학생들이 로보틱스를 공부하기 위해 필요한 이론적 배경을 학습할 수 있는 과목입니다. 로봇 시스템 (특히 로봇 팔)을 설계하고 이해하는 데에 필요한 역학적 지식, 수학적 배경과 알고리즘을 다룹니다.
처음에는 로보틱스의 기초를 통해 로봇의 종류 (가령, 산업 현장에서 자주 쓰이는 로봇 팔 종류)와 이를 구성하는 기본 요소 (관절의 종류 등)을 살펴보며 시작합니다. 그 후 수학적 기반을 다지게 되는데, 로봇 팔을 수학적으로 어떻게 모델링하는지, 그리도 또 제어하는지를 선형대수학, 미적분학, 확률론 등을 접목하여 배웁니다. Kinematics를 통해서 로봇이 3차원 (혹은 2차원) 공간에서 움직이는 것을 forward kinematics, inverse kinematics라는 두 가지 측면에서 계산해 내는 방법을 공부합니다. Dynamics를 통해서 이제 로봇의 각 관절에서 힘과 토크가 어떻게 되는지, 반대로 로봇의 제어를 위해서 특정 외력에 대응하려면 관절의 힘/토크가 어떻게 되어야 하는지를 배웁니다. 마지막으로 motion planning은 이전의 모든 내용을 바탕으로 실제로 로봇을 어떤 경로로 움직이는 게 좋을지 최적화하는 법을 배웁니다.
1.2 키워드 별 개념 설명
로봇 팔은 joint와 link로 구성됩니다.
Joint부터 설명하자면, 사람 몸으로 치면 관절에 해당하는 장치입니다. 크게 두 가지가 존재하는데, 회전축을 기준으로 돌아가는 revolute joint와 어떤 축을 따라 길이가 달라지는 prismatic joint가 있습니다. 물론, 사람의 손목처럼 여러 방향으로 돌아가는 복잡한 joint도 있는데, 이후에 이런 joint도 위 두 가지를 조합해서 표현할 수 있다는 것을 배웁니다.
Link는 이런 joint와 joint 사이를 이어주는 단단한 부분으로, 강체 막대로 보통 다루게 됩니다. 혹 강체가 익숙하지 않은 독자를 위해 설명하자면, 강체는 변형되지 않는 물체로, 물체 내의 모든 점들 사이 거리가 바뀌지 않는 물체라고 생각해 주시면 됩니다.
로봇 팔 끝에는 집게처럼 어떤 작업을 수행하기 위한 end-effector가 달려 있습니다. 조금 더 친숙한 용어로는 특정 기능을 수행하기 때문에 tool이라고도 불립니다. 이 과목에서 주로 이 end-effector를 기준으로 하는 좌표계와 지면에 고정된 좌표계 사이의 관계를 다루게 됩니다.
물론 아예 움직이는 플랫폼 위에 설치된 로봇도 있지만, 해당 과목에서는 주로 한쪽 혹은 양쪽이 지면에 고정된 로봇을 다루고 있습니다. 한쪽이 고정된 경우는 serial (open chain) manipulator라고 부르고, 양쪽이 고정된 경우는 parallel (closed chain) manipulator라고 부릅니다.
State와 configuration의 차이에 대해서도 배우는데, configuration은 로봇의 각 joint가 특정 상태에 놓인 것을 뜻합니다. 예를 들면, 로봇 팔이 일자로 쭉 펴진 상태라고 한다면, 그것도 하나의 configuration입니다. State는 거기에 추가적으로 각 joint의 속도 (revolute joint는 각속도가 이에 해당)에 대한 정보도 있어서 다음 순간에 로봇이 어떤 상태가 되는지 완벽하게 기술하기 위해 필요한 최소한의 정보가 전부 갖춰진 것을 말합니다.
앞서 말씀드린 것처럼, 로봇 팔의 움직임을 기술하기 위한 수학 용어들도 일부 있습니다. Rotational matrix는 회전변환을 기술하는 행렬로, joint 기준으로 회전하는 성분을 기술하는 데에 쓰입니다. 다만, 회전 뿐 아니라 병진 운동도 가능하기 때문에 여기에 원점이 어떤 방향으로 얼마나 옮겨졌는지 반영해야 합니다. 그래서 나오는 게 homogeneous transform으로, 3차원 공간 기준으로는 4x4 행렬에 회전변환 행렬과 병진운동 벡터를 결합해서 나타냅니다. $v_0 = {R_0}^1 v_1 + d_0$과 같이 복잡하게 두 개의 값을 더하는 식으로 1-좌표계와 0-좌표계를 왔다갔다 하는 대신, 각 벡터의 마지막에 가상좌표 “1”을 붙여주고 곧바로 $v'_0 ={H_0}^1 v'_1$과 같이 간단하게 나타낼 수 있습니다.
Path and Trajectory Planning은 로봇이 특정 환경에서 시작점에서 목표점까지 이동하는 최적의 경로를 설계하는 과정입니다. 이 과정에서 중요한 것은 로봇이 장애물을 피하면서도 효율적으로 목표에 도달하는 것이고, 이 경로를 설계하는 것이 말 그대로 path planning입니다. 로봇공학에서 사용되는 다양한 경로 계획 알고리즘에는 그리드 기반, 그래프 기반, 샘플링 기반 방법이 포함됩니다. 경로 계획은 고정된 환경에서의 이동 뿐만 아니라 동적인 환경에서도 로봇의 반응 속도와 경로 재계산 능력을 요구합니다. Trajectory Planning은 경로를 따라 로봇의 속도, 가속도, 그리고 다른 동적 조건들을 고려하여 로봇이 어떻게 움직일지를 계획합니다. 이는 로봇이 안전하고 효과적으로 작업을 수행할 수 있도록 하는 데 중요한 역할을 합니다.
Single Variable Control은 간단한 로봇 시스템이나 단일 기능을 수행하는 로봇을 하나의 인풋과 하나의 아웃풋을 가진 시스템으로 모델링하는 제어 기법입니다. 이를 위해서 우선적으로 모터, 그리고 거기에 load가 걸렸을 때 이것이 어떻게 작동하는지 수식적으로 기술하는 법을 공부합니다. Single Variable Control 기술의 두 가지 예시로 PD (Proportional, Derivative), PID (Proportional, Integral, Derivative) 제어를 공부합니다. 클래식 제어 이론을 활용하여 PD 제어의 경우 발생하는 steady state에서의 오차를 계산해 보면서 PID 제어의 필요성도 알아보게 됩니다.
2. 선배의 조언
로봇공학개론은 로봇을 하면 어떨지 확인하는 차원에서 가볍게 들어도 좋고, 로봇을 하고 싶어서 들어도 좋다고 생각합니다. 그렇기에 졸업하기 전에 한 번즈음 꼭 들어볼 가치가 있다고 생각하고요. 다만, 선형대수학과 확률변수 관련 이론, 어느 정도의 공간지각 능력을 갖추고 있는 게 수강하는 데에 유리할 겁니다. 더불어, MATLAB으로 과제를 수행하게 되는 경우가 꽤 있는 만큼 (Python도 허용하는 경우가 있긴 합니다만 원칙적으로는 MATLAB입니다) 어느 정도는 익숙해 있는 게 좋습니다. 따로 수업에서 다루지 않기 때문에 (원래도 MATLAB를 로보틱스에선 많이 쓰는 것으로 알고 있습니다) 신호 및 시스템처럼 이를 과제에 사용하는 수업에서 어느 정도 익히고 오시면 유리할 거예요.
3. 진로 선택에 도움되는 점
로봇공학개론은 전기정보공학부에서 유일하게 로봇을 다루는 과목입니다. 전기정보공학부에서는 진로를 컴퓨터 (컴텍), 회로, 통신 등으로 나누곤 하는데 로봇공학을 접해볼 기회가 흔치 않습니다. 해당 과목은 대상 학년은 좀 높게 분류되어 있으나, 전기시스템선형대수를 들었다면 (혹시 모르니까 확률변수 및 확률과정의 기초까지) 듣는 데에 문제가 없으니 조금 일찍 들어보고 추가적으로 관련 공부를 하고 싶은지 정하는 데에 도움이 될 것 같습니다. 물론 정말 입문을 위한 과목이기에 이론에 치중된 “개론”이지만 가장 기초적 부분에 대한 감은 충분히 잡을 수 있습니다.
4. 맺음말
로봇공학이란 것은 사실 여러 영역의 사람들이 모여 하게 되는 학문인 것 같습니다. 스트레스 분석을 고려한 로봇의 디자인을 하고, 그걸 제작하는 데에는 기계공학적 지식을 갖춘 이들이 필요하고, 회로를 짜고 제어를 하는 데에는 전기정보공학적 지식을 갖춘 이들이 필요합니다. 사람의 몸에 부착하는 웨어러블 로봇 같은 경우에는 기능성 의류 디자인, 인체공학적 설계 등도 필요할 정도로 융합적인 성격이 강합니다. 비록 로봇팔의 제어에 관한 수학적 고찰 위주로 다루는 입문용 과목이긴 하지만, 로봇공학개론을 통해서 로봇공학의 매력을 알게 되는 사람들이 많아지면 좋겠다는 생각이 듭니다. 더불어, 전기정보공학부에서 유일하게 열리는 로봇공학 관련 과목인만큼 (그나마 비슷한 것으로는 제어공학개론이 있으나, 이는 정말 수학적 분석이 주가 됩니다) 졸업하기 전 한 번즈음 들어볼 만한 과목이라고 생각합니다.
References
[1] Spong, Mark W., and Mathukumalli Vidyasagar. Robot dynamics and control. John Wiley & Sons, 2008.
'전공백서 > 전기정보공학부' 카테고리의 다른 글
전기정보공학부:생체전기정보공학 (10) | 2024.09.01 |
---|---|
전기정보공학부: 컴퓨터 시스템 프로그래밍 (1) | 2024.07.01 |
전기정보공학부: 알고리즘의 기초 (0) | 2024.06.29 |
전기정보공학부: 딥러닝의 기초 (0) | 2024.06.26 |
전기정보공학부: 디지털 시스템 설계 및 실험 (0) | 2024.06.26 |
댓글