Getting the final RMF destination (#581)

Posted by @MrOCW:

Hi, besides the api-server, is there any ways to obtain the final RMF destination? e.g. via a ROS2 topic
Am trying to get the final goal on my EFC Fleet Adapter


Edited by @MrOCW at 2025-01-17T03:50:42Z

Chosen answer

Answer chosen by @MrOCW at 2025-01-22T02:53:37Z.
Answered by @xiyuoh:

That’s a pity. Yes, the only way is via the api-server if you’re unable to pull the latest changes for RMF. If possible I’d suggest updating at least the rmf_ros2 (and rmf_internal_msgs if necessary) repo and rebasing any custom modifications on top of it, as we usually have meaningful fixes and features there, e.g. the new reservation system. Otherwise you can try cherry picking the task state update commit to your existing codebase.

Posted by @xiyuoh:

Hello! Since Publish fleet and task updates over ROS 2 if websocket is not provided by aaronchongth · Pull Request #383 · open-rmf/rmf_ros2 · GitHub, task states are being published over ROS 2 via the topic /task_state_update whether websocket is enabled or not. A sample state update for a robot in Office world being tasked to go to the pantry:

data: '{"data":{"active":1,"assigned_to":{"group":"tinyRobot","name":"tinyRobot2"},"booking":{"id":"patrol.dispatch-37a2e72cdc","requester":"rmf_demos_tasks","unix_millis_earliest_start_time":0,"unix_millis_request_time":0},"category":"Patrol","completed":[],"detail":"","estimate_millis":34361,"original_estimate_millis":0,"pending":[],"phases":{"1":{"category":"Go to [place:pantry]","detail":"Moving the robot from [graph-wp:10] to [place:pantry]","estimate_millis":34361,"events":{"0":{"deps":[2,3,1,7],"detail":"Moving the robot from [graph-wp:10] to [place:pantry]","id":0,"name":"Go to [place:pantry]","status":"standby"},"1":{"deps":[4,5,6],"detail":"","id":1,"name":"Pass through [door:hardware_door]","status":"standby"},"2":{"deps":[],"detail":"","id":2,"name":"Open [door:hardware_door]","status":"standby"},"3":{"deps":[],"detail":"","id":3,"name":"Move to (  19.474 -10.3472) <  19.474 -10.3472 -3.10459> through 2 points","status":"standby"},"4":{"deps":[],"detail":"","id":4,"name":"Open [door:hardware_door]","status":"standby"},"5":{"deps":[],"detail":"","id":5,"name":"Move to [graph-wp:10] < 18.7944 -10.3724 -3.10458> through 2 points","status":"standby"},"6":{"deps":[],"detail":"","id":6,"name":"Close [door:hardware_door]","status":"standby"},"7":{"deps":[],"detail":"","id":7,"name":"Move to [place:pantry] < 16.8463 -5.40407 -1.56437> through 8 points","status":"standby"}},"final_event_id":0,"id":1,"original_estimate_millis":24414,"unix_millis_start_time":105020}},"status":"standby","unix_millis_finish_time":139441,"unix_millis_start_time":105020},"type":"task_state_update"}'

Posted by @MrOCW:

unfortunately, we have frozen our version of rmf (due to customized lift taking process) and the commit is 1ab38d717283aece61050874b9827d111de66b29, hence we do not have access to this feature.
I assume the only way is via api-server then?


Edited by @MrOCW at 2025-01-17T04:11:01Z

Posted by @xiyuoh:

That’s a pity. Yes, the only way is via the api-server if you’re unable to pull the latest changes for RMF. If possible I’d suggest updating at least the rmf_ros2 (and rmf_internal_msgs if necessary) repo and rebasing any custom modifications on top of it, as we usually have meaningful fixes and features there, e.g. the new reservation system. Otherwise you can try cherry picking the task state update commit to your existing codebase.


This is the chosen answer.