이미 소장하고 있다면 판매해 보세요.
|
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. 데모 코드 |
|
이 책에서 다루는 내용
- ROS란 무엇인가? - ROS 2의 중요 콘셉트와 특징, 토픽, 서비스, 액션, 파라미터, 빌드 시스템 소개 등 - ROS 2 기본 프로그래밍(코드 스타일부터 토픽, 서비스, 액션, 파라미터 등 기초 프로그래밍 학습) - ROS 2 심화 프로그래밍(로깅, CLI, GUI, QoS, Component, Life cycle, Security 등 ROS 2의 고급 기능 학습) 독자 한마디 ROS에 대한 공부를 한다면 꼭 읽어야 할 책 1순위! ROS 1에 이어 ROS 2에 대해서 잘 정리하여 이해할 수 있는 이 책이 탄생하기까지 저자들의 노고에 감사드립니다. - 김재훈 - 자료가 별로 없고 어려워서 ROS를 공부하기 정말 힘들었는데, 한 줄기 빛이 되었던 강좌였습니다 감사합니다! - 정민재 - 한국 오픈소스 로봇 소프트웨어 개발의 문익점인 표윤석 박사님의 두 번째 목화씨, ROS 2 로봇 프로그래밍! 정말 기대됩니다. - 정환석 - |