corot / world_canvas

ROS framework for storing and accessing semantic information about the world, with an initial emphasis on needs and use cases for mobile robots.
10 stars 19 forks source link

Redefine what annotation means #15

Closed corot closed 10 years ago

corot commented 10 years ago

Now that we can have 1..N annotations referencing a single semantic element, our previous statement that "an annotation is a semantic element in the world" doesn't hold anymore, imho.

Same way we decouple annotations and the referred data, we must decouple the definitions, e.g.

Or go all the way around and call annotation to the data, and find another name to the descriptors (Descriptor | Handler | Pointer | Marker | Locator | ...)

jihoonl commented 10 years ago

https://github.com/corot/world_canvas/issues/14#issuecomment-47298277

jihoonl commented 10 years ago

https://github.com/corot/world_canvas/issues/14#issuecomment-47298288

jihoonl commented 10 years ago

https://github.com/corot/world_canvas/issues/14#issuecomment-47298304

jihoonl commented 10 years ago

https://github.com/corot/world_canvas/issues/14#issuecomment-47298322

jihoonl commented 10 years ago

https://github.com/corot/world_canvas/issues/14#issuecomment-47298342

corot commented 10 years ago

mmm..... your hierarchy of annotations goes well belong current capabilities of the annotations server. It only provides an aseptic "related to A, B, C..." feature with no semantics (they are given by the application)

Anyway, all this fits much better on issue #14. Here I just want to clarify world canvas vocabulary. Can I move your comments there?

corot commented 10 years ago

Coming back to the naming issue, thinking forward (I mean, future uses of this framework instead of existing use cases), maybe the key is to blur the distinction between annotation and data, and call annotations to semantic map elements, adding that each annotation is backed* by data in the form of a ROS message, and that more than one annotations can share this data.

Problem with this is that it sounds very artificial for existing usescases, where we already have the "backing data" that contains all the clients need, and so the annotation is somehow superfluous. But in incoming uses, the data (the ROS message) should contain just the app-specific stuff, relying on the annotation for generic stuff (pose, name, size...), claiming in favor of this naming proposal.

*This could be even optional; which backing data needs a label for a room?

jihoonl commented 10 years ago

Anyway, all this fits much better on issue #14. Here I just want to clarify world canvas vocabulary. Can I move your comments there?

Ah.. my bad. You are right. I moved all the comments to #14

jihoonl commented 10 years ago

I like Annotation - Descriptor pair. The pictures below describes descriptor and annotation relation which I have in mind. If I am still 빙글빙글 about the issue, please forgive me and lead me to right direction again. :)

Annotation-Descriptor Relation untitled drawing

Chair copy of untitled drawing

Location copy of copy of untitled drawing

Region copy of copy of copy of untitled drawing

corot commented 10 years ago

mmm.... not sure if descriptor is the right word... more than describing something with descriptor you name the object itself. I mean a descriptor must describe something, by definition, but in this case it describes nothing within the WCF. If ever, describes an object in the real world, but this is not necessary the case (e.g. elevator's waiting area, o high density trafic area)

2014-06-27 11:14 GMT+02:00 Jihoon Lee notifications@github.com:

I like Annotation - Descriptor pair. The pictures below describes descriptor and annotation relation which I have in mind. If I am still 빙글빙글 about the issue, please forgive me and lead me to right direction again. :)

Annotation-Descriptor Relation [image: untitled drawing] https://cloud.githubusercontent.com/assets/1556736/3409618/27fda4d6-fddb-11e3-9fd1-4338fd140726.png

Chair [image: copy of untitled drawing] https://cloud.githubusercontent.com/assets/1556736/3409620/2ac9249c-fddb-11e3-94a0-20620a8e62e9.png

Location [image: copy of copy of untitled drawing] https://cloud.githubusercontent.com/assets/1556736/3409621/2d0715d4-fddb-11e3-8da3-fc5a8289ecd8.png

Region [image: copy of copy of copy of untitled drawing] https://cloud.githubusercontent.com/assets/1556736/3409623/2e71b546-fddb-11e3-8bd1-54d3537a58e0.png

— Reply to this email directly or view it on GitHub https://github.com/corot/world_canvas/issues/15#issuecomment-47323367.

stonier commented 10 years ago

Is the semantic element really anything more than just data?

I mean it doesn't have any meaning in the world until you link it with an annotation.

annotation + data = semantic element|object?

corot commented 10 years ago

eeeh.... well, yes and not.

If you define annotations already as elements of the semantic world, the equation is fine. This applies to the first paragraph of my comment 8 days ago.

If you adapt existing stuff as virtual obstacles, tables, AR markers etc, that are described by a self-contained message type, the annotation is just a wrapper to make them fit on WCF. This applies to the second paragraph of my comment.

So thinking forward, my conclusion is the same that yours: annotations are semantic map elements, normally backed (but not necessarily) by data in the form of a ROS message.

corot commented 10 years ago

Ready to close, if everybody is happy.

jihoonl commented 10 years ago

:+1:

stonier commented 10 years ago

annotations are semantic map elements, normally backed (but not necessarily) by data in the form of a ROS message

So you're saying annotation = semantic map element?

I think it's worthwhile making the distinction between between the describing part, the data, and what would be the whole.

stonier commented 10 years ago

Ok...confirmed over hangout that we're happy with

semantic element = annotation + data.