ROS2 ros2doctor

Embeded/ROS : 2021. 1. 13. 19:25

ROS2 동작이 이상할때 쓴다고 한다.

ros2doctor 는 플랫폼, 버전, 네트워크, 환경설정, 동작하고 있는 시스템 등등 모든 면을 체크한다.

ros2doctor는 ros2cli 패키지에 포함되어 있다. 

 

일단 돌려보면.

ros2 doctor

이렇게 하면 전체적으로  검사를 해서 경고나 에러를 보여준다.

 

정상적으로 체크가 되면

All <n> checks passed 

이런 메세지가 나온다고 한다.

 

그런데 뭔가 문제가 있으면.

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

이렇게 나온다고 한다.

 

뭔가 피드백이 있을 때는

1/3 checks failed

Failed modules: network

이렇게 나온다고 한다.

 

이렇게 두개를 띄워놓고 doctor를 돌리면

$ ros2 run turtlesim turtlesim_node

$ ros2 run turtlesim turtle_teleop_key

 

$ ros2 doctor
...  어쩌구 저쩌구 ...
/opt/ros/foxy/lib/python3.8/site-packages/ros2doctor/api/topic.py: 53: UserWarning: Publisher without subscriber detected on /turtle1/color_sensor.
/opt/ros/foxy/lib/python3.8/site-packages/ros2doctor/api/topic.py: 53: UserWarning: Publisher without subscriber detected on /turtle1/pose.

 

이거는 turtlesim 노드가 두개 토픽을 퍼블리시 하는데 구독하는 놈이 없는게 이상하다는 것을 보여준다.

 

 

$ ros2 topic list
/parameter_events
/rosout
/turtle1/cmd_vel  <==== 이건 쓰고 있다.
/turtle1/color_sensor   <=== 이거랑
/turtle1/pose   <=== 이거

 

그러면 이젠

$ ros2 topic echo /turtle1/color_sensor

$ ros2 topic echo /turtle1/pose

 

이렇게 해서 읽어들여보자

그 다음 doctor를 돌리면 

 

메세지가 안나오는 것을 확인 할 수 있다.

 

전체 리포트를 보려면 --report 옵션을 쓴다.

 

$ ros2 doctor --report

 

 

'Embeded > ROS' 카테고리의 다른 글

ROS2 action 만들기  (0) 2021.01.13
ROS2 ros2doctor  (0) 2021.01.13
ROS2 class 에서 parameter 쓰기 (C++), launch 파일 만들기  (0) 2021.01.13
ROS2 msg 와 srv files  (0) 2021.01.13
Posted by Real_G

댓글을 달아 주세요