Skip to content
Snippets Groups Projects
Commit 2cbeb27e authored by Rainer Kartmann's avatar Rainer Kartmann
Browse files

Pass Aron dict in RobotUnitData

parent c4309b6e
No related branches found
No related tags found
2 merge requests!188ArMem Updates,!185Clean up interfaces and unneeded code in memory core classes
......@@ -39,6 +39,7 @@
#include <RobotAPI/libraries/armem/core/ice_conversions.h>
#include <RobotAPI/libraries/armem/server/MemoryToIceAdapter.h>
#include <RobotAPI/libraries/armem_robot_state/aron/Transform.aron.generated.h>
#include <RobotAPI/libraries/armem_robot_state/aron/Proprioception.aron.generated.h>
#include <RobotAPI/libraries/armem_robot_state/server/localization/Segment.h>
......@@ -143,19 +144,20 @@ namespace armarx::armem::server::robot_state::proprioception
armem::EntityUpdate& up = update.proprioception.add();
up.entityID = properties.robotUnitProviderID.withEntityName(properties.robotUnitProviderID.providerSegmentName);
up.timeCreated = data.timestamp;
up.instancesData = { data.proprioception.toAron() };
up.instancesData = { data.proprioception };
// odometry pose -> localization segment
if (data.proprioception->hasElement("platform"))
{
ARMARX_DEBUG << "Found odometry data.";
const Eigen::Vector3f& relPose = data.proprioception.platform.relativePosition;
prop::arondto::Platform platform;
platform.fromAron(aron::datanavigator::DictNavigator::DynamicCastAndCheck(data.proprioception->getElement("platform")));
const Eigen::Vector3f& relPose = platform.relativePosition;
Eigen::Affine3f odometryPose = Eigen::Affine3f::Identity();
odometryPose.translation() << relPose.x(), relPose.y(), 0; // TODO set height
odometryPose.linear() = simox::math::rpy_to_mat3f(0.F, 0.F, relPose.z());
// const auto timestamp = armem::Time::microSeconds(it->second.timestamp);
armem::robot_state::Transform& transform = update.localization;
transform.header.parentFrame = armarx::OdometryFrame;
transform.header.frame = "root"; // TODO: robot root node
......
#pragma once
#include <memory>
#include <RobotAPI/libraries/armem/core/Time.h>
#include <RobotAPI/libraries/armem_robot_state/aron/Proprioception.aron.generated.h>
namespace armarx::aron::datanavigator
{
using DictNavigatorPtr = std::shared_ptr<class DictNavigator>;
}
namespace armarx::armem::server::robot_state::proprioception
{
struct RobotUnitData
{
armem::Time timestamp;
arondto::Proprioception proprioception;
Time timestamp;
aron::datanavigator::DictNavigatorPtr proprioception;
};
}
......
......@@ -4,6 +4,7 @@
#include <SimoxUtility/algorithm/advanced.h>
#include <RobotAPI/libraries/RobotUnitDataStreamingReceiver/RobotUnitDataStreamingReceiver.h>
#include <RobotAPI/libraries/aron/core/navigator/data/container/Dict.h>
namespace armarx::armem::server::robot_state::proprioception
......@@ -164,7 +165,8 @@ namespace armarx::armem::server::robot_state::proprioception
}
arondto::Proprioception Armar6RobotUnitDataConverter::convert(
aron::datanavigator::DictNavigatorPtr
Armar6RobotUnitDataConverter::convert(
const RobotUnitDataStreaming::TimeStep& data,
const RobotUnitDataStreaming::DataStreamingDescription& description)
{
......@@ -175,7 +177,7 @@ namespace armarx::armem::server::robot_state::proprioception
{
process(dto, dataEntryName, {data, dataEntry});
}
return dto;
return dto.toAron();
}
......
......@@ -23,7 +23,7 @@ namespace armarx::armem::server::robot_state::proprioception
virtual ~Armar6RobotUnitDataConverter() override;
arondto::Proprioception convert(
aron::datanavigator::DictNavigatorPtr convert(
const RobotUnitDataStreaming::TimeStep& data,
const RobotUnitDataStreaming::DataStreamingDescription& description) override;
......
......@@ -6,7 +6,6 @@ namespace armarx::armem::server::robot_state
RobotUnitDataConverterInterface::~RobotUnitDataConverterInterface()
{
}
}
#pragma once
#include <memory>
namespace armarx::RobotUnitDataStreaming
{
......@@ -11,6 +13,10 @@ namespace armarx::armem::arondto
{
class Proprioception;
}
namespace armarx::aron::datanavigator
{
using DictNavigatorPtr = std::shared_ptr<class DictNavigator>;
}
namespace armarx::armem::server::robot_state
{
......@@ -20,7 +26,7 @@ namespace armarx::armem::server::robot_state
virtual ~RobotUnitDataConverterInterface();
virtual arondto::Proprioception convert(
virtual aron::datanavigator::DictNavigatorPtr convert(
const RobotUnitDataStreaming::TimeStep& data,
const RobotUnitDataStreaming::DataStreamingDescription& description) = 0;
......
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