책 소개
요약
이론적 개념과 실용적 응용을 모두 아우르는 로봇공학 분야에 대해 포괄적으로 소개하는 책이다. 운동학, 역학, 운동계획, 제어 등의 주제들과 더불어 최적화, 머신러닝 등 현대 기술 또한 다룬다. 책에 다양한 예시와 연습 문제가 포함돼 있고, 코드 라이브러리와 시뮬레이션 환경까지 제공해 독자들이 실질적인 로봇공학 경험을 쌓을 수 있도록 돕는다. 학부생과 대학원생, 로봇공학 분야의 연구자와 실무자 모두에게 도움이 될 책이다.
Coursera에서 저자의 무료 동영상 강의(https://www.coursera.org/specializations/modernrobotics)를 수강할 수 있다.
추천의 글
1870년대 펠릭스 클라인(Felix Klein)은 광범위한 에를랑겐(Erlangen) 프로그램을 개발하고 있었다. 이를 통해 기하학과 군 이론에 관한 아이디어 사이의 관계는 견고해졌다. 거의 동시에 소푸스 리(Sophus Lie)가 연속적인 리 군에 대한 이론을 발전시킴으로써, 리대수적 아이디어에 기반한 미소 분석을 포함하는 새로운 도구들을 매우 넓은 범위의 기하학적 연구에 활용할 수 있게 됐다. 오늘날에도 이런 아이디어의 이면에 있는 생각이 주요 수학 분야의 발전을 계속 이끌고 있다. 물론 기구학적 메커니즘은 가속과 충돌 회피 등 단순한 기하학 이상의 것이지만, 무엇보다도 모두 기하학적 물체이기에 클라인과 리의 아이디어를 적용할 수 있다. 로봇공학에 등장하는 2차원 또는 3차원에서의 강체 운동 군은 클라인과 리의 연구에서의 중요한 예시다.
수학 문헌에서 지수로 리 군의 원소를 표현하는 방식은 두 가지로 나뉜다. 바로 제1종 지수 좌표와 제2종 지수 좌표다. 제1종에서는 X = e(A1x1+A2x2··· )이다. 제2종에서는 이 대신에 X = eA1x1eA2x2 · · ·가 사용된다. 지금까지, 첫 번째 방식이 기구학 연구에 유용한 경우가 거의 없었지만, 두 번째 방식은 직교 그룹(orthogonal group)의 오일러 매개변수화에 이미 나타난 특별한 경우로, 1 자유도 링크를 연결한 기구학적 개연쇄를 설명하는 데에 매우 적합한 것으로 밝혀졌다. 이 부분은 이 책의 4장에도 잘 설명돼있다. 두 번째 형태와 식 PeAP−1 = ePAP−1를 활용하면, 넓은 범위의 기구학적 문제들을 매우 간결하게 나타낼 수 있다. 역사적인 관점에서 볼 때, 저자들이 이 책에 쓴 것과 같이 로봇 운동을 지수 곱을 사용해 나타내는 것은 클라인과 리의 150년된 아이디어의 실용적 쓰임새를 보여주는 것으로 볼 수 있다.
1983년에 나는 이스라엘의 베르셰바에서 3년마다 개최되는 네트워크와 시스템 콘퍼런스에 초청받았고, 조금의 고민 후에 경험을 통해 배운 것을 설명하기로 결심했다. 당시 나는 기구학적 연쇄의 지수 곱 표현을 포함하는 기구학을 다루는 로봇공학 강의를 맡았었다. 1960년대 이후로 eAt는 시스템 이론과 신호 처리에서 중요한 역할을 해왔기에, 이 콘퍼런스가 행렬 지수에 대한 친숙함, 나아가 애착까지 가지고 있으리
라 기대할 수 있었다. 이를 고려할 때 나는 자연스럽게 eAx와 관련된 강연 주제를 선정했다. 많은 청중이 기구학에 관심이 있을거란 근거는 없었지만, 나는 흥미로운 주제를 전달하고 사람들에게 더 많은 발전을 위한 영감을 줄 수 있기를 바랐다. 이러한 바람에서 이어지는 서문에서 참조한 논문을 작성했다.
박종우(Frack C. Park)와 케빈(Kevin M. Lynch)은 이 책의 주제를 놀랍도록 명확하고 끈기 있게 설명했다. 그들은 학부 공학생에게 적절한 수준으로 클라인과 리가 150년 전에 닦아놓은 기초를 실용적인 현대 로봇공학으로 옮겨왔다. 상태 공간의 기초에 대해 정교하게 논의한 다음, 이 책 전반에 걸쳐 사용하는 강체 컨피규레이션의 리 군 표현 그리고 그에 상응하는 속도와 힘의 표현을 설명한다. 이렇게 일관된 관점을 개연쇄의 정기구학, 역기구학, 미분 기구학과 로봇 동역학, 궤적 생성, 로봇 제어, 그 외 폐연쇄의 기구학, 운동 계획, 로봇 매니퓰레이션, 차륜 이동 로봇의 계획과 제어, 이동 매니퓰레이터의 제어와 같은 더욱 발전된 주제들에 적용한다.
나는 이 책이 한 세대의 학생들과 로봇공학 실무자들에게 귀중한 자료가 되리라 확신한다.
—로저 브로켓(Roger Brockett)
케임브리지, 메사추세츠, 미국(Cambridge, Massachusetts, USA)
2016년 11월
로봇공학은 아이디어를 행동으로 옮기는 것이다. 로봇은 어떤 방식으로든 추상적인 목표를 물리적 행동으로 바꾼다. 예를 들어 모터에 동력을 전달하고, 운동을 모니터링하고, 목표를 향해 물체를 안내한다. 모든 인간이 이와 같은 기술을 수행할 수 있지만, 그럼에도 이런 기술은 데카르트(Descartes)를 비롯한 많은 철학자와 과학자를 사로잡았을 만큼 흥미롭다.
비밀은 무얼까? 로봇공학자들이 유레카를 외치는 순간이 있었던 것일까? 어떤 한 쌍의 십대 기업가들이 자신들의 차고에서 핵심 아이디어를 얻은 것일까? 이와 반대로, 비밀은 하나의 아이디어가 아니다. 그것은 수세기에 걸쳐 축적된 과학 및 공학적 결과들의 거대한 산물로 주로 수학, 물리학, 기계공학, 전기공학, 컴퓨터 과학에서 비롯되며 또한 철학, 심리학, 생물학 그리고 다른 분야에서도 유래한다.
로봇공학은 이러한 아이디어들이 모두 모이는 곳이다. 로봇공학은 영감을 준다. 로봇공학은 아이디어들을 시험하고 지속적인 연구를 주도한다. 마지막으로 로봇공학은 증거다. 로봇의 행동을 관찰하는 것은 기계가 주변을 인지할 수 있고, 의미 있는 목표를 개발할 수 있으며, 그러한 목표를 달성하기 위해 효과적으로 행동할 수 있다는 설득력 있는 증거다. 같은 원리를 서모스탯(thermostat)이나 원심 조속기(flyball governor)에도 적용할 수 있지만, 서모스탯을 관찰해서는 거의 아무도 설득할 수 없다. 사람들은 대부분 로봇 축구팀을 보면서 설득된다.
로봇공학의 핵심은 운동이다. 그중에서도 이 책에서 다루는 제어, 프로그래밍할 수 있는 운동이다. 이 책은 로봇공학에서 배울 수 있는 가장 중요한 것들 즉, 운동의 본질, 강체가 취할 수 있는 운동, 운동 구성의 기구학적 제약조건의 활용, 일반적이며 프로그래밍할 수 있는 운동을 할 수 있는 메커니즘, 메커니즘들의 정역학 및 동역학적 특성, 운동의 제어, 프로그래밍, 계획을 위한 접근법의 문제점을 보여준다. 이 책은 이러한 주제를 명확하게 전달해 학부생들이 참고하기에 적절하다. 이 책은 다른 학부생용 교재와 두 가지 중요한 차별점을 갖는다.
첫째로, 강체 운동을 다룰 때 이 책은 고전적인 기하학적 기반과 표현을 소개할 뿐만 아니라 현대적인 행렬 지수를 이용한 표현과 리 대수와의 연결성도 보여준다. 이는 학생들에게 두 가지 장점으로 작용한다. 운동을 더 깊이 이해할 수 있으며, 보다 나은 실용적인 도구들을 얻을 수 있다는 것이다.
둘째로, 로봇 메커니즘에 초점을 맞추는 것에서 더 나아가 주변 세상의 물체들과의 상호작용에 대해서도 다룬다. 로봇이 실제 세계와 접촉하면 관련된 정역학 및 동역학과 함께 애드혹(ad hoc)한 기구학적 메커니즘이 된다. 이런 메커니즘은 기구학적 고리, 구동되지 않는 관절, 비홀로노믹(nonholonomic) 제약조건을 포함하며, 모던 로보틱스를 공부한 학생들은 이들 모두에 익숙해질 수 있을 것이다.
학생들이 이 책을 읽는다면 다양한 물리적 시스템을 분석, 제어, 프로그래밍할 수 있게 될 것이다. 이 책은 물리적 상호작용의 역학을 소개하고 있다. 로봇공학의 심화 과정이나 독창적인 연구에 대해 계속해서 공부하고 싶은 학생들에게도 좋은 출발점이 될 것이다.
—매튜 T. 매이슨(Matthew T. Mason)
피츠버그, PA, 미국(Pittsburgh, PA, USA)
2016년 11월
이 책에서 다루는 내용
◆ 로봇의 가장 중요한 물리적 특징을 직관적인 기하학적 방법으로 포착하는 최신 스크류 이론
◆ 평가를 위한 많은 연습문제
◆ 책의 개념을 강화하기 위한 무료 소프트웨어
◆ 무료 동영상 강의(https://www.coursera.org/specializations/modernrobotics)
이 책의 구성
1장, '미리보기’에서는 로봇공학의 기본적인 개념과 이 책의 구성을 소개한다.
2장, ‘상태 공간’에서는 로봇의 모든 점의 위치를 명시하는 로봇 시스템의 컨피규레이션의 표현에 집중했다.
3장, ‘강체 운동’에서는 3차원 물리적 공간에서의 강체의 움직임을 수학적으로 어떻게 묘사할지에 대한 문제를 다룬다.
4장, ‘정기구학’에서는 개연쇄의 정기구학을 묘사하는 지수 곱(PoE, Product of Exponentials) 식을 제시한다.
5장, ‘속도 기구학과 정역학’에서는 관절 속도와 엔드 이펙터 좌표계의 선속도와 각속도 사이의 관계를 나타내는 속도 기구학에 대해 다룬다. 속도 기구학의 핵심은 정기구학의 자코비안이다.
6장, ‘역기구학’에서는 우선 역기구학으로 닫힌 형식의 해석적 해를 얻을 수 있는 유명한 6-자유도 개연쇄 구조를 살펴본다. 이후 자코비안의 역행렬을 이용해 일반적인 개연쇄의 역기구학을 풀 수 있는 반복적 수치 알고리듬을 유도한다.
7장, ‘폐연쇄의 기구학’에서는 폐연쇄의 기구학 분석을 위한 기본 개념과 도구를 공부한다. 먼저 평면상의 5절 링크와 스튜어트-고프 플랫폼 같은 메커니즘의 상세한 사례를 공부한다. 이 결과들은 이후 더 일반적인 폐연쇄 기구학에 대한 체계적 방법론으로 일반화된다.
8장, ‘개연쇄의 동역학’에서는 로봇의 동역학 방정식을 유도하기 위한 두 접근법을 살펴본다. 동역학 방정식의 해석적 유도뿐만 아니라 정동역학과 역동역학에 대한 재귀적 알고리듬 또한 소개한다.
9장, ‘궤적 생성’은 작업 입력 데이터 집합으로부터 관절 궤적을 자동 생성하는 것을 다룬다. (i) 관절 공간과 태스크 공간에서 점과 점 사이 직선 궤적 (ii) 특정 시간의 경유점들을 지나는 부드러운 궤적 (iii) 로봇동역학과 구동기 한계 아래 주어진 경로를 지나는 최단 시간 궤적 등 3가지 경우에 집중한다.
10장, ‘동작 계획’에서는 비정형의 작업 공간 사이로 관절 한계, 구동기 한계, 로봇에 부과된 다른 물리적 제약을 피하며 로봇의 충돌 회피 동작을 찾는 문제에 접근한다. 3가지 기본적인 접근인 격자 기반 방법, 샘플링 기반 방법, 가상 퍼텐셜 장(virtual potential fields) 기반 방법을 다룬다.
11장, ‘로봇 제어’에서는 로봇 동역학 모델을 고려하지 않은 피드백 제어의 한계를 살펴보고, 동역학 모델링과 피드백 제어를 결합한 토크 계산 제어(computed torque control)와 같은 동작 제어 알고리듬을 공부한다. 이후 로봇 운동 제어를 위해 배운 기본 내용들을 힘 제어, 하이브리드 운동-힘 제어, 임피던스 제어에 적용한다.
12장, ‘파지와 조작’에서는 로봇과 물체 사이의 접촉, 특히 접촉에 의해 물체의 운동에 가해지는 제약 조건과 마찰 접촉을 통해 전달되는 힘을 모델링한다. 이러한 모형과 더불어 형태 닫힘(form closure) 파지와 힘 닫힘(force closure) 파지로 물체를 고정하기 위한 접촉에 대해 공부한다. 또한 물체 밀기, 동적인 물체 운반, 구조의 안정성 시험 등 파지 외 문제들에 대해서도 접촉 모델링을 적용한다.
13장, ‘차륜 이동 로봇’에서는 마지막으로 차륜 이동 로봇과 로봇 팔을 갖춘 차륜 이동 로봇의 기구학, 동작 계획, 제어를 다룬다.
각 장의 마지막에는 중요한 개념들이 요약돼 있으며, 부록 A는 많이 사용되는 방정식을 정리하고 있다.
목차
목차
- 1장. 미리보기
- 2장. 상태 공간
- 2.1 강체의 자유도
- 2.2 로봇의 자유도
- 2.2.1 로봇 관절
- 2.2.2 그뤼블러의 공식
- 2.3 상태 공간: 위상과 표현
- 2.3.1 상태 공간 위상
- 2.3.2 상태 공간 표현
- 2.4 컨피규레이션과 속도 제약 조건
- 2.5 태스크 공간과 작업 공간
- 2.6 요약
- 2.7 주석과 참고문헌
- 2.8 연습 문제
- 3장. 강체 운동
- 3.1 평면상의 강체 운동
- 3.2 회전과 각속도
- 3.2.1 회전 행렬
- 3.2.2 각속도
- 3.2.3 회전의 지수 좌표 표현
- 3.3 강체 운동과 트위스트
- 3.3.1 동차 변환 행렬
- 3.3.2 트위스트
- 3.3.3 강체 운동의 지수 좌표 표현
- 3.4 렌치
- 3.5 요약
- 3.6 소프트웨어
- 3.7 주석과 참고문헌
- 3.8 연습 문제
- 4장. 정기구학
- 4.1 지수 곱 공식
- 4.1.1 첫 번째 공식화: 기반 좌표계에서의 스크류 축
- 4.1.2 예제
- 4.1.3 두 번째 공식화: 엔드 이펙터 좌표계에서의 스크류 축
- 4.2 로봇 기술용 통일 포맷
- 4.3 요약
- 4.4 소프트웨어
- 4.5 주석과 참고문헌
- 4.6 연습 문제
- 5장. 속도 기구학과 정역학
- 5.1 매니퓰레이터 자코비안
- 5.1.1 공간 자코비안
- 5.1.2 물체 자코비안
- 5.1.3 공간 자코비안과 물체 자코비안의 시각화
- 5.1.4 공간 자코비안과 물체 자코비안 사이 관계식
- 5.1.5 자코비안의 다른 표현들
- 5.1.6 역속도 기구학 미리 보기
- 5.2 개연쇄의 정역학
- 5.3 특이점 분석
- 5.4 조작성
- 5.5 요약
- 5.6 소프트웨어
- 5.7 주석과 참고문헌
- 5.8 연습 문제
- 6장. 역기구학
- 6.1 해석적 역기구학
- 6.1.1 6R 퓨마형 로봇 팔
- 6.1.2 스탠포드형 로봇 팔
- 6.2 수치 역기구학
- 6.2.1 뉴턴-랩슨 방법
- 6.2.2 수치 역기구학 알고리듬
- 6.3 속도 역기구학
- 6.4 폐루프에 대한 코멘트
- 6.5 요약
- 6.6 소프트웨어
- 6.7 주석과 참고문헌
- 6.8 연습 문제
- 7장. 폐연쇄의 기구학
- 7.1 역기구학과 정기구학
- 7.1.1 3×RPR 평면 병렬 메커니즘
- 7.1.2 스튜어트-고프 플랫폼
- 7.1.3 일반적인 병렬 메커니즘
- 7.2 미분 기구학
- 7.2.1 스튜어트-고프 플랫폼
- 7.2.2 일반적인 병렬 메커니즘
- 7.3 특이점
- 7.4 요약
- 7.5 주석과 참고문헌
- 7.6 연습 문제
- 8장. 개연쇄의 동역학
- 8.1 라그랑지안 형식
- 8.1.1 기본 개념과 예제
- 8.1.2 일반화된 공식
- 8.1.3 질량 행렬에 대한 이해
- 8.1.4 라그랑지안 동역학 대 뉴턴-오일러 동역학
- 8.2 단일 강체의 동역학
- 8.2.1 고전 공식
- 8.2.2 트위스트-렌치 공식
- 8.2.3 다른 좌표계에서의 동역학
- 8.3 역뉴턴-오일러 동역학
- 8.3.1 유도
- 8.3.2 뉴턴-오일러 역동역학 알고리듬
- 8.4 닫힌 형식의 동역학 방정식
- 8.5 개연쇄의 정동역학
- 8.6 작업 공간에서의 동역학
- 8.7 구속된 조건의 동역학
- 8.8 URDF에서의 로봇 동역학
- 8.9 구동, 기어링, 마찰
- 8.9.1 DC 모터와 기어링
- 8.9.2 감지된 회전 관성
- 8.9.3 모터의 회전 관성과 기어링의 효과를 고려한 뉴턴-오일러 역동역학 알고리즘
- 8.9.4 마찰
- 8.9.5 관절과 링크의 유연성
- 8.10 줄거리
- 8.11 소프트웨어
- 8.12 주석과 참고문헌
- 8.13 예제
- 9장. 궤적 생성
- 9.1 용어 정의
- 9.2 점대점 궤적
- 9.2.1 직선 경로
- 9.2.2 시간 스케일링과 직선 경로
- 9.3 다항식 경유점 궤적
- 9.4 시간 최적의 시간 스케일링
- 9.4.1 (s, s˙) 위상평면
- 9.4.2 시간 스케일링 알고리듬
- 9.4.3 시간 스케일링 알고리듬의 변형
- 9.4.4 가정 및 주의 사항
- 9.5 요약
- 9.6 소프트웨어
- 9.7 주석과 참고문헌
- 9.8 연습 문제
- 10장. 동작 계획
- 10.1 동작 계획에 대한 개괄
- 10.1.1 여러 가지 동작 계획 문제
- 10.1.2 동작 계획기의 특성
- 10.1.3 동작 계획 방법
- 10.2 기초
- 10.2.1 상태 공간 장애물
- 10.2.2 장애물까지의 거리 측정과 충돌 감지
- 10.2.3 그래프와 트리
- 10.2.4 그래프 탐색
- 10.3 완전 동작 계획기
- 10.4 격자 계획기
- 10.4.1 다중 해상도 격자 표현
- 10.4.2 동작 제약 조건이 있을 때의 격자 표현법
- 10.5 샘플링 기법
- 10.5.1 RRT 알고리듬
- 10.5.2 PRM
- 10.6 가상 퍼텐셜 장
- 10.6.1 상태 공간 내의 점
- 10.6.2 항법함수
- 10.6.3 작업 공간 퍼텐셜
- 10.6.4 차륜 이동 로봇
- 10.6.5 퍼텐셜 장의 동작 계획에서의 응용
- 10.7 비선형 최적화
- 10.8 곡선화
- 10.9 요약
- 10.10 참조 및 기타
- 10.11 연습 문제
- 11장. 로봇 제어
- 11.1 제어 시스템 개요
- 11.2 오차 동역학
- 11.2.1 오차 응답
- 11.2.2 선형 오차 동역학
- 11.3 속도 입력에 따른 운동 제어
- 11.3.1 단일 관절의 운동 제어
- 11.3.2 다중 관절 로봇의 운동 제어
- 11.3.3 태스크 공간에서의 운동 제어
- 11.4 토크, 힘 입력에 따른 운동 제어
- 11.4.1 단일 관절에 대한 운동 제어
- 11.4.2 다중 관절 로봇의 운동 제어
- 11.4.3 태스크 공간에서의 운동 제어
- 11.5 힘 제어
- 11.6 하이브리드 운동 - 힘 제어
- 11.6.1 자연적 및 인공적 제약 조건
- 11.6.2 하이브리드 운동 - 힘 제어기
- 11.7 임피던스 제어
- 11.7.1 임피던스 제어 알고리듬
- 11.7.2 어드미턴스 제어 알고리듬
- 11.8 낮은 수준의 관절 힘-토크 제어
- 11.9 다른 주제들
- 11.10 요약
- 11.11 소프트웨어
- 11.12 주석과 참고문헌
- 11.13 연습 문제
- 12장. 파지와 조작
- 12.1 접촉 기구학
- 12.1.1 단일 접촉점에 대한 1차 분석
- 12.1.2 접촉의 유형: 굴림, 미끌림 그리고 멀어짐
- 12.1.3 다중 접촉
- 12.1.4 물체의 집합
- 12.1.5 다른 종류의 접촉점
- 12.1.6 평면상의 도식적 방법
- 12.1.7 형태 닫힘
- 12.2 접촉힘과 마찰
- 12.2.1 마찰
- 12.2.2 평면 도식적 방법
- 12.2.3 힘 닫힘
- 12.2.4 힘과 운동 자유도의 쌍대성
- 12.3 조작
- 12.4 요약
- 12.5 주석과 참고문헌
- 12.6 연습문제
- 13장. 차륜 이동 로봇
- 13.1 차륜 이동 로봇의 유형
- 13.2 전방향 차륜 이동 로봇
- 13.2.1 모델링
- 13.2.2 동작 계획
- 13.2.3 피드백 제어
- 13.3 비홀로노믹 차륜 이동 로봇
- 13.3.1 모델링
- 13.3.2 제어 가능성
- 13.3.3 동작 계획
- 13.3.4 피드백 제어
- 13.4 오도메트리
- 13.5 이동 조작
- 13.6 요약
- 13.7 주석과 참고문헌
- 13.8 연습 문제
- A 유용한 공식 요약
- B 회전의 다양한 표현
- B.1 오일러 각도
- B.1.1 ZYX 오일러 각도를 계산하기 위한 알고리즘
- B.1.2 이외의 오일러 각도 표현 법
- B.2 롤-피치-요 각도
- B.3 단위 사원수
- B.4 케일리-로드리게스 매개변수
- C 데나빗-하텐버그 매개변수
- C.1 데나빗-하텐버그 표현식
- C.2 링크 좌표계 결정하기
- C.3 4개 매개변수가 충분한 이유
- C.4 매니퓰레이터의 정기구학
- C.5 연습 문제
- C.6 PoE와 D-H 방식 사이 연관성
- C.7 결론
- D 최적화와 라그랑주 승수법
도서 오류 신고
정오표
정오표
[ p.331 : 12행 ]
열기구학 계산 주파수에 비해
->
역기구학 계산 주파수에 비해