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:// |