robotics-in-concert / rocon_app_platform

Robotics in concert app framework
8 stars 18 forks source link

Expose rapp implementation information #226

Closed bit-pirate closed 9 years ago

bit-pirate commented 10 years ago

I just created a rapp implementation for a virtual rapp, i.e. robosem_rapps/teleop for rocon_apps/teleop.

Now, when starting the app manager it is registered as rocon_apps/teleop instead of robosem_rapps/teleop.

Outputs:

When starting up the rapp manager:

[INFO] [WallTime: 1399026284.494507] Rapp Manager : 'rocon_apps/teleop' added to the list of runnable apps.

Calling list_rapps:

available_rapps: 
[...]
  - 
    name: rocon_apps/teleop
    display_name: Robosem Teleop
    description: Teleoperation for Robosem
    compatibility: rocon:/robosem
    status: Ready
    icon: 
      resource_name: ''
      format: png
    required_capabilities: ['std_capabilities/DifferentialMobileBase', 'std_capabilities/RGBDSensor']

@stonier @jihoonl is this supposed to be that way?

stonier commented 10 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.

stonier commented 10 years ago

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).

jihoonl commented 10 years ago

I wonder how interaction searches its connected rapp. Does it use implementation name or ancestor name?

stonier commented 10 years ago

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.

jihoonl commented 10 years ago

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?

stonier commented 10 years ago

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.

stonier commented 9 years ago

@jihoonl has implemented all of this - working well. Can even select the non-preferred child rapps from the rocon qt app manager.