본문 바로가기
컴퓨터공학/기초

로봇(Robot)

by 하이방가루 2023. 1. 4.
728x90
반응형

이 글은 Crash Course의 Computer Science를 보고 정리한 글입니다.

  로봇은 일반적으로 컴퓨터 제어에 의한 가이드로 자동으로 일련의 작업을 수행하는 기계를 말한다. 차에 페인트를 칠하는 공업용 팔, 날아다니는 드론, 외과의를 돕는 뱀 같은 의료 장비뿐만 아니라 인간과 비슷한 로봇 조수 등이 있다.

  대화형 가상 캐릭터에 "로봇"이라는 용어가 적용되는 경우도 있지만, 이런 경우 "봇(Bot)" 또는 "에이전트(Agent)"라고 부르는 것이 더 적절하다. 로봇이라는 용어는 실제 세계에 살고 행동하는 기계라는 물리적인 의미를 지니고 있기 때문이다.

  로봇이라는 단어는 1920년 체코의 연극에서 인조인간 캐릭터를 나타내는 데 처음 사용되었다. 이 단어는 강제적인 노동자를 의미하는 슬라브어인 "robota"에서 파생되었으며, 이는 19세기 유럽의 봉건 제도 하에서 소작농들이 강제 복무에 있음을 나타낸다. 

  로봇이라는 단어가 나온 지 1세기 이후에도 여전히 로봇에 대해서 "대량 생산", "효율적", "인간을 닮은 지치지 않는 창조물", "감정이 없으며, 자기 보호에 무관심하고 창의력이 부족하다"라고 묘사된다.

 

  자가 작동 기계에 대한 보다 일반적인 생각은 1920년대 보다 더 이전에 많은 고대 발명가들이 자동으로 기능을 수행하는 기계적인 장치를 만들었다. 시계탑의 인형처럼 춤, 노래, 연주 등 물리적 행동을 할 수 있는 자동화된 동물 및 인간형 피규는 많다. 이러한 비 전기식 및 정확히는 비 전자식 기계는 "자동 장치(Automaton)"라고 불렸다.

  예를 들어, 초기 오토마톤은 1739년 프랑스인 Jacques de Vaucanson이 만든 Canard Digerateur 또는 Digesting Duck이라고 불리는 것이다. 이 오리 모양의 기계는 곡물을 먹은 후 배설하는 것처럼 생겼다. 볼테르(Voltaire)는 1739년에 이렇게 기록했다. "le Maure의 목소리와 Vaucanson의 오리가 없었다면, 당신에게 프랑스의 영광을 일깨워줄 수 없을 것이다." 

 

  컴퓨터로 제어되는 첫 번째 기계는 1940년대 후반에 나타났다. 이 Computer Numerical Control(CNC)는 일련의 작업을 수행하도록 지시하는 프로그램을 실행할 수 있다. 컨트롤 수준은 알루미늄 블록에서 복잡한 프로펠러를 깎아내는 것처럼 새로운 제품의 생산도 가능했다. 이는 표준 공작 기계를 사용하여 수행하기 어렵고 손으로 하기엔 허용 오차가 너무 작았다.

 CNC기계는 업계에 큰 이익이었다. 단지 능력과 정밀도가 향상되었기 때문만이 아니라, 인간의 일을 자동화함으로써 노동 비용 절감 측면도 있었다.

  최초의 상용 배포는 프로그래밍이 가능한 Unimate라고 불리는 산업용 로봇이었다. 1960년 제너럴 모터스에 판매되어 다이 캐스팅 기계에서 뜨거운 금속 조각을 들어서 쌓아 올렸다. 이는 로봇 산업의 시작이었다. 곧, 로봇은 팔레트를 쌓아 올리고, 부품을 용접하고, 차에 페인트를 칠하는 등 많은 작업을 했다.

 

  트랙에서 앞뒤로 움직이는 로봇 그리퍼와 같은 간단한 동작으로 로봇은 특정 위치로 이동하라는 지시를 받을 수 있으며, 원하는 위치에 도달할 때까지 계속 그 방향으로 움직인다. 이 동작은 간단한 제어 루프를 통해 이루어질 수 있다.

  먼저, 로봇 위치를 감지한다. 특정 위치에 로봇이 도착했는지 측정하여 아직 도착하지 않았다면 계속 움직인다. 만약 특정 위치에 로봇이 도착한 것을 감지한다면 움직이는 것을 멈춘다.

  감지된 위치와 원하는 위치 사이의 거리를 최소화하기 위해서 이 제어 루프는 보다 구체적으로는, 부정적인 피드백 루프(Negative Feedback Loop)라고 한다. 네거티브 피드백 제어 루프는 3가지 주요 부분으로 구성된다.

수압이나 모터 위치, 기압 등 무엇이든 실제 상황을 측정하는 센서(Sensor)가 있다. 이 측정에서 원하는 곳에서 얼마나 멀리 있는지, 즉, 오류(Error)를 계산할 수 있다. 그다음 오류는 시스템에 오류를 최소화하도록 지시하는 방법을 결정하는 컨트롤러(Controller)에 의해 해석된다. 그런 다음 시스템은 펌프, 모터, 발열체 및 기타 물리적 작동기를 통해 실제로 작동한다.

  엄격히 통제된 환경에서 이와 같은 단순 제어 루프는 잘 돌아간다. 하지만 많은 실제 응용 프로그램에서는 이것보다 더 복잡하다. 만약 그리퍼가 정말로 무겁다면, 제어 루프가 멈추라고 명령하는 경우에도, 운동량으로 인해 그리퍼가 원하는 위치보다 더 이동한다. 그러면 제어 루프가 다시 그리퍼를 끌어오도록 작동할 것이다. 잘못 조정된 제어 루프로 잘못 가고, 잘못 가고, 또 잘못 가고, 아마 영원히 흔들릴 것이다.

  설상가상으로 실제 환경에는 마찰, 바람 및 다른 무게의 물건같이 로봇에 작용하는 외부 및 가변적인 힘이 있다. 이를 적절하게 처리하려면 더 정교한 제어 논리가 필요하다. 

 

  널리 사용되는 제어 루프 피드백 메커니즘은 비례 미적분 제어기(PID Controller; Proportional-Integral-Derivative Controller)이다. 이것들은 기계 장치였지만 지금은 소프트웨어로 모두 바뀌었다.

 커피를 운반하는 로봇이 있다고 하자. 여정 목표는 모두 안전하고 이상적인 속도로 결정된 초당 2미터로 고객에게 가는 것이다. 물론, 환경이 항상 협조적이진 않다. 때때로 바람이 있고, 오르막과 내리막 길과 모든 종류의 것들이 로봇의 속도에 영향을 준다. 따라서 원하는 속도를 유지하기 위해 모터의 전력을 늘리거나 줄여야 한다.

  로봇의 속도 센서를 사용하여 실제 속도와 목표 속도를 추적할 수 있다. PID 제어기는 데이터로부터 3가지 값을 계산한다. 첫 번째는 비례 값으로, 현재 또는 가장 최근 순간의 원하는 값과 실제 값의 차이이다. 이것은 전에 사용한 더 간단한 제어 루프이다. 실제와 목표 사이의 차이가 클수록 목표를 향해 더 세게 전진할 것이다. 다시 말하면, 비례 제어이다.

  다음으로, 지난 몇 초와 같이 일정 기간 동안의 오류 합계인 적분 값이 계산된다. 이 회고는 긴 언덕을 운전하는 것과 같은 결과로 인한 정상 상태 오류를 보완하는 데 도움이 된다. 이 값이 클 경우, 비례 제어로는 충분하지 않으며 더 세게 밀어 넣어야 한다. 

  마지막은 미분 값으로, 원하는 값과 실제 값 사이의 변화율이다. 이것은 미래의 가능한 오류에 대한 설명을 돕고, 종종 "예상 통제"라고도 불린다. 예를 들어, 너무 빠르다고 목표를 향해 소리치면 오버슛을 방지하기 위해 약간의 완화가 필요할 것이다.

  이 세 값은 시스템에 전달되는 컨트롤러 출력을 생성하기 위해 다른 상태 가중치로 함께 합산된다. PID 컨트롤러는 어디에나 있다. 자동차의 정속 주행 장치에서부터 수평 비행을 유지하기 위해 로터 속도를 자동으로 조정하는 드론 및 공위에서 균형을 잡고 움직이는 이국적인 로봇과 같이 어디에나 있다. 고급 로봇은 종종 병렬로 실행되는 많은 제어 루프가 필요하며 함께 작동하면서 로봇의 균형부터 팔다리 위치까지 모든 것을 관리한다. 

 

  앞서 살펴봤듯이, 제어 루프는 위치와 같은 로봇 속성을 원하는 값으로 가져오는 역할을 담당한다. 이것은 상위 수준 로봇 소프트웨어의 역할이다. 로봇의 동작을 계획하고 실행하며 지각된 장애물 주변의 경로를 그리거나 공을 집어 올리는 것과 같이 물리적인 작업을 간단하고 순차적인 동작으로 분해하는 것들을 한다.

  이 기술을 사용하여 로봇은 지구의 대양 깊숙한 곳을 다녀왔고, 10년 넘게 화성에서 돌아다녔다. 그러나 많은 사람들에게 사소한 문제들이 로봇에겐 지독하게 어려운 것으로 드러났다. 예를 들면, 2개의 다리로 걷고, 문을 열고, 부딪히지 않고 물건을 집어 들기, 티셔츠를 입거나 개를 쓰다듬는 것 같은 행동 같은 것 말이다.

  이러한 종류의 작업은 모두 활성화된 로봇 연구의 영역이다. 인공 지능 기술은 이러한 도전을 극복하기 위한 가장 유망한 방법이다. 예를 들어, Google은 로봇 팔을 사용하여 다양한 물건을 하나에서 다른 박스로 옮기면서 시행착오를 통해 배우는 실험을 진행했다. 수천 시간의 연습 후에, 로봇은 오류율을 반으로 줄였다.

  물론 사람과 달리, 로봇은 하루 24시간 내내 작동하며 동시에 연습할 수 있다. 따라서, 물건을 쥐기에 능숙해질 때까지 단지 시간문제일 수 있다.

  최근 몇 년간 가장 크고 눈에 띄는 로봇 혁명 중 하나는 자가운전, 자율 주행 차량이었다. 생각해 보면, 자동차에는 시스템 입력이 그렇게 많지 않으므로 속도를 높이거나 낮출 수 있으며 왼쪽이나 오른쪽으로 조정할 수 있다. 힘든 부분은 차선을 감지하고, 표지판을 읽으며, 교통, 보행자, 자전거 타는 사람 및 모든 장애물을 예상하고 운전하는 것이다. 근접 센서가 여러 개 박혀 있는 것 이외에도, 자율주행 차는 컴퓨터 비전 알고리즘에 크게 의존한다.

  또한 인간처럼 보고 행동하는 원시적인 안드로이드의 출현도 있다. 어쨌든, 로봇 공학자들에게 여전히 감질나는 목표는 인공 지능, 컴퓨터 비전, 자연어 처리 등의 컴퓨터 과학 주제들을 결합시키는 것이다. 

 

  군대도 로봇에 큰 관심을 가지고 있다. 로봇은 교체가 가능할 뿐 아니라 힘, 지구력, 주의력, 정확성과 같은 속성들이 인간을 능가할 수 있다. 오늘날 폭탄 처리 로봇 및 정찰 무인 항공기는 꽤 흔히 볼 수 있다. 그러나 한국이 배치한 삼성 SGR-A1 보병 총과 같이 완전 자율적으로 무장한 로봇은 서서히 나타나고 있다. 

  인간의 생명을 앗아가기 위한 지능과 능력을 갖춘 로봇을 자율살상무기(Lethal Autonomous Weapon)라고 한다. 그리고 이것은 광범위하고 까다로운 문제로 받아들여지고 있다. 의심의 여지없이, 이 시스템은 전쟁터에서 벗어나 위험을 피해 병사들의 생명을 구할 수 있다. 반대로, 무자비하고 효율적인 살인 기계를 만들 수도 있다. 이 기계는 복잡한 상황에 대해 인간의 판단이나 연민을 적용하지 않는다.

 

  로봇은 명령을 받아들이고 효율적으로 실행할 수 있다. 때로는 인간 명령이 실제로 나쁜 것으로 판명될 수도 있다. 이 논쟁은 오랫동안 계속될 것이며, 로봇 기술이 향상됨에 따라 양측의 전문가의 목소리가 더욱 커질 것이다. 또한 오래된 논쟁이기도 하다. 

  과학 소설 작가인 Isaac Asimov는 1942년 단편 소설 <Runaround>에서 가상의 "로봇의 3법칙"을 소개했다. 그리고 그는 나중에 제로 규칙을 추가했다. 짧게 말하면, 이것은 로봇을 위한 행동 강령 또는 윤리 기준이다. 특히 인간에게 해를 입히지 않도록 지시한다. 응용하기에는 꽤 부적합하며 많은 불확실한 여지를 남겨 둔다. 

  그러나 아직까지, Asimov의 법칙은 과학 소설과 학술적 토론에 크나큰 영감을 주었다. 최근에 로봇 윤리학에 관한 전체 회의가 있었다. 중요한 것은 Asimov가 소설을 위한 규칙을 세웠다는 것이다. 이 규칙은 그의 어린 시절의 소설에서 흔히 볼 수 있는 "흉폭한 로봇"을 다시 밀어 넣을 수 있는 방법이다. 로봇이 그 과정에서 창조자를 해치거나 심지어 망가 뜨리는, 선상에서 벗어난 이야기이다.

  한편으로 Asimov는 로봇을 유용하고, 믿을 수 있고, 심지어 사랑스러운 기계로 구상했다. 로봇 또한 많은 기술과 마찬가지로, 이중성을 지니고 있고, 자애롭고 악의적인 용도로 사용될 수 있다.

728x90
반응형

댓글