ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

What does the compatibility tree in ROCON mean?

asked 2014-04-15 15:55:06 -0600

scopus gravatar image

updated 2014-04-15 15:57:31 -0600

Hi, all. I am learnning the ROCON project of Hydro. I studied the code of the package concert_orchestra. I am sorry, I can't understand it at all. This partly is because I am a newcomer of Python.

However, I can't understand why a compatibility tree is constructed and used, what the branches and leaves mean. It seem that a compatibility tree may be with redundancy, so sometimes it needed to be pruned? What the solution in the code " " actually is ?

I also studied the concert_msgs which contains Linknode, Linkgraph and so on. What does the "min" , "max“ in Linknode mean? The comment for "min" "max" " Constraints on how many of these nodes may exist", In what case the constraint is needed? In the struct of "concert_msgs", what is the relationship between the compatibility tree and Linkgraph in Implementation? Why are there two LinkConnection: topics and actions?

Looking forward to your help.

edit retag flag offensive close merge delete


Sorry I have got too many things to handle at the moment. I will follow up this soon.

jihoonl gravatar image jihoonl  ( 2014-04-16 23:26:52 -0600 )edit

Thank you , looking forward to your reply. I am still confused about it.

scopus gravatar image scopus  ( 2014-04-17 16:20:19 -0600 )edit

1 Answer

Sort by » oldest newest most voted

answered 2014-04-18 19:49:16 -0600

jihoonl gravatar image

Solution in concert_orchestra is to create connections among the participated clients in the concert. It figures out which client need to start what app and what remappings rules need to be applied.

For example, chatter_concert uses this file to find out what the concert should do. It describes that chatter_concert needs two types of clients, dudes and dudette. Dude client need to start up listener app meanwhile dudette start up talker app.

In addition, edge specifies remapping rules for the participants. In chatter_concert example, dude needs to remap from chatter topic, which is public interface of listener app, to /conversation/chatter.

Rocon in hydro distribution was all about proof of concept implementation to confirm multiple robot task composition is feasible. So lack of documentation was inevitable since it has been changing a lot. I think I can answer the question better if you can describe what you want to achieve in detail. Describing all implementation of compatibility tree and solution aren't very helpful since it has been upgraded too far away.

edit flag offensive delete link more


Thank you very much for your instruction. Actually, I have studied this package carefully. However, I still confused about some places. One of most confused places is how the the function prune_compatibility_tree works. It calls two functions : prune_resolvable_branches and prune_least_valuable_leaf. What are "resolvable branches" and " least valuable leaf"? How does the pruning programming work? Maybe the most complicated is the function prune_least_valuable_leaf, Loooking forward to your reply! I believe I can understand this package fully if above questions is answered with you help

scopus gravatar image scopus  ( 2014-04-19 00:05:11 -0600 )edit

Question Tools

1 follower


Asked: 2014-04-15 15:55:06 -0600

Seen: 241 times

Last updated: Apr 18 '14