Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | Last revisionBoth sides next revision | ||
mesh_reasoning [2013/03/31 17:07] – [Usage] Min/max handle length profanter | mesh_reasoning [2013/04/22 09:32] – admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Reasoning about geometric object models ====== | + | #REDIRECT doc:mesh_reasoning |
- | ~~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 = @'J#00000140259203508552' | + | |
- | + | ||
- | ?- 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:areaOfObject, | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | ==== 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 ' | + | |
- | + |