0
다시 말해서 SimpleActionClient.cancel_all_goals()
은 모든 목표를 취소하기 전에 취소합니까, 아니면 목표를 실제로 취소 할 때까지 기다리지 않고 지침을 보냅니 까?
다시 말해서 SimpleActionClient.cancel_all_goals()
은 모든 목표를 취소하기 전에 취소합니까, 아니면 목표를 실제로 취소 할 때까지 기다리지 않고 지침을 보냅니 까?
action_client.cancel_all_goals()
은을 기다리지 않고 목표 취소 명령을 보냅니다.
메쏘드의 문서가별로 도움이되지 않으므로 action_client.h 또는 action_client.py을 찾으셔야합니다.
코드는 모든 목표를 취소하기 위해 간단한 메시지 (self.pub_cancel.publish(cancel_msg)
또는 self.pub_cancel.publish(cancel_msg)
) 만 게시 함을 보여줍니다. 즉, 호출이 비동기이며 차단되지 않습니다.
이것은 코드 의미
action_client.cancel_all_goals()
print(action_client.get_status() != 'ACTIVE')
일반적으로 False
를 인쇄하지만이 하지 보장 때문에 :
PREEMPTED
, ABORTED
, 수 ...cancel_all_goals
과 get_status
사이의 호출이 발생했습니다.
답변의 마지막 부분을 참조하면 내 코드가 'True'를 인쇄하게하는 이유가 무엇입니까? 예 : 목표가 이미'PREEMPTED' 또는'ABORTED'라면 내 코드는'True'를 출력하지 않을까요? 또한,'cancel_all_goals'와'print' 사이에 모든 목표가 취소된다면, 내 코드는'True'를 인쇄하지 않을까요? – Flux
당신은 @Flux가 맞습니다. 대답에 작은 실수가있었습니다. 나는'True'를'False'로 바꾸어서 그것을 바로 잡았습니다. – Fruchtzwerg