Differences
This shows you the differences between two versions of the page.
doc:mesh_reasoning [2013/04/22 09:32] – created admin | doc:mesh_reasoning [2014/01/17 09:30] (current) – removed gkazhoya | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Reasoning about geometric object models ====== | ||
- | ~~NOTOC~~ | ||
- | This module is currently under development and not publicly available. | ||
- | |||
- | ===== Usage ===== | ||
- | |||
- | Start knowrob_mesh_reasoning | ||
- | < | ||
- | roscd knowrob_mesh_reasoning | ||
- | | ||
- | </ | ||
- | |||
- | Analyze a model by its direct path or a KnowRob identifier (you first have to load an OWL file with the object) | ||
- | < | ||
- | ?- mesh_annotator_path(' | ||
- | ?- mesh_annotator(knowrob:' | ||
- | </ | ||
- | |||
- | Retrieve a list of found annotation types: | ||
- | < | ||
- | ?- mesh_element_types($Mr, | ||
- | | ||
- | </ | ||
- | |||
- | Sample call for highlighting all sphere annotations: | ||
- | < | ||
- | ?- mesh_annotator_path(' | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | Mr = @' | ||
- | |||
- | ?- mesh_find_annotations($Mr,' | ||
- | Found = @' | ||
- | |||
- | ?- mesh_annotator_highlight($Mr, | ||
- | | ||
- | @' | ||
- | @' | ||
- | @' | ||
- | | ||
- | </ | ||
- | |||
- | Clear highlight with | ||
- | < | ||
- | | ||
- | </ | ||
- | |||
- | Finding handles (default or by specifying minimum and maximum radius of a handle (unit in meters) or min/max radius and min/max length): | ||
- | < | ||
- | | ||
- | | ||
- | | ||
- | </ | ||
- | |||
- | Finding all supporting planes: | ||
- | < | ||
- | | ||
- | </ | ||
- | |||
- | |||
- | ===== Computables ===== | ||
- | |||
- | These computables are still work in progress, but they already build up the OWL datastructures of the object and its parts including their properties and relative poses. | ||
- | |||
- | Start knowrob_mesh_reasoning | ||
- | < | ||
- | $ roscd knowrob_mesh_reasoning | ||
- | $ rosrun rosprolog rosprolog knowrob_mesh_reasoning | ||
- | </ | ||
- | |||
- | Load example file | ||
- | < | ||
- | ?- owl_parse(' | ||
- | </ | ||
- | |||
- | Ask for properPhysicalParts (loads mesh, segments it and creates the parts on the fly) | ||
- | < | ||
- | ?- rdf_triple(knowrob: | ||
- | </ | ||
- | |||
- | Ask for properties of these parts | ||
- | < | ||
- | ?- rdf_triple(knowrob: | ||
- | </ | ||
- | |||
- | |||
- | ==== Currently implemented computables ==== | ||
- | |||
- | * Planar surfaces | ||
- | * normalDirection (vector) | ||
- | * objectLongSide (vector) | ||
- | * objectShortSide (vector) | ||
- | * areaOfObject (float) | ||
- | * areaCoverage (float) | ||
- | * supporting planes (computable class for SupportingPlane) | ||
- | * Spheres | ||
- | * radius (float) | ||
- | * volumeOfObject (float) | ||
- | * areaOfObject (float) | ||
- | * areaCoverage (float) | ||
- | * concavity (computable class for ConcaveTangibleObject) | ||
- | * Cones/ | ||
- | * radius (as average radius, float) | ||
- | * maxRadius (float) | ||
- | * minRadius (float) | ||
- | * volumeOfObject (float) | ||
- | * lengthOfObject (float) | ||
- | * longitudinalDirection (vector) | ||
- | * areaOfObject (float) | ||
- | * areaCoverage (float) | ||
- | * Containers | ||
- | * longitudinalDirection (opening direction, vector) | ||
- | * volumeOfObject (float) | ||
- | * Handles (computable class for cylindrical handles, class ' | ||
- | |||