ROS2 혼자공부하는 로봇SW 직접 만들고 코딩하자 > 도서

본문 바로가기

도서

ROS2 혼자공부하는 로봇SW 직접 만들고 코딩하자

로즈
2023-12-05 00:46 210 0

본문

ROS2 혼자공부하는 로봇SW 직접 만들고 코딩하자
9791191198041.jpg


도서명 : ROS2 혼자공부하는 로봇SW 직접 만들고 코딩하자
저자/출판사 : 민형기, 잇플
쪽수 : 433쪽
출판일 : 2022-09-06
ISBN : 9791191198041
정가 : 27300

ㆍ머리말
ㆍ이 책이 이야기하는 대상 독자
ㆍ들어가며

환경설정
1. 터미널
1.1 화면 분할이 되는 터미널의 필요성
1.2 기본 터미널 사용해보기
1.3 Terminator
1.4 Tilix
2. 편집기
2.1 Sublime Text의 설치
2.2 Sublime Text 사용해보기
3. ROS 설치
3.1 ROS Galactic 버전 설치 페이지 찾기
3.2 Set Locale
3.3 Setup Sources
3.3 Install ROS2 packages
3.4 ROS2 설치 확인하기
4. 마무리

터미널과 bashrc 그리고 리눅스 익숙해지기
1. 이 장의 목적
2. Ubuntu의 폴더 관련 기본 명령
2.1 폴더를 하나 만들어 볼가요 - mkdir
2.2 폴더를 이동해 몰가요 - cd
2.3 삭제 명령 = rm
3. bashrc
3.1 Shell 쉘
3.2 .bashrc
3.3 .bashrc에 명령 입력해 두기
4. .bashrc에서 alias 설정
4.1 alias 설정
4.2 galactic 설정을 alias로 지정하기
4.3 source ~/.bashrc도 alias로 지정하기
5. ROS2 도메일 설정
6. 마무리

ROS2 기본 명령 익히기
1. 이 장의 목적
2. Turtlesim 설치와 실행
3. 다시 강조하는 setup.bash 환경
4. ROS Node
5. ROS Service
5.1 Service의 개념
5.2 ros2 service list
5.3 ros2 service type
5.4 service definition
5.5 Mobile Robot 소개
5.6 서비스를 호출하는 방법 service call
5.7 namespace
5.8 spawn
6. ROS Topic
6.1 Topic의 개념
6.2 ros2 topic list
6.3 ros2 topic type
6.4 ros2 topic info
6.5 토픽을 사용하기 위해 메시지 타입 확인하기
6.6 간단하게 터미널에서 토픽 구독해보기
6.7 주행 명령 토픽 발행해 보기
6.8 토픽의 흐름을 보여주는 rqt_graph
7. ROS Action
7.1 노드 turtle_teleop_key 실행
7.2 ros2 action list
7.3 ros2 action send_goal
8. 마무리

Python으로 ROS2 토픽 다루기
1. 이 장의 목적
2. 설치 및 준비
3. Jupyter의 간단한 사용법 및 Python 기초
3.1 Jupyter의 기본 사용
3.2 Markdown 문서
4. Python으로 토픽 구독하기
4.1 Jupyter로 토픽을 구독하기 위한 준비
4.2 코딩에 들어가기 전에 당부의 말
4.3 구독을 위해 필요한 모듈 import
4.4 Python Import 방식
4.5 rclpy의 초기화 및 노드 생성
4.6 Subscription에서 실행할 callback 함수 작성
4.7 토픽 subscriber 만들기
4.8 Jupyter 사용해서 유의할 점
4.9 토픽을 받는 횟수 제한해보기
5. Python으로 토픽 발행하기
5.1 Jupyter로 토픽을 발행하기 위한 준비
5.2 토픽 발행을 위한 rclpy와 메시지 초기화
5.3 cmd_vel 토픽의 데이터 타입인 Twist 선언
5.4 Python으로 cmd_vel 토픽 간단히 발행해보기
5.5 ROS에서 timer를 이용해서 토픽 발행하기
6. 노드의 종류
7. 마무리

Python으로 서비스 크라이언트 다루기
1. 이 장의 목적
2. Python으로 ROS Service Client 사용하기
2.1 학습을 위한 준비와 Service Client를 위한 노드 생성
2.2 서비스를 요청하는 Service client 생성
2.3 서비스의 정의(service definition)를 Python에서 사용할 준비하기
2.4 간단히 service call을 실행해 보기
2.5 wait_for_service 사용해보기
2.6 서비스 클라이언트가 실행되는 상황 확인하기
3. 마무리

ROS2 학습을 위한 Python Class 이해하기
1. 이 장의 목적
2. 준비작업 및 그냥 sin 함수 그려보기
2.1 빈 문서 준비하기
2.2 matplotlib 사용 준비하고 import 하기
2.3 domain 준비하기
2.4 sin 함수 구하기
2.5 그래프 그려보기
2.6 함수 def로 구현해보기
3. 클래스로 sin 함수를 그려보기
3.1 일단 클래스에 변수라도 등록해보자
3.2 삼각함수를 그리는 클래스 완성하기
4. 클래스의 상속 Inherritance
5. 메서드 오버라이딩 Method Overriding
6. 클래스에서 super()의 사용
7. 마무리

패키지 만들고 토픽 다루기
1. 이 장의 목적
2. 설치 및 준비
3. 처음으로 패키지 만들기
3.1 일단 패키지를 무작정 만들어 보자
3.2 패키지 빌드 해보기, 그리고 워크스페이스 설정
4. Topic Subscriber 노드 추가
4.1 새로운 subscriber 파일 추가하기
4.2 my_subscriber.py 파일 설명
4.3 새로 추가한 노드 실행해 보기
5. Topic Publisher 노드 추가
5.1 my_publisher.py 파일 설명
5.2 워크스페이스의 빌드 정보를 지우고 싶다면
5.3 my_publisher 실행해 보기
6. 마무리

메시지 정의 만들고 토픽과 서비스에서 다루기
1. 이 장의 목적
2. 메시지 정의
2.1 메시지 정의를 위한 별도의 패키지 만들기
2.2 메시지 정의 msg definition 만들기
2.3 새로 정의된 msg를 포함한 패키지 빌드하기
3. 두 개의 토픽을 구독하고 하나의 토픽을 발행하자
3.1 turtlesim이 발행하는 pose 토픽 구동 부분부터 시작하자
3.2 새로 정의한 CmdAndPoseVel을 사용해 보자
3.3 cmd_vel 토픽도 구독해 보기
3.4 두 개의 토픽을 구독한 결과를 발행해 보자
4. 서비스 정의 Service definition 내가 한번 만들어 보자
4.1 서비스 정의 만들고 빌드하기
4.2 서비스 서버 만들어 보자
4.3 서비스 서버 코드 안에 클라이언트 코드를 만들어 보자
4.4 여러 거북이를 원 모양으로 배치하기 위한 고민
4.5 여러 거북이를 배치하는 서비스 서버 구현
4.6 여러 거북이를 등장시키자
5. 마무리

액션 익숙해지기
1. 이 장의 목적
2. 액션 정의 만들기
2.1 액션 정의를 만들기 위한 준비
2.2 액션 정의 만들기
2.3 액션 정의 빌드하기
3. 간단한 액션 서버로 개념 들여다보기
3.1 간단히 결과를 보여주는 액션 서버
3.2 feedback을 액션 서버에 추가해 보기
4. ROS2 Multi Thread 기초
5. 지정한 거리만큼 이동하는 액션 서버 만들기
5.1 전체코드
5.2 main:멀티스레드 적용
5.3 TurtleSub_Action: pose 토픽 구독
5.4 DistTurtleServer: 사용자가 지정한 거리만큼 이동
6. 액션 서버 간단히 사용해보기
7. 마무리

Parameter 다루기
1. 이 장의 목적
2. 터미널 명령으로 파라미터 사용해보기
2.1 실습환경
2.2 ros2 param list
2.3 ros2 param get
2.4 ros2 param set
2.5 ros2 param dump
2.6 ros2 param load
3. 코드로 접근하는 파라미터
3.1 일단 파라미터를 선언하자
3.2 파라미터를 코드 내에서 사용하는 방법
3.3 파라미터가 변경되는 것 눈치채기
4. 마무리

디버그와 관찰을 위한 여러 도구들
1. 이장의 목적
2. 로그
2.1 간단히 rqt_console을 이용해서 로그 확인하기
2.2 로그 메시지 직접 만들기
3.rqt
3.1 rqt_graph
3.2 rqt_plot
3.3 topic monitor
3.4 topic publisher
4. rosbag
5. ROSLAUNCH
5.1 roslaunch 기본
5.2 parameter 지정하기
6. 마무리

마치며

댓글목록0

등록된 댓글이 없습니다.
게시판 전체검색