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

More sophisticated relationships between annotations (v0.2) #14

Open corot opened 10 years ago

corot commented 10 years ago

Following discussions on #1, why not to arrange annotations in a tree (following the Scene Graph concept)? (or other sophisticated configurations)

corot commented 10 years ago

From @jihoonl

Reference Scene Graph : http://en.wikipedia.org/wiki/Scene_graph

While thinking about the relation between annotation and data, I am questioned the following. These are not for v0.1 development but for long-term view discussion.

Is Room annotatable?

For example, assumes that annotating the Inno Room where has Marcus's Desk, * Daniel's Desk* and Vending Machine. How the current design should represent this?

Can World Canvas represent the relation between two annotations?

Robot is located at Inno room in RnD Office in Namsung Plaza 6th floor. It need to go to KC's office in Yujin Headquarter in Namsung Plaza 12th floor. Can World Canvas represent relation between Inno room and KC's office? Something like the following.

world relation 1

This will allow to generate "global global" path plan something like

Marcus's Desk -> Inno Room -> Rnd Office entrance -> 6th Elevator -> 12th Elevator -> Yujin Headquarter Entrance -> KC's Office -> KC's desk.

Would it be feasible? Or too ambitious?

jihoonl commented 10 years ago

It would be hard to imagine without real examples. How about extracting models or descriptors out from usecase or examples as we need?

We have three usecases of World Canvas at the moment.

I will add up examples and some ideas as I come up with.

jihoonl commented 10 years ago

Navigation Example from #14

Robot navigates Marcus’s Desk to KC’s Desk. Robot stays at Inno room. Task storyline is the following.

  1. Robot Wake up from docking station in inno room.
  2. Goto Daniel’s Desk’s approach point.
  3. Get document
  4. Goto Inno room entrance’s approach point.
  5. Interact with door.
  6. Get to the another approach point.
  7. Go to Yujin Rnd’s entrance’s approach point.
  8. Interact with door.
  9. Get to the another approach point.
  10. Go to Elevator Approach point
  11. Interact with elevator
  12. Get into the elevator
  13. Elevator go to 12th floor.
  14. Get out from the elavator and goto elevator approach point.
  15. Goto Headquarter’s door’s Approach point.
  16. Interact with door
  17. Get to the approach point inside the headquarter
  18. Goto KC’s Office Approach point
  19. Interact with KC’s office door
  20. Get into the KC’s office approach point
  21. Navigate to KC’s desk approach point
  22. Chirp on him.

How should we model the locations to navigate the building?

jihoonl commented 10 years ago

This is annotation modeled Namsung Plaza I have in mind.

6th_floor_plan_annotated yujin_rnd_hokuyo_annotated

jihoonl commented 10 years ago

With this annotation tree.

world relation 1

This model have four different types of annotations.

Meta Location

Location

Transitional Location

Map transitional Location

where (map) transitional location requires transition method. With assumption that robot can move between children of same parent, it generates path like

Daniel's Desk -> Inno Entrance IN -- (transition) -- inno Entrance -> Rnd Entrance In -- (transition) -- (switch map to 6th floor) -- Rnd Entrance -> Elevator Approach -- (transition) -- Elevator -- .....

jihoonl commented 10 years ago

The other use cases are simple compare to navigation example.

Localization

Marker(or object) based Localization

It is annotating an existing object’s pose on the map. A pose message would be sufficient for its purpose.

Virtual Obstacle

To determine prohibited area where robot cannot visit.

I have not thought about data model design which fits all these use cases yet though. I will come back when I get an idea..

stonier commented 10 years ago

@jihoonl Nice example for shaping thoughts, thanks.