ROS2 ros2doctor
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 class 에서 parameter 쓰기 (C++), launch 파일 만들기 (0) | 2021.01.13 |
ROS2 msg 와 srv files (0) | 2021.01.13 |