Go to the documentation of this file.
14 "If true, check whether the head is moving and discard updates in the meantime.");
16 "If a head joint's velocity is higher, the head is considered moving.");
18 "For how long new updates are ignored after moving the head.");
25 for (
const std::string& jointName :
jointNames)
27 std::string error =
"";
37 catch (
const InvalidDatafieldException& e)
54 ARMARX_INFO <<
"Cannot fetch joint velocity datafields because there is no kinematic unit observer.";
64 float jointVelocity = df->getFloat();
103 objpose::SignalHeadMovementOutput output;
104 switch (
input.action)
106 case objpose::HeadMovementAction::HeadMovementAction_Starting:
108 ? this->discardIntervalAfterMoveMS
109 :
input.discardUpdatesIntervalMilliSeconds);
111 case objpose::HeadMovementAction::HeadMovementAction_Stopping:
112 this->
movementStops(input.discardUpdatesIntervalMilliSeconds);
void setValue(int newValue)
#define ARMARX_UNEXPECTED_ENUM_VALUE(EnumType, value)
Throw an UnexpectedEnumValueException.
DateTime discardUpdatesUntil
void setup(const RobotHeadMovement &rhm)
armarx::RemoteGui::Client::FloatSpinBox maxJointVelocity
GridLayout & add(Widget const &child, Pos pos, Span span=Span{1, 1})
void setValue(float newValue)
std::vector< T > max(const std::vector< T > &v1, const std::vector< T > &v2)
void setRange(float min, float max)
KinematicUnitObserverInterfacePrx kinematicUnitObserver
void movementStops(long discardIntervalMs)
std::vector< std::string > jointNames
void defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string &prefix="head.")
armarx::RemoteGui::Client::GroupBox group
void update(RobotHeadMovement &rhm)
void movementStarts(long discardIntervalMs)
uint32_t Label
Type of an object label.
std::vector< T > abs(const std::vector< T > &v)
armarx::RemoteGui::Client::IntSpinBox discardIntervalAfterMoveMS
ReaderT::InputType & input
void setDecimals(int decimals)
void setLabel(std::string const &text)
std::int64_t toMilliSecondsSinceEpoch() const
std::optional< DateTime > updatesUntil
void setValue(bool newValue)
void setRange(int min, int max)
int discardIntervalAfterMoveMS
std::int64_t toMilliSeconds() const
Returns the amount of milliseconds.
objpose::SignalHeadMovementOutput signalHeadMovement(const objpose::SignalHeadMovementInput &input)
armarx::RemoteGui::Client::CheckBox checkHeadVelocity
std::vector< DatafieldRefPtr > jointVelocitiesDatafields
std::string jointVelocitiesChannelName
static DateTime Invalid()
static Duration MilliSeconds(std::int64_t milliSeconds)
Constructs a duration in milliseconds.