rospy 예제

동기: 게시자가 토픽에 게시하기 위해 참석할 수 있지만 동일한 시도를 하는 다른 게시자가 있는 경우 게시자가 차단될 수 있습니다. 이것은 rospy의 동작입니다. “queue_size” 매개 변수가 사용되지 않거나 “없음”으로 설정된 경우 게시자입니다. 요청을 보낼 “service_proxy”의 예입니다: 예제 스크립트 talker.py 새 스크립트 디렉토리에 다운로드하여 실행 가능하게 만듭니다: “clamp_at_boundaries” 함수는 각 관절에 대한 최소 값과 최대 값을 강제로 적용합니다. 통과된 조인트 각도가 작동 가능한 범위를 벗어나면 가장 가까운 허용 값으로 고정됩니다. 최소 및 최대 조인트 값은 “clamp_at_boundaries”가 호출될 때마다 매개 변수 서버에서 가져온 값입니다. “~”는 개인 네임스페이스 한정자이며, 우리가 얻으려는 매개 변수가 이 노드의 개인 네임스페이스/arm_mover/내에 있음을 나타냅니다. 두 번째 값은 “rospy.getparam()”이 매개 변수 서버에서 매개 변수를 얻을 수 없는 경우에 반환되는 값입니다. 익명 = True는 이름 끝에 난수를 추가하여 노드에 고유한 이름을 갖도록 합니다. 노드 초기화 옵션에 대한 자세한 내용은 rospy 설명서에서 ROS 노드 초기화를 참조하십시오. ROS 노드를 작성하는 경우 rospy를 가져와야 합니다. std_msgs.msg 가져오기는 게시를 위해 std_msgs/String 메시지 유형(간단한 문자열 컨테이너)을 다시 사용할 수 있도록 하는 것입니다. 순서가 있는 스타일에서는 제공된 인수와 함께 새 Message 인스턴스가 만들어집니다.

인수 순서는 메시지의 필드 순서와 같으며 모든 필드에 대한 값을 제공해야 합니다. 예를 들어 std_msgs.msg.String에는 단일 문자열 필드만 있으므로 호출할 수 있습니다. 이 코드 섹션에서는 ROS의 나머지 부분에 대한 발화자의 인터페이스를 정의합니다. 술집 = rospy. 게시자(“chatter”, String, queue_size=10)는 메시지 유형 String을 사용하여 노드가 chatter 토픽에 게시되고 있음을 선언합니다. 여기에 문자열은 실제로 클래스 std_msgs.msg.String입니다. queue_size 인수는 ROS 하이드로에서 새로 이되며 구독자가 충분히 빨리 수신하지 않는 경우 큐에 대기된 메시지의 양을 제한합니다. 이전 ROS 배포에서는 인수를 생략합니다. rospy를 사용하여 토픽에 메시지를 게시하는 핸들을 만들 수 있습니다. 게시자 클래스입니다. 이에 대한 가장 일반적인 용도는 토픽의 이름과 토픽의 메시지 클래스/형식을 제공하는 것입니다. 그런 다음 해당 핸들에서 publish()를 호출하여 메시지를 게시할 수 있습니다(예: rospy를 만드는 데 필요한 유일한 인수).

게시자는 토픽 이름, 메시지 클래스 및 queue_size입니다. 참고: queue_size는 하이드로 및 최신 에서만 사용할 수 있습니다. 예를 들어 rospy가 와이어를 통해 메시지를 보낼 수 있는 것보다 빠르게 게시하는 경우 rospy는 이전 메시지를 삭제하기 시작합니다. 이 루프는 또한 rospy.loginfo (str)를 호출, 이는 트리플 의무를 수행: 메시지는 화면에 인쇄 얻을, 그것은 노드의 로그 파일에 기록되면, 그것은 rosout에 기록됩니다. rosout디버깅에 대 한 편리한: 노드의 출력으로 콘솔 창을 찾을 필요 없이 rqt_콘솔을 사용 하 여 메시지를 가져올 수 있습니다. 다음 줄인 rospy.init_node(NAME, …)는 rospy가 이 정보를 가지고 있기 전까지는 ROS 마스터와 통신을 시작할 수 없으므로 노드 이름을 알려주므로 매우 중요합니다. 이 경우 노드는 이름 발화기를 수행합니다. 참고: 이름은 기본 이름이어야 합니다( 즉, 슬래시 “/”)를 포함할 수 없습니다.

Tento obsah bol zaradený v Nezaradené. Zálohujte si trvalý odkaz.