Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
tutorials:advanced:unreal [2020/01/13 08:23] – [Prerequisites] adapted the launching procedure to the new launch files. hawkin | tutorials:advanced:unreal [2020/01/13 14:18] – [Prerequisites] adding new Chapter which explains the core Idea better hawkin | ||
---|---|---|---|
Line 5: | Line 5: | ||
This tutorial will introduce you to the '' | This tutorial will introduce you to the '' | ||
+ | ==== Idea ==== | ||
==== Prerequisites ==== | ==== Prerequisites ==== | ||
This tutorial assumes that you've completed the [[tutorials: | This tutorial assumes that you've completed the [[tutorials: | ||
Line 36: | Line 37: | ||
To launch all the necessary components, simply execute: | To launch all the necessary components, simply execute: | ||
<code lisp> | <code lisp> | ||
- | CL-USER> (kvr:: | + | CL-USER> (kvr:: |
</ | </ | ||
- | This will create a lisp ros node, clean up the belief-state, | + | This will create a lisp ros node, clean up the belief-state, |
Now, let's execute the pick and place plan: | Now, let's execute the pick and place plan: | ||
Line 49: | Line 50: | ||
=== Code === | === Code === | ||
- | == mesh-list.lisp == | + | == mesh-list.lisp == |
Contains a list of all the meshes which we want to spawn based on their locations in the semantic map. Some of them are commented out, e.g. walls, lamps and the objects we interact with, in order to keep the bullet world neat and clean. In unreal however, the walls and lamps are being spawned. We simply currently don't need them in bullet. | Contains a list of all the meshes which we want to spawn based on their locations in the semantic map. Some of them are commented out, e.g. walls, lamps and the objects we interact with, in order to keep the bullet world neat and clean. In unreal however, the walls and lamps are being spawned. We simply currently don't need them in bullet. | ||
== mapping-urdf-semantic.lisp == | == mapping-urdf-semantic.lisp == | ||
- | Mapps the urdf kitchen to the semantic map, since they differ in how some furniture is organized and called. | + | Mapps the urdf kitchen |
== init.lisp == | == init.lisp == | ||
- | TODO | + | Contains all the needed initialization functions for the simulation environment, |
== queries.lisp == | == queries.lisp == | ||
- | TODO | + | Contains some query wrappers so that they can be called as lisp functions, and also includes the queries which read out the data from the database e.g. the poses of the object, hand and head of the actor in the virtual reality. |
== query-based-calculations.lisp == | == query-based-calculations.lisp == | ||
- | TODO | + | Includes all transformation calculations to make the poses of the robot relative to the respective object, and the poses of the objects relative to the surfaces. Mostly works on lazy-lists of poses. |
== designator-integration.lisp == | == designator-integration.lisp == | ||
- | TODO | + | Integrates the pose calculations from the query-based-calculations into location designators. |
== fetch-and-deliver-based-demo.lisp == | == fetch-and-deliver-based-demo.lisp == | ||
- | TODO | + | Sets up the plan for the demo with the respective action designator. Also includes logging functions. |
- | ==== Importing new episode data into MongoDB and KnowRob(Additional information) ==== | + | |
- | In order for us to be able to query data for information, | + | == debugging-utils.lisp == |
+ | Contains a lot of debugging and helper functions which can also visualize all the calculated poses. | ||
+ | ==== Importing new episode data into MongoDB and KnowRob (Additional information)==== | ||
+ | In order for us to be able to query episode | ||
The MongoDB contains all the poses of the objects, camera, hand and furniture of the episode. So the pose is read out from there. KnowRob takes care of everything else. It knows of all the object classes and instances used in the episodes. So in order to be able to use the data, we need to import it into MongoDB and KnowRob. | The MongoDB contains all the poses of the objects, camera, hand and furniture of the episode. So the pose is read out from there. KnowRob takes care of everything else. It knows of all the object classes and instances used in the episodes. So in order to be able to use the data, we need to import it into MongoDB and KnowRob. | ||
+ | The following description only applies if the data has been recorded using the [[http:// | ||
+ | |||
+ | === MongoDB (quick with scripts)=== | ||
+ | There is a script which imports the episode data into the currently running MongoDB instance. Please see [[https:// | ||
+ | |||
+ | === MongoDB (manuel in-depth) === | ||
+ | This will explain how to import the episode data manually into MongoDB. This is essentially what the script in the description above does automatically. So if the script didn't work (please leave an issue on [[https:// | ||
- | === MongoDB === | ||
If you record data in the Virtual Reality using [[http:// | If you record data in the Virtual Reality using [[http:// | ||
'' | '' | ||
Line 125: | Line 135: | ||
=== KnowRob === | === KnowRob === | ||
- | KnowRob needs to be able to find the .owl and .bson files. It's important to have a directory for all the Episodes. You can either have a look or download these [[ftp:// | + | KnowRob needs to be able to find the .owl and .bson files. It's important to have a directory for all the Episodes. You can either have a look or download these [[ftp:// |
=== Performance === | === Performance === | ||
+ | This step is also covered by the [[https:// | ||
+ | |||
Depending on how many collections your database has, it can get slow when quering for information. One way to make it faster, is to include an index over timestamp for all collections. One way to add this, is to install [[https:// | Depending on how many collections your database has, it can get slow when quering for information. One way to make it faster, is to include an index over timestamp for all collections. One way to add this, is to install [[https:// | ||