logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

ROS 2로 시작하는 로봇 프로그래밍

ROS 2로 시작하는 로봇 프로그래밍

표윤석, 임태훈 (지은이)
  |  
루비페이퍼
2021-08-05
  |  
32,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
알라딘 28,800원 -10% 0원 1,600원 27,200원 >
yes24 로딩중
교보문고 로딩중
영풍문고 로딩중
인터파크 로딩중
11st 로딩중
G마켓 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
로딩중

e-Book

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

ROS 2로 시작하는 로봇 프로그래밍

책 정보

· 제목 : ROS 2로 시작하는 로봇 프로그래밍 
· 분류 : 국내도서 > 컴퓨터/모바일 > 컴퓨터 공학 > 소프트웨어 공학
· ISBN : 9791186710722
· 쪽수 : 636쪽

책 소개

ROS 공식 플랫폼인 TurtleBot3의 개발자이자 10여 년간 ROS 기반 프로젝트를 진행한 로보틱스 엔지니어인 필자들이 실무에서 얻은 경험과 커뮤니티 활동을 바탕으로 작성한 ROS 로봇 프로그래밍 지침서이다.

목차

1부 ROS 2 소개
1장 ROS 2 소개
__1.1. 로봇 개발을 위한 툴
__1.2. 메타 운영체제
__1.3. ROS의 목적
__1.4. ROS의 구성
__1.5. ROS의 역사
__1.6. ROS 버전
__1.7. 버전 주기
__1.8. 버전 선택
2장 ROS 2 기반 로봇 개발에 필요한 정보
__2.1. 커뮤니티 중심의 개발 문화
__2.2. 즐겨찾는 ROS 2 정보 및 개발 자료
__2.3. ROS 커뮤니티 게시판
__2.4. ROS 문서
__2.5. ROS 2 소스코드
__2.6. ROS 2 패키지 배포 현황
__2.7. ROS 질의응답
__2.8. 기타
3장 ROS 2 개발환경 구축
__3.1. 개발환경
__3.2. 기본 운영체제 설치
__3.3. 로봇 운영체제 설치
__3.4. ROS 개발 툴 설치
__3.5. ROS 2 빌드 테스트
__3.6. Run commands 설정
__3.7. 통합 개발환경(IDE) 설치
__3.8. ROS 2 삭제
4장 왜? ROS 2로 가야하는가?
__4.1. 왜? ROS 2로 가야하는가?
__4.2. 대세는 이제 ROS 2!
5장 ROS 2의 중요 콘셉트
__5.1. Why ROS 2?
6장 ROS 1과 2의 차이점으로 알아보는 ROS 2의 특징
__6.1. ROS 2 개발의 필요성
__6.2. ROS 1과 ROS 2의 차이점
__6.3. ROS 2의 특징
7장 ROS 2와 DDS
__7.1. ROS 2와 DDS
__7.2. DDS란?
__7.3. DDS의 특징
__7.4. ROS에서의 사용법
8장 DDS의 QoS
__8.1. DDS의 서비스 품질(QoS, Quality of Service)
__8.2. QoS의 종류
__8.3. ROS 2에서 사용되는 QoS 옵션
__8.4. rmw_qos_profile 사용과 유저 QoS 프로파일 사용
__8.5. QoS 테스트
9장 패키지 설치와 노드 실행
__9.1. Turtlesim 패키지 설치
__9.2. Turtlesim이란?
__9.3. Turtlesim 패키지와 노드
__9.4. Turtlesim 패키지의 노드 실행
__9.5. 노드, 토픽, 서비스, 액션의 조회
__9.6. rqt_graph로 보는 노드와 토픽의 그래프 뷰
10장 ROS 2 노드와 데이터 통신
__10.1. 노드와 메시지 통신
__10.2. 노드 실행(ros2 run)
__10.3. 노드 목록(ros2 node list)
__10.4. 노드 정보(ros2 node info)
11장 ROS 2 토픽
__11.1. 토픽
__11.2. 토픽 목록 확인(ros2 topic list)
__11.3. 토픽 정보 확인(ros2 topic info)
__11.4. 토픽 내용 확인(ros2 topic echo)
__11.5. 토픽 대역폭 확인(ros2 topic bw)
__11.6. 토픽 주기 확인(ros2 topic hz)
__11.7. 토픽 지연 시간 확인(ros2 topic delay)
__11.8. 토픽 퍼블리시(ros2 topic pub)
__11.9. bag 기록(ros2 bag record)
__11.10. bag 정보(ros2 bag info)
__11.11. bag 재생(ros2 bag play)
12장 ROS 2 서비스
__12.1. 서비스
__12.2. 서비스 목록 확인(ros2 service list)
__12.3. 서비스 형태 확인(ros2 service type)
__12.4. 서비스 찾기(ros2 service find)
__12.5. 서비스 요청(ros2 service call)
13장 ROS 2 액션
__13.1. 액션
__13.2. 액션 서버 및 클라이언트
__13.3. 노드 정보(ros2 node info)
__13.4. 액션 목록(ros2 action list -t)
__13.5. 액션 정보(ros2 action info)
__13.6. 액션 목표(action goal) 전달
14장 ROS 2 인터페이스
__14.1. ROS 2 인터페이스
__14.2. 메시지 인터페이스(Message interface, msg)
__14.3. 서비스 인터페이스(Service interface, srv)
__14.4. 액션 인터페이스(Action interface, action)
15장 ROS 2 토픽/서비스/액션 정리 및 비교
__15.1. 토픽, 서비스, 액션 비교
16장 ROS 2 파라미터
__16.1. 파라미터
__16.2. 파라미터 목록 확인(ros2 param list)
__16.3. 파라미터 내용 확인(ros2 param describe)
__16.4. 파라미터 읽기(ros2 param get)
__16.5. 파라미터 쓰기(ros2 param set)
__16.6. 파라미터 저장(ros2 param dump)
__16.7. 파라미터 삭제(ros2 param delete)
17장 ROS 2 도구와 CLI 명령어
__17.1. ROS 도구
__17.2. ROS 2 CLI 명령어
__17.3. ROS 2 CLI 사용법
__17.4. ROS 2 CLI 종류와 각 sub-verbs의 기능
__17.5. 지속 개발되고 있는 ROS 2 CLI
18장 ROS 2 GUI 개발을 위한 RQt
__18.1. ROS의 종합 GUI 툴 RQt
__18.2. RQt 프레임워크
__18.3. RQt 설치 및 실행
__18.4. RQt 플러그인의 종류
__18.5. RQt 사용 예시
__18.6. ROS의 CLI 툴과 GUI 툴
19장 ROS 2의 표준 단위
__19.1. ROS 2의 표준 단위의 필요성
__19.2. ROS 2의 표준 단위
__19.3. ROS 2의 표준 단위 사용
20장 ROS 2의 좌표 표현
__20.1. ROS 2의 좌표 표현 통일의 필요성
__20.2. 좌표 표현의 기본 규칙
__20.3. 좌표 표현의 축 방향(Axis Orientation) 규칙
__20.4. 좌표 표현의 회전 표현 규칙
21장 ROS 2의 시간
__21.1. 시계(Clock)와 시간(Time)
__21.2. 시간 추상화(Time Abstractions)
__21.3. Time API
22장 ROS 2의 파일 시스템
__22.1. 파일 시스템
__22.2. 패키지와 메타패키지
__22.3. 바이너리 설치와 소스코드 설치
__22.4. 기본 설치 폴더와 사용자 작업 폴더
23장 ROS 2의 빌드 시스템과 빌드 툴
__23.1. 빌드 시스템과 빌드 툴
__23.2. 빌드 시스템(Build system)
__23.3. 빌드 툴(Build tools)
__23.4. 패키지 생성
__23.5. 패키지 빌드
__23.6. 빌드 시스템에 필요한 부가 기능
24장 ROS 2의 패키지 파일
__24.1. 패키지 파일
__24.2. 패키지 설정 파일(package.xml)
__24.3. 빌드 설정 파일(CMakeLists.txt)
__24.4. 파이썬 패키지 설정 파일(setup.py)
__24.5. 파이썬 패키지 환경설정 파일(setup.cfg)
__24.6. RQt 플러그인 설정 파일(plugin.xml)
__24.7. 패키지 변경로그 파일(CHANGELOG.rst)
__24.8. 라이선스 파일(LICENSE)
__24.9. 패키지 설명 파일(README.md)

2부 ROS 2 기본 프로그래밍
1장 ROS 프로그래밍 규칙(코드 스타일)
__1.1. 코드 스타일 가이드
__1.2. 기본 이름 규칙
__1.3. C++ Style
__1.4. Python Style
__1.5. 다른 언어
2장 ROS 프로그래밍 기초(파이썬)
__2.1. ROS의 Hello World, rclpy 버전
__2.2. 패키지 생성
__2.3. 패키지 설정
__2.4. 퍼블리셔 노드 작성
__2.5. 서브스크라이버 노드 작성
__2.6. 빌드
__2.7. 실행
3장 ROS 프로그래밍 기초(C++)
__3.1. ROS의 Hello World, rclcpp버전
__3.2. 패키지 생성
__3.3. 패키지 설정
__3.4. 퍼블리셔 노드 작성
__3.5. 서브스크라이버 노드 작성
__3.6. 빌드
__3.7. 실행
4장 ROS 2 Tips
__4.1. 설정 스크립트(setup script)
__4.2. setup.bash vs local_setup.bash
__4.3. colcon_cd
__4.4. ROS_DOMAIN_ID vs Namespace
__4.5. colcon과 vcstool 명령어 자동 완성 기능 추가
5장 토픽, 서비스, 액션 인터페이스
__5.1. ROS 2 인터페이스(Interface) 신규 작성
__5.2. 인터페이스 패키지 만들기
__5.3. 패키지 설정 파일(package.xml)
__5.4. 빌드 설정 파일(CMakeLists.txt)
__5.5. 빌드하기
6장 ROS 2 패키지 설계(파이썬)
__6.1. 패키지 설계
__6.2. 노드 작성
__6.3. 패키지 설정 파일(package.xml)
__6.4. 파이썬 패키지 설정 파일(setup.py)
__6.5. 소스코드 내려받기 및 빌드
__6.6. 실행
7장 토픽 프로그래밍(파이썬)
__7.1. 토픽
__7.2. 토픽 퍼블리셔 코드
__7.3. 토픽 서브스크라이버 코드
__7.4. 노드 실행 코드
8장 서비스 프로그래밍(파이썬)
__8.1. 서비스
__8.2. 서비스 서버 코드
__8.3. 서비스 클라이언트 코드
__8.4. 노드 실행 코드
9장 액션 프로그래밍(파이썬)
__9.1. 액션
__9.2. 액션 서버 코드
__9.3. 액션 클라이언트 코드
__9.4. 노드 실행 코드
10장 파라미터 프로그래밍(파이썬)
__10.1. 파라미터
__10.2. 파라미터 설정
__10.3. 파라미터 사용 방법(CLI)
__10.4. 파라미터 사용 방법(서비스 클라이언트)
__10.5. 기본 파라미터 설정 방법
11장 실행 인자 프로그래밍(파이썬)
__11.1. 실행 인자
__11.2. ROS 2에서의 실행 인자 처리
__11.3. 실행 인자의 구문 해석
__12장 ROS 2 패키지 설계(C++)
__12.1. 패키지 설계
__12.2. 노드 작성
__12.3. 패키지 설정 파일(package.xml)
__12.4. 빌드 설정 파일(CMakeLists.txt)
__12.5. 소스코드 내려받기 및 빌드
__12.6. 실행
13장 토픽 프로그래밍(C++)
__13.1. 토픽
__13.2. 토픽 퍼블리셔 코드
__13.3. 토픽 서브스크라이버 코드
__13.4. 노드 실행 코드
14장 서비스 프로그래밍(C++)
__14.1. 서비스
__14.2. 서비스 서버 코드
__14.3. 서비스 클라이언트 코드
__14.4. 노드 실행 코드
15장 액션 프로그래밍(C++)
__15.1. 액션
__15.2. 액션 서버 코드
__15.3. 액션 클라이언트 코드
__15.4. 노드 실행 코드
16장 파라미터 프로그래밍(C++)
__16.1. 파라미터
__16.2. 파라미터 서버와 초기화
__16.3. 파라미터 클라이언트
17장 실행 인자 프로그래밍(C++)
__17.1. 실행 인자
__17.2. 실행 인자 코드
__17.3. ROS 2 파라미터와 실행 인자
18장 런치 프로그래밍(파이썬, C++)
__18.1. ROS 2 Launch System
__18.2. launch 작성
__18.3. 패키지 빌드

3부 ROS 2 심화 프로그래밍
1장 Logging
__1.1. 로그(Log)
__1.2. 로그 설정
__1.3. 예제 코드
2장 ROS 2 CLI
__2.1. ROS 2 CLI
__2.2. ROS 2 CLI 실습
__2.3. ROS 2 CLI의 빠른 실행
__2.4. CLI 명령어에서 ROS arguments 사용하기
__2.5. 신규 ROS 2 CLI 작성 방법
3장 Intra-process communication
__3.1. ROS Node와 Nodelets
__3.2. Intra-proces communication
__3.3. 데모 코드
4장 QoS
__4.1. QoS(Quality of Service)
__4.2. Topic, Service, Action의 QoS 설정
__4.3. QoS 실습
__4.4. 유용한 QoS 예제
5장 Component
__5.1. 정적 링킹과 동적 링킹
__5.2. 동적 로딩과 ROS 2 Component
__5.3. 데모 코드
__5.4. 실행 방법
6장 RQt plugin
__6.1. RQt
__6.2. RQt 플러그인(RQt plugin)
__6.3. RQt 개발환경
__6.4. RQt 플러그인 작성 순서
__6.5. RQt 예제의 구성
__6.6. RQt 예제 UI 살펴보기
__6.7. RQt 예제 설정 파일 살펴보기
__6.8. RQt 예제 소스코드 살펴보기
__6.9. RQt 플러그인 예제 실행
__6.10. 다른 노드와 RQt 플러그인 연동 예제 실행
7장 Lifecycle
__7.1. 노드 관리
__7.2. Lifecycle
__7.3. 데모 코드
8장 Security
__8.1. ROS 2의 보안(Security)
__8.2. SROS2(Secure Robot Operating System 2)
__8.3. ROS 2의 인증, 액세스 제어, 암호화 기능
__8.4. 보안 vs 성능
__8.5. ROS 2 Robotic Systems Threat Model
9장 Real-time
__9.1. Real-time의 정의
__9.2. Real-time에 대한 배경 지식
__9.3. ROS 2 Real-time
__9.4. 데모 코드

저자소개

표윤석 (지은이)    정보 더보기
로보티즈 연구원으로 서비스 로봇을 위한 로봇 시스템을 연구개발 중이다. 로봇은 우리에게 무엇인가에 대해 항상 고민하며 우리 생활에 더 가까이 갈 수 있도록 노력하고 있다. 광운대학교 전자공학과 학부 졸업 후 한국과학기술연구원에서 근무했었고 일본 큐슈대학에서 정보지능공학을 전공으로 석사와 박사학위를 받았다. 2011년 ROS 1 Diamondback 버전부터 ROS를 사용하기 시작하여 지금의 ROS 2까지 10여 년간의 ROS 개발 경험을 가지고 있으며 ROS 공식 로봇 플랫폼인 TurtleBot3를 개발하여 ROS 보급에 앞장섰다. 2018년부터 2019년도에 걸쳐서 ROS 2 TSC(Technical Steering Committee) 멤버로 활동했고, 한국로봇산업진흥원 산업인력양성 강사로 4년간 활동하며 재직자 대상으로 ROS 교육을 진행했다. 2011년부터 꾸준히 ROS 강좌를 온라인에서 연재하고 있으며, 한국어, 일본어, 중국어, 영어로 ROS 관련 서적을 다수 저술했다. 로봇에 대한 꿈을 가진 이들과 함께 이야기 나누는 것을 즐기며 오픈 로보틱스를 지향하는 '오픈소스 로봇기술 공유 커뮤니티(오로카)'에서 공개강좌와 공개 프로젝트를 진행하고 있다. 항상 일을 벌이는 것을 즐기기에 커뮤니티에서 로봇 및 ROS 관련 강연, 세미나, 튜토리얼, 전시회 등을 기획하는데 이 책의 독자들을 꼭 어디선가 볼 수 있기를 기대해본다.
펼치기
임태훈 (지은이)    정보 더보기
로봇을 개발하고 이를 이용한 서비스를 고민하는 소프트웨어 개발자이다. 2008년 겨울 '아이언맨'(2008)을 통해 로봇에 대한 꿈을 키웠고, 광운대학교 로봇학부와 광주과학기술원 기계공학부 석사를 거치며 인간 사회와 함께할 수 있는 로봇을 개발하기 위한 지식과 경험을 쌓았다. 로보티즈에서 'TurtleBot3'(2017)와'OpenMANIPULATOR'(2019) 프로젝트의 메인 소프트웨어 개발자로 일했고, 그 경험을 바탕으로 'ROS 로봇 프로그래밍'(2017) 공저자로 참여했다. 미디어아트 작가들과 여러 협업 전시를 진행했고, 'Play on AI'(2020) 전시에 작가로 참여했다.
펼치기

추천도서

이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책