ROS2 Tutorial (Basic)
  • 교육 안내
  • ROS2 개요
  • ROS2 환경 구성
  • turtlesim, ROS2 rqt
  • 노드(Node) 이해하기
  • 토픽(Topic) 이해하기
  • 서비스(Service) 이해하기
  • 파라메터(Parameter) 이해하기
  • 액션(Action) 이해하기
  • rqt_console 을 이용해 로그 보기
  • 노드 실행하기(launch)
  • 데이터 기록 및 재생
  • ROS2 프로그래밍 시작
  • 작업공간 만들기
  • 패키지 만들기
  • 간단한 게시자와 구독자 노드 만들기
  • 간단한 서비스 및 클라이언트 작성
  • 사용자 정의 msg 및 srv 파일 생성
  • 사용자 정의 인터페이스 구현
  • 파라메터 사용하기
  • 문제 식별에 ros2doctor 사용하기
Powered by GitBook
On this page
  • 개요
  • 실습
  • 2. 시스템 확인
  • 3. 전체 보고서 받기
  • 이상으로 ROS2 기본 교육을 마칩니다. 수고 하셨습니다~~~

Was this helpful?

Export as PDF

문제 식별에 ros2doctor 사용하기

저작권: 쿼드(QUAD) 드론연구소 https://www.youtube.com/@quad-robotics

개요

ROS2 설정이 예상대로 실행되지 않는 경우 ros2doctor도구를 사용하여 해당 설정을 확인할 수 있습니다.

ros2doctor는플랫폼, 버전, 네트워크, 환경, 실행 중인 시스템 등 ROS2의 모든 측면을 확인하고 가능한 오류와 문제의 원인에 대해 경고합니다.

실습

먼저 새 터미널에서 ROS 2를 소싱한 다음 다음 명령을 입력합니다.

ros2 doctor

이렇게 하면 모든 설정 모듈을 검사하고 경고 및 오류를 반환합니다.

ROS2 설정이 완벽한 상태이면 다음과 유사한 메시지가 표시됩니다.

All <n> checks passed

그러나 몇 가지 경고가 반환되는 것은 드문 일이 아닙니다. 설정을 사용할 수 없다는 의미가 아닙니다. 이상적이지 않은 방식으로 구성되었다는 표시일 가능성이 더 큽니다.

경고를 받으면 다음과 같이 표시됩니다.

<path>: <line>: UserWarning: <message>

예를 들어 불안정한 ROS2 배포를 사용하는 경우 다음 경고가 표시됩니다.

UserWarning: Distribution <distro> is not fully supported or tested. To get more consistent features, download a stable version at https://index.ros.org/doc/ros2/Installation/

ros2doctor시스템에서 경고만 발견된 경우에도 All <n> checks passed메시지는 계속 수신됩니다.

대부분의 검사는 오류가 아닌 경고로 분류됩니다. 피드백 반환의 중요성을 결정하는 것은 대부분 ros2doctor사용자에게 달려 있습니다. 설정에서 드문 오류(UserWarning: ERROR: 로 표시됨)가 발견되면 확인이 실패한 것으로 간주됩니다.

다음 문제 피드백 목록과 유사한 메시지가 표시됩니다.

1/3 checks failed

Failed modules:  network

오류는 시스템에 ROS2에 중요한 중요한 설정이나 기능이 없음을 나타냅니다. 시스템이 제대로 작동하려면 오류를 해결해야 합니다.

2. 시스템 확인

실행 중인 ROS 2 시스템을 검사하여 문제의 가능한 원인을 식별할 수도 있습니다. 실행 중인 시스템에서 작동하는 것을 보려면 서로 활발하게 통신하는 노드가 있는 turtlesim을 실행해 봅시다.

새 터미널을 열고 ROS 2를 소싱하고 다음 명령을 입력하여 시스템을 시작합니다.

ros2 run turtlesim turtlesim_node

다른 터미널과 소스 ROS 2를 열어 텔레옵 컨트롤을 실행합니다.

ros2 run turtlesim turtle_teleop_key

이제 ros2doctor를자체 터미널에서 다시 실행하십시오. 설정에서 마지막으로 실행했을 때 발생한 경고 및 오류가 있는 경우 해당 경고 및 오류가 표시됩니다 . 다음은 시스템 자체와 관련된 몇 가지 새로운 경고입니다.

UserWarning: Publisher without subscriber detected on /turtle1/color_sensor.
UserWarning: Publisher without subscriber detected on /turtle1/pose.

/turtlesim노드가 구독하지 않는 두 주제에 데이터를 게시하는 것으로 보이며 ros2doctor는이로 인해 문제가 발생할 수 있다고 생각합니다.

/color_sensor및 /pose 토픽을 에코하는 명령을 실행하면 게시자에 구독자가 있으므로 해당 경고가 사라집니다.

Turtlesim이 실행되는 동안 두 개의 새 터미널을 열고 각각에서 ROS2를 소싱하고 자체 터미널에서 다음 각 명령을 실행하여 이를 시도할 수 있습니다.

ros2 topic echo /turtle1/color_sensor
ros2 topic echo /turtle1/pose

그런 다음 터미널에서 ros2doctor를다시 실행하십시오. publisher without subscriber경고 가 사라집니다. ( echo를실행한 터미널에 반드시 입력하세요Ctrl+C ).

이제 Turtlesim 창을 종료하거나 Teleop을 종료하고 ros2doctor를다시 실행해 보십시오. 이제 시스템의 한 노드를 사용할 수 없음을 나타내는 또는 다른 주제에 대한 더 많은 경고(publisher without subscriber, subscriber without publisher)가 표시됩니다.

노드가 많은 복잡한 시스템에서 ros2doctor는통신 문제의 가능한 원인을 식별하는 데 매우 중요합니다.

3. 전체 보고서 받기

ros2doctor는네트워크, 시스템 등에 대한 경고를 알려주지만 --report인수 와 함께 실행하면 문제를 분석하는 데 도움이 되는 훨씬 더 자세한 정보를 얻을 수 있습니다.

네트워크 설정에 대한 경고가 표시되고 구성의 어떤 부분이 경고를 일으키는지 정확히 알고 싶을 때 사용할 수 있습니다 .

또한 ROS2에 대한 도움을 받기 위해 지원 티켓을 열어야 할 때 매우 유용합니다. 보고서의 관련 부분을 티켓에 복사하여 붙여넣어 사람들이 환경을 더 잘 이해하고 더 나은 지원을 제공할 수 있도록 할 수 있습니다.

전체 보고서를 얻으려면 터미널에 다음 명령을 입력하십시오.

ros2 doctor --report

5개 그룹으로 분류된 정보 목록이 반환됩니다.

NETWORK CONFIGURATION
...

PLATFORM INFORMATION
...

RMW MIDDLEWARE
...

ROS 2 INFORMATION
...

TOPIC LIST
...

를 실행할 때 표시되는 경고와 비교하여 여기에서 정보를 교차 확인할 수 있습니다 . 예를 들어 배포판이 "완전히 지원되거나 테스트되지 않았다"는 경고가 반환된 경우 보고서 섹션을 살펴볼 수 있습니다.

distribution name      : <distro>
distribution type      : ros2
distribution status    : prerelease
release platforms      : {'<platform>': ['<version>']}

여기에서 완전히 지원되지 않는 이유를 설명하는 distribution status: prerelease를 볼 수 있습니다.

이상으로 ROS2 기본 교육을 마칩니다. 수고 하셨습니다~~~

Previous파라메터 사용하기

Last updated 1 year ago

Was this helpful?