diff --git a/source/RobotAPI/components/units/HapticObserver.cpp b/source/RobotAPI/components/units/HapticObserver.cpp index ed10cc0355424c71e974b67d624b754d92991d7d..2ad4e48737c6b673804c79d5b6e90b0fd8e02d8b 100644 --- a/source/RobotAPI/components/units/HapticObserver.cpp +++ b/source/RobotAPI/components/units/HapticObserver.cpp @@ -39,7 +39,6 @@ void HapticObserver::onInitObserver() offerConditionCheck("larger", new ConditionCheckLarger()); offerConditionCheck("equals", new ConditionCheckEquals()); offerConditionCheck("smaller", new ConditionCheckSmaller()); - } void HapticObserver::onConnectObserver() @@ -55,7 +54,14 @@ void HapticObserver::onExitObserver() void HapticObserver::reportSensorValues(const std::string& device, const std::string& name, const armarx::MatrixFloatBasePtr& values, const armarx::TimestampBasePtr& timestamp, const Ice::Current&) { ScopedLock lock(dataMutex); + MatrixFloatPtr matrix = MatrixFloatPtr::dynamicCast(values); + if (matrix->cols == 0) + { + // Empty matrix received, silently ignore + return; + } + TimestampVariantPtr timestampPtr = TimestampVariantPtr::dynamicCast(timestamp); Eigen::MatrixXf eigenMatrix = matrix->toEigen(); float max = eigenMatrix.maxCoeff();