RobotHeadMovement.h
Go to the documentation of this file.
1#pragma once
2
3#include <optional>
4#include <string>
5#include <vector>
6
9#include <ArmarXCore/interface/observers/ObserverInterface.h>
11
13
14#include <RobotAPI/interface/objectpose/ObjectPoseStorageInterface.h>
15#include <RobotAPI/interface/observers/KinematicUnitObserverInterface.h>
16
17namespace armarx
18{
20 using PropertyDefinitionsPtr = IceUtil::Handle<PropertyDefinitionContainer>;
21} // namespace armarx
22
24{
26 {
27 public:
29 const std::string& prefix = "head.");
30
31 void fetchDatafields();
32 bool isMoving() const;
33
34 void movementStarts(long discardIntervalMs);
35 void movementStarts(const Duration& discardInterval);
36 void movementStops(long discardIntervalMs);
37 void movementStops(const Duration& discardInterval);
38
39 objpose::SignalHeadMovementOutput
40 signalHeadMovement(const objpose::SignalHeadMovementInput& input);
41
42 struct Discard
43 {
44 std::optional<DateTime> updatesUntil;
45 bool all = false;
46 };
47
49
50
51 public:
52 bool checkHeadVelocity = true;
53
54 std::string jointVelocitiesChannelName = "jointvelocities";
55 std::vector<std::string> jointNames = {"Neck_1_Yaw", "Neck_2_Pitch"};
56 float maxJointVelocity = 0.05f;
58
59 KinematicUnitObserverInterfacePrx kinematicUnitObserver;
60 std::vector<DatafieldRefPtr> jointVelocitiesDatafields;
62
64
76 };
77
78} // namespace armarx::armem::server::obj::instance
static DateTime Invalid()
Definition DateTime.cpp:57
Base Class for all Logging classes.
Definition Logging.h:240
objpose::SignalHeadMovementOutput signalHeadMovement(const objpose::SignalHeadMovementInput &input)
void defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string &prefix="head.")
Represents a point in time.
Definition DateTime.h:25
armarx::core::time::Duration Duration
This file offers overloads of toIce() and fromIce() functions for STL container types.
::IceInternal::ProxyHandle<::IceProxy::armarx::DebugObserverInterface > DebugObserverInterfacePrx
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.