Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
doc:exchanging_information_via_roboearth [2013/04/22 08:40] – created admindoc:exchanging_information_via_roboearth [2014/08/08 10:06] (current) – [Scenario] admin
Line 1: Line 1:
  
 ====== Exchange information via RoboEarth ====== ====== Exchange information via RoboEarth ======
 +
 +\\
 +** Note: The [[http://www.roboearth.org|RoboEarth project]] has officially ended, and while the [[http://api.roboearth.org|RoboEarth database]] will be kept running for a while, the code is currently unmaintained. Please use it at your own risk. **
 +\\
  
 This tutorial lists some example queries for interacting with the RoboEarth web-based robot knowledge base. To learn more about RoboEarth, have a look at the project [[http://www.roboearth.org/what-is-roboearth|web site]]. You can also create an account at http://api.roboearth.org/ and explore the content of the database via the human-usable web interface. This tutorial lists some example queries for interacting with the RoboEarth web-based robot knowledge base. To learn more about RoboEarth, have a look at the project [[http://www.roboearth.org/what-is-roboearth|web site]]. You can also create an account at http://api.roboearth.org/ and explore the content of the database via the human-usable web interface.
Line 10: Line 14:
 =====  Scenario  ===== =====  Scenario  =====
  
-The demonstrated scenario is the following, also described in this [[https://ias.cs.tum.edu/_media/spezial/bib/ias12exchange.pdf|paper]]: Robot 1, a PR2, performs a drink-serving task in one environment. As part of the task, it needs to open a cabinet to take the drink out. Since there is no information about the cabinet's articulation properties yet, the PR2 estimates the joint properties and creates the joint as part of the cabinet instance in the map. After having executed the task, it uploads the updated environment map to RoboEarth, and also extracts an updated model of the cabinet that now includes the joint information.+The demonstrated scenario is the following, also described in this [[http://knowrob.org/_media/bib/ias12exchange.pdf|paper]]: Robot 1, a PR2, performs a drink-serving task in one environment. As part of the task, it needs to open a cabinet to take the drink out. Since there is no information about the cabinet's articulation properties yet, the PR2 estimates the joint properties and creates the joint as part of the cabinet instance in the map. After having executed the task, it uploads the updated environment map to RoboEarth, and also extracts an updated model of the cabinet that now includes the joint information.
  
 Robot 2, an Amigo robot, later performs the same task in a different environment. Since it has access to the updated object model, it can use the information about the articulation properties to open the cabinet door and take out the bottle. Robot 2, an Amigo robot, later performs the same task in a different environment. Since it has access to the updated object model, it can use the information about the articulation properties to open the cabinet door and take out the bottle.
Line 40: Line 44:
 =====  Environment 1 -- PR2 robot  ===== =====  Environment 1 -- PR2 robot  =====
 Download recipe and generate CPL plan (also downloads models for all objects the recipe refers to) Download recipe and generate CPL plan (also downloads models for all objects the recipe refers to)
-  <code> +  re_download_action_recipe('serve a drink', pr2:'PR2Robot1', Recipe),  
- re_download_action_recipe('serve a drink', pr2:'PR2Robot1', Recipe),  +  re_generate_cpl_plan(Recipe, CplPlan), 
- re_generate_cpl_plan(Recipe, CplPlan), +  planvis_load(Recipe,_). 
- planvis_load(Recipe,_). +
-</code>+
 Request environment maps (also downloads models for all objects in the map) Request environment maps (also downloads models for all objects in the map)
-<code> + 
- re_request_map_for([['kr:roomNumber',|3001]], [['kr:floorNumber',|'3']],  +  re_request_map_for([['kr:roomNumber',|3001]], [['kr:floorNumber',|'3']],  
-                    [['kr:streetNumber',|'45']], [['rdfs:label',|'Karlstrasse']], M), +                     [['kr:streetNumber',|'45']], [['rdfs:label',|'Karlstrasse']], M), 
- owl_individual_of(Map, knowrob:'SemanticEnvironmentMap'),  +  owl_individual_of(Map, knowrob:'SemanticEnvironmentMap'),  
- add_object_with_children(Map, _). +  add_object_with_children(Map, _).
-</code>+
  
 Find out where the bottle is (the plan does not say that it's inside the cabinet). Here: use computables to determine that it is inside the cabinet: Find out where the bottle is (the plan does not say that it's inside the cabinet). Here: use computables to determine that it is inside the cabinet:
-<code> +  rdf_triple(knowrob: 'in-ContGeneric', 'http://ias.cs.tum.edu/kb/ias_hospital_room.owl#bottle1', C),  
- rdf_triple(knowrob: 'in-ContGeneric', 'http://ias.cs.tum.edu/kb/ias_hospital_room.owl#bottle1', C),  +  owl_individual_of(C, knowrob:'Container'). 
- owl_individual_of(C, knowrob:'Container'). +
-</code>+
  
 Perform the task... Perform the task...