To
Unit 1: ROS Deconstruction 본문
이 글은 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 |