하루의 쉼터

[actionlib] Fail: RECALLED: This goal was canceled because another goal was recieved by the simple action server. 본문

프로그래밍 - 개발/ROS

[actionlib] Fail: RECALLED: This goal was canceled because another goal was recieved by the simple action server.

Changun An 2021. 11. 24. 12:53
반응형

| actionlib Fail: RECALLED: This goal was canceled because another goal was recieved by the simple action server.

 

OutLine.

두 개 이상의 ros client에서 move_base에 actionlib을 이용하여 goal 메시지를 보내던 중 기존에 되던 소스코드에서 RECALLED를 반환하였다.

Recalled - The goal was canceled by either another goal, or a cancel request, before the action server began processing the goal

ros wiki에서는 Recalled를 위와 같이 설명하는데 처리 과정 이전에 다른 데이터가 들어오거나 취소 요청이 들어와 목표 전송이 취소되는 경우인데 기존에 없었던 반응이라 살펴보게 되었다.

 

1. Solution

topic - move_base/status를 살펴보면

 Fail: RECALLED: This goal was canceled because another goal was recieved by the simple action server.

text 파일을 살펴 보면 위와 같은 메시지를 알려준다.

처음에는 id문제인가 싶어 살펴봤지만 특이사항이 보이지 않았다.

이때 시간을 살펴보면 이전 명령을 보낸 시간에서 새로운 명령을 보낸 시간을 빼면 음수가 나와야 하는데

양수가 나왔다. 

즉, 이전 명령 시간이 더 최신이므로 date 명령어를 통하여 시간을 동기화 시켜주며 해결완료 하였다.

date -s "Time or Day Time"

robot_1
robot_2

Reference : 

http://wiki.ros.org/actionlib/DetailedDescription

 

actionlib/DetailedDescription - ROS Wiki

The result topic uses an autogenerated ActionResult message (example: actionlib/TestActionResult), and provides server implementers a way to send information to action clients upon completion of a goal. Since ActionResult has a goal ID, the action client c

wiki.ros.org

 

반응형
Comments