Top

ROS 로보틱스 프로그래밍 3/e [자율주행 로봇 및 7-DOF 로봇 팔 개발]

  • 원서명Mastering ROS for Robotics Programming: Best practices and troubleshooting solutions when working with ROS (ISBN 9781801071024)
  • 지은이렌틴 조셉(Lentin Joseph), 조나단 카카체(Jonathan Cacace)
  • 옮긴이배진호
  • ISBN : 9791161756738
  • 50,000원
  • 2022년 08월 29일 펴냄
  • 페이퍼백 | 716쪽 | 188*235mm
  • 시리즈 : 오픈소스 프로그래밍

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/ros-robotics-3e

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약

ROS(Robot Operating System)는 복잡한 로봇 프로그래밍을 위한 소프트웨어 프레임워크다. ROS는 스크래치(scratch)로 코드를 작성하지 않고도 복잡한 로봇을 개발할 수 있게 해서 효율적으로 개발 시간을 줄여준다. 이 책은 실용 예제와 핵심 컨셉의 쉬운 해설로 ROS 로보틱스 프로젝트에 적용할 수 있는 고급 기술을 완벽히 다루고 있다.
개발자가 ROS 프로그래밍을 위한 필수적인 기초 개념을 잡을 수 있도록 도움을 주며, 실제 개발할 때뿐만 아니라 시뮬레이션에서도 로봇을 개발하는 방법을 알 수 있다. 또한 내비게이션과 매니퓰레이션과 같은 고급 기술을 적용하는 방법을 이해하고, ROS 컨트롤러와 플러그인을 개발하는 방법을 배운다. 드론 및 산업용 로봇 애플리케이션을 위한 ROS를 살펴보고 마지막으로 ROS의 효율적인 활용을 위한 응용 사례를 다룬다. 이 책을 읽고 나면 개발자들은 맞춤형 로봇과 다양한 ROS 애플리케이션을 개발할 수 있을 것이다.

이 책에서 다루는 내용

◆ 7-DOF 로봇 팔과 차동 구동 로봇 모델 생성
◆ 가제보(Gazebo), 코펠리아심(CoppeliaSim), 위봇(Webots) 로봇 시뮬레이션 활용
◆ SLAM과 AMCL 패키지를 활용한 차동 구동 로봇의 자율주행 구현
◆ ROS를 활용한 드론 시뮬레이션과 상호작용
◆ ROS pluginlib, nodelets, Gazebo 플러그인 개발
◆ 아두이노 같은 I/O 보드, 로봇 센서, 고급 액추에이터와 인터페이스

이 책의 대상 독자

이 책은 ROS의 기능을 최대한 활용하고자 하는 열정적인 로봇 개발자나 연구원을 대상으로 한다. 이미 일반적인 로봇공학 애플리케이션에 익숙하거나 ROS 세계에서 고급 방식으로 개발하는 방법을 배우고 로봇을 모델링, 구축, 제어하는 방법을 배우려는 사용자에게 적합하다. 내용을 쉽게 이해하고 싶다면 GNU/리눅스, C++ 프로그래밍에 대한 기본 지식이 필요하다.

이 책의 구성

1장, ‘ROS 소개’에서는 ROS의 핵심 기본 개념을 이해한다.
2장, ‘ROS 기초 프로그래밍’에서는 ROS 패키지 개발 방법을 설명한다.
3장, ‘ROS 3D 모델링’에서는 두 종류의 로봇 설계를 설명한다. 하나는 7 자유도(7-DOF, Degree Of Freedom) 매니퓰레이터(manipulator)고 다른 하나는 차동 구동 로봇(differential drive robot)이다.
4장, ‘ROS와 가제보를 활용한 로봇 시뮬레이션’에서는 가제보에서 로봇 조인트(joint)를 제어하는 데 도움이 되는 7 자유도 매니퓰레이터, 차동 구동 로봇, ROS 컨트롤러의 시뮬레이션을 설명한다.
5장, ‘ROS, 코펠리아심, 위봇을 활용한 로봇 시뮬레이션’에서는 코펠리아심(CoppeliaSim) 및 위봇(Webots) 시뮬레이터를 소개하고, 다양한 타입의 로봇을 시뮬레이션하고 제어하는 방법을 소개한다.
6장, ‘ROS MoveIt!과 내비게이션 스택 활용’에서는 ROS MoveIt!과 내비게이션 스택을 사용해 매니퓰레이팅 및 자율주행과 같이 즉시 활용할 수 있는 기능을 다룬다.
7장, ‘ROS MoveIt!의 고급 기능’에서는 충돌 회피, 3D 센서를 이용한 주변 환경 인지 기능과 물체 잡기 및 선별해 특정 위치에 두기와 같은 ROS MoveIt! 기능을 설명한다. 그런 다음 MoveIt!과 로봇 매니퓰레이터 하드웨어를 인터페이스하는 방법을 살펴본다.
8장, ‘ROS 드론’에서는 쿼드콥터의 사례를 고려해 ROS로 드론을 시뮬레이션하고 제어하는 방법을 설명한다.
9장, ‘ROS와 I/O 보드, 센서, 액추에이터 인터페이스’에서는 센서 및 액츄에이터와 같은 하드웨어 구성 요소를 ROS와 인터페이스하는 방법을 설명한다. 아두이노(Arduino) 또는 라즈베리파이(Raspberry Pi)와 같은 I/O 보드를 사용하는 센서와 ROS의 인터페이스를 살펴본다.
10장, ‘ROS와 OpenCV, PCL을 활용한 비전 센서 프로그래밍’에서는 다양한 비전 센서를 ROS와 인터페이스하고 OpenCV(Open Source Computer Vision) 및 PCL(Point Cloud Library)과 같은 라이브러리를 사용해 프로그래밍하는 방법을 설명한다.
11장, ‘ROS에서 차동 구동 로봇 하드웨어 구축과 인터페이스’에서는 차동 구동으로 설정된 자율주행 모바일 로봇 하드웨어와 ROS 사이의 인터페이스 방법을 알려준다.
12장, ‘pluginlib, nodelet, Gazebo 플러그인 활용’에서는 pluginlib, nodelet, Gazebo 플러그인과 같은 ROS의 고급 개념을 보여준다. 각 개념의 기능과 적용을 살펴보고 동작을 확인하기 위한 예제를 실행한다.
13장, ‘ROS 컨트롤러와 시각화 플러그인’에서는 기본 ROS 컨트롤러를 개발하고 실행하는 방법을 보여주고, RViz용 플러그인을 만드는 방법도 살펴본다.
14장, ‘매트랩과 시뮬링크에서 ROS 활용’에서는 매트랩(MATLAB) 및 시뮬링크(Simulink)를 ROS와 연결하는 방법을 설명한다.
15장, ‘산업용 로봇을 위한 ROS’에서는 ROS-Industrial 패키지를 이해하고 설치하는 데 도움이 되는 내용 소개한다. 산업용 로봇의 MoveIt! IKFast 플러그인을 개발하는 방법을 알아본다.
16장, ‘ROS에서 문제 해결 및 모범 사례’에서는 비주얼 스튜디오 코드(Visual Studio Code) IDE에서 ROS 개발 환경을 설정하는 방법, ROS 최적 실행, ROS 실행 중 발생하는 문제에 대한 해결 방법을 설명한다.

상세 이미지