ROS 로보틱스 프로그래밍 [4차 산업혁명 시대의 핵심 기술, 로봇 프로그래밍]
- 원서명Mastering ROS for Robotics Programming (ISBN 9781783551798)
- 지은이렌틴 조셉(Lentin Joseph)
- 옮긴이배진호
- ISBN : 9788960779587
- 40,000원
- 2017년 02월 07일 펴냄
- 페이퍼백 | 540쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 임베디드 시스템
판매처
개정판책 소개
소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/ros-robotics)
요약
4차 산업혁명 시대의 로봇 기술 구현에 필요한 고급 ROS 가이드 북이다. 이 책을 통해 ROS를 활용한 로봇 시뮬레이션, 머신 비전을 배울 수 있을 뿐만 아니라, 로보틱스의 대표적인 주제인 7-DOF(Degree of Freedom) 로봇 팔과 SLAM(Simultaneous Localization and Mapping)과 AMCL(Adaptive Monte Carlo Localization)을 활용한 이동 로봇의 자율 내비게이션을 디자인할 수 있다. 즉 기초적인 가이드북보다 더욱 실용적인 주제를 접할 수 있다. 따라서 ROS를 활용해 실용적으로 고급 로봇 알고리즘을 구현하고자 하는 독자들에게는 최적의 도서가 될 것이다.
이 책에서 다루는 내용
■ 7-DOF 로봇 팔과 차륜 구동 로봇의 로봇 모델 생성
■ 무브잇! 패키지를 활용한 7-DOF 로봇 팔의 모션 계획
■ SLAM과 AMCL을 활용한 차륜 구동 로봇의 자율 내비게이션
■ 플러그인 립, ROS 노드렛, 가제보 플러그인의 심화 학습
■ 아두이노와 같은 I/O 보드, 센서, 액추에이터와 ROS의 인터페이스
■ ABB의 활용과 유니버셜 로봇 팔 시뮬레이션
■ 최신 ROS 버전을 활용한 ROS 프레임워크 탐색
이 책의 대상 독자
열정적인 로보틱스 지지자거나 ROS를 사용해 로봇 애플리케이션 생성에 관해 더 배우고 싶어하는 연구자라면, 이 책은 바로 당신을 위한 책이다. ROS와 GNU/Linux, C++ 프로그래밍의 기본 지식을 갖추고, ROS의 고급 특징을 탐색하고자 하는 프로그래머들에게 좋을 것이다.
이 책의 구성
1장, ‘ROS와 패키지 관리 소개’에서는 ROS의 핵심 개념을 이해하기 위한 설명과 ROS 패키지(package)를 이용한 작업 방법을 설명한다.
2장, ‘ROS 3D 로봇 모델링 작업 작업’에서는 두 종류의 로봇 설계를 다룬다. 하나는 7 자유도(seven-DOF, Degree of Freedom) 매니퓰레이터(manipulator)고, 다른 하나는 차륜형 로봇(differential drive robot)이다.
3장, ‘ROS와 가제보를 활용한 로봇 시뮬레이션’에서는 7 자유도 로봇 팔과 차륜형 로봇, 가제보(Gazebo)에서 로봇 조인트를 조작하는 데 도움을 주는 ROS 컨트롤러(controllers)를 설명한다.
4장, ‘ROS 무브잇!과 내비게이션 스택 활용’에서는 ROS 무브잇!(MoveIt!)과 내비게이션 스택(Navigation Stack)을 사용해 별도로 설치하지 않아도 바로 사용할 수 있는 기능인 로봇 매니퓰레이션을 로봇 자율 내비게이션(autonomous navigation)과 인터페이스하는 방법을 알아본다.
5장, ‘플러그인립, 노드렛, 가제보 플러그인 활용’에서는 ROS의 고급 개념을 보여주는데, ROS 플러그인립(pluginlib)과 노드렛(nodelets), 가제보 플러그인(Gazebo plugins)이다. 이 장에서는 각 개념들의 기능과 응용을 살펴보고, 작동을 시연하기 위한 예제를 실행해본다.
6장, ‘ROS 컨트롤러와 시각화 플러그인 생성’에서는 PR2 로봇과 그와 유사한 로봇을 위한 기본 ROS 컨트롤러를 사용하는 방법을 보여준다. 컨트롤러를 생성한 뒤 가제보의 PR2 시뮬레이션을 이용해 컨트롤러를 구동해본다.
7장, ‘ROS와 I/O 보드, 센서, 액추에이터 인터페이싱’에서는 센서와 액추에이터와 같은 하드웨어 요소들과 ROS 간의 인터페이스를 다룬다. 아두이노나 라즈베리 파이(Raspberry Pi), 오드로이드C1(Odroid-C1) 같은 I/O 보드를 사용하는 센서와 ROS 간의 인터페이스를 살펴본다.
8장, ‘ROS와 OpenCV, PCL을 활용한 비전 센서 프로그래밍’에서는 다양한 비전 센서와 ROS 간의 인터페이스 방법, 오픈소스 컴퓨터 비전(Open-CV)과 포인트 클라우드 라이브러리(PCL, Point Cloud Library)와 같은 라이브러리를 사용해 인터페이스 프로그래밍을 하는 방법을 다룬다.
9장, ‘ROS 환경에서 차륜 구동 이동 로봇 하드웨어의 구축과 인터페이싱’에서는 차륜 구동으로 설정된 자율 이동 로봇 하드웨어를 구축하고, 그 하드웨어와 ROS 간 통신을 구현하는 데 도움을 주는 방법을 알아본다.
10장, ‘ROS-무브잇!의 고급 기능’에서는 충돌 회피, 3D 센서를 이용한 주변 인지와 환경 파악, 물체 선별, 특정 위치에 두기와 같은 무브잇!의 기능을 설명한다. 그리고 로봇 매니퓰레이터 하드웨어와 무브잇! 간의 인터페이싱을 살펴본다.
11장, ‘산업용 로봇을 위한 ROS’에서는 ROS 인더스트리얼 패키지(ROS-Industrial Package)를 이해하고 설치해본다. 산업용 로봇의 무브잇! IKFast 플러그인을 개발하는 방법을 알아본다.
12장, ‘ROS 환경에서 트러블슈팅과 최적 실행 방법’에서는 이클립스 통합 개발 환경(Eclipse IDE)에서 ROS 개발환경을 설정하는 방법과 ROS에서 최적 실행, ROS에서 발생하는 문제 해결 팁을 알려준다.
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
본문 52페이지의 그림 7
목차
목차
- 1장. ROS와 패키지 관리 소개
- ROS를 배워야 하는 이유
- 로봇을 위한 ROS를 선호하는 이유
- 로봇을 위한 ROS를 선호하지 않는 이유
- ROS 파일 시스템 레벨의 이해
- ROS 패키지
- ROS 메타 패키지
- ROS 메시지
- ROS 서비스
- ROS 연산 그래프 레벨의 이해
- ROS 노드의 이해
- ROS 메시지
- ROS 토픽
- ROS 서비스
- ROS 백
- ROS 마스터의 이해
- ROS 파라미터 사용
- ROS 커뮤니티 레벨의 이해
- ROS를 시작하기 위한 전제조건은 무엇인가?
- ROS 마스터와 ROS 파라미터 서버의 구동
- Roscore 명령어 결과의 체크
- ROS 패키지 생성
- ROS 토픽의 활용
- ROS 노드 생성
- 빌딩 노드
- 커스텀 msg와 srv 파일의 추가
- ROS 서비스의 활용
- ROS 액션립의 활용
- ROS 액션 서버와 클라이언트의 빌딩
- 런치 파일 생성
- 토픽, 서비스, 액션립의 응용
- ROS 패키지 유지 관리
- 커스텀 ROS 패키지 배포
- 배포를 위한 ROS 패키지의 준비
- 커스텀 패키지의 배포
- 커스텀 ROS 패키지를 위한 위키 페이지 제작
- 연습문제
- 요약
- 2장. ROS에서 3D 로봇 모델링 작업
- 로봇 모델링을 위한 ROS 패키지
- URDF를 활용한 로봇 모델링의 이해
- 로봇 디스크립션을 위한 ROS 패키지의 생성
- 최초의 커스텀 URDF 모델 생성
- URDF 파일 해설
- RViz에서 로봇 3D 모델의 시각화
- 팬 조인트와 틸트 조인트의 상호작용
- 물리적인 특징과 충돌 특성을 URDF 모델에 추가
- xacro를 활용한 로봇 모델링의 이해
- 프로퍼티의 사용
- 수학적 표현의 사용
- 매크로의 사용
- xacro에서 URDF로의 변환
- 7-DOF 로봇 매니퓰레이터에 대한 로봇 디스크립션 생성
- 로봇 팔 사양
- 조인트 타입
- 로봇 팔 사양
- 7-DOF 팔의 xacro 모델 상세 해설
- 상수의 사용
- 매크로의 사용
- 다른 xacro 파일의 포함
- 링크에서 메시의 사용
- 로봇 집게를 사용한 작업
- RViz에서 7-DOF 로봇 팔 보기
- 조인트 상태 퍼블리셔의 이해
- 로봇 상태 퍼블리셔의 이해
- 차륜 구동 모바일 로봇을 위한 로봇 디스크립션 생성
- 연습문제
- 요약
- 3장. ROS와 가제보를 활용한 로봇 시뮬레이션
- 가제보와 ROS를 활용한 로봇 팔의 시뮬레이션
- 가제보를 위한 로봇 팔 시뮬레이션 모델
- 가제보 로봇 모델에 색과 질감 추가
- 로봇을 구동하기 위한 transmission 태그의 추가
- gazeboroscontrol 플러그인의 추가
- 가제보에 3D 비전 센서 추가
- Xtion Pro를 장착한 로봇 팔의 시뮬레이션
- 3D 센서 데이터의 시각화
- 가제보에서 ROS 컨트롤러를 활용한 로봇 조인트 동작
- ros_control 패키지의 이해
- ROS 컨트롤러와 하드웨어 인터페이스의 다양한 타입
- ROS 컨트롤러가 가제보와 상호작용하는 방법
- 조인트 상태 컨트롤러와 조인트 위치 컨트롤러의 로봇 팔에 대한 인터페이싱
- 가제보와 함께 ROS 컨트롤러 실행
- 로봇 조인트의 구동
- 가제보에서 차륜 이동 로봇의 시뮬레이션
- 가제보에 레이저 스캐너 추가
- 가제보에서 모바일 로봇의 이동
- 런치 파일에서 조인트 상태 퍼블리셔의 추가
- ROS teleop 노드의 추가
- 가제보를 위한 로봇 팔 시뮬레이션 모델
- 연습문제
- 요약
- 가제보와 ROS를 활용한 로봇 팔의 시뮬레이션
- 4장. ROS 무브잇!과 내비게이션 스택 활용
- 무브잇! 설치
- 무브잇! 구조
- The move_group node
- 무브잇!을 사용한 모션 계획
- 모션 계획 요청 어댑터
- 무브잇! 플래닝 씬
- 무브잇! 기구학 처리
- 무브잇! 충돌 체크 기능
- 무브잇! 구조
- 설정 마법사 툴을 사용한 무브잇! 환경 설정 패키지의 생성
- 1단계 - 환경 설정 마법사 툴의 실행
- 2단계 - 자기 충돌 매트릭스의 생성
- 3단계 - 가상 조인트의 추가
- 4단계 - 플래닝 그룹의 추가
- 5단계 - 로봇 자세 추가
- 6단계 - 로봇 엔드 이펙터 설정
- 7단계 - 패시브 조인트의 추가
- 8단계 - 환경 설정 파일의 생성
- 무브잇! 환경 설정 패키지를 사용한 RViz에서 로봇의 모션 계획
- RViz MotionPlanning 플러그인의 사용
- 무브잇! 환경 설정 패키지와 가제보의 인터페이스
- 1단계 - 무브잇!을 위한 컨트롤러 환경 설정 파일의 작성
- 2단계 - 컨트롤러 런치 파일의 생성
- 3단계 - 가제보를 위한 컨트롤러 환경 설정 파일 생성
- 4단계 - 가제보 궤적 컨트롤러를 위한 런치 파일의 생성
- 5단계 - 가제보-무브잇! 인터페이스의 디버그
- ROS 내비게이션 스택의 이해
- ROS 내비게이션 하드웨어 요구 사항
- 내비게이션 패키지로의 작업
- move_base 노드의 이해
- 내비게이션 스택의 작동
- 지도상에서의 위치 설정
- 목표와 경로를 보내기
- 충돌 복귀 동작
- 속도 명령어 보내기
- ROS 내비게이션 스택의 설치
- SLAM을 사용한 지도의 생성
- gmapping을 위한 런치 파일의 생성
- 차륜 구동 로봇에 관한 SLAM의 실행
- AMCL과 정적 지도를 사용한 자율 내비게이션의 구현
- AMCL 런치 파일의 생성
- 연습문제
- 요약
- 무브잇! 설치
- 5장. 플러그인립, 노드렛, 가제보 플러그인 활용
- 플러그인립의 이해
- 플러그인립을 사용한 계산기 애플리케이션을 위한 플러그인의 생성
- pluginlib_calculator 패키지를 이용한 작업
- 1단계 - calculator_base 헤더 파일의 생성
- 2단계 - calculator_plugins 헤더 파일의 생성
- 3단계 - calculator_plugins.cpp를 사용한 플러그인의 내보내기
- 4단계 - calculator_loader.cpp를 사용한 플러그인 로더의 실행
- 5단계 - 플러그인 디스크립션 파일의 생성: calculator_plugins.xml
- 6단계 - ROS 패키지 시스템에 플러그인 등록
- 7단계 - CmakeLists.txt 파일의 수정
- 8단계 - 패키지에서 플러그인의 리스트 조회
- 9단계 - 플러그인 로더의 실행
- ROS 노드렛의 이해
- 노드렛의 생성
- 1단계 - 노드렛을 위한 패키지의 생성
- 2단계 - hello_world.cpp 노드렛의 생성
- 3단계 - hello_world.cpp의 상세 해설
- 4단계 - 플러그인 디스크립션 파일의 생성
- 5단계 - package.xml로 내보내기 태크 추가
- 6단계 - CMakeLists.txt 수정
- 7단계 - 노드렛의 빌딩과 실행
- 8단계 - 노드렛을 위한 런치 파일의 생성
- 플러그인립을 사용한 계산기 애플리케이션을 위한 플러그인의 생성
- 가제보 플러그인의 이해
- 기본 월드 플러그인의 생성
- 연습문제
- 요약
- 플러그인립의 이해
- 6장. ROS 컨트롤러와 시각화 플러그인 생성
- pr2_mechanism 패키지의 이해
- pr2controllerinterface 패키지
- Controller의 초기화
- ROS 컨트롤러의 시작
- ROS 컨트롤러 업데이트
- 컨트롤러 정지
- pr2controllermanager
- pr2controllerinterface 패키지
- ROS에서 기본 리얼 타임 조인트 컨트롤러의 작성
- 1단계 - 컨트롤러 패키지의 생성
- 2단계 - 컨트롤러 헤더 파일의 생성
- 3단계 - 컨트롤러 소스 파일의 생성
- 4단계 - 컨트롤러 소스 파일의 상세 해설
- 5단계 - 플러그인 디스크립션 파일의 생성
- 6단계 - package.xml 업데이트
- 7단계 - CMakeList.txt 업데이트
- 8단계 - 컨트롤러 빌딩
- 9단계 - 컨트롤러 환경 설정 파일 작성
- 10단계 - 컨트롤러를 위한 런치 파일의 작성
- 11단계 - 가제보에서 PR2 시뮬레이션과 함께 컨트롤러 실행
- ros_control 패키지의 이해
- ROS 시각화 툴(RViz)과 그 플러그인의 이해
- Displays 패널
- RViz 툴바
- Views
- Time 패널
- Dockable 패널
- 원격 조종을 위한 RViz 플러그인의 작성
- RViz 플러그인 빌딩의 방법론
- 1단계 - Rviz 플러그인 패키지의 생성
- 2단계 - RViz 플러그인 헤더 파일의 생성
- 3단계 - RViz 플러그인 정의의 생성
- 4단계 - 플러그인 디스크립션 파일의 생성
- 5단계 - package.xml에서 내보내기 태그 추가
- 6단계 - CMakeLists.txt의 수정
- 7단계 - 플러그인의 빌드와 불러오기
- RViz 플러그인 빌딩의 방법론
- 연습문제
- 요약
- pr2_mechanism 패키지의 이해
- 7장. ROS와 I/O 보드, 센서, 액추에이터 인터페이싱
- 아두이노-ROS 인터페이스 이해
- 아두이노-ROS 인터페이스는 무엇인가?
- ROS에서 rosserial 패키지의 이해
- Ubuntu 14.04/15.04에 rosserial 패키지 설치
- ROS - 아두이노 퍼블리셔와 서브스크라이버 예제
- 아두이노-ROS, 예제 - LED 깜박임과 버튼 누름
- 아두이노-ROS, 예제 - 가속도계 ADXL 335
- 아두이노-ROS, 예제 - 초음파 거리 센서
- 초음파 거리 센서를 사용해 거리를 알기 위한 관계식
- 아두이노-ROS, 예제 - 측량 정보 퍼블리셔
- Non-Arduino 보드와 ROS의 인터페이스
- 오드로이드와 라즈베리 파이 2에 관한 ROS 설정
- OS 이미지를 오드로이드와 라즈베리 파이 2에 설치하는 방법
- 윈도우에서 설치
- 리눅스에서 설치
- 윈도우에서 설치
- PC에서 오드로이드와 라즈베리 파이 2로 연결
- 오드로이드와 라즈베리 파이 2에 대한 이더넷 핫스팟의 구성
- 오드로이드에 Wiring Pi 설치
- 라즈베리 파이 2에 Wiring Pi 설치
- 오드로이드와 라즈베리 파이 2의 ROS를 사용한 LED 깜박임
- 오드로이드와 라즈베리 파이 2에서 ROS를 사용한 누름 버튼 + LED 깜박임
- 오드로이드에서 LED 깜박임 실행
- 오드로이드에서 버튼 다루기와 LED 깜박임 실행
- 라즈베리 파이 2에서 LED 깜박임 실행
- ROS에서 rosserial 패키지의 이해
- 다이나믹셀 액추에이터와 ROS의 인터페이스
- 연습문제
- 요약
- 8장. ROS와 OpenCV, PCL을 활용한 비전 센서 프로그래밍
- ROS - OpenCV 인터페이싱 패키지의 이해
- ROS - PCL 인터페이싱 패키지의 이해
- ROS 퍼셉션의 설치
- ROS에서 USB 웹캠 인터페이스
- ROS 카메라 캘리브레이션
- cv_bridge를 이용한 ROS와 OpenCV 사이의 이미지 변환
- ROS와 OpenCV를 이용한 영상 처리
- 1단계-실험을 위한 ROS 패키지의 생성
- 2단계-소스 파일의 생성
- 3단계-코드의 해설
- 4단계: CMakeLists.txt 파일의 수정
- 5단계: 예제의 빌딩과 실행
- ROS에서 Kinect와 Asus Xtion Pro의 인터페이스
- Intel Real Sense 카메라와 ROS의 인터페이스
- 레이저 스캔 패키지에 대한 포인트 클라우드의 활용
- ROS에서 Hokuyo 레이저의 인터페이스
- ROS에서 Velodne LIDAR의 인터페이스
- 포인트 클라우드 데이터의 활용
- 포인트 클라우드를 퍼블리시하는 방법
- 포인트 클라우드를 서브스크라이브하고 처리하는 방법
- 포인트 클라우드 데이터를 PCD 파일로 작성
- PCD 파일로부터 포인트 클라우드를 읽고 퍼블리시하기
- ROS를 사용한 오드로이드로부터의 스트리밍 웹캠
- 연습문제
- 요약
- 9장. ROS환경에서 차륜 구동 이동 로봇 하드웨어의 구축과 인터페이싱
- 쳇봇 소개 - DIY 모바일 로봇과 그의 하드웨어 환경 설정
- Energia IDE를 활용한 쳇봇 펌웨어 플래시 메모리 쓰기
- LaunchPad에서 PC로 직렬 데이터 전송 프로토콜
- PC에서 LaunchPad로 직렬 데이터 전송 프로토콜
- ROS에 관한 쳇봇 인터페이스 패키지 논의
- 엔코더 틱으로부터 거리 측량의 연산
- ROS twist 메시지로부터 모터 속도의 연산
- C++ 노드를 사용한 로봇의 독립 런치 파일의 실행
- 쳇봇을 위한 내비게이션 스택의 환경 설정
- 내비게이션 스택 패키지의 환경 설정
- localcostmap과 globalcostmap의 공통 환경 설정
- 전역 코스트 맵 파라미터들의 환경 설정
- 지역 코스트 맵 파라미터 환경 설정
- 베이스 지역 플래너 파라미터의 환경 설정
- DWA 지역 플래너 파라미터 환경 설정
- move_base 노드 파라미터의 환경 설정
- AMCL의 이해
- 내비게이션 스택으로 작업하기 위한 RViz의 이해
- 2D Pose Estimate 버튼
- 파티클 클라우드의 시각화
- 2D Nav Goal 버튼
- 정적 지도의 표시
- 로봇 풋프린트의 표시
- 전역과 지역 코스트 맵의 표현
- 전역 계획, 지역 계획, 플래너 계획의 표현
- 현재 목표
- 내비게이션 스택을 사용한 장애물 회피
- 쳇봇 시뮬레이션의 활용
- 가제보에서 가상 공간의 구축
- 가제보 모델 폴더에 모델 파일 추가
- ROS 노드에서 내비게이션 스택으로 목표 위치 보내기
- Energia IDE를 활용한 쳇봇 펌웨어 플래시 메모리 쓰기
- 연습문제
- 요약
- 쳇봇 소개 - DIY 모바일 로봇과 그의 하드웨어 환경 설정
- 10장. ROS-무브잇!의 고급 기능
- move_group C++ API를 활용한 로봇 팔의 모션 계획
- MoveIt! C++API를 활용한 임의 경로에 관한 모션 계획
- MoveIt! C++ API를 활용한 커스텀 경로의 모션 계획
- 무브잇!을 활용하여 로봇 팔에서 충돌 체크
- 무브잇!에서 충돌 객체의 추가
- 플래닝 씬으로부터 충돌 객체의 제거
- 무브잇! API를 활용한 셀프 충돌 체크
- 무브잇!과 가제보를 사용한 인식의 활용
- 무브잇!을 사용한 물체 잡기
- 무브잇!을 사용해 물체를 집어 원하는 위치로 옮기는 작업의 수행
- 무브잇!에서 그랩 테이블과 그랩 객체의 생성
- 가제보와 실제 로봇에서 물체를 집어 원하는 곳으로 옮기는 작업
- 로봇 하드웨어 인터페이싱을 위한 다이나믹셀 ROS 서보 컨트롤러의 이해
- 다이나믹셀 서보
- 다이나믹셀-ROS 인터페이스
- 로봇 팔에 기반한 7-DOF 다이나믹셀과 ROS 무브잇!의 인터페이스
- COOL arm 로봇을 위한 컨트롤러 패키지의 생성
- COOL arm의 무브잇! 환경 설정
- 연습문제
- 요약
- move_group C++ API를 활용한 로봇 팔의 모션 계획
- 11장. 산업용 로봇을 위한 ROS
- ROS-인더스트리얼 패키지의 이해
- ROS-인더스트리얼의 목표
- ROS-인더스트리얼 - 간단한 역사
- ROS-인더스트리얼의 이점
- ROS-인더스트리얼 패키지의 설치
- ROS-인더스트리얼 패키지의 블록 다이어그램
- 산업용 로봇을 위한 URDF의 생성
- 산업용 로봇을 위한 무브잇! 환경 설정
- 무브잇! 환경 설정 파일의 업데이트
- 무브잇! 환경 설정의 테스트
- 유니버셜 로봇 팔의 ROS-인더스트리얼 패키지 설치
- 유니버셜 로봇의 ROS 인터페이스 설치
- 유니버셜 로봇 팔의 무브잇! 환경 설정 이해
- ABB 로봇의 무브잇! 환경 설정의 활용
- ROS-인더스트리얼 로봇 지원 패키지의 이해
- RViz에서 ABB 로봇 모델의 시각화
- ROS-인더스트리얼 로봇 클라이언트 패키지
- 산업용 로봇 클라이언트 노드의 디자인
- ROS-인더스트리얼 로봇 드라이버 패키지
- 무브잇! IKPast 플러그인의 이해
- ABB-IRB6640 로봇에 대한 무브잇! IKFast 플러그인의 생성
- 무브잇! IKFast 플러그인의 개발을 위한 사전요구 사항
- 오픈레이브와 IKFast 모듈
- 무브잇! IKFast
- 무브잇! IKFast 패키지의 설치
- Ubuntu 14.04.3에 오픈레이브 설치
- 오픈레이브로 작업하기 위한 로봇의 COLLADA 파일 생성
- IRB 6640 로봇을 위한 IKFast CPP 파일의 생성
- 무브잇! IKFast 플러그인의 생성
- 연습문제
- 요약
- ROS-인더스트리얼 패키지의 이해
- 12장. ROS환경에서 트러블슈팅과 최적 실행방법
- Ubuntu 14.04.3에 이클립스 IDE 설정
- 이클립스 IDE에서 ROS 개발 환경 설정
- 이클립스 IDE에서 전역 설정
- 이클립스 IDE를 위한 ROS 컴파일러 스크립트
- 이클립스에 ROS 캣킨 패키지를 추가
- 이클립스에서 run ROS 노드에 run configurations 추가
- 이클립스 IDE에서 전역 설정
- ROS에서 최적 실행
- ROS C++ 코딩 스타일 가이드
- ROS에서 사용된 표준 명명 규약
- 코드 라이선스 규약
- ROS 코드 포맷
- ROS 코드 문서
- 콘솔 결과
- ROS C++ 코딩 스타일 가이드
- ROS 패키지에서 최적 실행
- ROS에서 중요한 틀러블슈팅 팁
- roswtf의 쓰임
- 연습문제
- 요약