PlanSys2 / ros2_planning_system

This repo contains a PDDL-based planning system for ROS2.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How to use the /actions_hub topic and the ActionExecution message

tompe17 opened this issue · comments

I would like to write my own executor that listen on the messages on /actions_hub and takes care of the execution on the robot. Is that possible? Is /actions_hub the complete API for this?

The thing I cannot find is how to start the system without some "clients". It seems that the executor is starting something that tries to run the actions. At least if I start following the first tutorials. So how do I start it so I can use my own client executor written in Python?

I was confused. I now see that the simple example launch file was not the one in bringup so things are working. So there is no issue with starting the system.

But what I seem to be missing is some unique identifier in the ActionExecution message. How are you supposed to run two action in parallell on the same robot and the same action but maybe different arguments. Do I have to make some string of the action and arguments so get a unique identifier?

Also what is the field "node_id" in ActionExecution message? What is the meaning?

Hi @tompe17

I would like to write my own executor that listen on the messages on /actions_hub and takes care of the execution on the robot. Is that possible? Is /actions_hub the complete API for this?

This is the topic that implements the execution auction protocol. You should check all the topics/services/actions that the executor currently has.

I would like to write my own executor that listen on the messages on /actions_hub and takes care of the execution on the robot. Is that possible? Is /actions_hub the complete API for this?

The thing I cannot find is how to start the system without some "clients". It seems that the executor is starting something that tries to run the actions. At least if I start following the first tutorials. So how do I start it so I can use my own client executor written in Python?

I do not understand this very well. Please, clarify.

But what I seem to be missing is some unique identifier in the ActionExecution message. How are you supposed to run two action in parallell on the same robot and the same action but maybe different arguments. Do I have to make some string of the action and arguments so get a unique identifier?

For executing the same action in the same robot you should have two different action executors running in the robot, with different node name

Also what is the field "node_id" in ActionExecution message? What is the meaning?

It is the node name

Francisco