Closed bit-pirate closed 9 years ago
Yes - that is how it gets exposed to the concert and that is all the necessary information to a higher level user.
I could create an extra field and throw in the the actual implementation rapp for convenience though.
Ok, @bit-pirate has a use case. For non-concert people, they'd like to sometimes be able to select the implementation they want to run (i.e. override the preferred).
I wonder how interaction searches its connected rapp. Does it use implementation name or ancestor name?
I wonder how interaction searches its connected rapp. Does it use implementation name or ancestor name?
Currently ancestor name. That is the only one that is officially exposed by list_apps
topic and the only one that is used in start_rapp
service. Feasibly we should implement stuff in the rocon_app_manager
so that it knows how to start both ancestor (via the preferred implementation) or the descendant directly.
How about exposing all implementation
and virtual
ancestors in list_rapp
to resolve this issue? In this case, non-concert users can choose either implementation or virtual to run the rapp.
Or does implementation child
need to be started as well?
I started babbling here and then took a look at how I might modify RappList.msg
and Rapp.msg
and it's not so clear.
I think we need a whiteboard discussion for this one.
@jihoonl has implemented all of this - working well. Can even select the non-preferred child rapps from the rocon qt app manager.
I just created a rapp implementation for a virtual rapp, i.e.
robosem_rapps/teleop
forrocon_apps/teleop
.Now, when starting the app manager it is registered as
rocon_apps/teleop
instead ofrobosem_rapps/teleop
.Outputs:
When starting up the rapp manager:
Calling
list_rapps
:@stonier @jihoonl is this supposed to be that way?