Skip to content
Snippets Groups Projects
Commit f145908e authored by Fabian Reister's avatar Fabian Reister
Browse files

moving files and functionality

parent 0d7f5ee5
No related branches found
No related tags found
2 merge requests!157armem/dev => master,!141Feature/armem object memory articulated objects
Showing
with 266 additions and 53 deletions
......@@ -3,7 +3,8 @@ armarx_component_set_name("ObjectPoseProviderExample")
set(COMPONENT_LIBS
# ArmarXCore
ArmarXCore ArmarXCoreInterfaces
ArmarXCore
ArmarXCoreInterfaces
# RobotAPI
RobotAPI::ArmarXObjects
)
......@@ -21,3 +22,34 @@ armarx_add_component("${SOURCES}" "${HEADERS}")
#generate the application
armarx_generate_and_add_component_executable()
armarx_component_set_name("ArticulatedObjectStateProviderExample")
set(COMPONENT_LIBS
# ArmarXCore
ArmarXCore
ArmarXCoreInterfaces
# RobotAPI
RobotAPI::ArmarXObjects
)
set(SOURCES
ArticulatedObjectStateProviderExample.cpp
)
set(HEADERS
ArticulatedObjectStateProviderExample.h
)
armarx_add_component("${SOURCES}" "${HEADERS}")
#generate the application
armarx_generate_and_add_component_executable(COMPONENT_NAMESPACE "armarx::articulated_object")
\ No newline at end of file
......@@ -22,6 +22,8 @@
#include "ObjectMemory.h"
#include <RobotAPI/interface/core/articulated_object/topic.h>
namespace armarx::armem::server::obj
{
......@@ -38,6 +40,7 @@ namespace armarx::armem::server::obj
// Subscribe
defs->topic<objpose::ObjectPoseTopic>(); // "ObjectPoseTopic", "ObjectPoseTopicName", "Name of the Object Pose Topic.");
defs->topic<articulated_object::ArticulatedObjectTopic>(); // "ObjectPoseTopic", "ObjectPoseTopicName", "Name of the Object Pose Topic.");
// Use
// defs->component(kinematicUnitObserver); // Optional dependency.
......@@ -107,7 +110,8 @@ namespace armarx::armem::server::obj
getProxyFromProperty(kinematicUnitObserver, "cmp.KinematicUnitObserverName", false, "", false);
instance::SegmentAdapter::connect(
robotStateComponent, robot,
robotStateComponent,
robot,
kinematicUnitObserver,
ArVizComponentPluginUser::arviz,
debugObserver
......
......@@ -32,6 +32,8 @@
#include <RobotAPI/interface/objectpose/object_pose_types.ice>
#include <RobotAPI/interface/objectpose/ObjectPoseProvider.ice>
#include <RobotAPI/interface/core/articulated_object/topic.ice>
module armarx
{
......@@ -153,7 +155,8 @@ module armarx
};
interface ObjectPoseStorageInterface extends
ObjectPoseTopic
ObjectPoseTopic,
armarx::articulated_object::ArticulatedObjectTopic
{
// Object poses
......
......@@ -65,6 +65,7 @@ set(LIB_FILES
client/ReaderComponentPlugin.cpp
client/Writer.cpp
client/WriterComponentPlugin.cpp
client/MemoryConnector.cpp
client/Query.cpp
client/query/Builder.cpp
......@@ -162,6 +163,7 @@ set(LIB_HEADERS
client/ReaderComponentPlugin.h
client/Writer.h
client/WriterComponentPlugin.h
client/MemoryConnector.h
client/Query.h
client/query/Builder.h
......
......@@ -19,6 +19,8 @@ armarx_add_library(
aron_conversions.h
aron_forward_declarations.h
ice_conversions.h
server/class/FloorVis.h
server/class/Segment.h
......@@ -28,13 +30,14 @@ armarx_add_library(
server/instance/RobotHeadMovement.h
server/instance/Visu.h
server/articulated_object/Segment.h
# server/articulated_object/Segment.h
# server/articulated_object/SegmentAdapter.h
# server/articulated_object/Visu.h
SOURCES
aron_conversions.cpp
ice_conversions.cpp
server/class/FloorVis.cpp
server/class/Segment.cpp
......@@ -45,7 +48,7 @@ armarx_add_library(
server/instance/RobotHeadMovement.cpp
server/instance/Visu.cpp
server/articulated_object/Segment.cpp
# server/articulated_object/Segment.cpp
# server/articulated_object/SegmentAdapter.cpp
# server/articulated_object/Visu.cpp
)
......@@ -56,6 +59,12 @@ armarx_enable_aron_file_generation_for_target(
ARON_FILES
aron/ObjectClass.xml
aron/ObjectInstance.xml
# aron/Attachment.xml
aron/RobotDescription.xml
aron/RobotState.xml
aron/Robot.xml
aron/Constraint.xml
)
add_library(${PROJECT_NAME}::armem_objects ALIAS armem_objects)
......
......@@ -6,7 +6,7 @@
</CodeIncludes>
<GenerateTypes>
<Object name="armarx::arondto::Attachment">
<Object name="armarx::armem::arondto::Attachment">
<ObjectChild key="constraintType">
......
......@@ -11,7 +11,7 @@
</AronIncludes>
<GenerateTypes>
<Object name="armarx::arondto::RobotID">
<Object name="armarx::armem::arondto::RobotID">
<ObjectChild key="name">
<string/>
</ObjectChild>
......@@ -20,15 +20,15 @@
</ObjectChild>
</Object>
<IntEnum name="armarx::arondto::SceneEntityType">
<IntEnum name="armarx::armem::arondto::SceneEntityType">
<EnumValue key="Robot" value="0" />
<EnumValue key="ArticulatedObject" value="1" />
<EnumValue key="Object" value="2" />
</IntEnum>
<Object name="armarx::arondto::SceneEntity">
<Object name="armarx::armem::arondto::SceneEntity">
<ObjectChild key="type">
<armarx::arondto::SceneEntityType />
<armarx::armem::arondto::SceneEntityType />
</ObjectChild>
<!-- could be a variant -->
......@@ -40,9 +40,9 @@
</ObjectChild> -->
</Object>
<Object name="armarx::arondto::BodyLinkDescription">
<Object name="armarx::armem::arondto::BodyLinkDescription">
<ObjectChild key="entity">
<armarx::arondto::SceneEntity />
<armarx::armem::arondto::SceneEntity />
</ObjectChild>
<ObjectChild key="node">
......@@ -55,7 +55,7 @@
</Object>
<!-- http://www.cs.kent.edu/~ruttan/GameEngines/lectures/Bullet_User_Manual -->
<IntEnum name="armarx::arondto::ConstraintType">
<IntEnum name="armarx::armem::arondto::ConstraintType">
<EnumValue key="Fixed" value="0" />
<!-- <EnumValue key="Prismatic" value="1" /> -->
<!-- <EnumValue key="Revolute" value="2" /> -->
......@@ -66,10 +66,10 @@
<!-- <EnumValue key="Spring" value="7" /> -->
</IntEnum>
<Object name="armarx::arondto::Constraint">
<Object name="armarx::armem::arondto::Constraint">
<ObjectChild key="type">
<armarx::arondto::ConstraintType />
<armarx::armem::arondto::ConstraintType />
</ObjectChild>
<!-- <ObjectChild key="transformation">
......@@ -78,11 +78,11 @@
<ObjectChild key="bodyA">
<armarx::arondto::BodyLinkDescription/>
<armarx::armem::arondto::BodyLinkDescription/>
</ObjectChild>
<ObjectChild key="bodyB">
<armarx::arondto::BodyLinkDescription/>
<armarx::armem::arondto::BodyLinkDescription/>
</ObjectChild>
......
......@@ -2,23 +2,23 @@
<?xml version="1.0" encoding="UTF-8" ?>
<AronTypeDefinition>
<CodeIncludes>
<Include include="<RobotAPI/libraries/aron/common/aron/RobotDescription.aron.generated.h>" />
<Include include="<RobotAPI/libraries/aron/common/aron/RobotState.aron.generated.h>" />
<Include include="<RobotAPI/libraries/armem_objects/aron/RobotDescription.aron.generated.h>" />
<Include include="<RobotAPI/libraries/armem_objects/aron/RobotState.aron.generated.h>" />
</CodeIncludes>
<AronIncludes>
<Include include="<RobotAPI/libraries/aron/common/aron/RobotDescription.xml>" />
<Include include="<RobotAPI/libraries/aron/common/aron/RobotState.xml>" />
<Include include="<RobotAPI/libraries/armem_objects/aron/RobotDescription.xml>" />
<Include include="<RobotAPI/libraries/armem_objects/aron/RobotState.xml>" />
</AronIncludes>
<GenerateTypes>
<Object name="armarx::arondto::Robot">
<Object name="armarx::armem::arondto::Robot">
<ObjectChild key='description'>
<armarx::arondto::RobotDescription />
<armarx::armem::arondto::RobotDescription />
</ObjectChild>
<ObjectChild key='state'>
<armarx::arondto::RobotState />
<armarx::armem::arondto::RobotState />
</ObjectChild>
<ObjectChild key='timestamp'>
......
......@@ -4,10 +4,13 @@
<AronIncludes>
<Include include="<RobotAPI/libraries/aron/common/aron/PackagePath.xml>" />
</AronIncludes>
<CodeIncludes>
<Include include="<RobotAPI/libraries/aron/common/aron/PackagePath.aron.generated.h>" />
</CodeIncludes>
<GenerateTypes>
<Object name='armarx::arondto::RobotDescription'>
<Object name='armarx::armem::arondto::RobotDescription'>
<ObjectChild key='name'>
<string />
......
......@@ -6,7 +6,7 @@
</CodeIncludes>
<GenerateTypes>
<Object name="armarx::arondto::RobotState">
<Object name="armarx::armem::arondto::RobotState">
<ObjectChild key='timestamp'>
<Time />
......
......@@ -2,26 +2,89 @@
#include <RobotAPI/libraries/ArmarXObjects/aron_conversions.h>
#include <RobotAPI/libraries/aron/common/aron_conversions/core.h>
#include <RobotAPI/libraries/aron/common/aron_conversions/stl.h>
#include <RobotAPI/libraries/aron/common/aron_conversions/armarx.h>
void armarx::armem::fromAron(const arondto::ObjectInstance& dto, objpose::arondto::ObjectPose& bo)
namespace armarx::armem
{
bo = dto.pose;
}
void armarx::armem::toAron(arondto::ObjectInstance& dto, const objpose::arondto::ObjectPose& bo)
{
dto.pose = bo;
}
void fromAron(const arondto::ObjectInstance& dto,
objpose::arondto::ObjectPose& bo)
{
bo = dto.pose;
}
void toAron(arondto::ObjectInstance& dto, const objpose::arondto::ObjectPose& bo)
{
dto.pose = bo;
}
void armarx::armem::fromAron(const arondto::ObjectInstance& dto, objpose::ObjectPose& bo)
{
objpose::fromAron(dto.pose, bo);
}
void fromAron(const arondto::ObjectInstance& dto, objpose::ObjectPose& bo)
{
objpose::fromAron(dto.pose, bo);
}
void armarx::armem::toAron(arondto::ObjectInstance& dto, const objpose::ObjectPose& bo)
{
objpose::toAron(dto.pose, bo);
}
void toAron(arondto::ObjectInstance& dto, const objpose::ObjectPose& bo)
{
objpose::toAron(dto.pose, bo);
}
/* to be moved */
void fromAron(const long& dto, IceUtil::Time& time)
{
time = IceUtil::Time::microSeconds(dto);
}
void toAron(long& dto, const IceUtil::Time& time)
{
dto = time.toMicroSeconds();
}
/* Robot */
void fromAron(const arondto::Robot& dto, Robot& bo)
{
fromAron(dto.description, bo.description);
fromAron(dto.state, bo.config);
}
void toAron(arondto::Robot& dto, const Robot& bo)
{
toAron(dto.description, bo.description);
toAron(dto.state, bo.config);
}
/* RobotDescription */
void fromAron(const arondto::RobotDescription& dto, RobotDescription& bo)
{
aron::fromAron(dto.name, bo.name);
fromAron(dto.xml, bo.xml);
}
void toAron(arondto::RobotDescription& dto, const RobotDescription& bo)
{
aron::toAron(dto.name, bo.name);
toAron(dto.xml, bo.xml);
}
/* RobotState */
void fromAron(const arondto::RobotState& dto, RobotState& bo)
{
fromAron(dto.timestamp, bo.timestamp);
bo.globalPose.matrix() = dto.globalPose;
bo.jointMap = dto.jointMap;
}
void toAron(arondto::RobotState& dto, const RobotState& bo)
{
toAron(dto.timestamp, bo.timestamp);
dto.globalPose = bo.globalPose.matrix();
dto.jointMap = bo.jointMap;
}
} // namespace armarx::armem
......@@ -5,6 +5,12 @@
#include <RobotAPI/libraries/armem_objects/aron/ObjectInstance.aron.generated.h>
#include <RobotAPI/libraries/armem_objects/types.h>
#include <RobotAPI/libraries/armem_objects/aron/RobotDescription.aron.generated.h>
#include <RobotAPI/libraries/armem_objects/aron/RobotState.aron.generated.h>
#include <RobotAPI/libraries/armem_objects/aron/Robot.aron.generated.h>
namespace armarx::armem
{
void fromAron(const arondto::ObjectInstance& dto, objpose::arondto::ObjectPose& bo);
......@@ -12,4 +18,21 @@ namespace armarx::armem
void fromAron(const arondto::ObjectInstance& dto, objpose::ObjectPose& bo);
void toAron(arondto::ObjectInstance& dto, const objpose::ObjectPose& bo);
// TODO move the following
void fromAron(const long& dto, IceUtil::Time& time);
void toAron(long& dto, const IceUtil::Time& time);
// end TODO
void fromAron(const arondto::Robot& dto, Robot& bo);
void toAron(arondto::Robot& dto, const Robot& bo);
void fromAron(const arondto::RobotDescription& dto, RobotDescription& bo);
void toAron(arondto::RobotDescription& dto, const RobotDescription& bo);
void fromAron(const arondto::RobotState& dto, RobotState& bo);
void toAron(arondto::RobotState& dto, const RobotState& bo);
}
#pragma once
#include "interfaces.h"
namespace armarx::armem::articulated_object
{
class Reader:
virtual public ReaderInterface,
virtual public ::armarx::armem::MemoryConnector
{
public:
virtual ~Reader() = default;
void synchronize(ArticulatedObject& obj, const armem::Time& timestamp) override;
ArticulatedObject get(const ArticulatedObjectDescription& description, const armem::Time& timestamp) override;
};
} // namespace armarx::armem::articulated_object
\ No newline at end of file
#pragma once
#include "interfaces.h"
namespace armarx::armem::articulated_object
{
class Writer: public WriterInterface
{
public:
virtual ~WriterInterface() = default;
void store(const ArticulatedObject& obj) override;
};
} // namespace armarx::armem::articulated_object
\ No newline at end of file
#pragma once
#include <RobotAPI/libraries/armem/core/Time.h>
#include <RobotAPI/libraries/armem_objects/types.h>
namespace armarx::armem::articulated_object
{
class ReaderInterface
{
public:
virtual ~ReaderInterface() = default;
virtual void synchronize(ArticulatedObject& obj, const armem::Time& timestamp) = 0;
virtual ArticulatedObject get(const ArticulatedObjectDescription& description, const armem::Time& timestamp) = 0;
};
class WriterInterface
{
public:
virtual ~WriterInterface() = default;
virtual void store(const ArticulatedObject& obj) = 0;
};
} // namespace armarx::armem::articulated_object
\ No newline at end of file
#include "ice_conversions.cpp"
#include "ice_conversions.h"
#include <RobotAPI/libraries/aron/common/aron/new_types.h>
#include <RobotAPI/interface/core/articulated_object/types.h>
#include <RobotAPI/libraries/armem/core/ice_conversions.h>
#include <RobotAPI/libraries/armem/core/ice_conversions_templates.h>
namespace armarx
{
void fromIce(const ::armarx::articulated_object::data::RobotState& ice, ::armarx::RobotState& bo)
void toIce(::armarx::articulated_object::data::Config& ice, const ::armarx::armem::RobotState& bo)
{
fromIce(ice.config, bo.config);
fromIce(ice.id, bo.description);
// toIce(ice.timestamp, bo.timestamp);
// toIce(ice.globalPose, bo.globalPose);
// toIce(ice.jointMap, bo.jointMap);
}
void toIce(::armarx::articulated_object::data::ArticulatedObject& ice, const ::armarx::articulated_object::ArticulatedObject& bo)
{
void fromIce(const ::armarx::articulated_object::data::Config& ice, ::armarx::armem::RobotState& bo)
{
fromIce(ice.timestamp, bo.timestamp);
// fromIce(ice.globalPose, bo.globalPose);
// fromIce(ice.jointMap, bo.jointMap);
}
void fromIce(const ::armarx::articulated_object::data::ArticulatedObject& ice, ::armarx::articulated_object::ArticulatedObject& bo)
void toIce(::armarx::articulated_object::data::ArticulatedObject& ice, const ::armarx::armem::articulated_object::ArticulatedObject& bo)
{
fromIce(ice.config, bo.config);
fromIce(ice.id, bo.description);
// toIce(ice.config, bo.config);
//? toIce(ice.id, bo.description);
}
void toIce(::armarx::articulated_object::data::ArticulatedObject& ice, const ::armarx::articulated_object::ArticulatedObject& bo)
{
void fromIce(const ::armarx::articulated_object::data::ArticulatedObject& ice, ::armarx::armem::articulated_object::ArticulatedObject& bo)
{
// fromIce(ice.config, bo.config);
// fromIce(ice.id, bo.description);
}
} // namespace armarx
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment