diff --git a/source/RobotAPI/libraries/GraspingUtility/CMakeLists.txt b/source/RobotAPI/libraries/GraspingUtility/CMakeLists.txt index e88102be2b34c52d63b73ff876ab6ba8e778f1f5..4c787e073b767fa97936d21bac1be9960e8371ad 100644 --- a/source/RobotAPI/libraries/GraspingUtility/CMakeLists.txt +++ b/source/RobotAPI/libraries/GraspingUtility/CMakeLists.txt @@ -16,5 +16,12 @@ armarx_add_library( GraspCandidateHelper.h BimanualGraspCandidateHelper.h ) +armarx_enable_aron_file_generation_for_target( + TARGET_NAME + "${LIB_NAME}" + ARON_FILES + aron/GraspAffordance.xml +) + diff --git a/source/RobotAPI/libraries/GraspingUtility/aron/GraspAffordance.xml b/source/RobotAPI/libraries/GraspingUtility/aron/GraspAffordance.xml new file mode 100644 index 0000000000000000000000000000000000000000..96d0f8f479dfad2dcd4345bf80c1e2979d4cafee --- /dev/null +++ b/source/RobotAPI/libraries/GraspingUtility/aron/GraspAffordance.xml @@ -0,0 +1,263 @@ +<!-- ARON DTO of armarx::objpose::ObjectPose. --> +<?xml version="1.0" encoding="UTF-8" ?> +<AronTypeDefinition> + <CodeIncludes> + <Include include="<Eigen/Core>" /> + + </CodeIncludes> + <AronIncludes> + + </AronIncludes> + <GenerateTypes> + + <IntEnum name="armarx::grasping::arondto::ObjectType"> + <EnumValue key="AnyObject" value="0" /> + <EnumValue key="KnownObject" value="1" /> + <EnumValue key="UnknownObject" value="2" /> + </IntEnum> + + <IntEnum name="armarx::grasping::arondto::ApproachType"> + <EnumValue key="AnyApproach" value="0" /> + <EnumValue key="TopApproach" value="1" /> + <EnumValue key="SideApproach" value="2" /> + </IntEnum> + + <IntEnum name="armarx::grasping::arondto::ApertureType"> + <EnumValue key="AnyAperture" value="0" /> + <EnumValue key="OpenAperture" value="1" /> + <EnumValue key="PreshapedAperture" value="2" /> + </IntEnum> + + + <Object name="armarx::grasping::arondto::BoundingBox"> + <ObjectChild key='center'> + <EigenMatrix rows="3" cols="1" type="float" /> + </ObjectChild> + <ObjectChild key='ha1'> + <EigenMatrix rows="3" cols="1" type="float" /> + </ObjectChild> + <ObjectChild key='ha2'> + <EigenMatrix rows="3" cols="1" type="float" /> + </ObjectChild> + <ObjectChild key='ha3'> + <EigenMatrix rows="3" cols="1" type="float" /> + </ObjectChild> + </Object> + + <Object name="armarx::grasping::arondto::GraspCandidateSourceInfo"> + <ObjectChild key='referenceObjectPose'> + <EigenMatrix rows="4" cols="4" type="float" /> + </ObjectChild> + <ObjectChild key='referenceObjectName'> + <string /> + </ObjectChild> + <ObjectChild key='segmentationLabelID'> + <int /> + </ObjectChild> + <ObjectChild key='bbox'> + <armarx::grasping::arondto::BoundingBox /> + </ObjectChild> + </Object> + + <Object name="armarx::grasping::arondto::GraspCandidateExecutionHints"> + <ObjectChild key='preshape'> + <armarx::grasping::arondto::ApertureType /> + </ObjectChild> + <ObjectChild key='approach'> + <armarx::grasping::arondto::ApproachType /> + </ObjectChild> + <ObjectChild key='graspTrajectoryName'> + <string /> + </ObjectChild> + </Object> + + <Object name="armarx::grasping::arondto::GraspCandidateReachabilityInfo"> + <ObjectChild key='reachable'> + <bool /> + </ObjectChild> + <ObjectChild key='minimumJointLimitMargin'> + <float /> + </ObjectChild> + <ObjectChild key='jointLimitMargins'> + <List> + <Float /> + </List> + </ObjectChild> + <ObjectChild key='maxPosError'> + <float /> + </ObjectChild> + <ObjectChild key='maxOriError'> + <float /> + </ObjectChild> + </Object> + + <Object name='armarx::objpose::arondto::GraspCandidate'> + + <ObjectChild key='graspPose'> + <EigenMatrix rows="4" cols="4" type="float" /> + </ObjectChild> + + <ObjectChild key='robotPose'> + <EigenMatrix rows="4" cols="4" type="float" /> + </ObjectChild> + + <ObjectChild key='approachVector'> + <EigenMatrix rows="3" cols="1" type="float" /> + </ObjectChild> + + <ObjectChild key='sourceFrame'> + <string /> + </ObjectChild> + + <ObjectChild key='targetFrame'> + <string /> + </ObjectChild> + + <ObjectChild key='side'> + <string /> + </ObjectChild> + + <ObjectChild key='graspSuccessProbability'> + <float /> + </ObjectChild> + + <ObjectChild key='objectType'> + <armarx::grasping::arondto::ObjectType /> + </ObjectChild> + + <ObjectChild key='groupNr'> + <int /> + </ObjectChild> + + <ObjectChild key='providerName'> + <string /> + </ObjectChild> + + <ObjectChild key='sourceInfoValid'> + <bool /> + </ObjectChild> + <ObjectChild key='sourceInfo'> + <armarx::grasping::arondto::GraspCandidateSourceInfo /> + </ObjectChild> + + <ObjectChild key='executionHintsValid'> + <bool /> + </ObjectChild> + <ObjectChild key='executionHints'> + <armarx::grasping::arondto::GraspCandidateExecutionHints /> + </ObjectChild> + + <ObjectChild key='reachabilityInfoValid'> + <bool /> + </ObjectChild> + <ObjectChild key='reachabilityInfo'> + <armarx::grasping::arondto::GraspCandidateReachabilityInfo /> + </ObjectChild> + + </Object> + + <Object name='armarx::objpose::arondto::BimanualGraspCandidate'> + + <ObjectChild key='graspPoseRight'> + <EigenMatrix rows="4" cols="4" type="float" /> + </ObjectChild> + + <ObjectChild key='graspPoseLeft'> + <EigenMatrix rows="4" cols="4" type="float" /> + </ObjectChild> + + <ObjectChild key='robotPose'> + <EigenMatrix rows="4" cols="4" type="float" /> + </ObjectChild> + + <ObjectChild key='approachVectorRight'> + <EigenMatrix rows="3" cols="1" type="float" /> + </ObjectChild> + + <ObjectChild key='approachVectorLeft'> + <EigenMatrix rows="3" cols="1" type="float" /> + </ObjectChild> + + <ObjectChild key='inwardsVectorRight'> + <EigenMatrix rows="3" cols="1" type="float" /> + </ObjectChild> + + <ObjectChild key='inwardsVectorLeft'> + <EigenMatrix rows="3" cols="1" type="float" /> + </ObjectChild> + + <ObjectChild key='sourceFrame'> + <string /> + </ObjectChild> + + <ObjectChild key='targetFrame'> + <string /> + </ObjectChild> + + <ObjectChild key='objectType'> + <armarx::grasping::arondto::ObjectType /> + </ObjectChild> + + <ObjectChild key='groupNr'> + <int /> + </ObjectChild> + + <ObjectChild key='providerName'> + <string /> + </ObjectChild> + + <ObjectChild key='sourceInfoValid'> + <bool /> + </ObjectChild> + <ObjectChild key='sourceInfo'> + <armarx::grasping::arondto::GraspCandidateSourceInfo /> + </ObjectChild> + + <ObjectChild key='executionHintsRightValid'> + <bool /> + </ObjectChild> + <ObjectChild key='executionHintsRight'> + <armarx::grasping::arondto::GraspCandidateExecutionHints /> + </ObjectChild> + + <ObjectChild key='executionHintsLeftValid'> + <bool /> + </ObjectChild> + <ObjectChild key='executionHintsLeft'> + <armarx::grasping::arondto::GraspCandidateExecutionHints /> + </ObjectChild> + + <ObjectChild key='reachabilityInfoRightValid'> + <bool /> + </ObjectChild> + <ObjectChild key='reachabilityInfoRight'> + <armarx::grasping::arondto::GraspCandidateReachabilityInfo /> + </ObjectChild> + + <ObjectChild key='reachabilityInfoLeftValid'> + <bool /> + </ObjectChild> + <ObjectChild key='reachabilityInfoLeft'> + <armarx::grasping::arondto::GraspCandidateReachabilityInfo /> + </ObjectChild> + + <ObjectChild key='graspName'> + <string /> + </ObjectChild> + + </Object> + + <Object name="armarx::grasping::arondto::ProviderInfo"> + <ObjectChild key='objectType'> + <armarx::grasping::arondto::ObjectType /> + </ObjectChild> + <ObjectChild key='currentConfig'> + <Dict> + <string /> + </Dict> + </ObjectChild> + </Object> + + + </GenerateTypes> +</AronTypeDefinition>