{"product_id":"138302","title":"ROS2 혼자공부하는 로봇SW 직접 만들고 코딩하자","description":"\u003ccenter\u003e\u003cdiv style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/tmgdisk01.cafe24.com\/images\/vs\/4172\/sv\/3jXPCfEsVO0JrvwH5PRwIkIGWwFQBz.png?v=1765062002\" style=\"max-width:100%;max-height:10px\"\u003e\u003c\/div\u003e\u003c\/center\u003e\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\u003ccenter\u003e\n\u003cdiv style=\"width:95%\"\u003e\n\u003cdiv style=\"text-align:center;font-size:30px;font-weight:bolder;line-height:1.6em\"\u003eROS2 혼자공부하는 로봇SW 직접 만들고 코딩하자\u003c\/div\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003cdiv style=\"border-bottom:1px;border-bottom-style:dotted;border-color:;padding-bottom:20px\"\u003e\u003ccenter\u003e\u003ctable align=\"center\" width=\"100%\"\u003e\u003ctbody style=\"border:0px\"\u003e\n\u003ctr\u003e\u003ctd align=\"center\" style=\"line-height:1.2em;text-align:center;font-size:18px;color:black;font-weight:bold;padding-bottom:20px;\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\u003ctr\u003e\u003ctd style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/image.yes24.com\/goods\/112250822\/XL\" style=\"max-width:100%;height:auto\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/center\u003e\u003c\/div\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003cdiv style=\"width:95%;{split_style6}padding-top:20px;padding-bottom:20px\"\u003e\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003eDescription\u003c\/div\u003e\n\u003cdiv style=\"text-align:left;word-break:break-all;font-size:14px;line-height:1.6em;\"\u003e\n\u003cdiv\u003e \u003ch5\u003e\u003cb\u003e책소개\u003c\/b\u003e\u003c\/h5\u003e \u003c\/div\u003e \u003cdiv\u003e \u003ctable\u003e \u003ctbody\u003e \u003ctr\u003e \u003ctd\u003e \u003cdiv\u003e \u003cdiv\u003e  이 책은 ROS라는 도구의 존재를 알고 공부하려는 분 중에 아직 공부를 시작하지 않았거나, 이것저것 예제를 돌려봤지만 어떤 것인지 감을 잡지 못한 분들을 대상으로 하고 있다.\u003cbr\u003e오랫동안 강의를 해왔던 나의 경험을 바탕으로 이러한 독자들이 쉽게 이해할 수 있게 이야기를 들려주는 것처럼 이 책을 기술했다.\u003cbr\u003e이 책이 추구하는 것은 독자들이 빠르게 ROS의 원리와 사용법을 파악해서 하고 싶은 일을 할 수 있도록 하는 것이다.\u003cbr\u003e \u003cbr\u003e 이 책 한 권이면 다 된다고 하는 말은 아니다.\u003cbr\u003e저자인 내가 독자분들에게 하고자 하는 말은 ‘이렇게 배우면 좀 더 쉽지 않을까요?’라는 것이다.\u003cbr\u003e수학의 한 분야라면 한 권이면 다 되는책이 중요하겠지만, 전체 인원이 가늠도 안 되는 사람들이 참여해서 다양한 패키지를 공유하는 ROS라는 생태계에 그렇게 접근할 수 있다고 생각하지 않는다.\u003cbr\u003e또한, 우리에게는 ‘표윤석’ 박사라는 매우 뛰어난 ROS 전도사가 계셔서 그분의 책과 자료를 통해 ROS2의 기본적인 동작 원리 등을 알 수 있다.\u003cbr\u003e그래서 내가 수업 때 즐겨 접근하는 방식대로 이 책을 기술했다.\u003cbr\u003e- 저자의 말 중에서 \u003cbr\u003e \u003cbr\u003e \u003c\/div\u003e \u003c\/div\u003e \u003c\/td\u003e \u003c\/tr\u003e \u003c\/tbody\u003e \u003c\/table\u003e \u003cdiv\u003e \u003cul\u003e \u003cli\u003e 책의 일부 내용을 미리 읽어보실 수 있습니다.\u003cbr\u003e\u003cspan\u003e미리보기\u003c\/span\u003e\n\u003c\/li\u003e \u003c\/ul\u003e \u003c\/div\u003e \u003c\/div\u003e \u003cbr\u003e\u003cdiv\u003e \u003ch5\u003e\u003cb\u003e목차\u003c\/b\u003e\u003c\/h5\u003e \u003c\/div\u003e \u003cdiv\u003e \u003cdiv\u003e  ·머리말\u003cbr\u003e·이 책이 이야기하는 대상 독자\u003cbr\u003e·들어가며 \u003cbr\u003e\u003cbr\u003e\u003cb\u003e환경설정\u003c\/b\u003e\u003cbr\u003e1.\u003cbr\u003e터미널 \u003cbr\u003e 1.1 화면 분할이 되는 터미널의 필요성\u003cbr\u003e 1.2 기본 터미널 사용해보기\u003cbr\u003e 1.3 Terminator\u003cbr\u003e 1.4 Tilix\u003cbr\u003e2.\u003cbr\u003e편집기 \u003cbr\u003e 2.1 Sublime Text의 설치\u003cbr\u003e 2.2 Sublime Text 사용해보기\u003cbr\u003e3. ROS 설치 \u003cbr\u003e 3.1 ROS Galactic 버전 설치 페이지 찾기\u003cbr\u003e 3.2 Set Locale\u003cbr\u003e 3.3 Setup Sources\u003cbr\u003e 3.3 Install ROS2 packages\u003cbr\u003e 3.4 ROS2 설치 확인하기\u003cbr\u003e4.\u003cbr\u003e마무리 \u003cbr\u003e\u003cbr\u003e\u003cb\u003e터미널과 bashrc 그리고 리눅스 익숙해지기\u003c\/b\u003e\u003cbr\u003e1.\u003cbr\u003e이 장의 목적\u003cbr\u003e2.\u003cbr\u003eUbuntu의 폴더 관련 기본 명령\u003cbr\u003e 2.1 폴더를 하나 만들어 볼가요 - mkdir\u003cbr\u003e 2.2 폴더를 이동해 몰가요 - cd\u003cbr\u003e 2.3 삭제 명령 = rm\u003cbr\u003e3.\u003cbr\u003ebashrc\u003cbr\u003e 3.1 Shell 쉘\u003cbr\u003e 3.2 .bashrc\u003cbr\u003e 3.3 .bashrc에 명령 입력해 두기\u003cbr\u003e4.\u003cbr\u003e.bashrc에서 alias 설정\u003cbr\u003e 4.1 alias 설정\u003cbr\u003e 4.2 galactic 설정을 alias로 지정하기\u003cbr\u003e 4.3 source ~\/.bashrc도 alias로 지정하기\u003cbr\u003e5. ROS2 도메일 설정\u003cbr\u003e6.\u003cbr\u003e마무리\u003cbr\u003e\u003cbr\u003e\u003cb\u003eROS2 기본 명령 익히기\u003c\/b\u003e\u003cbr\u003e1.\u003cbr\u003e이 장의 목적\u003cbr\u003e2.\u003cbr\u003eTurtlesim 설치와 실행\u003cbr\u003e3.\u003cbr\u003e다시 강조하는 setup.bash 환경\u003cbr\u003e4. ROS Node\u003cbr\u003e5. ROS Service\u003cbr\u003e 5.1 Service의 개념\u003cbr\u003e 5.2 ros2 service list\u003cbr\u003e 5.3 ros2 service type\u003cbr\u003e 5.4 service definition\u003cbr\u003e 5.5 Mobile Robot 소개\u003cbr\u003e 5.6 서비스를 호출하는 방법 service call\u003cbr\u003e 5.7 namespace\u003cbr\u003e 5.8 spawn\u003cbr\u003e6. ROS Topic\u003cbr\u003e 6.1 Topic의 개념\u003cbr\u003e 6.2 ros2 topic list\u003cbr\u003e 6.3 ros2 topic type\u003cbr\u003e 6.4 ros2 topic info\u003cbr\u003e 6.5 토픽을 사용하기 위해 메시지 타입 확인하기\u003cbr\u003e 6.6 간단하게 터미널에서 토픽 구독해보기\u003cbr\u003e 6.7 주행 명령 토픽 발행해 보기\u003cbr\u003e 6.8 토픽의 흐름을 보여주는 rqt_graph\u003cbr\u003e7. ROS Action\u003cbr\u003e 7.1 노드 turtle_teleop_key 실행\u003cbr\u003e 7.2 ros2 action list\u003cbr\u003e 7.3 ros2 action send_goal\u003cbr\u003e8.\u003cbr\u003e마무리\u003cbr\u003e\u003cbr\u003e\u003cb\u003ePython으로 ROS2 토픽 다루기\u003c\/b\u003e\u003cbr\u003e1.\u003cbr\u003e이 장의 목적\u003cbr\u003e2.\u003cbr\u003e설치 및 준비\u003cbr\u003e3.\u003cbr\u003eJupyter의 간단한 사용법 및 Python 기초\u003cbr\u003e 3.1 Jupyter의 기본 사용\u003cbr\u003e 3.2 Markdown 문서\u003cbr\u003e4.\u003cbr\u003ePython으로 토픽 구독하기\u003cbr\u003e 4.1 Jupyter로 토픽을 구독하기 위한 준비\u003cbr\u003e 4.2 코딩에 들어가기 전에 당부의 말\u003cbr\u003e 4.3 구독을 위해 필요한 모듈 import\u003cbr\u003e 4.4 Python Import 방식\u003cbr\u003e 4.5 rclpy의 초기화 및 노드 생성\u003cbr\u003e 4.6 Subscription에서 실행할 callback 함수 작성\u003cbr\u003e 4.7 토픽 subscriber 만들기\u003cbr\u003e 4.8 Jupyter 사용해서 유의할 점\u003cbr\u003e 4.9 토픽을 받는 횟수 제한해보기\u003cbr\u003e5.\u003cbr\u003ePython으로 토픽 발행하기\u003cbr\u003e 5.1 Jupyter로 토픽을 발행하기 위한 준비\u003cbr\u003e 5.2 토픽 발행을 위한 rclpy와 메시지 초기화\u003cbr\u003e 5.3 cmd_vel 토픽의 데이터 타입인 Twist 선언\u003cbr\u003e 5.4 Python으로 cmd_vel 토픽 간단히 발행해보기\u003cbr\u003e 5.5 ROS에서 timer를 이용해서 토픽 발행하기\u003cbr\u003e6.\u003cbr\u003e노드의 종류\u003cbr\u003e7.\u003cbr\u003e마무리\u003cbr\u003e\u003cbr\u003e\u003cb\u003ePython으로 서비스 크라이언트 다루기\u003c\/b\u003e\u003cbr\u003e1.\u003cbr\u003e이 장의 목적\u003cbr\u003e2.\u003cbr\u003ePython으로 ROS Service Client 사용하기\u003cbr\u003e 2.1 학습을 위한 준비와 Service Client를 위한 노드 생성\u003cbr\u003e 2.2 서비스를 요청하는 Service client 생성\u003cbr\u003e 2.3 서비스의 정의(service definition)를 Python에서 사용할 준비하기\u003cbr\u003e 2.4 간단히 service call을 실행해 보기\u003cbr\u003e 2.5 wait_for_service 사용해보기\u003cbr\u003e 2.6 서비스 클라이언트가 실행되는 상황 확인하기\u003cbr\u003e3.\u003cbr\u003e마무리\u003cbr\u003e\u003cbr\u003e\u003cb\u003eROS2 학습을 위한 Python Class 이해하기\u003c\/b\u003e\u003cbr\u003e1.\u003cbr\u003e이 장의 목적\u003cbr\u003e2.\u003cbr\u003e준비작업 및 그냥 sin 함수 그려보기\u003cbr\u003e 2.1 빈 문서 준비하기\u003cbr\u003e 2.2 matplotlib 사용 준비하고 import 하기\u003cbr\u003e 2.3 domain 준비하기\u003cbr\u003e 2.4 sin 함수 구하기\u003cbr\u003e 2.5 그래프 그려보기\u003cbr\u003e 2.6 함수 def로 구현해보기\u003cbr\u003e3.\u003cbr\u003e클래스로 sin 함수를 그려보기\u003cbr\u003e 3.1 일단 클래스에 변수라도 등록해보자\u003cbr\u003e 3.2 삼각함수를 그리는 클래스 완성하기\u003cbr\u003e4.\u003cbr\u003e클래스의 상속 Inherritance\u003cbr\u003e5.\u003cbr\u003e메서드 오버라이딩 Method Overriding\u003cbr\u003e6.\u003cbr\u003e클래스에서 super()의 사용\u003cbr\u003e7.\u003cbr\u003e마무리\u003cbr\u003e\u003cbr\u003e\u003cb\u003e패키지 만들고 토픽 다루기\u003c\/b\u003e\u003cbr\u003e1.\u003cbr\u003e이 장의 목적\u003cbr\u003e2.\u003cbr\u003e설치 및 준비\u003cbr\u003e3.\u003cbr\u003e처음으로 패키지 만들기\u003cbr\u003e 3.1 일단 패키지를 무작정 만들어 보자\u003cbr\u003e 3.2 패키지 빌드 해보기, 그리고 워크스페이스 설정\u003cbr\u003e4.\u003cbr\u003eTopic Subscriber 노드 추가\u003cbr\u003e 4.1 새로운 subscriber 파일 추가하기\u003cbr\u003e 4.2 my_subscriber.py 파일 설명\u003cbr\u003e 4.3 새로 추가한 노드 실행해 보기\u003cbr\u003e5.\u003cbr\u003eTopic Publisher 노드 추가\u003cbr\u003e 5.1 my_publisher.py 파일 설명\u003cbr\u003e 5.2 워크스페이스의 빌드 정보를 지우고 싶다면\u003cbr\u003e 5.3 my_publisher 실행해 보기\u003cbr\u003e6.\u003cbr\u003e마무리\u003cbr\u003e\u003cbr\u003e\u003cb\u003e메시지 정의 만들고 토픽과 서비스에서 다루기\u003c\/b\u003e\u003cbr\u003e1.\u003cbr\u003e이 장의 목적\u003cbr\u003e2.\u003cbr\u003e메시지 정의\u003cbr\u003e 2.1 메시지 정의를 위한 별도의 패키지 만들기\u003cbr\u003e 2.2 메시지 정의 msg definition 만들기\u003cbr\u003e 2.3 새로 정의된 msg를 포함한 패키지 빌드하기\u003cbr\u003e3.\u003cbr\u003e두 개의 토픽을 구독하고 하나의 토픽을 발행하자\u003cbr\u003e 3.1 turtlesim이 발행하는 pose 토픽 구동 부분부터 시작하자\u003cbr\u003e 3.2 새로 정의한 CmdAndPoseVel을 사용해 보자\u003cbr\u003e 3.3 cmd_vel 토픽도 구독해 보기\u003cbr\u003e 3.4 두 개의 토픽을 구독한 결과를 발행해 보자\u003cbr\u003e4.\u003cbr\u003e서비스 정의 Service definition 내가 한번 만들어 보자\u003cbr\u003e 4.1 서비스 정의 만들고 빌드하기\u003cbr\u003e 4.2 서비스 서버 만들어 보자\u003cbr\u003e 4.3 서비스 서버 코드 안에 클라이언트 코드를 만들어 보자\u003cbr\u003e 4.4 여러 거북이를 원 모양으로 배치하기 위한 고민\u003cbr\u003e 4.5 여러 거북이를 배치하는 서비스 서버 구현\u003cbr\u003e 4.6 여러 거북이를 등장시키자\u003cbr\u003e5.\u003cbr\u003e마무리\u003cbr\u003e\u003cbr\u003e\u003cb\u003e액션 익숙해지기\u003c\/b\u003e\u003cbr\u003e1.\u003cbr\u003e이 장의 목적\u003cbr\u003e2.\u003cbr\u003e액션 정의 만들기\u003cbr\u003e 2.1 액션 정의를 만들기 위한 준비\u003cbr\u003e 2.2 액션 정의 만들기\u003cbr\u003e 2.3 액션 정의 빌드하기\u003cbr\u003e3.\u003cbr\u003e간단한 액션 서버로 개념 들여다보기\u003cbr\u003e 3.1 간단히 결과를 보여주는 액션 서버\u003cbr\u003e 3.2 feedback을 액션 서버에 추가해 보기\u003cbr\u003e4. ROS2 Multi Thread 기초\u003cbr\u003e5.\u003cbr\u003e지정한 거리만큼 이동하는 액션 서버 만들기\u003cbr\u003e 5.1 전체코드\u003cbr\u003e 5.2 main:멀티스레드 적용\u003cbr\u003e 5.3 TurtleSub_Action: pose 토픽 구독\u003cbr\u003e 5.4 DistTurtleServer: 사용자가 지정한 거리만큼 이동\u003cbr\u003e6.\u003cbr\u003e액션 서버 간단히 사용해보기\u003cbr\u003e7.\u003cbr\u003e마무리\u003cbr\u003e\u003cbr\u003e\u003cb\u003eParameter 다루기\u003c\/b\u003e\u003cbr\u003e1.\u003cbr\u003e이 장의 목적\u003cbr\u003e2.\u003cbr\u003e터미널 명령으로 파라미터 사용해보기\u003cbr\u003e 2.1 실습환경\u003cbr\u003e 2.2 ros2 param list\u003cbr\u003e 2.3 ros2 param get\u003cbr\u003e 2.4 ros2 param set\u003cbr\u003e 2.5 ros2 param dump\u003cbr\u003e 2.6 ros2 param load\u003cbr\u003e3.\u003cbr\u003e코드로 접근하는 파라미터\u003cbr\u003e 3.1 일단 파라미터를 선언하자\u003cbr\u003e 3.2 파라미터를 코드 내에서 사용하는 방법\u003cbr\u003e 3.3 파라미터가 변경되는 것 눈치채기\u003cbr\u003e4.\u003cbr\u003e마무리\u003cbr\u003e\u003cbr\u003e\u003cb\u003e디버그와 관찰을 위한 여러 도구들\u003c\/b\u003e\u003cbr\u003e1.\u003cbr\u003e이장의 목적\u003cbr\u003e2.\u003cbr\u003e로그\u003cbr\u003e 2.1 간단히 rqt_console을 이용해서 로그 확인하기\u003cbr\u003e 2.2 로그 메시지 직접 만들기\u003cbr\u003e3.rqt\u003cbr\u003e 3.1 rqt_graph\u003cbr\u003e 3.2 rqt_plot\u003cbr\u003e 3.3 topic monitor\u003cbr\u003e 3.4 topic publisher\u003cbr\u003e4.\u003cbr\u003erosbag\u003cbr\u003e5. ROSLAUNCH\u003cbr\u003e 5.1 roslaunch 기본\u003cbr\u003e 5.2 parameter 지정하기\u003cbr\u003e6.\u003cbr\u003e마무리\u003cbr\u003e\u003cbr\u003e마치며 \u003c\/div\u003e \u003cdiv\u003e\u003c\/div\u003e \u003c\/div\u003e \u003cbr\u003e\u003cdiv\u003e \u003ch5\u003e\u003cb\u003e상세 이미지\u003c\/b\u003e\u003c\/h5\u003e \u003c\/div\u003e \u003cdiv\u003e \u003cdiv\u003e \u003cimg src=\"https:\/\/image.yes24.com\/momo\/TopCate3931\/MidCate004\/393031966(1).jpg\" border=\"0\" alt=\"상세 이미지 1\"\u003e \u003c\/div\u003e \u003c\/div\u003e \u003cbr\u003e\u003cdiv\u003e \u003ch5\u003e\u003cb\u003e출판사 리뷰\u003c\/b\u003e\u003c\/h5\u003e \u003c\/div\u003e \u003cdiv\u003e \u003cdiv\u003e  저는 아주 예전부터 로봇을 공부하고 개발도 했습니다.\u003cbr\u003e처음에는 학생으로서 공부를 했고, 작은 규모의 교육용 로봇부터 판매 가격이 십몇억 원이나 되는 복강경 수술용 로봇의 개발까지 참여했습니다.\u003cbr\u003e제가 관심을 가진 분야는 정말 많지만, 실제 개발에 참여하기는 쉽지 않았습니다.\u003cbr\u003e그런데 어쩌다 보니 블록 코딩을 하는 교육용 로봇, 폭발물 제거용 로봇, 중심을 잡고 사람의 이동을 도와주는 밸런싱 로봇의 일종인 스케이트 로봇, 3D 프린터, 딥러닝을 이용한 다양한 프로젝트까지도 도전했습니다.\u003cbr\u003e그런 제가 로봇을 개발하든 사용하든 언제나 편하게 기능을 구현할 수 있도록 도움을 준 친구가 ROS(Robot Operating System)입니다.\u003cbr\u003e물론 처음부터 ROS를 사용한 건 아닙니다.\u003cbr\u003e제가 ROS의 존재를 안 것은 2012년 경이지만, 실제 ROS를 공부하면서 사용하게 된 것은 몇 년 후이고, ROS를 이용해서 로봇 SW를 개발한 것은 또 그로부터 몇 년 후입니다. ROS를 사용해본 후에 ‘아! 이 좋은 도구를 더 일찍 사용했더라면, 정말 편했을 텐데’라고 후회했습니다.\u003cbr\u003e\u003cbr\u003e최근 저는 다양한 형태의 교육 과정에 참여해서 로봇과 딥러닝을 전파하고 있습니다.\u003cbr\u003e또한 훌륭한 책이나 자료를 통해 여러 장소에서 학생들에게 잘 전달하려 애쓰고 있습니다.\u003cbr\u003e그러다가 로봇의 기능을 배우고, 로봇 개발을 위해 ROS를 학습하려는 분들에게 뭔가 도움을 드리고 싶단 생각이 들었습니다.\u003cbr\u003e거창한 ROS의 역사나 ROS의 철학, 아키텍처에 관한 게 아니라, 어떻게 하면 ROS를 정말 잘 쓸 수 있는지에 관한 이야기를 하고 싶었습니다.\u003cbr\u003e\u003cbr\u003e저는 ROS, 블록 코딩, 제어이론, 로보틱스, 디지털 필터, 딥러닝 등 로봇을 개발하는 데 필요하다고 판단한 것 중에 제가 할 수 있는 것은 모두 전달해야겠다고 생각했습니다.\u003cbr\u003e분야별로 한 권의 책이 될지 아니면 좀 다른 형태가 될지는 모르겠지만 하나씩 이야기를 꺼내서 전달하려고 합니다.\u003cbr\u003e\u003cbr\u003e첫 번째 책은 ROS2 Galactic으로 시작하려고 합니다.\u003cbr\u003e저는 ROS 버전이 1인지 2인지는 중요하지 않은 것 같습니다.\u003cbr\u003e어떤 도구를 쓰느냐보다 자기에게 필요한 기능을 빠르게 찾아서 어떻게 적용하는가가 더 중요하다고 생각합니다.\u003cbr\u003e‘완벽한 정리’라든가, ‘이 책 한 권이면 끝’이라는 말은 제 책에는 어울리지 않습니다.\u003cbr\u003e저는 인터넷에 있는 자료보다 더 많은 내용을 더 깊이 있게 정리할 수 있는 능력이 제게 있다고 생각하지 않습니다.\u003cbr\u003e저는 앞에서 말한 것처럼 독자들이 빠르게 도구를 익힐 수 있는 방법을 고민한다는 것을 말하고 싶습니다.\u003cbr\u003e\u003cbr\u003e이 책은 우선, ROS의 기본적인 사용법에 집중할 것인데 그전에 Linux의 사용법을 간략하게 다룰 겁니다. ROS는 Ubuntu(Linux 기반의 OS)에서 아주 잘 동작하므로 Ubuntu의 사용법에 익숙해질 필요가 있기 때문입니다.\u003cbr\u003e또한 URDF로 로봇을 기술하는 방법, Gazebo에서 시뮬레이션하는 방법과 아두이노를 ROS에서 이용하는 방법도 다음에 출판될 2권에서 다루려고 합니다.\u003cbr\u003e현재 ROS라는 이름의 유용한 도구는 몇 년 전에 ROS2 버전이 나와서 ROS1에서 ROS2로 넘어가고 있는 과도기입니다.\u003cbr\u003e인터넷 커뮤니티에서는 ROS1이냐, ROS2냐를 가지고 많은논쟁이 있지만, 제 생각에는 무의미한 논쟁인 것 같습니다.\u003cbr\u003e왜냐하면, 다 다룰 줄 알아야 하기 때문입니다.\u003cbr\u003e여기서는 우분투 20.04를 기준으로 ROS를 이야기 하려고 합니다.\u003cbr\u003e이유는 간단합니다.\u003cbr\u003eROS1과 ROS2를 동시에 사용할 수 있는 마지막 우분투 버전이 20.04이기 때문입니다.\u003cbr\u003e\u003cbr\u003e이 책이 출판될 때쯤이면 우분투가 버전업 되어 22.04가 나와 있을 것 같습니다.\u003cbr\u003e그러나 그것도 중요하지 않습니다.\u003cbr\u003e아직도 우분투 16.04에서 ROS1 Kinetic 버전으로 개발하는 분들도 많기 때문입니다.\u003cbr\u003e중요한 것은 버전이 아니라 사용법에 대한 이해입니다.\u003cbr\u003e분명 22.04의 우분투에 맞춰 또 새로운 ROS2 버전이 나오겠지만, 그 기본은 바뀌지 않으므로 크게 신경 쓰지 않아도 됩니다.\u003cbr\u003e\n\u003c\/div\u003e \u003cdiv\u003e\u003c\/div\u003e \u003c\/div\u003e \u003c\/div\u003e\n\u003c\/div\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003cdiv style=\"width:95%;padding-top:20px;padding-bottom:20px\"\u003e\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003eGOODS SPECIFICS\u003c\/div\u003e\n\u003cdiv style=\"text-align:left;font-size:14px;line-height:1.6em;\"\u003e\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e- \u003cstrong\u003e발행일 : \u003c\/strong\u003e2022년 09월 06일\u003c\/div\u003e\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e- \u003cstrong\u003e쪽수, 무게, 크기 : \u003c\/strong\u003e433쪽 | 714g | 185*257*15mm\u003c\/div\u003e\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e- \u003cstrong\u003eISBN13 : \u003c\/strong\u003e9791191198041\u003c\/div\u003e\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e- \u003cstrong\u003eISBN10 : \u003c\/strong\u003e1191198049\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003ccenter\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003cspan\u003e\u003c\/span\u003e\n\u003c\/center\u003e\n\u003c\/center\u003e","brand":"LIBRAIRIE COREENNE","offers":[{"title":"Default Title","offer_id":43893227978794,"sku":"138302","price":38.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0683\/2750\/5962\/files\/9ab29505085a755596c6937f12f5866b.jpg?v=1765392702","url":"https:\/\/librairie.coreenne.fr\/ko\/products\/138302","provider":"LIBRAIRIE COREENNE","version":"1.0","type":"link"}