WeGo Scout 2.0을 다루기 위한 ROS 공부 기록 정리 포스트 입니다.
ROS2 Foxy의 환경을 구성합니다.
ROS 2에 맞는 VSCode의 개발 환경을 구축해보자.
Turtlesim과 rqt는 ROS 2의 핵심 개념을 학습하는 데에 매우 좋은 도구이다.
노드는 로봇 체계에서 ROS 2의 기본적인 요소이다.
ROS 2 에서 노드들은 토픽을 통해 데이터를 송신, 수신한다.
서비스는 요청/응답으로 이루어진 노드의 통신 방식 중 하나이다.
노드들은 각자의 구성 값을 저장하는 파라미터를 가지고 있다. set/get 명령어를 통해 파라미터에 접근할 수 있고, 이를 저장할 수도 있다.
액션은 지속적인 피드백을 제공하고, 취소할 수 있는 서비스라 볼 수 있다.
rqt_console은 로그 메시지를 다루기에 매우 좋은 툴이다.
ros2 launch를 통해 노드들을 동시에 실행/구성할 수 있다.
colcon은 ROS 2의 빌드 도구이다.
소수의 패키지를 가지고 작업하는 경우 오버레이를 사용할 수 있다. 오버레이는 언더레이보다 우선한다.
ROS 2의 패키지를 이용하면 쉽게 사용하고 공유할 수 있다.
토픽을 통해 데이터를 주고받는 퍼블리셔와 서브스크라이버 역할을 수행하는 노드를 작성해 보자. CMakeLists.txt와 package.xml 또한 수정하여 의존성 문제를 해결해 보자.
두 정수를 전달받아 더해주는 간단한 서비스를 만들어보자.
간단한 사용자 정의 메시지를 만들어보자.
사용자 정의 인터페이스를 더 만들어 보자.
사용자 정의 파라미터를 사용하는 노드를 만들어 보자.