ROS2 시작 파일에서 서비스를 호출하는 방법
from launch.substitutions import FindExecutable
from launch.actions import ExecuteProcess
...
ld.add_action(
ExecuteProcess(
cmd=[[
FindExecutable(name='ros2'),
" service call ",
"/namespace/service_to_call ",
"example_msgs/srv/ExampleMsg ",
'"{param_1: True, param_2: 0.0}"',
]],
shell=True
)
)
다음 사항에 유의하십시오.
ld
다음은 LaunchDescription
의 인스턴스를 포함하는 변수입니다./namespace/service_to_call
는 호출하려는 서비스로 대체되며(적절한 네임스페이스를 잊지 마세요) ros2 service list
에서 찾을 수 있습니다.example_msgs/srv/ExampleMsg
는 해당 서비스에서 사용하는 메시지 유형으로 ros2 service info /namespace/service_to_call
로 가져올 수 있습니다."{param_1: True, param_2: 0.0}"
는 메시지 데이터를 정의하는 사전입니다. 설정해야 하는 매개변수를 찾으려면 .srv
파일 또는 설명서를 참조해야 할 수 있습니다. shell=True
인수를 포함하는 것을 잊지 마십시오. 이 인수가 없으면 혼란스러운 "파일을 찾을 수 없음"오류와 함께 명령이 실패합니다.
Reference
이 문제에 관하여(ROS2 시작 파일에서 서비스를 호출하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/luckierdodge/how-to-call-a-service-from-a-ros2-launch-file-4l7p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)