ObjectInstanceToIndex.h
Go to the documentation of this file.
1
/*
2
* This file is part of ArmarX.
3
*
4
* ArmarX is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License version 2 as
6
* published by the Free Software Foundation.
7
*
8
* ArmarX is distributed in the hope that it will be useful, but
9
* WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
12
*
13
* You should have received a copy of the GNU General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
15
*
16
* @package RobotAPI::ArmarXObjects::RobotAndObjectToIndex
17
* @author Rainer Kartmann ( rainer dot kartmann at kit dot edu )
18
* @date 2022
19
* @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20
* GNU General Public License
21
*/
22
23
#pragma once
24
25
#include <vector>
26
27
#include <
ArmarXCore/core/time/Frequency.h
>
28
29
#include <
RobotAPI/libraries/ArmarXObjects/ObjectPoseClient.h
>
30
#include <
RobotAPI/libraries/armem/client/Writer.h
>
31
#include <
RobotAPI/libraries/armem/core/MemoryID.h
>
32
33
34
namespace
armarx::armem::objects
35
{
36
37
class
ObjectInstanceToIndex
38
{
39
public
:
40
void
fetchAndCommitObjectInstances
(
41
const
std::vector<armem::MemoryID>& updatedObjectInstanceSnapshotIDs);
42
43
private
:
44
std::vector<const objpose::ObjectPose*>
45
filterObjectPoses(
const
objpose::ObjectPoseSeq
& objectPoses,
46
const
std::vector<armem::MemoryID>& updatedObjectInstanceSnapshotIDs);
47
48
public
:
49
objpose::ObjectPoseClient
objectPoseClient
;
50
armem::client::Writer
indexSpatialMemoryWriter
;
51
52
armem::MemoryID
indexSpatialProviderSegmentID
;
53
armem::MemoryID
indexNamedProviderSegmentID
;
54
55
56
struct
Parameters
57
{
58
armarx::Frequency
maxFrequency
=
armarx::Frequency::HertzDouble
(60);
59
};
60
Parameters
params
;
61
62
struct
State
63
{
64
std::map<armarx::ObjectID, armarx::DateTime>
latestUpdateDateTimes
;
65
};
66
State
state
;
67
};
68
69
}
// namespace armarx::armem::objects
armarx::armem::objects::ObjectInstanceToIndex::indexSpatialProviderSegmentID
armem::MemoryID indexSpatialProviderSegmentID
Definition:
ObjectInstanceToIndex.h:52
Writer.h
armarx::objpose::ObjectPoseSeq
std::vector< ObjectPose > ObjectPoseSeq
Definition:
forward_declarations.h:20
armarx::armem::objects::ObjectInstanceToIndex::Parameters::maxFrequency
armarx::Frequency maxFrequency
Definition:
ObjectInstanceToIndex.h:58
armarx::armem::objects::ObjectInstanceToIndex::params
Parameters params
Definition:
ObjectInstanceToIndex.h:60
MemoryID.h
Frequency.h
armarx::core::time::Frequency
Represents a frequency.
Definition:
Frequency.h:17
armarx::armem::objects::ObjectInstanceToIndex::State
Definition:
ObjectInstanceToIndex.h:62
armarx::objpose::ObjectPoseClient
Provides access to the armarx::objpose::ObjectPoseStorageInterface (aka the object memory).
Definition:
ObjectPoseClient.h:18
armarx::armem::objects::ObjectInstanceToIndex::fetchAndCommitObjectInstances
void fetchAndCommitObjectInstances(const std::vector< armem::MemoryID > &updatedObjectInstanceSnapshotIDs)
Definition:
ObjectInstanceToIndex.cpp:40
armarx::armem::MemoryID
A memory ID.
Definition:
MemoryID.h:47
armarx::core::time::Frequency::HertzDouble
static Frequency HertzDouble(double hertz)
Definition:
Frequency.cpp:34
armarx::armem::objects::ObjectInstanceToIndex::state
State state
Definition:
ObjectInstanceToIndex.h:66
ObjectPoseClient.h
armarx::armem::client::Writer
Helps a memory client sending data to a memory.
Definition:
Writer.h:22
armarx::armem::objects::ObjectInstanceToIndex::indexNamedProviderSegmentID
armem::MemoryID indexNamedProviderSegmentID
Definition:
ObjectInstanceToIndex.h:53
armarx::armem::objects
Definition:
ObjectInstanceToIndex.cpp:36
armarx::armem::objects::ObjectInstanceToIndex
Definition:
ObjectInstanceToIndex.h:37
armarx::armem::objects::ObjectInstanceToIndex::indexSpatialMemoryWriter
armem::client::Writer indexSpatialMemoryWriter
Definition:
ObjectInstanceToIndex.h:50
armarx::armem::objects::ObjectInstanceToIndex::objectPoseClient
objpose::ObjectPoseClient objectPoseClient
Definition:
ObjectInstanceToIndex.h:49
armarx::armem::objects::ObjectInstanceToIndex::State::latestUpdateDateTimes
std::map< armarx::ObjectID, armarx::DateTime > latestUpdateDateTimes
Definition:
ObjectInstanceToIndex.h:64
armarx::armem::objects::ObjectInstanceToIndex::Parameters
Definition:
ObjectInstanceToIndex.h:56
RobotAPI
components
armem
client
ObjectInstanceToIndex
impl
ObjectInstanceToIndex.h
Generated on Sat Oct 12 2024 09:14:05 for armarx_documentation by
1.8.17