로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

ROS로 배우는 로봇 프로그래밍

   
지은이 모건 퀴글리, 브라이언 저키, 윌리엄 D. 스마트   |   출판사 제이펍  |   발행일 2017년 03월 31일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 34,000원30,600원 10%
마일리지 5% 1,700원
발행일 2017-03-31
ISBN 1185890750 | 9791185890753
기타정보 번역서 | 468쪽 | 일반
예상출고일 금일 가능 (근무일기준)
배송비 무료배송
   
프로그래밍
   
 

1. 책속으로
두 저자가 ROS를 직접 개발한 분들이어서 ROS에 정통할 것이라는 믿음에서 비롯된 것이지만, 그것보다도 다음과 같은 특징 때문입니다. 이 책은 비교적 배우기 쉽고 문법이 간결한 파이썬 코드를 사용하고 있으므로 ROS의 기본 개념과 도구에 대해 더 잘 이해할 수 있습니다. 책에서는 다양한 로봇 사례도 소개하고 있는데, 대부분 실제 로봇이 아닌 컴퓨터 시뮬레이션만으로도 동작시킬 수 있습니다. 물론, 실제 로봇을 구동시키는 기쁨에 비할 바는 아니겠지만, 이 책을 마칠 때쯤에는 로봇을 직접 만들어 보고 싶은 충동에 휩싸일지도 모르겠습니다.
-옮긴이 머리말 중에서

개발자가 책임질 수 있는 가장 보람 있는 (때로는 좌절할지라도) 로봇공학 프로젝트 중 하나는 자신만의 로봇을 만드는 것이다. 훌륭한 로봇이 이미 많이 존재하지만 자신만의 요구에 맞지 않을 때도 있다. 또는 아마도 특별한 로봇을 설계하고 제작하는 경험을 가지고 싶을 때도 있다. 이유야 어쨌건, 일단 놀랄 만한 전용 로봇을 제작한다면 그것을 ROS로 제어하기 위해 어떻게 해야 할까?
_288쪽

물론, 구축한 시스템을 좀 더 사용해 보면 토터스봇의 주행이 완벽하지 않다는 것을 알게 될 것이다. 방문을 항상 통과하지는 못하거나 가끔 길을 잃고 (위치 추정을 잘못하게 되고) 때때로는 정지할 수도 있다. 다음 단계는 주행 스택에 대한 문서를 찾아보고 개발한 로봇에 좀 더 주의 깊게 환경설정을 하는 것이다. 이 장에서 사용한 각 노드는 amcl의 잡음 모델에서 move_base의 가속 제한과 계획 한계까지 아주 많은 환경설정 선택 사항을 제공한다. 그동안 의존했던 기본 환경설정과 예제 환경설정은 작동하는 시스템을 만들기에 충분하였지만, 각 로봇은 진짜로 확실한 주행 성능을 가지기 위하여 몇몇 매개변수의 조율이 필요하다.
_329쪽

노드의 기본 로거 수준은 rospy.INFO인데, 이는 적어도 rospy.INFO와 같거나 그 이상의 강도를 가지는 메시지가 출력, 로깅되고 발행될 것임을 뜻한다. 그 결과, 기본적으로 rospy.DEBUG 메시지는 보이지 않게 된다. 사실상 rospy.logdebug()는 아무것도 하지 않는다. 이는 컴파일러나 다른 도구의 디버그 모드와 같다고 생각할 수 있다. 상세한 디버그 정보가 필요할 때 볼 수 있는 것은 중요하지만, 대부분의 경우 부수적인 출력에 주의를 빼앗기거나 디버그 메시지를 생성하는 데 따르는 성능 불이익을 초래하고 싶지는 않을 것이다. ROS에서 불이익은 화면에 출력하고, 파일에 쓰고, /rosout으로 발행하는 데 필요한 시간을 뜻한다. 디버그 메시지의 경우 이러한 일이 기본적으로 일어나지 않으므로 이들 메시지를 보려고 요청하지 않는 한 시스템에 아무런 영향도 끼치지 않고 코드 내에 rospy.logdebug()를 자유롭게 사용할 수 있다.
_395쪽

ROS 시스템 내의 모든 데이터를 기록하려면 rosbag record –a를 실행한다. 그러나 큰 규모의 시스템에서 아주 많은 양의 데이터를 쉽게 로깅할 수 있으므로 이 선택 사항을 사용할 때는 조심해야 한다. rosbag record 자신이 소요하는 디스크 공간과 CPU 사이클 외에도 모든 토픽을 구독하는 것은 나머지 시스템의 성능에 큰 영향을 미친다. 특히, 적어도 하나의 활성화된 구독자(영상 처리 파이프라인에서 흔함)가 없는 한 특정 결과를 계산하지 않는 노드에게는 더 많은 영향을 미친다.
_414쪽

PART I 기본 원리
CHAPTER 1 서론 3
간략한 발자취 4
개발 철학 5
설치 6
요약 8

CHAPTER 2 준비 사항 9
ROS 그래프 9
roscore 11
캣킨, 작업 공간 및 ROS 패키지 13
rosrun 18
이름, 이름공간과 재사상 23
roslaunch 25
탭 키 27
tf: 좌표 변환 28
요약 31

CHAPTER 3 토픽 32
토픽 발행 33
토픽 구독 38
래치된 토픽 41
사용자 메시지 자료형 정의 42
발행자와 구독자 결합 51
요약 52

CHAPTER 4 서비스 53
서비스 정의 54
서비스 구현 57
서비스 사용 60
요약 63

CHAPTER 5 액션 64
액션 정의 65
기본 액션 서버 구현 68
액션 사용 72
보다 복잡한 액션 서버 구현 73
보다 복잡한 액션 사용 77
요약 80

CHAPTER 6 로봇과 시뮬레이터 82
서브시스템 82
완전한 로봇 94
시뮬레이터 98
요약 102

CHAPTER 7 원더-봇 103
패키지 생성 103
센서 데이터 읽기 107
감지와 구동: 원더-봇! 111
요약 113

PART II ROS를 사용한 이동
CHAPTER 8 텔레옵-봇 117
개발 패턴 118
키보드 구동기 119
운동 생성기 120
매개변수 서버 126
속도 경사 129
구동시키자! 133
rviz 134
요약 141

CHAPTER 9 세계 지도 구축 142
ROS의 지도 143
rosbag를 이용한 데이터 기록 146
지도 구축 148
지도 서버 시작과 지도 보기 155
요약 158

CHAPTER 10 주행 159
지도에서 로봇 위치 추정 159
ROS 주행 스택 사용 164
코드를 사용한 주행 169
요약 171

CHAPTER 11 체스-봇 172
관절, 링크와 기구학 사슬 173
성공하기 위한 핵심 178
시뮬레이션된 R2의 설치와 실행 179
명령행으로부터 R2 이동하기 183
체스판 주위에서 R2 움직이기 185
손 조작 187
체스판 모델링 190
유명한 체스 게임 재생 194
요약 197

PART III 지각과 행동
CHAPTER 12 팔로우-봇 201
영상 획득 202
선 감지 209
선 따라가기 215
요약 217

CHAPTER 13 순찰에 관하여 218
간단한 순찰 218
상태 기계 220
smach를 이용한 상태 기계 정의 222
상태 기계를 사용한 순찰 231
요약 234

CHAPTER 14 스톡룸-봇 235
창고 시뮬레이션 235
수납통으로 구동하기 249
물품 집기 253
요약 266

PART IV ROS 미지원 장치 활용
CHAPTER 15 ROS 미지원 센서와 액추에이터 271
ROS 미지원 센서 추가 271
ROS 미지원 액추에이터 추가 280
요약 287

CHAPTER 16 자신만의 이동 로봇 1 288
토터스봇 288
ROS 메시지 인터페이스 290
하드웨어 구동기 293
로봇 모델링: URDF 294
가제보에서의 시뮬레이션 302
요약 310

CHAPTER 17 자신만의 이동 로봇 2 311
변환 검증 311
레이저 센서 추가 316
주행 스택 환경설정 320
주행 중인 로봇의 위치 추정과 제어를 위한 rviz 사용 326
요약 329

CHAPTER 18 자신만의 로봇 팔 330
쿠거봇 330
ROS 메시지 인터페이스 332
하드웨어 구동기 333
로봇 모델링: URDF 334
가제보에서의 시뮬레이션 339
변환 검증 348
무브잇 설정 352
목표를 보내기 위한 rviz 사용 356
요약 358

CHAPTER 19 소프트웨어 라이브러리 추가 360
로봇이 말하게 하기: pyttsx 361
요약 369

PART V 비결과 요령
CHAPTER 20 도구 373
마스터와 친구: roscore 373
매개변수: rosparam 375
파일시스템 이동: roscd 377
노드 시작: rosrun 377
다중 노드 실행: roslaunch 378
다중 노드 시스템의 테스팅: rostest 382
내부 관찰: rosnode, rostopic, rosmsg, rosservice, rossrv 385
요약 390

CHAPTER 21 로봇 행위 디버깅 391
로그 메시지: /rosout과 rqt_console 391
노드, 토픽 및 연결: rqt_graph와 rosnode 400
센서 융합: rviz 409
데이터 그리기: rqt_plot 410
데이터 로깅과 분석: rosbag과 rqt_bag 412
요약 417

CHAPTER 22 ROS 커뮤니티: 온라인 자원 418
예의범절 418
ROS 위키 419
ROS Answers 420
추적기(버그와 기능 요청) 422
메일링 목록과 특별 관심 그룹 422
코드 찾기와 공유 423
요약 424

CHAPTER 23 ROS에서의 C++ 사용 425
언제 C(또는 다른 언어)를 사용해야 하는가? 426
캣킨을 사용한 C++ 빌드 426
파이썬에서 C++로의 변환(그리고 그 반대) 429
요약 436

찾아보기 438

모건 퀴글리(Morgan Quigley)
모건 퀴글리는 로봇 운영체제(ROS)를 개발하고 운영하는 오픈 소스 로봇공학 재단(Open Source Robotics Foundation, OSRF)의 공동 창립자다. 그의 주된 연구 분야는 로봇 소프트웨어 시스템, 오픈 소스 소프트웨어 및 펌웨어, 임베디드 시스템 설계, 기계공학 및 센서 설계 등이다.

브라이언 저키(Brian Gerkey)
브라이언 저키는 OSRF의 공동 창립자이자 CEO다. 로봇공학 연구 및 교육 분야에서 가장 널리 쓰이는 로봇 소프트웨어 플랫폼 중 하나를 개발하고 배포하였다. 또한 오픈 소스 플레이어 프로젝트(Player Project)의 설립 및 책임 개발자이며, 널리 쓰이는 로봇 시뮬레이션과 개발 도구를 운영하고 있다.

윌리엄 D. 스마트(William D. Smart)
윌리엄 D. 스마트는 오리건 주립 대학 부교수로서 로봇공학 과정을 강의하고 있다. 그의 관심 연구 분야는 이동 로봇공학, 기계학습, 인간-로봇 상호작용 및 로봇공학과 법률 관계이며, 20년 이상 로봇 관련 소프트웨어를 만들었음에도 여전히 활발한 연구와 개발을 하고 있다.
등록된 서평이 없습니다.
은노기의 안드로이드 프로그래밍...
김은옥
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
Angular 2 프로그래밍...
정진욱
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
스위프트 프로그래밍(Swift3)...
야곰
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
 
전체평균(0)
회원평점   회원서평수 0
제이펍 출판사의 신간
그림과 수식으로 배우는 통통 딥러닝
야마시타 타카요시 저
20,700원
(10%↓+5%)
 
논쟁적 UX
김필산, 이상, 하선임, 헛헛JD 저
16,200원
(10%↓+5%)
 
클린 소프트웨어
로버트 C. 마틴 저
34,200원
(10%↓+5%)
 
처음 만나는 알고리즘(Algorithm)
이토 시즈카 저
17,100원
(10%↓+5%)
 
러닝 스칼라
제이슨 스와츠 저
21,600원
(10%↓+5%)
 
이메일주소수집거부