ROS Pythhon에서 Service Call까지의 프로세스

3430 단어 ROSPython

개시하다


로스코어를 실행할 때 자동으로 나타나는 /rosout/get_loggers/rosout/set_logger_level 두 서비스를 예로 들어 ROS Python에서 서비스를 호출할 때의 절차를 정리했다.

조사 서비스


1. 우선 확인Service名
$ rosservice list
/rosout/get_loggers
/rosout/set_logger_level
2.확인Serviceの型その型を定義しているパッケージ서비스 슬래시의 앞부분은 이번에 roscpp로 확인되었습니다.
$ rosservice type /rosout/get_loggers
roscpp/GetLoggers

$ rosservice type /rosout/set_logger_level
roscpp/SetLoggerLevel
3. 최종 확인Serviceの型の構成
$ rossrv show roscpp/GetLoggers
---
roscpp/Logger[] loggers
  string name
  string level

$ rossrv show roscpp/SetLoggerLevel
string logger
string level
---

Python에서 호출

  • 서비스 명칭이'/rosout/get loggers'를 호출하는 서비스

  • get_loggers.py
    #!/usr/bin/env python
    
    import rospy
    from roscpp.srv import GetLoggers 
    
    rospy.wait_for_service('/rosout/get_loggers')
    
    get_loggers = rospy.ServiceProxy('/rosout/get_loggers', GetLoggers)
    
    response = get_loggers()
    
    print(response)
    
  • 서비스 명칭은'/rosout/set logger level'을 호출하는 서비스

  • set_logger_level.py
    
    #!/usr/bin/env python
    
    import rospy
    from roscpp.srv import SetLoggerLevel
    
    rospy.wait_for_service('/rosout/set_logger_level')
    
    set_logger_level = rospy.ServiceProxy('/rosout/set_logger_level', SetLoggerLevel)
    
    set_logger_level("rosout","DEBUG")
    
    

    참고 자료

  • ROS Tutorial Python Service Client 쓰기
  • 좋은 웹페이지 즐겨찾기