나는 인생이란 고도의 집중과 몰입 상태를 내 분야에서 가장 멋있게 만들어내는 과정이라는 진리에 입각해 항상 열심히 공부해왔다. 내 분야에서 최고가 되고싶기 때문이다.
대체군복무를 하면서, 내 지식을 활용해 무엇을 만들어보고 싶은 욕구가 넘쳤던 때라서 6족보행로봇을 제작하기 시작했다. 기구학을 공부하고 아두이노를 공부해서 지금은 거의 다 만들고 마지막 보행테스트를 앞두고있다. 로봇을 제작하는 동시에 이론을 놓지는 않아야 한다는 생각에 C/C++과 동역학을 공부하고 있다. C/C++은 직접적으로 로봇을 만드는 과정에서 쓰였다. 로봇의 모션을 만들때도 사용되고, esp32와 PS3 controller의 무선통신을 위해서 데이터를 주고 받을 때 string 형식으로 구분자를 사용해 여러 데이터를 보냈다.(1학년 때 C언어 공부할 때 문자열 공부할 때 이런 거 왜 공부하는 거냐고 공부안했던 기억이... 역시 다 필요합니다!) 하지만 동역학은 쓰이지 않았다(그냥 토크 빵빵한 서보모터 때려박기!). 대부분의 공대생이 느낄 거 같지만, 이론과 실제의 괴리가 크다는 것. 난 뭔가 멋지걸 만들고 싶은데 정작 동역학에서 풀고 있는 건 고정도르래에 걸려있는 두 박스의 가속도를 구하는 것. 사실 로봇을 만들며 기대했던 것은 "아 내가 배우는 게 이렇게 쓰이는 구나!"였다. 물론, 이 점도 어느 정도는 얻어갔다고 생각한다. 하지만, 내가 만드는 로봇은 아직 보잘 것 없기 때문에 공부에 대한 강한 동기는 불러일으키지 못했다.
무언가 더 근원적인 이유가 필요했다. 그래서 또 다시 진로에 대한 고민을 시작했다.
이 영상이 진로고민에 도움이 되었다. 네이버랩스라는 기업에서 근무하시던 분인데 멋진 분이시다.(사실 내가 이렇게 글을 쓰는 이유도 이 분이 자신의 생각을 정리하시고 유튜브영상으로 이야기하시는 걸 보고 감동받아서임)
https://www.youtube.com/watch?v=vZUvHfhsr1c&t=525s
내용을 요약하면,
로봇에는 뇌(인식,지능) ,신경(제어) ,근육(모터)있다고 말씀하신다. 보통 신경은 모터제어를 말하는 데, 로봇에서는 로봇제어와 모터제어 두 개가 있어야 한다.
인식,지능 -> 로봇제어기 -> 모터제어기 -> 모터
로봇제어기는 소프트웨어에 가깝지만 로봇 설계분야를 잘 알아야하는 분야고, 모터제어기는 하드웨어에 가깝고, 전기과스러운 분야라고 한다.
사실 메카트로닉스공학과인 나는 인식,지능 분야에서는 컴공한테 치일 거 같고, 하드웨어 분야는 기계공학과 친구들한테 치일 것 같았다. 다음과 같은 고민을 항상 한다.
"나는 애들보다 어떤 분야를 더 잘할 수 있지?"
그리고 로봇제어라는 분야를 알게 되었고, 이 분야라면 내가 좀 더 잘할 수 있을 것 같은 생각이 들었다. 왜냐하면 로봇제어에서는 로봇기구학, 로봇동역학에 대한 지식이 필요하기 때문이다. 제어니까 제어공학에 대한 이해도 필요하다. 컴퓨터공학과 친구들은 이런 걸 공부하지 않는다. 기계공학과 친구들은 아무래도 하드웨어 쪽으로 더 많이 배우니까 소프트웨어나 전기,전자 분야는 약할 것 같다. 서울대학교, 카이스트 학생들이 기계과에서 소프트웨어 쪽으로 어떤 걸 배우는 지 살펴보았다. 서울대학교는 코딩쪽으로는 거의 없는 거 같다. 그나마 메카트로닉스라는 교과목에서 회로에 관해서 배운다. 카이스트는 메카트로닉스 시스템 설계, 로봇공학개론, 동역학 시스템 프로그래밍, 자율모바일시스템 프로그래밍과목에서 배운다. 카이스트는 서울대학교보다는 더 많이하는 거 같다.
확실히 기계공학과 학생들은 코딩을 덜 배우는 것 같다. 이 부분이 기계공학과 학생들에 비해 나의 강점이 될 수 있을 것 같다. 물론, 그들은 기계에 관해서 탁월할 거기 때문에 내가 부족한 부분도 있지만, 로봇제어에 필요한 기계지식을 교수님과의 면담을 통해 알아 낸 후, 기계공학과 부전공을 하든 그런 방식을 통해 메꿔나가 경쟁력을 키워야겠다.
아래는 제어하는 사람도 C++을 잘해야하는 이유를 설명해준다.
그러면 관련 직무를 살표보자. 내 관심분야는 족형로봇이므로 일류기업 Boston Dynamics사의 채용공고를 살펴보았다.

이 공고는 Senior Robotics Engineer - Robotics and Controls라는 이름으로 올라온 채용공고다
매일 하는 일은 다음과 같다.
1. 궤적 최적화, 조작, 피드백 제어 시스템에 집중된 알고리즘을 설계하고 실행하는 일
2. 멋진 로봇에 위 알고리즘을 테스트하고 디버그 하는 일
3. 테스트, 유지보수가 가능하며 신뢰할 수 있는 코드를 만드는 일
요구되는 능력
1. 박사학위 또는 석사학위와 2년 이상의 관련경험
2. C++11 능숙해야함
3. 최적화, 다물체동역학, 제어 시스템에 전문가여야함.
4. 강력한 분석 및 디버그 기술
5. 다양한 팀과 공동목표를 가지고 일할 수 있는 능력


위 2개 직무는 Senior 직무라서 "이게 맞나?" 싶지만, 채용공고를 살펴보면
C++17과 Python의 우수한 능력을 요구하며, 연구 레벨에서의 로보틱스 제어, 시뮬레이션 경험, 최적 제어, 모델 기반 제어, 상태 추정, 제어 시스템 이론, 컴퓨터 애니메이션 알고리즘 중 하나 혹은 여러 개의 경험을 요구한다.

이건 Senior아니고 일반이다. 역시나 하는 일은 grasping, motion planning, feedback control 알고리즘을 설계하고 실행해본다 등등. 요구되는 능력은 C++을 잘해야하며 제어시스템,.상태추정, 다물체동역학, 최적화에 전문가여야한다.
이 글을 쓰면서 생각이 정리되고 자신감이 생겼다. 열심히 가보자!!!!
'생각 정리' 카테고리의 다른 글
[인생영화] 쇼생크탈출이 주는 교훈 : 더 나아진 나를 상상하기 (0) | 2023.04.16 |
---|---|
어떻게 하면 행복한 상태를 유지할 수 있을까? (2) | 2022.10.03 |
열등감과 두려움에 대하여 (0) | 2022.09.28 |
군복무 하며 꼭 지켜야만 하는 원칙과 이루고 싶은 목표 설정. (0) | 2022.09.10 |