no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
Previous revisionNext revision | |||
— | exchange_information_via_roboearth [2012/12/11 17:47] – [Environment 1 / PR2 robot] tenorth | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Exchange information via RoboEarth ====== | ||
+ | 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:// | ||
+ | |||
+ | In this tutorial, we will use the robot API for querying the database. The queries will be sent from KnowRob, and after download, the downloaded knowledge is available in the KnowRob system as if it had been loaded from a file.You can thus use the same queries as before for reasoning about objects and actions as in the previous tutorials. | ||
+ | |||
+ | During the download, you will possibly get some ' | ||
+ | |||
+ | ===== Scenario | ||
+ | |||
+ | The demonstrated scenario is the following, also described in this [[https:// | ||
+ | |||
+ | 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. | ||
+ | |||
+ | During the download phase, the robots need to determine which information they actually need. This is done using the [[SRDL2 Tutorial|SRDL robot description language]] and dependencies of actions on capabilities defined using that language. | ||
+ | |||
+ | ===== Installing and launching the system | ||
+ | |||
+ | In addition to KnowRob, you need a checkout of the current RoboEarth stack that you can install using | ||
+ | < | ||
+ | svn co https:// | ||
+ | | ||
+ | </ | ||
+ | |||
+ | You should then launch the interactive shell by typing | ||
+ | < | ||
+ | | ||
+ | </ | ||
+ | There is also a launch file to start KnowRob as ROS node, offering a service that accepts queries: | ||
+ | < | ||
+ | | ||
+ | </ | ||
+ | Start the visualization windows: | ||
+ | < | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Environment 1 -- PR2 robot ===== | ||
+ | Download recipe and generate CPL plan (also downloads models for all objects the recipe refers to) | ||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | Request environment maps (also downloads models for all objects in the map) | ||
+ | < | ||
+ | | ||
+ | [[' | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | 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: | ||
+ | < | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Perform the task... | ||
+ | |||
+ | Highlight plan steps during execution: | ||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Create joint between cabinet and door: (The robot fills in appropriate values as determined by the articulation estimator): | ||
+ | < | ||
+ | | ||
+ | ' | ||
+ | [[1, | ||
+ | </ | ||
+ | |||
+ | Export and upload information: | ||
+ | < | ||
+ | | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | </ | ||
+ | The following queries could then be used to update information in the RoboEarth DB. They shall **not be called in this tutorial** since it will change information in the DB and thereby render it unusable to others who do the tutorial later. | ||
+ | < | ||
+ | ** DO NOT CALL! ** | ||
+ | | ||
+ | ' | ||
+ | ** DO NOT CALL! ** | ||
+ | | ||
+ | ' | ||
+ | </ | ||
+ | |||
+ | ===== Environment 2 -- Amigo robot ===== | ||
+ | |||
+ | Please restart KnowRob to simulate that we are on a different robot that has not yet downloaded the information. Note that the information given in the following queries differs: The task is downloaded for the ' | ||
+ | |||
+ | Download recipe and generate CPL plan (also downloads models for all objects the recipe refers to) | ||
+ | < | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Request environment maps (also downloads models for all objects in the map) | ||
+ | < | ||
+ | | ||
+ | [[' | ||
+ | | ||
+ | ' | ||
+ | ' | ||
+ | </ | ||
+ | |||
+ | Reasoning about objects in the map | ||
+ | < | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Perform the task... | ||
+ | |||
+ | Read joint information (Here you need to fill in the correct joint ID!) | ||
+ | < | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Export and upload information: | ||
+ | |||
+ | < | ||
+ | | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | |||
+ | ** DO NOT CALL! ** | ||
+ | | ||
+ | ' | ||
+ | |||
+ | ** DO NOT CALL! ** | ||
+ | | ||
+ | ' | ||
+ | </ |