20 #ifndef __OpenKarto_SensorData_h__ 21 #define __OpenKarto_SensorData_h__ 116 m_UniqueId = uniqueId;
143 return m_SensorIdentifier;
152 m_SensorIdentifier = rSensorIdentifier;
159 void AddCustomItem(CustomItem* pCustomItem);
165 const CustomItemList& GetCustomItems()
const;
247 return m_RangeReadings;
256 m_RangeReadings = rRangeReadings;
320 return m_OdometricPose;
329 m_OdometricPose = rPose;
382 return m_OdometricPose;
391 m_OdometricPose = rOdometricPose;
404 return m_CorrectedPose;
413 m_CorrectedPose = rPose;
432 m_GpsReading = rGpsReading;
433 m_IsGpsReadingValid =
true;
442 return m_IsGpsReadingValid;
452 if (m_pGpsEstimationManager != NULL)
454 return m_pGpsEstimationManager->GetGpsEstimate(
this);
458 return m_GpsEstimate;
468 if (m_pGpsEstimationManager != NULL)
470 m_pGpsEstimationManager->SetGpsEstimate(
this, rGpsEstimate);
474 m_GpsEstimate = rGpsEstimate;
475 m_IsGpsEstimateValid =
true;
485 if (m_pGpsEstimationManager != NULL)
487 return m_pGpsEstimationManager->IsGpsEstimateValid(
this);
491 return m_IsGpsEstimateValid;
501 m_pGpsEstimationManager = pGpsEstimationManager;
604 return m_BarycenterPose;
620 return useBarycenter ? GetBarycenterPose() : GetSensorPose();
629 return GetSensorAt(GetCorrectedPose());
638 Pose2 deviceOffsetPose2 = GetLaserRangeFinder()->GetOffsetPose();
641 kt_double angleoffset = atan2(deviceOffsetPose2.
GetY(), deviceOffsetPose2.
GetX());
643 Pose2 worldSensorOffset =
Pose2(offsetLength * cos(correctedHeading + angleoffset - offsetHeading),
644 offsetLength * sin(correctedHeading + angleoffset - offsetHeading),
647 SetCorrectedPose(rSensorPose - worldSensorOffset);
674 return m_BoundingBox;
690 return m_RangeReadings;
699 return m_RangeReadings.Size();
718 virtual void ComputePointReadings() = 0;
726 return m_FilteredPointReadings;
735 return m_UnfilteredPointReadings;
817 return m_LocalAngles;
832 virtual void ComputePointReadings();
895 m_RangeReadings.Resize(static_cast<kt_int32u>(rRangeReadings.size()));
896 if (rRangeReadings.size() > 0)
898 memcpy(&(m_RangeReadings[0]), &(rRangeReadings[0]),
sizeof(
kt_double) * rRangeReadings.size());
915 virtual void ComputePointReadings();
931 #endif // __OpenKarto_SensorData_h__ Pose2 GetSensorAt(const Pose2 &rPose) const
BoundingBox2 m_BoundingBox
LaserRangeFinder * GetLaserRangeFinder() const
void SetOdometricPose(const Pose2 &rOdometricPose)
void SetUniqueId(kt_int32u uniqueId)
SensorDataPrivate * m_pSensorDataPrivate
List< kt_double > DoubleList
kt_int32s GetStateId() const
virtual void SetCorrectedPose(const Pose2 &rCorrectedPose)
void SetOdometricPose(const Pose2 &rPose)
Vector2dList m_LocalPointReadings
SmartPointer< LocalizedObject > LocalizedObjectPtr
RangeReadingsList m_RangeReadings
kt_bool m_IsGpsEstimateValid
Pose2 GetReferencePose(kt_bool useBarycenter) const
void SetGpsEstimate(const gps::PointGps &rGpsEstimate)
const Pose2 & GetBarycenterPose() const
void SetStateId(kt_int32s stateId)
void SetRangeReadings(const RangeReadingsList &rRangeReadings)
Identifier m_SensorIdentifier
void SetGpsEstimationManager(AbstractGpsEstimationManager *pGpsEstimationManager)
kt_bool IsGpsReadingValid() const
kt_int32s GetUniqueId() const
virtual const Vector2dList & GetUnfilteredPointReadings() const
const Pose2 & GetOdometricPose() const
void SetSensorIdentifier(const Identifier &rSensorIdentifier)
Identifier m_SensorIdentifier
const DoubleList & GetLocalAngles() const
const RangeReadingsList & GetRangeReadings() const
void SetSensorPose(const Pose2 &rSensorPose)
#define KARTO_FORCEINLINE
SmartPointer< LocalizedLaserScan > LocalizedLaserScanPtr
RangeReadingsList m_RangeReadings
Vector2dList m_UnfilteredPointReadings
virtual const Vector2dList & GetFilteredPointReadings() const
const RangeReadingsList & GetRangeReadings() const
const BoundingBox2 & GetBoundingBox() const
kt_bool m_IsGpsReadingValid
LaserRangeFinder * GetLaserRangeFinder() const
void SetGpsReading(const gps::PointGps &rGpsReading)
const Identifier & GetSensorIdentifier() const
const Pose2 & GetOdometricPose() const
kt_bool IsGpsEstimateValid() const
DrivePose(const Identifier &rSensorIdentifier)
kt_int64s GetTime() const
KARTO_TYPE(Grid< kt_int8u >)
Sensor * GetSensorByName(const Identifier &rName)
gps::PointGps m_GpsEstimate
virtual void SetCorrectedPose(const Pose2 &rPose)
static SensorRegistry * GetInstance()
const Pose2 & GetCorrectedPose() const
Vector2dList m_FilteredPointReadings
kt_double NormalizeAngle(kt_double angle)
void SetTime(kt_int64s time)
signed long long kt_int64s
gps::PointGps GetGpsReading() const
AbstractGpsEstimationManager * m_pGpsEstimationManager
const Vector2d & GetPosition() const
KARTO_DEPRECATED KARTO_FORCEINLINE LocalizedRangeScan(const Identifier &rSensorIdentifier, std::vector< kt_double > &rRangeReadings)
gps::PointGps GetGpsEstimate() const
kt_size_t GetNumberOfRangeReadings() const
Pose2 GetSensorPose() const
List< kt_double > RangeReadingsList
List< LocalizedObjectPtr > LocalizedObjectList
List< LocalizedLaserScanPtr > LocalizedLaserScanList
gps::PointGps m_GpsReading
kt_double GetHeading() const