diff --git a/source/RobotAPI/libraries/aron/common/aron/framed.xml b/source/RobotAPI/libraries/aron/common/aron/framed.xml index 0cb7d5e0487b1a5a30c512d85c6eb6202df96cba..8f708bbc5638790c506f9f687aa07bd39c57dda7 100644 --- a/source/RobotAPI/libraries/aron/common/aron/framed.xml +++ b/source/RobotAPI/libraries/aron/common/aron/framed.xml @@ -25,6 +25,15 @@ </ObjectChild> </Object> + <Object name="armarx::arondto::FramedDirection"> + <ObjectChild key='header'> + <armarx::arondto::FrameID /> + </ObjectChild> + <ObjectChild key='direction'> + <Position /> + </ObjectChild> + </Object> + <Object name="armarx::arondto::FramedOrientation"> <ObjectChild key='header'> <armarx::arondto::FrameID /> diff --git a/source/RobotAPI/libraries/aron/common/aron_conversions/framed.cpp b/source/RobotAPI/libraries/aron/common/aron_conversions/framed.cpp index 27ab8bff523e82ccd52f02bede86a33b51e79225..b154f810c46a783e3ea6b11576466944252fb224 100644 --- a/source/RobotAPI/libraries/aron/common/aron_conversions/framed.cpp +++ b/source/RobotAPI/libraries/aron/common/aron_conversions/framed.cpp @@ -24,6 +24,26 @@ namespace armarx::aron::framed dto.position.z() = bo.z; } + void + fromAron(const arondto::FramedDirection& dto, armarx::FramedDirection& bo) + { + bo.frame = dto.header.frame; + bo.agent = dto.header.agent; + bo.x = dto.direction.x(); + bo.y = dto.direction.y(); + bo.z = dto.direction.z(); + } + + void + toAron(arondto::FramedDirection& dto, const armarx::FramedDirection& bo) + { + dto.header.frame = bo.frame; + dto.header.agent = bo.agent; + dto.direction.x() = bo.x; + dto.direction.y() = bo.y; + dto.direction.z() = bo.z; + } + void fromAron(const arondto::FramedOrientation& dto, armarx::FramedOrientation& bo) { diff --git a/source/RobotAPI/libraries/aron/common/aron_conversions/framed.h b/source/RobotAPI/libraries/aron/common/aron_conversions/framed.h index 39c39967dd495c4d0956806f7814b4e74c4a63b0..9413d98fa5f00f25ef404b28b1b4e8a08578d483 100644 --- a/source/RobotAPI/libraries/aron/common/aron_conversions/framed.h +++ b/source/RobotAPI/libraries/aron/common/aron_conversions/framed.h @@ -7,6 +7,7 @@ namespace armarx::arondto { class FramedPosition; + class FramedDirection; class FramedOrientation; class FramedPose; class FrameID; @@ -17,6 +18,9 @@ namespace armarx::aron::framed void fromAron(const arondto::FramedPosition& dto, armarx::FramedPosition& bo); void toAron(arondto::FramedPosition& dto, const armarx::FramedPosition& bo); + void fromAron(const arondto::FramedDirection& dto, armarx::FramedDirection& bo); + void toAron(arondto::FramedDirection& dto, const armarx::FramedDirection& bo); + void fromAron(const arondto::FramedOrientation& dto, armarx::FramedOrientation& bo); void toAron(arondto::FramedOrientation& dto, const armarx::FramedOrientation& bo); diff --git a/source/RobotAPI/libraries/skills/provider/CMakeLists.txt b/source/RobotAPI/libraries/skills/provider/CMakeLists.txt index 83d51089a1298c56819a820b02e4db8eb3b0ff5a..8cba2a561cc61f3b54d42eddf87839dc1c37e805 100644 --- a/source/RobotAPI/libraries/skills/provider/CMakeLists.txt +++ b/source/RobotAPI/libraries/skills/provider/CMakeLists.txt @@ -11,6 +11,8 @@ armarx_add_library( RobotAPI::Core RobotAPI::skills::core + + RobotAPI::armem_robot_state aronjsonconverter arondatatypeconverter @@ -30,6 +32,9 @@ armarx_add_library( detail/SkillImplementationWrapper.cpp SkillContext.cpp + + mixins/RobotReadingSkillMixin.cpp + HEADERS SkillProviderComponentPlugin.h diff --git a/source/RobotAPI/libraries/skills/provider/mixins/RobotReadingSkillMixin.cpp b/source/RobotAPI/libraries/skills/provider/mixins/RobotReadingSkillMixin.cpp new file mode 100644 index 0000000000000000000000000000000000000000..4ddc20c7d31d16afebb789709889a5a735509c18 --- /dev/null +++ b/source/RobotAPI/libraries/skills/provider/mixins/RobotReadingSkillMixin.cpp @@ -0,0 +1,21 @@ +#include "RobotReadingSkillMixin.h" + +namespace armarx::skills::mixin +{ + + RobotReadingSkillMixin::RobotReadingSkillMixin() = default; + + RobotReadingSkillMixin::RobotReadingSkillMixin( + const armem::robot_state::VirtualRobotReader& r) : + robotReader(r) + { + } + + SpecificRobotReadingSkillMixin::SpecificRobotReadingSkillMixin( + const std::string& rn, + const armem::robot_state::VirtualRobotReader& r) : + robotName(rn), robotReader(r) + { + } + +} // namespace armarx::skills::mixin diff --git a/source/RobotAPI/libraries/skills/provider/mixins/RobotReadingSkillMixin.h b/source/RobotAPI/libraries/skills/provider/mixins/RobotReadingSkillMixin.h index 9394445a59534482aee91a15a6e5e16429483564..4c07ee75640a8cf7769ab3e3c82058aa96559ba7 100644 --- a/source/RobotAPI/libraries/skills/provider/mixins/RobotReadingSkillMixin.h +++ b/source/RobotAPI/libraries/skills/provider/mixins/RobotReadingSkillMixin.h @@ -10,9 +10,8 @@ namespace armarx::skills::mixin { armem::robot_state::VirtualRobotReader robotReader; - RobotReadingSkillMixin(const armem::robot_state::VirtualRobotReader& r) : robotReader(r) - { - } + RobotReadingSkillMixin(); + RobotReadingSkillMixin(const armem::robot_state::VirtualRobotReader& r); }; struct SpecificRobotReadingSkillMixin @@ -21,9 +20,6 @@ namespace armarx::skills::mixin armem::robot_state::VirtualRobotReader robotReader; SpecificRobotReadingSkillMixin(const std::string& rn, - const armem::robot_state::VirtualRobotReader& r) : - robotName(rn), robotReader(r) - { - } + const armem::robot_state::VirtualRobotReader& r); }; } // namespace armarx::skills::mixin