문제 식별에 ros2doctor 사용하기
저작권: 쿼드(QUAD) 드론연구소 https://www.youtube.com/@quad-robotics
개요
ROS2 설정이 예상대로 실행되지 않는 경우 ros2doctor
도구를 사용하여 해당 설정을 확인할 수 있습니다.
ros2doctor는
플랫폼, 버전, 네트워크, 환경, 실행 중인 시스템 등 ROS2의 모든 측면을 확인하고 가능한 오류와 문제의 원인에 대해 경고합니다.
실습
먼저 새 터미널에서 ROS 2를 소싱한 다음 다음 명령을 입력합니다.
이렇게 하면 모든 설정 모듈을 검사하고 경고 및 오류를 반환합니다.
ROS2 설정이 완벽한 상태이면 다음과 유사한 메시지가 표시됩니다.
그러나 몇 가지 경고가 반환되는 것은 드문 일이 아닙니다. 설정을 사용할 수 없다는 의미가 아닙니다. 이상적이지 않은 방식으로 구성되었다는 표시일 가능성이 더 큽니다.
경고를 받으면 다음과 같이 표시됩니다.
예를 들어 불안정한 ROS2 배포를 사용하는 경우 다음 경고가 표시됩니다.
ros2doctor
시스템에서 경고만 발견된 경우에도 All <n> checks passed
메시지는 계속 수신됩니다.
대부분의 검사는 오류가 아닌 경고로 분류됩니다. 피드백 반환의 중요성을 결정하는 것은 대부분 ros2doctor
사용자에게 달려 있습니다. 설정에서 드문 오류(UserWarning: ERROR:
로 표시됨)가 발견되면 확인이 실패한 것으로 간주됩니다.
다음 문제 피드백 목록과 유사한 메시지가 표시됩니다.
오류는 시스템에 ROS2에 중요한 중요한 설정이나 기능이 없음을 나타냅니다. 시스템이 제대로 작동하려면 오류를 해결해야 합니다.
2. 시스템 확인
실행 중인 ROS 2 시스템을 검사하여 문제의 가능한 원인을 식별할 수도 있습니다. 실행 중인 시스템에서 작동하는 것을 보려면 서로 활발하게 통신하는 노드가 있는 turtlesim을 실행해 봅시다.
새 터미널을 열고 ROS 2를 소싱하고 다음 명령을 입력하여 시스템을 시작합니다.
다른 터미널과 소스 ROS 2를 열어 텔레옵 컨트롤을 실행합니다.
이제 ros2doctor를
자체 터미널에서 다시 실행하십시오. 설정에서 마지막으로 실행했을 때 발생한 경고 및 오류가 있는 경우 해당 경고 및 오류가 표시됩니다 . 다음은 시스템 자체와 관련된 몇 가지 새로운 경고입니다.
/turtlesim
노드가 구독하지 않는 두 주제에 데이터를 게시하는 것으로 보이며 ros2doctor는
이로 인해 문제가 발생할 수 있다고 생각합니다.
/color_sensor
및 /pose 토픽을
에코하는 명령을 실행하면 게시자에 구독자가 있으므로 해당 경고가 사라집니다.
Turtlesim이 실행되는 동안 두 개의 새 터미널을 열고 각각에서 ROS2를 소싱하고 자체 터미널에서 다음 각 명령을 실행하여 이를 시도할 수 있습니다.
그런 다음 터미널에서 ros2doctor를
다시 실행하십시오. publisher without subscriber
경고 가 사라집니다. ( echo를
실행한 터미널에 반드시 입력하세요Ctrl+C
).
이제 Turtlesim 창을 종료하거나 Teleop을 종료하고 ros2doctor를
다시 실행해 보십시오. 이제 시스템의 한 노드를 사용할 수 없음을 나타내는 또는 다른 주제에 대한 더 많은 경고(publisher without subscriber, subscriber without publisher)
가 표시됩니다.
노드가 많은 복잡한 시스템에서 ros2doctor는
통신 문제의 가능한 원인을 식별하는 데 매우 중요합니다.
3. 전체 보고서 받기
ros2doctor는
네트워크, 시스템 등에 대한 경고를 알려주지만 --report
인수 와 함께 실행하면 문제를 분석하는 데 도움이 되는 훨씬 더 자세한 정보를 얻을 수 있습니다.
네트워크 설정에 대한 경고가 표시되고 구성의 어떤 부분이 경고를 일으키는지 정확히 알고 싶을 때 사용할 수 있습니다 .
또한 ROS2에 대한 도움을 받기 위해 지원 티켓을 열어야 할 때 매우 유용합니다. 보고서의 관련 부분을 티켓에 복사하여 붙여넣어 사람들이 환경을 더 잘 이해하고 더 나은 지원을 제공할 수 있도록 할 수 있습니다.
전체 보고서를 얻으려면 터미널에 다음 명령을 입력하십시오.
5개 그룹으로 분류된 정보 목록이 반환됩니다.
를 실행할 때 표시되는 경고와 비교하여 여기에서 정보를 교차 확인할 수 있습니다 . 예를 들어 배포판이 "완전히 지원되거나 테스트되지 않았다"는 경고가 반환된 경우 보고서 섹션을 살펴볼 수 있습니다.
여기에서 완전히 지원되지 않는 이유를 설명하는 distribution status: prerelease
를 볼 수 있습니다.
이상으로 ROS2 기본 교육을 마칩니다. 수고 하셨습니다~~~
Last updated
Was this helpful?