Feature #2263

Automatic creation of container Messages for any available RST

Added by N. Köster almost 9 years ago. Updated over 8 years ago.

Status:ResolvedStart date:05/13/2015
Priority:NormalDue date:
Assignee:J. Wienke% Done:

100%

Category:protocol
Target version:Robotics Service Bus - rsb-0.13

Description

When using RST, there is often the need for sending multiple Messages of the same type at the same time/close to another (see examples: LegList , ClassifiedRegions2D , ClassifiedRegions3D , States , and many others). This is often motivated by the fact that Message information is derived from a single certain cause (e.g. an image, a model, a previous message, etc..) and semantically/chronologically belongs together (e.g.: faces in an image, persons in a point cloud, etc.).

If one encounters this situation with a Message type X, there are two ways of dealing with this:

  1. Create Messages of type X individually and add the same cause (i.e. an Event UUID) when sending it
  2. Create a "container" RST Xs (just as the ones mentioned above) which only holds an array of the Message type X

Both of these have their advantages and downsides. It is not always clear, which is better and each can have a big impact on implementations and system design.

Therefore, I want to propose a straight forward feature for RST: Automatically generate "container" Message types for every RST which only holds an array of that type.

A short example:

  • I create a new Message type Z and add it to the RST sandbox
  • When building RST, an additional Message of type Zs is created which simply holds an array of Z RSTs
  • In my software I create multiple Messages of type Z which I append to the generated Message of type Zs
  • Once I am done for a certain set, I send the Message of type Zs
  • Receiving parties can directly access the semantically/chronologically related information in Message Zs without the need to parse causes or investigate further on individual Z Messages

Associated revisions

Revision a91af7f9
Added by J. Wienke over 8 years ago

CMake logic to create collection from annotations

You can now add the following lines as annotations to top-level messages
to create collection types automatically:
// @create_collection
// @create_collection(ACollectionTypeName)

  • CMakeLists.txt: add commands to create collection types
  • GenerateCollection.cmake: cmake script for custom command to create
    the collection type
  • proto/Collection.proto.in: template collection type
  • cpp/CMakeLists.txt: adjust to changed paths and dependencies
  • java/CMakeLists.txt: likewise
  • python/CMakeLists.txt: likewise

fixes #2263

Revision 4b3bc57b
Added by J. Moringen over 8 years ago

Use installed RST instead of relative path to a working copy

refs #2263

Revision 2cb89525
Added by J. Moringen about 8 years ago

Use installed RST instead of relative path to a working copy

refs #2263

Revision 396830d4
Added by J. Moringen about 8 years ago

Use installed RST instead of relative path to a working copy

refs #2263

Revision 28ec4935
Added by J. Moringen almost 8 years ago

Use installed RST instead of relative path to a working copy

refs #2263

Revision 16ecd4db
Added by J. Moringen almost 8 years ago

Use installed RST instead of relative path to a working copy

refs #2263

Revision 4da63312
Added by J. Moringen over 7 years ago

Use installed RST instead of relative path to a working copy

refs #2263

Revision e21d47ad
Added by J. Moringen over 7 years ago

Use installed RST instead of relative path to a working copy

refs #2263

History

#1 Updated by J. Wienke over 8 years ago

  • Status changed from New to In Progress
  • Assignee set to J. Wienke

#2 Updated by J. Wienke over 8 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 0 to 100

Also available in: Atom PDF