Conscience Core
CscEntityReflexion.h
Go to the documentation of this file.
1 //
2 // CscEntityReflexion.hpp
3 // ConscienceRobotManager
4 //
5 // Created by Iliès Zaoui on 25/11/2020.
6 // Copyright © 2018 IliesZaoui. All rights reserved.
7 //
8 
9 #ifndef CscEntityReflexion_h
10 #define CscEntityReflexion_h
11 
12 #include "CscCommon.h"
13 
14 #include "CscEntitySensorValues.h"
16 
22 #include <Lidar/CscLidarEngine.h>
24 #include <Util/json.h>
25 #include <thread>
26 #include <shared_mutex>
27 
29 #pragma region forwardDefs
30 class CscEntityModel;
31 class CscState;
32 class CscSequence;
34 }
36 enum CscArtificialIntelligenceType : uint64_t;
37 class CscKnowledgeItem;
38 }
39 namespace cv {
40 class Mat;
41 };
43 class CscSlamEngine;
45 }
48 }
51 class CscTimer;
52 }
55 class CscCaptureEngine;
58 }
59 namespace conscience_core::ai {
61 }
62 #pragma endregion forwardDefs
63 
64 using namespace conscience_core::detector_engine;
65 using namespace conscience_core::core_objects;
66 using namespace conscience_core::ai;
67 using namespace conscience_core::media_capture;
68 using namespace conscience_core::lidar;
69 using namespace conscience_core::knowledge;
70 using namespace conscience_utils;
72 using namespace conscience_utils::JSON;
73 using namespace conscience_core::ai::alerts;
74 
75 using namespace conscience_core::ai::data;
77 using namespace conscience_utils::async;
78 
79 using std::prev, std::thread, std::recursive_mutex, std::chrono::system_clock, std::chrono::duration, std::remove_if, std::chrono::duration_cast, std::chrono::milliseconds, std::function;
80 using std::shared_mutex, std::chrono_literals::operator""s, std::chrono_literals::operator""ms, std::chrono_literals::operator""h;
81 
82 namespace conscience_core::ai {
83 class CscSimulationWorld;
84 class TrackedObject;
88 
90  float offsetTop;
91  float offsetRight;
92 
93  CaptureDetectFocusLoopConfiguration(float theOffsetTop, float theOffsetRight) {
94  offsetTop = theOffsetTop;
95  offsetRight = theOffsetRight;
96  }
97 };
98 
100 public:
101  CscEntityIdentity(string name, string birthday);
102  const string name;
103  const string birthday;
104 };
105 
107 public:
108  const string modelId;
109  const string serialNumber;
111 
115  CscEntityReflexionParameters(string serialNumber, string modelId, ptr<CscEntityVideoSource> videoSource, bool useGnssPositioning = false, optional<ptr<CscEntityIdentity>> entityIdentity = {}, optional<string> localProjection = {}, ptr<CscEntityClient> entityClient = nullptr, bool physicsRequiresAdditionalInit = false, optional<PositionFormat> simulatedInputsType = {});
116  static ptr<CscEntityReflexionParameters> create(string serialNumber, string modelId, ptr<CscEntityVideoSource> videoSource, bool useGnssPositioning = false, optional<ptr<CscEntityIdentity>> entityIdentity = {}, optional<string> localProjection = {}, ptr<CscEntityClient> entityClient = nullptr, optional<PositionFormat> simulatedInputsType = {});
117  const bool useGnssPositioning;
118  operator string() const;
119  string serialize() const;
120  CscJsonObject *serializeJson() const;
121  bool equals(const CscEntityReflexionParameters &other) const;
122  static ptr<CscEntityReflexionParameters> fromSerialized(const string &serialized);
123  static ptr<CscEntityReflexionParameters> fromSerializedJson(CscJsonObjectReader &serialized);
124  ptr<CscEntityIdentity> getEntityIdentity() const;
125  ptr<CscEntityClient> getEntityClient() const;
126  void setEntityClient(ptr<CscEntityClient> client);
127  bool isSimulated() const;
128  bool doesPhysicsRequireAdditionalInit() const;
129  const optional<PositionFormat> simulatedInputsType;
131 
132 private:
133  ptr<CscEntityIdentity> entityIdentity;
134  ptr<CscEntityClient> entityClient;
135  bool physicsRequiresAdditionalInit;
136 };
137 
139 public:
141 
144  optional<string> pathPrefix = "";
145  optional<int> port;
156  vector<string> emailAddresses;
157 
158  int getPort() const;
159  operator string() const;
160 
161  bool hasBackendNotification() const;
163  DetectionNotificationParameters(const optional<string> &protocol, const optional<string> &host, const optional<string> &pathPrefix, const optional<int> &port, bool uploadVideo, int periodMilliseconds, int videoDurationMillis, const vector<string> &vocalNotificationPhoneNumbers, const vector<string> &emailAddresses);
164  };
165 
170  const vector<ConscienceDetectorType> detectors;
171 
176  const vector<ptr<const CscAlertIdentificationConfig>> alerts;
177 
182  const vector<CscDetectionStatsType> stats;
183 
185  const optional<DetectionNotificationParameters> notificationParameters;
186  const bool locateInSimulator;
187  const optional<bool> waitForFirstResult;
188  CscDetectorEngine *const detector = nullptr;
189 
190  const map<string, string> additionalParams;
191 
200  CscEntityReflexionDetectionParameters(const vector<ConscienceDetectorType> &detectors = {},
201  const vector<ptr<const CscAlertIdentificationConfig>> &alerts = {},
202  const vector<CscDetectionStatsType> &stats = {},
203  bool shouldFocusDetections = false,
204  const optional<DetectionNotificationParameters> &notificationParameters = {},
205  bool locateInSimulator = true,
206  const map<string, string> &additionalParams = {},
207  CscDetectorEngine *detector = nullptr);
208 
209  bool isNotificationEnabled() const;
210 
214  bool isStop() const;
215 
219  bool shouldVisionBeEnabled() const;
220  bool doesAlertTypeNeedVision(CscAlertType alertType) const;
221 
222  operator string() const;
223  string toString() const;
224 };
225 
227  float offsetTop;
228  float offsetRight;
229 };
230 
232  string objectId;
236  double certitude;
237  unsigned long long immobileSinceMilliseconds;
238 
239  LiveEnvironmentDetectedObject(const string &objectId,
240  int objectModelId,
241  const CscPoint3d &position,
242  const CscPoint3d &rotation,
243  double certitude,
244  unsigned long long immobileSinceMilliseconds);
245 };
246 
247 typedef function<void(bool accept)> Answer;
249 public:
250  const string uid;
251  const string message;
252  bool obsolete = false;
253  HumanDecision(const string &uid, const string &message, const Answer &answer);
254  operator string() const;
255  void answer(bool accept);
256  optional<bool> getAnswer() const;
257 
258 private:
259  const Answer answerFunction;
260  optional<bool> result = {};
261 };
262 
263 enum FocusType {
266 };
267 
271 };
272 
275  optional<IkFocusParam> ikParam = {};
276 
277  FocusParameter(FocusType focusType, IkFocusParam ikParam) : focusType(focusType), ikParam(ikParam) {}
278 };
279 
282 
284  unsigned fps = 0;
285  unsigned long long lastFrameTimestampMillis = 0;
286  string activeDetectionDescription = "";
287  string enabledAlertsDescription = "";
288 };
289 
290 typedef uint64_t CscEntityStatusFlags;
292  // the status is implemented on 64 bit , so 64 statuses are available
293  // if change, add or update state , think to update connect entityStatus
294  NONE = 0,
298  READY = 1ULL << 0,
302  CONSCIENCE_START = 1ULL << 1,
314  RECEIVE_MESSAGE = 1ULL << 4,
318  SEND_MESSAGE_CHUNKED = 1ULL << 5,
322  PROCESS_COMMAND = 1ULL << 6,
326  SEND_TCP_MESSAGE = 1ULL << 7,
334  CHECKING_UPGRADE = 1ULL << 9,
338  UPGRADE_IN_PROGRESS = 1ULL << 10,
342  OBSTACLE_IN_RANGE = 1ULL << 11,
366  ENTITY_BLOCKED_GYRO = 1ULL << 17,
370  ENTITY_BLOCKED_GPS = 1ULL << 18,
379 
382 };
383 
385 
392 public:
399 
400  virtual ~CscEntityReflexion();
401 
405  void stopAndRelease(bool removeFromEnvironment = true);
406 
407  map<string, EntitySensorValues> getAllSensorValuesBySensorName();
408  void setSensorValues(const string &sensorName, const map<string, double> &values);
409  bool isLidarEngineActivated();
410  bool isLidarEngineInitialized();
411 
412  string getEntityType(const CscEntityModel &model) const;
413 
417  void restoreCartography(optional<fs::path> cartographyDirMaybe = {});
418  CscPlaceCartography *getCartography() const;
419 
420  void setScene(CscWorldPlace *place);
421 
426  CscCaptureEngine *getCaptureEngine(const optional<string> &videoSourceId = {}) const;
427 
428  void resetToInitialState();
429  ptr<CscEntityReflexion> getSharedPtr() const;
430 
438  void consumeVideoSource(const optional<string> &id = {}, bool reopenEvenIfAlreadyOpened = true);
439 
448  void setVideoSource(ptr<CscEntityVideoSource> videoSource, bool consumeIfClosedOrSourceChanged = false);
449 
454  void resetParameters(ptr<CscEntityReflexionParameters>);
455 
456  ptr<const CscEntityReflexionParameters> getParameters() const;
457 
458  ptr<CscEntityReflexionDetectionParameters> getDetectionParameters();
459  void setDetectionParameters(ptr<CscEntityReflexionDetectionParameters>);
460 
461  void unwatchAlerts(const vector<CscAlertType> &alertsToBeUnwatched);
465  vector<CscDetectedAlert> getAlerts();
470  void addAlert(CscDetectedAlert *newIdentifiedAlert);
471  void markAlertDone(const AlertId &alertId);
472  bool isAlertDone(const AlertId &alertId);
473  void setAlertsMaxAgeMillis(long alertsMaxAgeMillis);
474 
475  void fireLiveEnvironmentUpdate();
476 
477  ptr<CscEntityClient> getEntityClient() const;
478 
479  optional<ptr<DetectionResult>> getLastDetectionResult();
480 
481  CscEnvironmentSimulator &getGlobalEnvironmentSimulator();
482 
483  void addLiveEnvironmentUpdateListener(LiveEnvironmentUpdateListener listener);
484  void onSequenceToBeSentToRealEntity(SequenceProcessorSendSequenceListener listener);
485 
486  const string &getSerialNumber() const;
487  const string &getEntityModelId() const;
488 
492  optional<fs::path> stopLastPeriodCaptureRecordingToFile();
493 
494  void startLastPeriodCaptureRecordingToFile(short durationSeconds, const fs::path &outputPath);
495 
496  void stopCaptureRecordingToFile();
497 
498  void startCaptureRecordingToFile(const fs::path &outputPath, const optional<string> &videoSourceId = {});
499 
500  void purgeAIObjectives();
501 
502  const CscEntityModel *getEntityModel() const;
503 
504  const CscSimulationWorld *getAISimulationWorld() const;
505 
506  float *geAIObjectivesStatus() const;
507 
511  CscSequence *processKnowledgeItem(CscKnowledgeItem *knowledgeItem, CscState *initialState);
512 
513  void stopLidarEngine();
514  void startLidarEngineLocalDevice(string devicePath, double *currentState);
515  void startLidarEngineEntity();
516  optional<string> getStringDetectorResult();
517  void clearStringDetectorResult();
518 
519  void vocalPhoneCallTest(const vector<string> &phoneNumbers, const map<string, string> &additionalParams);
520 
521  void removeObjectivesByAITypes(knowledge::CscArtificialIntelligenceType type);
522 
523  void setSlamCartographyActivated(bool enable);
524  void stopAndSaveLidarCartography();
525 
529  void setSlamLocalizationActivated(bool enable, CscPoint3dOriented *position = nullptr);
530 
531  void clearLidarCartography();
532 
533  CscEntityPositionManager *getPositionManager() const;
534 
535  vector<ptr<HumanDecision>> getOngoingDecisions();
536  void answerDecision(const string &decisionUid, bool accept);
537 
538  const FocusParameter *getFocusParameter();
539  void setFocusParameter(const FocusParameter *focusParam);
540 
541  map<string, ptr<CscPublicAIData>> getPublicAIDataForSubject(const string &subject);
542  void clearPublicAIDataForSubject(const string &subject);
543 
544  CscSequencesProcessor *getSequenceProcessor() const;
545  CscSlamEngine *getSlamEngine();
546  CscLidarEngine *getLidarEngine();
547 
551  bool isSimulated() const;
552 
556  bool useGnssPositioning() const;
557 
558  ptr<CscEntityIdentity> getEntityIdentity() const;
559 
563  void sendSequenceToRealRobot(CscSequence *sequence) const;
564 
569  void ifRunning(function<void()> action);
570 
571  void loadCartographyFromPoints(const vector<const CscPoint3d *> &points);
572 
573  const vector<ptr<CscEntityVideoSource>> &getVideoSources() const;
574 
578  ptr<CscEntityVideoSource> getVideoSource(const optional<string> &id = {}) const;
579 
583  void addVideoSource(ptr<CscEntityVideoSource> videoSource);
584 
589  void removeVideoSource(ptr<CscEntityVideoSource> videoSource);
590 
595  static bool &autoCloseStreamEnabled();
596 
597  CscEntityReflexionActivity getActivitySummary();
598 
600  return detectionState;
601  }
607  CscEntityStatusFlags getAllEntityStatusFlags() const;
611  bool hasStatusFlag(const vector<CscEntityStatusFlagsList> &statuses) const;
612  bool hasStatusFlag(CscEntityStatusFlagsList status) const;
613 
617  void setLastEntityStatusFlags(const string &lastEntityStatusFlags);
618 
622  void addAdditionalEntityStatusFlag(CscEntityStatusFlagsList flag);
623  void removeAdditionalEntityStatusFlag(CscEntityStatusFlagsList flag);
624 
625  void startAutonomousExploration();
626  void stopAutonomousExploration();
627 
628  void setEntityClient(ptr<CscEntityClient> entityClient);
629 
630  void ifNotStopped(const function<void()> &action);
631 
635  void addCustomData(const map<string, void *> &customData);
639  map<string, void *> getCustomData() const;
643  void *getCustomDataValue(const string &key) const;
644 
649  void *eraseCustomData(const string &key);
650 
651  template <typename T>
652  optional<T> getCustomDataValueCopy(const string &key) const {
653  std::shared_lock lock(customDataMutex);
654  T *result = nullptr;
655  auto valueMatch = customData.find(key);
656  if (valueMatch != customData.end()) {
657  result = static_cast<T *>(valueMatch->second);
658  }
659  return result == nullptr ? nullopt : optional<T>(*result);
660  }
661 
662  bool isStopping() const;
663 
664 private:
665  CscEntityStatusFlags lastEntityStatusFlags = 0;
666  CscEntityStatusFlags additionalEntityStatusFlags = 0;
667  void addPublicAIDataFromTrackedObjects(map<string, map<string, CscPublicAIData *>> &updatedPublicAIData);
668 
669  map<string, EntitySensorValues> sensorValuesBySensorName;
670  shared_mutex sensorValuesMutex;
671 
672  inline bool shouldTriggerNotificationsInstantly() const { return getSerialNumber() == "8"; }
673  bool loopRunning = false;
674  unsigned loopTerminatedCount = 0;
675  thread reflexionThread;
676  ptr<CscEntityReflexion> *thisPtr;
677  void identifyDetectionAlerts();
678  optional<string> stringDetectorResult = {};
679  unsigned long lastCartographyActivityMillis = 0;
680  const long loadCartographyLogIntervalMillis = 15000;
681  bool previousCartographyDetected = false;
682 
683  void captureDetectLoopTick();
684 
685  unsigned long long cartographyOccupiedCellsLastRefreshTimeMillis;
686 
687  vector<ptr<CscEntityVideoSource>> videoSources;
688 
689  CscSimulationWorld *AISimulationWorld;
690  void startAI();
691  void AILoopTick();
692  recursive_mutex captureDetectMutex;
693  int processKnowledgeRequestsCount = 0;
694 
695  vector<LiveEnvironmentUpdateListener> liveEnvironmentListeners;
696  vector<SequenceProcessorSendSequenceListener> sequenceToBeSentToRealEntityListeners;
697 
698  optional<ptr<DetectionResult>> lastDetectionResult = {};
699 
700  thread *captureDetectThread = nullptr;
701 
703  ptr<CscEntityReflexionDetectionParameters> detectionParameters = nullptr;
704 
705  CscLidarEngine *lidarEngine = nullptr;
706  CscSlamEngine *slamEngine = nullptr;
707 
709  CscEntityPositionManager *positionManager = nullptr;
710 
711  void focusClosestDetectedObject();
712  optional<int> currentFocusedObjectId = {};
713 
714  CscCaptureEngine *captureEnginePrimary = nullptr;
715  map<string, CscCaptureEngine *> secondaryCaptureEngines;
716  ptr<CscCaptureFileRecorder> lastPeriodCaptureFileRecorder = nullptr;
717  mutex captureFileRecorderMutex;
718  ptr<CscCaptureFileRecorder> fileRecorder = nullptr;
719 
720  CscPlaceCartography *currentPlaceCartography = nullptr;
721  mutable mutex currentPlaceCartographyMutex;
722 
723  const FocusParameter *focusParameter = nullptr;
724 
725  // TODO : move in detection parameters
726  CaptureDetectFocusLoopConfiguration currentCaptureDetectFocusLoopConfiguration = CaptureDetectFocusLoopConfiguration(0, 0);
727  VisionDetectionLogger *cscVisionDetectionLogger;
728 
729  CscDetectorEngine *detector = nullptr;
730  void resolveDetector();
731  inline bool isDetectionEnabled() const { return detector != nullptr; }
732 
733  vector<CscDetectorEngine *> detectorsToBeDeleted;
737  milliseconds trackingMaxAbsenceDuration = 2000ms;
741  milliseconds trackingMaxActualDetectionMissingDuration = 6000ms;
742 
743  bool isAlertEnabled(CscAlertType type) const;
747  ptr<const CscAlertIdentificationConfig> getAlertConfig(CscAlertType type) const;
748 
749  vector<CscDetectionStatsType> enabledStatsTypes;
750 
751  ptr<DetectionResult> performDetectionOnImage(const cv::Mat &currentFrame, cv::Mat &resultingImage);
752 
760  void startLoops();
761 
762  void reflexionThreadLoop();
763 
779  void cartographyAndLocalizationProcess();
780 
781  int detectionFrameId = 0;
782 
784  optional<unsigned long long> streamOpenWithDetectionOffStartTimeMillis = {};
785 
786  CscTimer *lastSuccessfulDetectionTimer = nullptr;
787  struct CSC_DLL_IMPORTEXPORT VisionDetectionTargetObjectOffset visionDetectionTargetObjectOffset;
788 
789  CscState *initialState;
790 
791  const string detectionResultImagesDirectoryPath = "";
792 
793  bool autobackToInitialStateEnabled = false;
794 
799  const LenseParameter *getLenseParameters() const;
800 
801  cv::Mat *lastFrame = nullptr;
802  unsigned long long lastFrameTimeMillis = 0;
803  unsigned fps = 0;
804  unsigned fpsFramesCount = 0;
805  unsigned long long lastFpsRefreshMillis = 0;
806  bool streamUnavailabilityNotified = true;
807 
808  unique_ptr<CscLogger> logger;
809 
810  system_clock::time_point lastFocusStateTime = system_clock::now();
811 
812  /* end of TrackedObject */
813 
820  map<CscDetectionStatsType, double> gatherDetectionStats();
821 
822  system_clock::time_point lastAlertIdentificationTime = system_clock::now() - 12h;
823  map<AlertId, CscDetectedAlert *> alerts;
827  long alertsMaxAgeMillis = 12 * 60 * 60 * 1000;
828  shared_mutex alertsMutex;
829 
830  void purgeOldAlerts();
831  vector<AlertId> getAlertIds(vector<ptr<CscDetectedAlert>> alerts);
832  system_clock::time_point lastNotificationsCheckTime = system_clock::now() - 12h;
833  unsigned long long lastLidarCartographyTimeMillis = 0;
834  unsigned long long lastTimeLoggedLidarLossTimeMillis = 0;
835  size_t lastRenderedSceneMatrixSize = 0;
836 
837  map<AlertId, system_clock::time_point> alertNotificationTimes;
838 
845  void notifyDetections();
846 
850  void notifyDetectionsThreadAction(const vector<CscDetectedAlert> &alerts, map<CscDetectionStatsType, double> stats, fs::path videoPath, CscEntityReflexionDetectionParameters::DetectionNotificationParameters notificationParameters);
851 
852  void resetEntityToInitialStateIfDetectionTimeout(ptr<DetectionResult> &detectionResult);
853  void updateCurrentAlerts(map<AlertId, CscDetectedAlert *> currentAlerts);
854 
855  void logVisionDetection(const ptr<DetectionResult> &detectionResult);
856 
857  void updateSimulator(const vector<ptr<TrackedObject>> &removedObjects);
858 
859  void showLidarLocalizationInEnvironment(const CscPoint3d *estimatedPosition, float eulerY);
860 
861  mutex stopMutex;
862  bool isStoppingValue = false;
863 
864  mutex ongoingDecisionsMutex;
865  map<string, ptr<HumanDecision>> ongoingDecisions;
866  ptr<HumanDecision> addDecision(
867  const string &message, Answer answer = [](bool accepted) {});
868  void removeDecision(const string &decisionUid);
869  int lastDecisionUid = 0;
870  ptr<CscEntityDetectionState> detectionState = nullptr;
871  bool trackingEnabled = false;
872  void filterAlertsOnTimeSlots(map<AlertId, CscDetectedAlert *> &alerts);
873  vector<ptr<const CscAlertIdentificationConfig>> enabledAlerts;
874 
875  map<string, map<string, CscPublicAIData *>> publicAIData;
876  shared_mutex publicAIDataMutex;
877  void updatePublicAIData(const map<string, map<string, CscPublicAIData *>> &updatedPublicAIData);
878 
879  CscSequencesProcessor *sequencesProcessor = nullptr;
880  const string logPrefix;
881 
882  CscPoint3dOriented *getOdometryEstimatedPositionFromLastPosition(const CscPoint3dOriented *lastPosition);
883 
884  CscMrptAutonomousExploration *autonomousExploration = nullptr;
885 
889  bool isUsingAiApi = false;
890 
891  map<string, void *> customData;
892  mutable shared_mutex customDataMutex;
893 };
894 }
895 
896 #endif
conscience_core::ai::SEND_TCP_MESSAGE
@ SEND_TCP_MESSAGE
Definition: CscEntityReflexion.h:326
conscience_core::ai::FocusType
FocusType
Definition: CscEntityReflexion.h:263
CscDetectionStats.h
conscience_core::ai::WAITING_CLIENT_CONNECTION
@ WAITING_CLIENT_CONNECTION
Definition: CscEntityReflexion.h:306
conscience_core::ai::ENTITY_DISTANT_REALITY_MOVE
@ ENTITY_DISTANT_REALITY_MOVE
Definition: CscEntityReflexion.h:374
conscience_core::ai::CscEntityReflexionDetectionParameters::waitForFirstResult
const optional< bool > waitForFirstResult
Definition: CscEntityReflexion.h:187
conscience_core::ai::CscEntityReflexionDetectionParameters::detectors
const vector< ConscienceDetectorType > detectors
Definition: CscEntityReflexion.h:170
conscience_core::ai::RECIEVE_ENGINE_RESPONSE
@ RECIEVE_ENGINE_RESPONSE
Definition: CscEntityReflexion.h:330
conscience_core::ai::CscEntityReflexionDetectionParameters::DetectionNotificationParameters::emailAddresses
vector< string > emailAddresses
Definition: CscEntityReflexion.h:156
conscience_core::ai::IkFocusParam
Definition: CscEntityReflexion.h:268
conscience_core::ai::SEND_MESSAGE_CHUNKED
@ SEND_MESSAGE_CHUNKED
Definition: CscEntityReflexion.h:318
conscience_core::axiomes::CscPoint3d
The CscPoint3d class represents a point in three-dimensional space. It is primarily used to denote a ...
Definition: Csc3dTypes.h:24
conscience_core::core_objects
Definition: CscEntityReflexion.h:33
conscience_core::ai::ENTITY_STATUSES_BLOCKED
static const vector< CscEntityStatusFlagsList > ENTITY_STATUSES_BLOCKED
Definition: CscEntityReflexion.h:384
conscience_core::lidar::CscLidarEngine
Definition: CscLidarEngine.h:246
conscience_core::detector_engine::CscDetectorEngine
Definition: CscDetectorEngine.h:107
conscience_core::ai::PAN_TILT
@ PAN_TILT
Definition: CscEntityReflexion.h:265
conscience_utils::detection_logger
Definition: VisionDetectionLogger.h:13
CSC_DLL_IMPORTEXPORT
#define CSC_DLL_IMPORTEXPORT
Definition: os.h:34
conscience_core::ai::CscEntityReflexionParameters::localProjection
const optional< string > localProjection
Definition: CscEntityReflexion.h:130
conscience_core::ai
Definition: alerts.cpp:12
conscience_core::ai::VisionDetectionTargetObjectOffset
Definition: CscEntityReflexion.h:226
conscience_core::ai::CscEntityReflexionParameters::modelId
const string modelId
Definition: CscEntityReflexion.h:108
conscience_core::ai::ENTITY_EXPLORATION_NO_FRONTIERS
@ ENTITY_EXPLORATION_NO_FRONTIERS
Definition: CscEntityReflexion.h:381
conscience_utils::async
Definition: CscEntityReflexion.h:50
conscience_core::ai::LiveEnvironmentDetectedObject
Definition: CscEntityReflexion.h:231
conscience_core::ai::CONSCIENCE_START
@ CONSCIENCE_START
Definition: CscEntityReflexion.h:302
conscience_core::ai::CscEntityIdentity::birthday
const string birthday
Definition: CscEntityReflexion.h:103
VisionDetectionLogger.h
CscEntityModel
Definition: CscEntityModel.h:54
conscience_core::ai::alerts
Definition: alerts.cpp:12
conscience_core::ai::CaptureDetectFocusLoopConfiguration::CaptureDetectFocusLoopConfiguration
CaptureDetectFocusLoopConfiguration(float theOffsetTop, float theOffsetRight)
Definition: CscEntityReflexion.h:93
conscience_core::detector_engine
Definition: ConscienceVisionDetectorRepository.cpp:30
conscience_core::lidar
Definition: CscEntityReflexion.h:42
conscience_core::ai::HumanDecision
Definition: CscEntityReflexion.h:248
conscience_core::media_capture::CscCaptureFileRecorder
Definition: CscCaptureFileRecorder.h:29
conscience_core::lidar::CscPlaceCartography
Definition: CscPlaceCartography.h:26
conscience_core::ai::CscEntityReflexionDetectionParameters::alerts
const vector< ptr< const CscAlertIdentificationConfig > > alerts
Definition: CscEntityReflexion.h:176
CscEntityClient.h
conscience_core::ai::OBSTACLE_IN_RANGE
@ OBSTACLE_IN_RANGE
Definition: CscEntityReflexion.h:342
conscience_core::ai::LiveEnvironmentDetectedObject::objectModelId
int objectModelId
Definition: CscEntityReflexion.h:233
conscience_core::sequences_processor
Definition: CscEntityReflexion.h:46
conscience_core::ai::Answer
function< void(bool accept)> Answer
Definition: CscEntityReflexion.h:247
conscience_utils::detection_logger::VisionDetectionLogger
Definition: VisionDetectionLogger.h:15
conscience_core::ai::CscEntityReflexionDetectionParameters::DetectionNotificationParameters::videoDurationMillis
int videoDurationMillis
Definition: CscEntityReflexion.h:154
conscience_core::ai::CaptureDetectFocusLoopConfiguration
Definition: CscEntityReflexion.h:89
conscience_core::ai::IkFocusParam::stationaryPivotId
int stationaryPivotId
Definition: CscEntityReflexion.h:269
conscience_core::ai::CscEntityReflexionParameters::serialNumber
const string serialNumber
Definition: CscEntityReflexion.h:109
conscience_core::ai::CscEntityReflexionParameters::useGnssPositioning
const bool useGnssPositioning
Definition: CscEntityReflexion.h:117
conscience_core::ai::POSITION_MANAGER_NOT_READY
@ POSITION_MANAGER_NOT_READY
Definition: CscEntityReflexion.h:346
conscience_core::ai::CscEntityReflexionDetectionParameters::DetectionNotificationParameters::port
optional< int > port
Definition: CscEntityReflexion.h:145
conscience_utils::async::CscTimer
Definition: async.h:59
conscience_core::ai::CscEntityReflexionDetectionParameters::DetectionNotificationParameters
Definition: CscEntityReflexion.h:140
conscience_core::ai::SEQUENCE_PROCESSOR_SEQUENCE_IN_PROGRESS
@ SEQUENCE_PROCESSOR_SEQUENCE_IN_PROGRESS
Definition: CscEntityReflexion.h:350
conscience_core::ai::SEQUENCE_PROCESSOR_SEQUENCE_TERMINATE
@ SEQUENCE_PROCESSOR_SEQUENCE_TERMINATE
Definition: CscEntityReflexion.h:362
conscience_core::ai::CscEntityReflexionDetectionParameters::DetectionNotificationParameters::protocol
optional< string > protocol
Definition: CscEntityReflexion.h:142
logger
static std::unique_ptr< CscLogger > logger
Definition: gltfHelpers.cpp:6
conscience_core::ai::NONE
@ NONE
Definition: CscEntityReflexion.h:294
nlohmann::detail::value_t::string
@ string
string value
conscience_core::media_capture::CscEntityVideoSource
Definition: CscCaptureEngine.h:52
conscience_core::ai::CscEntityReflexionDetectionParameters::DetectionNotificationParameters::periodMilliseconds
int periodMilliseconds
Definition: CscEntityReflexion.h:153
conscience_core::ai::RECEIVE_MESSAGE
@ RECEIVE_MESSAGE
Definition: CscEntityReflexion.h:314
conscience_core::ai::CscEntityReflexionDetectionParameters::notificationParameters
const optional< DetectionNotificationParameters > notificationParameters
Definition: CscEntityReflexion.h:185
CscEntitySensorValues.h
conscience_core::knowledge
Definition: CscEntityReflexion.h:35
alerts.h
conscience_core::ai::CscEntityReflexionDetectionParameters::DetectionNotificationParameters::host
optional< string > host
Definition: CscEntityReflexion.h:143
CscLidarEngine.h
conscience_core::ai::CscEntityReflexionDetectionParameters::shouldFocusDetections
const bool shouldFocusDetections
Definition: CscEntityReflexion.h:184
conscience_core::ai::CscEntityReflexion::getDetectionState
ptr< CscEntityDetectionState > getDetectionState() const
Definition: CscEntityReflexion.h:599
conscience_core::ai::CscEntityReflexion
Definition: CscEntityReflexion.h:391
conscience_core::ai::ENTITY_EXPLORATION_RESTORE_MOVE
@ ENTITY_EXPLORATION_RESTORE_MOVE
Definition: CscEntityReflexion.h:380
conscience_core::ai::POSITION_ACCURACY_TOO_LARGE
@ POSITION_ACCURACY_TOO_LARGE
Definition: CscEntityReflexion.h:310
CscPublicAIData.h
conscience_core::ai::FocusParameter::FocusParameter
FocusParameter(FocusType focusType, IkFocusParam ikParam)
Definition: CscEntityReflexion.h:277
conscience_core::ai::SEQUENCE_PROCESSOR_SEQUENCE_UPLOADING
@ SEQUENCE_PROCESSOR_SEQUENCE_UPLOADING
Definition: CscEntityReflexion.h:358
conscience_utils::JSON
Definition: CscCommandMetadataBuilder.h:20
CscState
Definition: CscState.h:24
conscience_core::media_capture::CscCaptureEngine
Definition: CscCaptureEngine.h:128
conscience_core::ai::LiveEnvironmentDetectedObject::objectId
string objectId
Definition: CscEntityReflexion.h:232
conscience_core::ai::data
Definition: CscPublicAIData.cpp:4
conscience_core::ai::LiveEnvironmentDetectedObject::rotation
CscPoint3d rotation
Definition: CscEntityReflexion.h:235
nlohmann::detail::void
j template void())
Definition: json.hpp:4189
conscience_core::ai::CscEntityReflexionDetectionParameters::DetectionNotificationParameters::uploadVideo
bool uploadVideo
If true, enables video recording. Note that this does not trigger the upload of the video....
Definition: CscEntityReflexion.h:152
CscCommonDetectorTypes.h
conscience_core::ai::CscEntityReflexionParameters::simulatedInputsType
const optional< PositionFormat > simulatedInputsType
Definition: CscEntityReflexion.h:129
CscCommon.h
conscience_core::ai::CscSimulationWorld
Definition: CscSimulationWorld.h:28
conscience_core::ai::ENTITY_BLOCKED_GYRO
@ ENTITY_BLOCKED_GYRO
Definition: CscEntityReflexion.h:366
conscience_core::detector_engine::LenseParameter
Definition: CscDetectorEngine.h:87
conscience_core::sequences_processor::CscSequencesProcessor
Definition: CscSequencesProcessor.h:15
conscience_core::ai::LiveEnvironmentUpdateListener
function< void(vector< ptr< const LiveEnvironmentDetectedObject >> detectedObjects)> LiveEnvironmentUpdateListener
Definition: CscEntityReflexion.h:280
conscience_core::ai::LiveEnvironmentDetectedObject::position
CscPoint3d position
Definition: CscEntityReflexion.h:234
conscience_core::ai::TrackedObject
Definition: CscEntityDetectionState.h:41
conscience_core::bridging::commands::globalEnvironmentSimulator
CscEnvironmentSimulator * globalEnvironmentSimulator
Definition: CscCommandsProcessor.cpp:34
conscience_core::ai::CaptureDetectFocusLoopConfiguration::offsetRight
float offsetRight
Definition: CscEntityReflexion.h:91
conscience_core::ai::CscEntityReflexionDetectionParameters::additionalParams
const map< string, string > additionalParams
Definition: CscEntityReflexion.h:190
conscience_core::ai::CscMrptAutonomousExploration
Definition: CscMrptAutonomousExploration.h:19
conscience_core::lidar::CscSlamEngine
Definition: CscSlamEngine.h:380
conscience_core::ai::INVERSE_KINEMATIC
@ INVERSE_KINEMATIC
Definition: CscEntityReflexion.h:264
conscience_utils
Definition: CscEntityReflexion.h:50
conscience_core::ai::TrackHit
Definition: CscEntityDetectionState.h:29
conscience_core::ai::ENTITY_BLOCKED_GPS
@ ENTITY_BLOCKED_GPS
Definition: CscEntityReflexion.h:370
conscience_core::ai::READY
@ READY
Definition: CscEntityReflexion.h:298
conscience_core::ai::CscEntityDetectionState
Definition: CscEntityDetectionState.h:139
conscience_core::media_capture
Definition: CscEntityReflexion.h:53
conscience_core::bridging::commands::DetectionNotificationParameters
conscience_core::ai::CscEntityReflexionDetectionParameters::DetectionNotificationParameters DetectionNotificationParameters
Definition: CommandVisionDetect.h:64
conscience_core::ai::CscEntityReflexionDetectionParameters::stats
const vector< CscDetectionStatsType > stats
Definition: CscEntityReflexion.h:182
conscience_core::ai::alerts::CscDetectedAlert
Definition: alerts.h:83
conscience_core::ai::CscEntityReflexionParameters::videoSource
const ptr< CscEntityVideoSource > videoSource
Definition: CscEntityReflexion.h:110
CscEnvironmentSimulator
Definition: CscEnvironmentSimulator.h:31
conscience_core::ai::CscEntityIdentity
Definition: CscEntityReflexion.h:99
json.h
CscWorldPlace
Definition: CscWorldPlace.h:34
conscience_core::ai::ENTITY_BLOCKED_OBSTACLES
@ ENTITY_BLOCKED_OBSTACLES
Definition: CscEntityReflexion.h:378
conscience_core::ai::CaptureDetectFocusLoopConfiguration::offsetTop
float offsetTop
Definition: CscEntityReflexion.h:90
conscience_core::ai::UPGRADE_IN_PROGRESS
@ UPGRADE_IN_PROGRESS
Definition: CscEntityReflexion.h:338
conscience_core::ai::HumanDecision::message
const string message
Definition: CscEntityReflexion.h:251
conscience_core::ai::LiveEnvironmentDetectedObject::immobileSinceMilliseconds
unsigned long long immobileSinceMilliseconds
Definition: CscEntityReflexion.h:237
cv
Definition: CscEntityDetectionState.h:24
conscience_core::ai::HumanDecision::uid
const string uid
Definition: CscEntityReflexion.h:250
s
double s
Definition: HybridAStar.cpp:85
conscience_utils::JSON::CscJsonObjectReader
Definition: json.h:203
conscience_core::ai::CscEntityStatusFlags
uint64_t CscEntityStatusFlags
Definition: CscEntityReflexion.h:290
conscience_core::ai::CHECKING_UPGRADE
@ CHECKING_UPGRADE
Definition: CscEntityReflexion.h:334
conscience_core::ai::CscEntityIdentity::name
const string name
Definition: CscEntityReflexion.h:102
conscience_core::ai::SequenceProcessorSendSequenceListener
function< void(CscSequence *sequence)> SequenceProcessorSendSequenceListener
Definition: CscEntityReflexion.h:281
conscience_core::lidar::CscEntityPositionManager
Definition: CscEntityPositionManager.h:44
conscience_utils::JSON::CscJsonObject
Definition: json.h:544
conscience_core::ai::CscEntityReflexion::getCustomDataValueCopy
optional< T > getCustomDataValueCopy(const string &key) const
Definition: CscEntityReflexion.h:652
conscience_core::axiomes::CscPoint3dOriented
Definition: Csc3dTypes.h:277
conscience_core::ai::CscEntityReflexionParameters
Definition: CscEntityReflexion.h:106
conscience_core::ai::FocusParameter::focusType
FocusType focusType
Definition: CscEntityReflexion.h:274
conscience_core::ai::PROCESS_COMMAND
@ PROCESS_COMMAND
Definition: CscEntityReflexion.h:322
conscience_core::ai::VisionDetectionTargetObjectOffset::offsetRight
float offsetRight
Definition: CscEntityReflexion.h:228
conscience_core::ai::CscEntityReflexionDetectionParameters::locateInSimulator
const bool locateInSimulator
Definition: CscEntityReflexion.h:186
conscience_core::ai::CscEntityReflexionDetectionParameters::DetectionNotificationParameters::vocalNotificationPhoneNumbers
vector< string > vocalNotificationPhoneNumbers
Definition: CscEntityReflexion.h:155
conscience_core::bridging::commands::environment_objects::optional< string >
const ptr< CscObjectModel > const string const CscPoint3d const CscPoint3d optional< string >
Definition: environmentObjectsCommands.h:373
conscience_core::ai::CscEntityReflexionActivity
Definition: CscEntityReflexion.h:283
conscience_core::ai::IkFocusParam::memberIdToMove
int memberIdToMove
Definition: CscEntityReflexion.h:270
conscience_core::ai::alerts::CscAlertType
uint64_t CscAlertType
Definition: alerts.h:40
conscience_core::ai::alerts::AlertId
string AlertId
Definition: alerts.h:39
ptr
std::shared_ptr< T > ptr
Definition: CscCommon.h:29
conscience_core::ai::LiveEnvironmentDetectedObject::certitude
double certitude
Definition: CscEntityReflexion.h:236
conscience_utils::equals
bool equals(const map< K, V > &map1, const map< K, V > &map2)
Definition: conscience_util.h:527
conscience_core::ai::CscEntityReflexionDetectionParameters
Definition: CscEntityReflexion.h:138
conscience_core::knowledge::CscKnowledgeItem
Definition: CscKnowledgeItem.h:43
CscPlaceCartography.h
conscience_core::ai::SEQUENCE_PROCESSOR_SEQUENCE_IN_PAUSE
@ SEQUENCE_PROCESSOR_SEQUENCE_IN_PAUSE
Definition: CscEntityReflexion.h:354
conscience_core::ai::CscEntityAlertIdentificationState
Definition: CscEntityDetectionState.h:132
CscSequence
Definition: CscSequence.h:51
conscience_core::ai::CscEntityStatusFlagsList
CscEntityStatusFlagsList
Definition: CscEntityReflexion.h:291
conscience_core::knowledge::CscArtificialIntelligenceType
CscArtificialIntelligenceType
Definition: CscKnowledgeItem.h:27
conscience_core::ai::FocusParameter
Definition: CscEntityReflexion.h:273
conscience_core::ai::VisionDetectionTargetObjectOffset::offsetTop
float offsetTop
Definition: CscEntityReflexion.h:227