To

Unit 1: ROS Deconstruction 본문

ROS

Unit 1: ROS Deconstruction

딸기소 2021. 1. 13. 10:40

이 글은 Construct Sim의 ROS in 5 Days 강의를 정리한 글입니다.

 

app.theconstructsim.com/#/Course/1

 

Learn Robotics from Zero - Robotics & ROS Online Courses

 

app.theconstructsim.com


앞으로 배우게 될 것은 다음과 같습니다.

 

Basic Concepts

  • 어려운 개념들을 배우기 전에, Unit 2에서 ROS의 기본적인 개념들을 습득합니다.

Topics

  • Topic은 ROS의 가장 중요한 부분이라고 할 수 있습니다. ROS는 거의 모든 통신에서 topic을 사용합니다.

  • 더 복잡한 통신 구조인 services와 actions도 결국에는 topic을 사용합니다.

  • 위 코드를 web-shell에서 차례대로 실행하면 Kobuki가 움직이다가 멈추는 것을 확인할 수 있습니다. 우리가 실제로 한 것은 사실 publisher를 이용해 /cmd_vel topic에 message를 전달한 것입니다. Velocity, 즉 속도를 바꾸는 message를 보냄으로써 Kobuki가 움직이게 된 것입니다.

  • Unit 3,4에서 더 자세한 내용들을 배울 것입니다.

Services

  • 우리는 topic을 통해 로봇과 통신을 할 수 있습니다. 하지만 그게 유일한 방법일까요?

  • 그렇지 않습니다. ROS는 service를 이용한 통신을 지원합니다.

  • Service를 통해 우리는 특정한 행동을 프로그래밍하여 사용할 수 있습니다.

  • Service는 크게 두 구조로 이루어져 있는데, 하나는 Service Server, 나머지 하나는 Service Client입니다.

  • 다음 두 명령어를 하나는 web-shell #1, 나머지 하나는 web-shell #2에 실행해봅시다.

  • 처음 줄에서 우리가 한 것은 service 서버를 시작한 것입니다. 그 다음으로 한 것은 service를 호출한 것입니다.

Actions

  • Action과 services는 비슷해보이지만 사뭇 다릅니다. 한 번 Service를 호출하면 그 service가 끝날 때까지 Robot은 기다려야 하는 반면, action은 호출해놓고 다른 일을 할 수 있습니다. 이를 Synchronous, Asynchronous라고 하는데, 자세한 건 Unit 5에서 다뤄봅시다.

Use of Debugging Tools

  • 로봇을 다루면서 우리는 많은 에러들을 직면하게 됩니다. ROS는 디버깅을 위해 여러 프로그램을 제공하는데, 그 중 Rviz가 아마 가장 중요한 도구일 것입니다. Unit 9에서 우리는 Rviz를 사용하는 법을 익혀볼 것입니다.

'ROS' 카테고리의 다른 글

Unit 5: Services in ROS: Clients  (0) 2021.01.13
Unit 2: Basic Concepts  (0) 2021.01.13