47 InertialMeasurementUnitListenerPrx batchPrx =
IMUTopicPrx->ice_batchOneway();
48 for (
auto nam2idx :
devs)
50 const auto devidx = nam2idx.second;
51 const auto& dev = nam2idx.first;
57 Ice::FloatSeq(s->linearAcceleration.data(),
58 s->linearAcceleration.data() +
59 s->linearAcceleration.rows() * s->linearAcceleration.cols());
60 data.gyroscopeRotation = Ice::FloatSeq(
61 s->angularVelocity.data(),
62 s->angularVelocity.data() + s->angularVelocity.rows() * s->angularVelocity.cols());
64 data.orientationQuaternion = {
65 s->orientation.w(), s->orientation.x(), s->orientation.y(), s->orientation.z()};
67 batchPrx->reportSensorValues(dev, frame,
data, t);
69 batchPrx->ice_flushBatchRequests();
SpamFilterDataPtr deactivateSpam(SpamFilterDataPtr const &spamFilter, float deactivationDurationSec, const std::string &identifier, bool deactivate)
void update(const SensorAndControl &sc, const JointAndNJointControllers &c) override
std::map< std::string, std::size_t > devs
void onStartIMU() override
InertialMeasurementUnitListenerPrx IMUTopicPrx
Ice::ObjectPrx getProxy(long timeoutMs=0, bool waitForScheduler=true) const
Returns the proxy of this object (optionally it waits for the proxy)
The SensorValueBase class.
Implements a Variant type for timestamps.
#define ARMARX_CHECK_EXPRESSION(expression)
This macro evaluates the expression and if it turns out to be false it will throw an ExpressionExcept...
#define ARMARX_IMPORTANT
The logging level for always important information, but expected behaviour (in contrast to ARMARX_WAR...
detail::ControlThreadOutputBufferEntry SensorAndControl
IceInternal::Handle< TimestampVariant > TimestampVariantPtr
Structure used by the RobotUnit to swap lists of Joint and NJoint controllers.
IceUtil::Time sensorValuesTimestamp
std::vector< PropagateConst< SensorValueBase * > > sensors