장바구니 담기 close

장바구니에 상품을 담았습니다.

ROS 로보틱스 프로그래밍 3/e

ROS 로보틱스 프로그래밍 3/e

  • 렌틴조셉 ,조나단카카체
  • |
  • 에이콘출판
  • |
  • 2022-08-29 출간
  • |
  • 704페이지
  • |
  • 188 X 235 X 31 mm
  • |
  • ISBN 9791161756738
판매가

50,000원

즉시할인가

45,000

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
45,000

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평




◈ 이 책에서 다루는 내용 ◈

◆ 7-DOF 로봇 팔과 차동 구동 로봇 모델 생성
◆ 가제보(Gazebo), 코펠리아심(CoppeliaSim), 위봇(Webots) 로봇 시뮬레이션 활용
◆ SLAM과 AMCL 패키지를 활용한 차동 구동 로봇의 자율주행 구현
◆ ROS를 활용한 드론 시뮬레이션과 상호작용
◆ ROS pluginlib, nodelets, Gazebo 플러그인 개발
◆ 아두이노 같은 I/O 보드, 로봇 센서, 고급 액추에이터와 인터페이스


◈ 이 책의 대상 독자 ◈

이 책은 ROS의 기능을 최대한 활용하고자 하는 열정적인 로봇 개발자나 연구원을 대상으로 한다. 이미 일반적인 로봇공학 애플리케이션에 익숙하거나 ROS 세계에서 고급 방식으로 개발하는 방법을 배우고 로봇을 모델링, 구축, 제어하는 방법을 배우려는 사용자에게 적합하다. 내용을 쉽게 이해하고 싶다면 GNU/리눅스, C++ 프로그래밍에 대한 기본 지식이 필요하다.


◈ 이 책의 구성 ◈

1장, ‘ROS 소개’에서는 ROS의 핵심 기본 개념을 이해한다.
2장, ‘ROS 기초 프로그래밍’에서는 ROS 패키지 개발 방법을 설명한다.
3장, ‘ROS 3D 모델링’에서는 두 종류의 로봇 설계를 설명한다. 하나는 7 자유도(7-DOF, Degree Of Freedom) 매니퓰레이터(manipulator)고 다른 하나는 차동 구동 로봇(differential drive robot)이다.
4장, ‘ROS와 가제보를 활용한 로봇 시뮬레이션’에서는 가제보에서 로봇 조인트(joint)를 제어하는 데 도움이 되는 7 자유도 매니퓰레이터, 차동 구동 로봇, ROS 컨트롤러의 시뮬레이션을 설명한다.
5장, ‘ROS, 코펠리아심, 위봇을 활용한 로봇 시뮬레이션’에서는 코펠리아심(CoppeliaSim) 및 위봇(Webots) 시뮬레이터를 소개하고, 다양한 타입의 로봇을 시뮬레이션하고 제어하는 방법을 소개한다.
6장, ‘ROS MoveIt!과 내비게이션 스택 활용’에서는 ROS MoveIt!과 내비게이션 스택을 사용해 매니퓰레이팅 및 자율주행과 같이 즉시 활용할 수 있는 기능을 다룬다.
7장, ‘ROS MoveIt!의 고급 기능’에서는 충돌 회피, 3D 센서를 이용한 주변 환경 인지 기능과 물체 잡기 및 선별해 특정 위치에 두기와 같은 ROS MoveIt! 기능을 설명한다. 그런 다음 MoveIt!과 로봇 매니퓰레이터 하드웨어를 인터페이스하는 방법을 살펴본다.
8장, ‘ROS 드론’에서는 쿼드콥터의 사례를 고려해 ROS로 드론을 시뮬레이션하고 제어하는 방법을 설명한다.
9장, ‘ROS와 I/O 보드, 센서, 액추에이터 인터페이스’에서는 센서 및 액츄에이터와 같은 하드웨어 구성 요소를 ROS와 인터페이스하는 방법을 설명한다. 아두이노(Arduino) 또는 라즈베리파이(Raspberry Pi)와 같은 I/O 보드를 사용하는 센서와 ROS의 인터페이스를 살펴본다.
10장, ‘ROS와 OpenCV, PCL을 활용한 비전 센서 프로그래밍’에서는 다양한 비전 센서를 ROS와 인터페이스하고 OpenCV(Open Source Computer Vision) 및 PCL(Point Cloud Library)과 같은 라이브러리를 사용해 프로그래밍하는 방법을 설명한다.
11장, ‘ROS에서 차동 구동 로봇 하드웨어 구축과 인터페이스’에서는 차동 구동으로 설정된 자율주행 모바일 로봇 하드웨어와 ROS 사이의 인터페이스 방법을 알려준다.
12장, ‘pluginlib, nodelet, Gazebo 플러그인 활용’에서는 pluginlib, nodelet, Gazebo 플러그인과 같은 ROS의 고급 개념을 보여준다. 각 개념의 기능과 적용을 살펴보고 동작을 확인하기 위한 예제를 실행한다.
13장, ‘ROS 컨트롤러와 시각화 플러그인’에서는 기본 ROS 컨트롤러를 개발하고 실행하는 방법을 보여주고, RViz용 플러그인을 만드는 방법도 살펴본다.
14장, ‘매트랩과 시뮬링크에서 ROS 활용’에서는 매트랩(MATLAB) 및 시뮬링크(Simulink)를 ROS와 연결하는 방법을 설명한다.
15장, ‘산업용 로봇을 위한 ROS’에서는 ROS-Industrial 패키지를 이해하고 설치하는 데 도움이 되는 내용 소개한다. 산업용 로봇의 MoveIt! IKFast 플러그인을 개발하는 방법을 알아본다.
16장, ‘ROS에서 문제 해결 및 모범 사례’에서는 비주얼 스튜디오 코드(Visual Studio Code) IDE에서 ROS 개발 환경을 설정하는 방법, ROS 최적 실행, ROS 실행 중 발생하는 문제에 대한 해결 방법을 설명한다.


목차


1부. ROS 프로그래밍 핵심

1장. ROS 소개
__기술적 요구 사항
__ROS를 사용해야 하는 이유
__ROS 파일시스템 레벨 이해
____ROS 패키지
____ROS 메타패키지
____ROS 메시지
____ROS 서비스
__ROS 연산 그래프 레벨 이해
____ROS 노드
____ROS 메시지
____ROS 토픽
____ROS 서비스
____ROS 백 파일
____ROS 마스터
____ROS 파라미터 사용
__ROS 커뮤니티 레벨
__ROS 시작을 위한 준비
____ROS 배포판
____ROS 마스터 및 ROS 파라미터 서버 실행
__요약
__질문

2장. ROS 기초 프로그래밍
__기술적 요구 사항
__ROS 패키지 생성
____ROS 토픽 활용
____ROS 노드 생성
____노드 빌드
__사용자 정의 .msg와 .srv 파일 추가
__ROS 서비스 활용
____ROS actionlib 활용
____ROS 액션 서버와 클라이언트의 빌드
__런치 파일 작성
__토픽, 서비스, actionlib의 응용
__요약
__질문


2부. ROS 로봇 시뮬레이션

3장. ROS 3D 모델링
__기술적 요구 사항
__로봇 모델링을 위한 ROS 패키지
__URDF를 사용한 로봇 모델링 이해
__로봇 디스크립션을 위한 ROS 패키지의 생성
__최초의 URDF 모델 생성
__URDF 파일 분석
__RViz에서 로봇 3D 모델의 시각화
____팬 조인트와 틸트 조인트의 상호작용
____물리적인 특징과 충돌 특성을 URDF 모델에 추가
__xacro를 활용한 로봇 모델링의 이해
__속성의 사용
____수학 연산자 활용
____매크로 활용
__xacro에서 URDF로의 변환
__7-DOF 로봇 매니퓰레이터 로봇 디스크립션 생성
____로봇 팔 사양
__7-DOF 로봇 팔의 xacro 모델 상세 설명
____상수 사용
____매크로의 사용
____다른 xacro 파일 포함
____링크에서 메시 사용
____로봇 집게를 사용한 작업
____RViz에서 7-DOF 로봇 팔 시각화
__차동 구동 모바일 로봇 모델 생성
__요약
__질문

4장. ROS와 가제보를 활용한 로봇 시뮬레이션
__기술적 요구 사항
__가제보 및 ROS를 활용한 로봇 팔 시뮬레이션
__가제보에서 로봇 팔 시뮬레이션 모델 생성
____가제보 로봇 모델에 색과 질감 추가
____모델을 구동하기 위한 transmission 태그 추가
__gazebo_ros_control 플러그인 추가
____가제보에 3D 비전 센서 추가
__Xtion Pro와 로봇 팔 시뮬레이션
____3D 센서 데이터 시각화
__가제보에서 ROS 컨트롤러를 활용한 로봇 조인트 동작
____ros_control 패키지 이해
____다양한 타입의 ROS 컨트롤러와 하드웨어 인터페이스
____ROS 컨트롤러가 가제보와 상호작용하는 방법
____조인트 상태 컨트롤러와 조인트 위치 컨트롤러의 로봇 팔에 대한 인터페이싱
____가제보로 ROS 컨트롤러 실행
____로봇 조인트의 구동
__가제보에서 차동 구동 로봇 시뮬레이션
____가제보에 레이저 스캐너 추가
____가제보에서 모바일 로봇 이동
____런치 파일에 joint_state_publisher 추가
__ROS teleop 노드 추가
__요약
__질문

5장. ROS, 코펠리아심, 위봇을 활용한 로봇 시뮬레이션
__기술적 요구 사항
__ROS로 코펠리아심 설정
____RosInterface 플러그인 이해
____ROS 메시지 작업
__코펠리아심과 ROS를 활용한 로봇 팔 시뮬레이션
____코펠리아심 조인트 컨트롤러에 ROS 인터페이스 추가
__ROS로 위봇 설정
____위봇 시뮬레이터 소개
____위봇으로 모바일 로봇 시뮬레이션
__첫 번째 컨트롤러 작성
____위봇 및 ROS를 사용한 로봇 팔 시뮬레이션
__webots_ros를 사용해 teleop 노드 작성
____런치 파일로 위봇 실행
__요약
__질문

6장. ROS MoveIt!과 내비게이션 스택 활용
__기술적 요구 사항
__MoveIt! 아키텍처
____move_group 노드
____MoveIt!을 활용한 모션 플래닝
____모션 플래닝 요청 어댑터
____MoveIt! 플래닝 씬
____MoveIt! 기구학 처리
____MoveIt! 충돌 검사
__셋업 어시스턴트 도구를 활용한 MoveIt! 구성 패키지 생성
____1단계: 셋업 어시스턴트 도구 시작
____2단계: 자기 충돌 행렬 생성
____3단계: 가상 조인트 추가
____4단계: 플래닝 그룹 추가
____5단계: 로봇 포즈 추가
____6단계: 로봇 엔드 이펙터 설정
____7단계: 패시브 조인트 추가
____8단계: 저자 정보
____9단계: 구성파일 작성
__RViz에서 MoveIt! 구성 패키지를 활용한 모션 플래닝
____RViz MotionPlanning 플러그인 활용
____MoveIt! 구성 패키지와 가제보의 인터페이스
__ROS 내비게이션 스택 이해
____ROS 내비게이션 하드웨어 요구 사항
____내비게이션 패키지 작업
____내비게이션 스택의 작동
__SLAM을 활용한 지도 생성
____gmapping을 위한 런치 파일 작성
____차동 구동 로봇에서 SLAM 실행
____amcl 및 정적 지도를 사용해 자율주행 구현
____amcl 런치 파일 작성
__요약
__질문

7장. ROS MoveIt!의 고급 기능
__기술적 요구 사항
__move_group C++ 인터페이스를 사용한 모션 플래닝
____MoveIt! C++ API를 활용한 임의의 모션 플래닝
____MoveIt! C++ API를 활용한 사용자 정의 모션 플래닝
____MoveIt!을 사용해 로봇 팔과의 충돌 확인
__MoveIt!과 가제보를 활용한 퍼셉션 작업
__MoveIt!으로 물체 매니퓰레이션 수행
____MoveIt!을 활용한 선택/배치 작업
____가제보와 실제 로봇에서 선택/배치 작업
__로봇 하드웨어 인터페이스를 위한 다이나믹셀 ROS 서보 컨트롤러의 이해
____다이나믹셀 서보
____DYNAMIXEL-ROS 인터페이스
__7-DOF 다이나믹셀 기반 로봇 팔과 ROS MoveIt!
____COOL 로봇 암 컨트롤러 패키지 생성
____MoveIt! COOL 로봇 팔의 구성
__요약
__질문

8장. ROS 드론
__기술적 요구 사항
__드론의 활용
____UAV 하드웨어
____Pixhawk 자동조종 장치
__PX4 비행 제어 스택 활용
____PX4 펌웨어 아키텍처
____PX4 SITL
__PC/자동조종 장치 통신
____mavros ROS 패키지
__ROS-PX4 애플리케이션 작성
____궤적 스트리머 작성
____PX4에 대한 외부 위치 추정
__RotorS 시뮬레이션 프레임워크 사용
____RotorS 설치
____RotorS 패키지
____새로운 UAV 모델 생성
____RotorS 모터 모델과 상호작용
__요약
__질문


3부. ROS 로봇 하드웨어 프로토타이핑

9장. ROS와 I/O 보드, 센서, 액추에이터 인터페이스
__기술적 요구 사항
__아두이노-ROS 인터페이스 이해
__아두이노-ROS 인터페이스는 무엇인가?
____ROS의 rosserial 패키지 이해
____아두이노의 ROS 노드 API 이해
____ROS-아두이노 퍼블리셔 및 서브스크라이버 예제
____아두이노-ROS 예제: 푸시 버튼으로 LED 깜박임
____아두이노-ROS 예제: 가속도계 ADXL 335
____아두이노-ROS 예제: 초음파 거리 센서
____아두이노-ROS 예제: 주행 거리 데이터 퍼블리셔
__아두이노 이외의 보드와 ROS의 인터페이스
____ROS 설치를 위한 오드로이드-C4, 라즈베리 파이 4, 젯슨 나노 설정
____라즈베리 파이 4에서 ROS를 사용해 LED 깜박임
____라즈베리 파이 4에서 ROS를 사용하는 푸시 버튼과 깜박이는 LED
____라즈베리 파이 4에서 예제 실행
__다이나믹셀 액츄에이터와 ROS 인터페이스
__요약
__질문

10장. ROS와 OpenCV, PCL을 활용한 비전 센서 프로그래밍
__기술적 요구 사항
__ROS - OpenCV 인터페이스 패키지 이해
__ROS: PCL 인터페이스 패키지 이해
____ROS 퍼셉션 설치
__ROS에서 USB 웹캠 인터페이스
__ROS 카메라 보정
____cv_bridge를 사용해 ROS와 OpenCV 간에 이미지 변환
__ROS와 Kinect 및 아수스 Xtion Pro 인터페이스
__인텔 RealSense 카메라와 ROS 인터페이스
____포인트 클라우드를 레이저 스캔 데이터로 변환
__ROS와 Hokuyo 레이저 인터페이스
____RPLIDAR 및 YDLIDAR와 ROS 인터페이스
__포인트 클라우드 데이터 작업
____포인트 클라우드를 퍼블리시하는 방법
____포인트 클라우드 서브스크라이브와 처리 방법
____PCD 파일에서 포인트 클라우드 읽기와 퍼블리싱
__요약
__질문

11장. ROS에서 차동 구동 로봇 하드웨어 구축과 인터페이스
__기술적 요구 사항
____소프트웨어 요구 사항
____네트워크 설정
____하드웨어 요구 사항
__Remo 로봇 소개: DIY 자율주행 로봇
____Remo 하드웨어 구성 요소
____ROS Navigation 스택에 대한 소프트웨어 요구 사항
__차동 구동 로봇을 위한 로우레벨 컨트롤러 및 하이레벨 ROS 컨트롤 하드웨어 인터페이스 개발
____Remo용 로우레벨 기본 컨트롤러 구현
____차동 구동 로봇을 위한 ROS 컨트롤 하이레벨 하드웨어 인터페이스
____Remo 로봇에 대한 ROS 노드 및 토픽 개요
__내비게이션 스택 구성과 작업
____gmapping 노드 구성과 지도 작성
____gmapping 노드 작업
____move_base 노드 구성
____AMCL 노드 구성
____AMCL 플래닝
____시뮬레이션에서 Remo 로봇 작업
__요약
__질문


4부. ROS 고급 프로그래밍

12장. pluginlib, nodelet, Gazebo 플러그인 활용
__기술적 요구 사항
__pluginlib 이해
____pluginlib을 사용해 계산기 플러그인 구현
__ROS nodelet 이해
____샘플 nodelet 구현
__Gazebo 플러그인 이해와 생성
____기본 월드 플러그인 생성
__요약
__질문

13장. ROS 컨트롤러와 시각화 플러그인
__기술적 요구 사항
__ros_control 패키지 이해
____controller_interface 패키지
__ROS에서 기본 조인트 컨트롤러 작성
____1단계: 컨트롤러 패키지 생성
____2단계: 컨트롤러 헤더 파일 작성
____3단계: 컨트롤러 소스 파일 작성
____4단계: 컨트롤러 소스 파일에 대한 자세한 설명
____5단계: 플러그인 디스크립션 파일 작성
____6단계: package.xml 업데이트
____7단계: CMakeLists.txt 업데이트
____8단계: 컨트롤러 빌드
____9단계: 컨트롤러 구성파일 작성
____10단계: 컨트롤러의 실행 파일 작성
____11단계: 가제보에서 7-DOF 팔과 함께 컨트롤러 실행
__RViz 도구와 플러그인 이해
____디스플레이 패널
____RViz 툴바
____뷰 패널
____타임 패널
____고정 가능한 패널
__원격 조작을 위한 RViz 플러그인 작성
____RViz 플러그인 빌드 방법론
__요약
__질문

14장. 매트랩과 시뮬링크에서 ROS 활용
__기술적 요구 사항
__매트랩 시작
__ROS 툴박스와 매트랩 시작
____ROS 토픽 및 매트랩 콜백 함수로 시작
__매트랩 및 가제보를 활용한 로봇 애플리케이션 개발
__ROS 및 시뮬링크 시작
____시뮬링크에서 파형 신호 적분기 생성
____시뮬링크에서 ROS 메시지 퍼블리시
____시뮬링크에서 ROS 토픽 서브스크라이브
__시뮬링크에서 간단한 제어 시스템 개발
____시뮬링크 모델 구성
__요약
__질문

15장. 산업용 로봇을 위한 ROS
__기술적 요구 사항
__ROS-Industrial 패키지 이해
__ROS-Industrial의 목표
__ROS-Industrial: 간략한 역사
__ROS-Industrial 패키지 설치
____ROS-Industrial 패키지의 블록 다이어그램
__산업용 로봇 URDF 생성
__산업용 로봇을 위한 MoveIt 구성 생성
__MoveIt 구성파일 업데이트
__유니버셜 로봇 팔을 위한 ROS-Industrial 패키지 설치
__유니버셜 로봇용 ROS 인터페이스 설치
__유니버셜 로봇 팔의 MoveIt 구성 이해
__실제 유니버셜 로봇 하드웨어 및 ROS-I 시작
__ABB 로봇용 MoveIt 구성
__ROS-Industrial 로봇 지원 패키지 이해
__ROS- Industrial 로봇 클라이언트 패키지
__산업용 로봇 클라이언트 노드 설계
__ROS-Industrial 로봇 드라이버 패키지
__MoveIt IKFast 플러그인 이해
__ABB IRB 6640 로봇용 MoveIt IKFast 플러그인 생성
____MoveIt IKFast 플러그인 개발을 위한 전제 조건
__OpenRave 및 IKFast 모듈
____MoveIt IKFast
____MoveIt IKFast 패키지 설치
____우분투 20.04에 OpenRave 설치
__OpenRave로 작업할 로봇의 COLLADA 파일 생성
__IRB 6640 로봇용 IKFast CPP 파일 작성
__MoveIt IKFast 플러그인 생성
__요약
__질문

16장. ROS에서 문제 해결 및 모범 사례
__비주얼 스튜디오 코드에서 ROS 설정
____비주얼 스튜디오 코드 설치/제거
____비주얼 스튜디오 코드 시작
____새 비주얼 스튜디오 코드 익스텐션 설치
____비주얼 스튜디오 코드 ROS 익스텐션 시작
____ROS 작업 공간 검사와 구축
____비주얼 스튜디오 코드를 사용해 ROS 패키지 관리
____URDF 파일 프리뷰 시각화
__ROS의 모범 사례
____ROS C++ 코딩 스타일 가이드
__ROS 패키지에 대한 최상의 코딩 방법
__ROS의 중요한 문제 해결 팁
____roswtf 활용
__요약
__질문

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 : 070-4821-5101
교환/반품주소
  • 부산광역시 부산진구 중앙대로 856 303호 / (주)스터디채널 / 전화 : 070-4821-5101
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.