This is an old revision of the document!
Semantic environment map in CRAM
Description: This tutorial demonstrates how to use the semantic environment map published by Knowrob within CRAM. Such map has semantically annotated objects of robot's environment, mostly the furniture in indoor scenarios or landmarks outdoors. This tutorial shows how to load the map, how to query for specific parts thereof and how to build and resolve location designators using the semantic map.
Prerequisites: To be able to follow this tutorial you need the following packages in your ROS workspace, compiled without errors:
- KnowRob (the core): https://github.com/knowrob/knowrob.git, this contains the
rosprolog
andjson_prolog
packages, which allow for sending Prolog queries to a knowledge base, where the semantic map is stored, over ROS in JSON format (make sure you haverosjava
installed, either from source or the ROS Debian package) - A sample semantic environment map in OWL format: https://github.com/code-iai/iai_maps.git, this contains the map of the kitchen lab of Institute for AI at Uni Bremen
- Core packages of CRAM: https://github.com/cram2/{roslisp_common,cram_3rdparty,cram_core,cram_plans}.git, where
{}
syntax corresponds to similar syntax in a Linux shell - Lisp implementation of JSON Prolog protocol: https://github.com/cram2/cram_json_prolog.git
- Semantic environment map functionality for CRAM: https://github.com/cram2/cram_semantic_maps.git
If you installed CRAM using the official installation instructions you should have everything already. Otherwise, clone the listed repos, install the missing system dependencies with rosdep install
and catkin_make
your workspace.
Setting up
Step 1: start publishing the semantic environment map through JSON Prolog and TF etc.. In a fresh terminal:
$ roslaunch iai_maps iai_maps.launch
Step 2: visualization setup. In a separate terminal:
$ rosrun rviz rviz
list code