from rclpy.utilities import get_default_context
는 rclpy
모듈의 utilities
패키지에서 get_default_context
함수를 가져옵니다. get_default_context
함수는 ROS 2 애플리케이션의 기본 실행 컨텍스트를 제공독립적으로 초기화되고 종료될 수 있
으며, 여러 ROS 2 시스템을 병렬로 실행
할 수 있음get_default_context
사용법get_default_context
함수는 추가적인 설정 없이 ROS 2 시스템의 기본 컨텍스트를 반환합니다. 다음은 get_default_context
함수를 사용하는 간단한 예시입니다:
import rclpy
from rclpy.utilities import get_default_context
from rclpy.node import Node
# ROS 2 초기화
rclpy.init(args=None)
# 기본 컨텍스트 가져오기
default_context = get_default_context()
# 컨텍스트를 사용하여 노드 생성
class MyNode(Node):
def __init__(self):
super().__init__('my_node', context=default_context)
# 노드 인스턴스 생성
node = MyNode()
# ROS 2 실행
rclpy.spin(node, executor=None)
# ROS 2 종료
node.destroy_node()
rclpy.shutdown()
MyNode
클래스의 생성자에 전달되어, 노드가 이 컨텍스트 내에서 작동하도록 설정됩니다. rclpy.spin
을 호출하여 노드를 실행합니다. self._context.ok()
self._context.ok()
메서드는 컨텍스트의 상태를 확인하는 데 사용ROS 2 시스템이 정상적으로 동작하고 있는지를 나타내는 불리언(Boolean) 값을 반환
노드가 계속 실행되어야 하는지, 또는 종료 프로세스를 시작해야 하는지를 판단하는 데 사용
가
True`를 반환하면, 시스템이 정상적으로 동작하고 있음을 의미self._context.ok()
가 False
를 반환하면, 시스템이 종료되어야 함을 의미self._context.handle
self._context.handle
은 컨텍스트의 내부 핸들을 참조 컨텍스트의 내부 상태 및 리소스에 접근하는 데 사용
handle
은 ROS 2의 내부 C 라이브러리와의 인터페이스에 주로 사용ROS 2의 Python 레이어가 밑단의 C 라이브러리와 통신할 때 이 핸들을 사용