Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| doc:reasoning_about_logged_experiences [2014/02/19 08:14] – created admin | doc:reasoning_about_logged_experiences [2014/06/05 17:44] (current) – [Installation] admin | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Reasoning about logged robot experiences ====== | ====== Reasoning about logged robot experiences ====== | ||
| + | This page lists methods and tools for reasoning about log data of robot tasks created using the [[http:// | ||
| + | |||
| + | ===== Installation ===== | ||
| + | |||
| + | Usually, the log files are created using the [[http:// | ||
| + | sudo apt-get install mongodb-dev | ||
| + | |||
| + | The logged data is stored in a database called ' | ||
| + | rosmake mod_execution_trace | ||
| + | | ||
| + | We have prepared an archive with test data logged during a pick-and-place task with the PR2 robot. You can download the file from [[http:// | ||
| + | tar -xvjf pick-and-place.tar.bz2 | ||
| + | cd pick-and-place | ||
| + | mongoimport --db roslog --collection tf tf.json | ||
| + | mongoimport --db roslog --collection logged_designators logged_designators.json | ||
| + | mongoimport --db roslog --collection logged_metadata logged_metadata.json | ||
| + | |||
| + | |||
| + | ===== Reasoning about logged data using knowrob_mongo ===== | ||
| + | The knowrob_mongo package contains methods for accessing information in the MongoDB database via KnowRob predicates, for example the logged tf pose data or perception results. | ||
| + | |||
| + | ==== Startup ==== | ||
| + | |||
| + | $ rosrun rosprolog rosprolog knowrob_mongo | ||
| + | ?- register_ros_package(mod_srdl). | ||
| + | ?- owl_parse(' | ||
| + | |||
| + | ==== Queries ==== | ||
| + | # read pose of cameras in /map coordinates at the beginning of event_dInF6Fvz | ||
| + | ?- owl_individual_of(A, | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | |||
| + | # read latest designator that was logged before the end of event_dInF6Fvz | ||
| + | ?- owl_has(' | ||
| + | | ||
| + | |||
| + | ?- knowrob_mongo: | ||
| + | ' | ||
| + | ' | ||
| + | true . | ||
| + | |||
| + | # Which camera can see the robot part A? | ||
| + | ?- knowrob_mongo: | ||
| + | Camera, ' | ||
| + | Camera = ' | ||
| + | Camera = ' | ||
| + | Camera = ' | ||
| + | Camera = ' | ||
| + | |||
| + | |||
| + | The following is to be performed from the roslog_2013_08_29_1445 folder: | ||
| + | |||
| + | # Is some part of the right arm blocking the view on the object? | ||
| + | ?- register_ros_package(mod_srdl), | ||
| + | ?- mng_obj_pose_by_desig(' | ||
| + | ?- sub_component(pr2: | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | # Is the object visible in the camera, given the camera' | ||
| + | ?- obj_visible_in_camera(log:' | ||
| + | | ||
| + | | ||
| + | false. | ||
| + | | ||
| + | ?- obj_visible_in_camera(log:' | ||
| + | | ||
| + | | ||
| + | true . | ||
| + | |||
| + | |||
| + | |||
| + | ===== Reasoning over plan logs using mod_execution_trace ===== | ||
| + | |||
| + | ==== Prerequisites ==== | ||
| + | 1) Get latest version of knowrob and knowrob_addons from [[https:// | ||
| + | |||
| + | 2) Get the dataset from [[https:// | ||
| + | |||
| + | ==== Starting up the Software ==== | ||
| + | |||
| + | $ rosrun rosprolog rosprolog mod_vis | ||
| + | ?- register_ros_package(mod_execution_trace). | ||
| + | ?- owl_parse(' | ||
| + | | ||
| + | ==== Example Query ==== | ||
| + | "What is the probability of a certain task was failed during the execution of a plan?" is shown as an example. It is also one of the use-cases what we want to show in our ACS'13 paper. | ||
| + | |||
| + | ?- aggregate_all(count, | ||
| + | |||
| + | |||
| + | ===== Open issues ===== | ||
| + | Note that some predicates still don't work because I'm still implementing/ | ||
| + | |||
| + | ==== Representation and reasoning ==== | ||
| + | Please file issues here: https:// | ||
| + | |||
| + | ==== Infrastructure ==== | ||
| + | Please file issues here: https:// | ||

