본문 바로가기

추천 검색어

실시간 인기 검색어

ROS 로보틱스 프로그래밍

4차 산업혁명 시대의 핵심 기술, 로봇 프로그래밍
acorn+PACKT 시리즈
렌틴 조셉 저자(글) · 배진호 번역
에이콘출판 · 2017년 02월 07일
새로 출시된 개정판이 있습니다. 개정판보기
8.8
10점 중 8.8점
(2개의 리뷰)
집중돼요 (50%의 구매자)
  • ROS 로보틱스 프로그래밍 대표 이미지
    ROS 로보틱스 프로그래밍 대표 이미지
  • A4
    사이즈 비교
    210x297
    ROS 로보틱스 프로그래밍 사이즈 비교 188x235
    단위 : mm
01 / 02
MD의 선택 무료배송 이벤트 소득공제
10% 36,000 40,000
적립/혜택
2,000P

기본적립

5% 적립 2,000P

추가적립

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 2,000P
  • 리뷰 작성 시, e교환권 추가 최대 300원
절판되었습니다.

해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

북카드

키워드 Pick

키워드 Pick 안내

관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.

ROS 고급 가이드북!
『ROS 로보틱스 프로그래밍』은 로보틱스의 고급 개념과 ROS를 사용해 프로그래밍하는 방법을 다루는 책이다. ROS 무브잇! 모션 계획 라이브러리와 ROS 내비게이션 스택을 이용해 복잡한 로봇 모델을 빌드하고, 시뮬레이하며, 실제 로봇과 인터페이스하는 방법을 보여준다.

로봇의 필수 구성요소 중 하나는 비전 센서이며, 한 장을 할애해 비전 센서, 비전 센서와 ROS와의 인터페이스, 비전 센서의 프로그래밍을 다룬다. 이 책은 ROS에 대한 로봇의 하드웨어 인터페이스와 시뮬레이션을 논의하며, ROS 인터스트리얼(산업용 로봇과의 인터페이스를 위해 이용되는 패키지)에 대해서도 논의한다. 마지막으로 ROS를 사용해 프로그래밍할 때 따라야 하는 최적 실행에 대해서도 알아본다.

작가정보

저자(글) 렌틴 조셉

저자 렌틴 조셉(Lentin Joseph)은 저자이자 사업가며, 전자공학자, 로보틱스(Robotics) 열광자, 머신 비전(Machine Vision) 전문가, 임베디드 프로그래머, 인도에 있는 큐보틱스 랩(Qbotics Labs)(http://www.qboticslabs.com)의 창업자 겸 경영자다. 케랄라(Kerala) 주에 있는 연방과학기술대학(FISAT, the Federal Institute of Science and Technology)에서 전자공학과 통신 공학으로 학사학위를 받았다. 졸업하는 해의 마지막 공학 프로젝트에서 사람들과 상호작용할 수 있는 사회 로봇을 만들었다. 그 프로젝트는 큰 성공을 거두었고 많은 영상 보도매체에 언급되었다. 이 로봇의 주요 특징은 사람들과 의사소통할 수 있고, 지능적으로 반응하며, 얼굴의 움직임이나 색 검출(detection)과 같은 영상처리(Image processing) 능력을 가지고 있다는 것이다. 전체 프로젝트는 파이썬 프로그래밍 언어를 사용해 수행했다. 로보틱스와 영상 처리, 파이썬에 대한 관심은 그 프로젝트에서 시작됐다.
졸업 후, 3년 동안 로보틱스와 영상처리 분야에 주력하는 스타트업에서 일했다. 그 기간 동안 로봇운영체제(ROS, Robot Operating System), V-REP, Actin(로봇 시뮬레이션 툴) 같은 로보틱스 소프트웨어 플랫폼과 OpenCV, OpenNI, PCL 같은 영상처리 라이브러리를 배웠다. 또한 3차원 로봇 설계와 아두이노(Arduino), Tiva 런치패드 기반의 임베디드 프로그래밍에 대한 지식이 있다.
직장 생활을 시작한 지 3년 후 큐보틱스 랩이라는 회사를 창업했는데, 주로 로보틱스, 머신 비전과 같은 영역에 속한 위대한 제품을 만드는 연구에 집중하고 있다. 개인 웹 페이지(http://www.lentinjoseph.com)와 테크노랩즈(Technolabsz)라는 기술 블로그(http://www.technolabsz.com)를 운영하며, 작업물을 기술 블로그에 개제하고 있다. 또한 인도에서 열리는 PyCon2013에서 ‘Learning Robotics using Python’이라는 주제로 발표도 했다.
렌틴은 『파이썬 로보틱스』(에이콘, 2015)의 저자다. 이 책은 ROS와 OpenCV를 이용해 자율 주행 로봇을 만드는 것에 관한 책이다. 그 책은 ICRA 2015에서 소개됐고 ROS 블로그와 로보허브(Robohub), OpenCV, 파이썬 웹사이트, 관련된 다양한 포럼에서 다뤄졌다.
ICRA 2015 챌린지, HRATC(http://www2.isr.uc.pt/~embedded/events/HRATC2015/Welcome.html)의 결승 진출자이기도 하다.

번역 배진호

역자 배진호는 습득한 지식은 문제 해결을 위한 도구로 활용해야 하며, 지식 그 자체보다는 문제 해결 설계를 위한 사고가 더 중요하다는 생각을 가지고 있다. 하지만 무엇보다 중요한 것은 어떤 문제를 풀기 위함인지 방향성을 설정하는 것이라고 생각한다. 서울과학기술대학에서 로봇 공학과 미국 로즈 헐만 공과대학에서 레이저 공학을 전공했으며, 현재 레이저 가공 장비 개발 프로젝트에 소프트웨어 엔지니어로 참여하며 전공 지식을 활용 중이다. 동시에 통계학과 컴퓨터과학에 관한 지식을 습득하면서 고급 지식을 활용해 어떻게 부가가치를 창출해낼 수 있을지 고민하고 있다. 죽을 때까지 질리지 않고 몰두할 수 있는 거리가 바로 배움이 아닐까 생각한다.

목차

  • 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 태그의 추가
    ________gazebo_ros_control 플러그인의 추가
    ________가제보에 3D 비전 센서 추가
    ____Xtion Pro를 장착한 로봇 팔의 시뮬레이션
    ________3D 센서 데이터의 시각화
    ____가제보에서 ROS 컨트롤러를 활용한 로봇 조인트 동작
    ________ros_control 패키지의 이해
    ________ROS 컨트롤러와 하드웨어 인터페이스의 다양한 타입
    ________ROS 컨트롤러가 가제보와 상호작용하는 방법
    ________조인트 상태 컨트롤러와 조인트 위치 컨트롤러의 로봇 팔에 대한 인터페이싱
    ________가제보와 함께 ROS 컨트롤러 실행
    ________로봇 조인트의 구동
    ____가제보에서 차륜 이동 로봇의 시뮬레이션
    ________가제보에 레이저 스캐너 추가
    ________가제보에서 모바일 로봇의 이동
    ________런치 파일에서 조인트 상태 퍼블리셔의 추가
    ________ROS teleop 노드의 추가
    __연습문제
    __요약

    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 패키지의 이해
    ____pr2_controller_interface 패키지
    ________Controller의 초기화
    ________ROS 컨트롤러의 시작
    ________ROS 컨트롤러 업데이트
    ________컨트롤러 정지
    ____pr2_controller_manager
    __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단계 - 플러그인의 빌드와 불러오기
    __연습문제
    __요약

    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의 인터페이스
    __연습문제
    __요약

    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++ 노드를 사용한 로봇의 독립 런치 파일의 실행
    ____쳇봇을 위한 내비게이션 스택의 환경 설정
    ____내비게이션 스택 패키지의 환경 설정
    ________local_costmap과 global_costmap의 공통 환경 설정
    ________전역 코스트 맵 파라미터들의 환경 설정
    ________지역 코스트 맵 파라미터 환경 설정
    ________베이스 지역 플래너 파라미터의 환경 설정
    ________DWA 지역 플래너 파라미터 환경 설정
    ________move_base 노드 파라미터의 환경 설정
    ____AMCL의 이해
    ____내비게이션 스택으로 작업하기 위한 RViz의 이해
    ________2D Pose Estimate 버튼
    ________파티클 클라우드의 시각화
    ________2D Nav Goal 버튼
    ________정적 지도의 표시
    ________로봇 풋프린트의 표시
    ________전역과 지역 코스트 맵의 표현
    ________전역 계획, 지역 계획, 플래너 계획의 표현
    ________현재 목표
    ____내비게이션 스택을 사용한 장애물 회피
    ____쳇봇 시뮬레이션의 활용
    ________가제보에서 가상 공간의 구축
    ________가제보 모델 폴더에 모델 파일 추가
    ____ROS 노드에서 내비게이션 스택으로 목표 위치 보내기
    __연습문제
    __요약

    10장. ROS-무브잇!의 고급 기능
    __move_group C++ API를 활용한 로봇 팔의 모션 계획
    ____MoveIt! C++API를 활용한 임의 경로에 관한 모션 계획
    ____MoveIt! C++ API를 활용한 커스텀 경로의 모션 계획
    __무브잇!을 활용하여 로봇 팔에서 충돌 체크
    ____무브잇!에서 충돌 객체의 추가
    ____플래닝 씬으로부터 충돌 객체의 제거
    ____무브잇! API를 활용한 셀프 충돌 체크
    __무브잇!과 가제보를 사용한 인식의 활용
    __무브잇!을 사용한 물체 잡기
    __무브잇!을 사용해 물체를 집어 원하는 위치로 옮기는 작업의 수행
    ____무브잇!에서 그랩 테이블과 그랩 객체의 생성
    ____가제보와 실제 로봇에서 물체를 집어 원하는 곳으로 옮기는 작업
    __로봇 하드웨어 인터페이싱을 위한 다이나믹셀 ROS 서보 컨트롤러의 이해
    ____다이나믹셀 서보
    ____다이나믹셀-ROS 인터페이스
    __로봇 팔에 기반한 7-DOF 다이나믹셀과 ROS 무브잇!의 인터페이스
    ____COOL arm 로봇을 위한 컨트롤러 패키지의 생성
    ____COOL arm의 무브잇! 환경 설정
    __연습문제
    __요약

    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 플러그인의 생성
    __연습문제
    __요약

    12장. ROS환경에서 트러블슈팅과 최적 실행방법
    __Ubuntu 14.04.3에 이클립스 IDE 설정
    __이클립스 IDE에서 ROS 개발 환경 설정
    ____이클립스 IDE에서 전역 설정
    ________이클립스 IDE를 위한 ROS 컴파일러 스크립트
    ________이클립스에 ROS 캣킨 패키지를 추가
    ________이클립스에서 run ROS 노드에 run configurations 추가
    __ROS에서 최적 실행
    ____ROS C++ 코딩 스타일 가이드
    ________ROS에서 사용된 표준 명명 규약
    ________코드 라이선스 규약
    ________ROS 코드 포맷
    ________ROS 코드 문서
    ________콘솔 결과
    __ROS 패키지에서 최적 실행
    __ROS에서 중요한 틀러블슈팅 팁
    ____roswtf의 쓰임
    __연습문제
    __요약

출판사 서평

★ 요약 ★

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에서 발생하는 문제 해결 팁을 알려준다.

★ 지은이의 말 ★

이 책은 ROS의 고급 가이드북으로 이미 ROS 기본 지식이 있는 독자들에게 매우 적합하다. ROS는 로보틱스 기업과 대학, 연구기관에서 로봇 모델을 디자인하고, 빌드(build)하며, 시뮬레이션하고 그 모델을 실제 하드웨어로 인터페이스하는 데 폭넓게 이용된다. 또한 ROS는 이제 로봇 엔지니어에게 필수 사항이다. 이 책은 독자가 ROS의 지식을 획득하도록 도움을 주며, 대화형 예제를 이용해 독자의 ROS 스킬을 단련하도록 도움을 줄 수 있다. 고급 가이드지만 먼저 기본 개념을 다질 수 있도록 1장에서 ROS의 개념을 설명한다. ROS 입문자도 기본을 익힌 뒤 이 책을 시작할 수 있을 것이다. 주로 ROS의 고급 개념에 초점을 두는데, 그 개념들은 ROS 내비게이션 스택(Navigation stack), ROS 무브잇!(MoveIt!), ROS 플러그인(plugins), 노드렛(nodelets), 컨트롤러(controllers), ROS 인더스트리얼(Industrial)과 같은 것들이다.
하드웨어에 상관없이 예제를 실행해볼 수 있다. 하지만 일부 절에서 I/O 보드, 비전 센서, 액추에이터(Actuator)와 ROS 간의 인터페이싱을 볼 수 있다. 이 하드웨어를 실행하려면 주변기기를 구매해야 한다.
이 책은 ROS에 대한 소개로 시작해, ROS에서 시뮬레이션과 시각화를 위해 로봇 모델을 빌드하는 방법을 살펴본다. 가제보(Gazebo)를 활용한 로봇 시뮬레이션 이후에, 로봇과 ROS의 내비게이션 스택, 무브잇!에 연결하는 방법을 볼 수 있을 것이다. 이 외에도 ROS 플러그인, 컨트롤러, 노드렛, I/O 보드, 비전 센서와의 인터페이싱을 볼 수 있다. 마지막으로 ROS 인더스트리얼과 문제점 해결 방법, ROS 추천 실행 방법을 확인할 수 있다.

★ 옮긴이의 말 ★

2016 다보스 포럼의 주제를 한 단어로 요약하자면 ‘4차 산업혁명’이다. 이 책은 그 4차 산업혁명의 핵심 기술 중의 하나인 로봇 기술을 설명한다. 로봇을 전공하는 사람들과 로봇 기술을 습득하려는 사람들에게 이제 필수적이 될 ROS(Robot Operating System)에 관한 개념들을 실제 소스 코드의 해설과 함께 기술함으로써 독자들의 학습 시간을 효과적으로 줄여줄 것이라 생각된다.
전통적인 로봇 기술자들에게는 많은 기반 지식이 필요했다. 기계 공학과 컴퓨터 공학의 하드웨어 기술에서 IT기술이 접목된 소프트웨어 기술까지 관련 개념을 두루 이해해야 했을 뿐만 아니라, 실제 구현까지 할 수 있어야 했다. 하지만 바야흐로 오픈소스 하드웨어와 소프트웨어가 확산된 시대가 도래하였다. 사람들이 필요한 지식을 빠르고 저비용으로 접할 수 있는 기회가 확산됐고, 이제는 로봇 기술에 대한 진입장벽이 그 이전에 비해 확실히 낮아진 것이 사실이다.
이 책은 로봇 기술의 가장 대중적인 오픈소스 소프트웨어 플랫폼인 ROS의 기본 개념과 고급 개념들을 기술하고, 그를 오픈소스 하드웨어인 아두이노와 라즈베리파이에 적용할 수 있는 인터페이스를 함께 기술한다. 저자는 실무에서 ROS를 이용하여 로봇을 제작한 경험을 바탕으로, 로봇 시뮬레이션과 머신 비전 기술에 특히 집중해 이 책을 집필하였다. 이런 내용 바탕에 로보틱스에서 대표적인 주제인 7-DOF(Degree of Freedom) 로봇 팔과 SLAM(Simultaneous Localization and Mapping)을 디자인하는 내용을 더함으로써, 독자들은 해당 로봇 알고리즘을 자신의 로봇에 구현할 수 있는 능력을 배양할 수 있을 것이다. 로봇팔의 경우는 제조업계에서 자동화에 필수적인 주제 중의 하나며, SLAM의 경우 구글 자동차로 대변되는 자율주행 자동차의 기반 기술이다.
이 책에서 역자가 인상 깊게 읽은 한 문장은 ‘바퀴의 모양을 새로 발명할 필요가 없다’는 것이다. 로봇의 알고리즘을 구현하려고 할 때, 이미 최적의 형태로 구현되어 있는 알고리즘이 ROS에 무수히 존재하는데, 그를 이용할 생각하지 않고 관련 기능에 대한 새로운 코드를 작성하려고 하는 태도에 대한 언급이었다. 물론 필요에 따라 원형 이외의 바퀴 모양을 새로 발명할 필요는 있다. 하지만, 모방은 창조의 어머니라는 말이 있듯이, 심지어 새로운 바퀴 형태를 개발하려 할 때에도 기존의 최적 형태의 바퀴 모양을 참고해 그를 분석하는 선행 연구가 필요하다.
이제 4차 산업혁명의 시대가 도래함으로 ROS는 로봇을 개발하려는 사람들에게 필수적인 요소가 될 것임이 자명하다. 이 책이 ROS를 습득하는 시간을 줄여줄 효과적인 매체라 생각해서 이 책의 번역을 결심하였다. 고급 개발자들이야 기반 지식과 다양한 매체의 검색 능력을 바탕으로 빨리 로봇을 개발할 수 있지만, 관련 기술이 익숙하지 않은 사람들은 시행착오로 인해 시간을 허비하기 때문에 쉽게 따라 하며 핵심 개념을 이해할 수 있는 가이드북이 필요하다. 효용가치를 생각했을 때, 이 책이 연구자들 및 개발자들, 심지어 로봇에 관심 있는 일반인들에게도 ROS 및 로봇 기술 접근에 대한 진입장벽을 낮춰, 국내 로봇 연구 개발 환경의 활성화에 조금의 기여라도 할 수 있기를 바란다.

기본정보

상품정보 테이블로 ISBN, 발행(출시)일자 , 쪽수, 크기, 총권수, 시리즈명, 원서(번역서)명/저자명을(를) 나타낸 표입니다.
ISBN 9788960779587
발행(출시)일자 2017년 02월 07일
쪽수 540쪽
크기
188 * 235 * 33 mm / 1257 g
총권수 1권
시리즈명
acorn+PACKT 시리즈
원서(번역서)명/저자명 Mastering ROS for Robotics Programming/Lentin Joseph

Klover

구매 후 리뷰 작성 시, e교환권 200원 적립

10점 중 10점
/집중돼요
쉬운 입문서
10점 중 7.5점
/추천해요
책은 독자가 ROS tutorial을 경험한 사람으로 가정하고 시작하며, 직접 구현하고 변경해보고자하는 내용에 맞추어져있다.
하지만 내용이 Ros 위키의 설명이 절반 이상이기 때문에
책을 읽다 위키를 찾아보면 맥이 빠지곤 한다.
그리고 번역의 수준이 매우 낮다. 문과출신이 번역한 수준이 아닌 구글 번역기를 돌린 수준이라서, 문맥을 이해하기 어렵게 만든다. 정말로 이해를 방해하는 수준의 번역이라 차라리 원서를 읽는것을 권장한다. 책을 주문하고나서 원서를 봤는데, 이 책을 산 걸 후회하고 있다.

문장수집 (0)

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여주는 교보문고의 새로운 서비스입니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 "좋아요“ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보 없이 삭제될 수 있습니다.
리워드 안내
구매 후 90일 이내에 문장수집 작성 시 e교환권 100원을 적립해드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
판매가 5,000원 미만 상품의 경우 리워드 지급 대상에서 제외됩니다. (2024년 9월 30일부터 적용)

구매 후 리뷰 작성 시, e교환권 100원 적립

이 책의 첫 기록을 남겨주세요.

교환/반품/품절 안내

상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

TOP