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;
162  };
163 
168  const vector<ConscienceDetectorType> detectors;
169 
174  const vector<ptr<const CscAlertIdentificationConfig>> alerts;
175 
180  const vector<CscDetectionStatsType> stats;
181 
183  const optional<DetectionNotificationParameters> notificationParameters;
184  const bool locateInSimulator;
185  const optional<bool> waitForFirstResult;
186  CscDetectorEngine *const detector = nullptr;
187 
188  const map<string, string> additionalParams;
189 
198  CscEntityReflexionDetectionParameters(const vector<ConscienceDetectorType> &detectors = {},
199  const vector<ptr<const CscAlertIdentificationConfig>> &alerts = {},
200  const vector<CscDetectionStatsType> &stats = {},
201  bool shouldFocusDetections = false,
202  const optional<DetectionNotificationParameters> &notificationParameters = {},
203  bool locateInSimulator = true,
204  const map<string, string> &additionalParams = {},
205  CscDetectorEngine *detector = nullptr);
206 
207  bool isNotificationEnabled() const;
208 
212  bool isStop() const;
213 
217  bool shouldVisionBeEnabled() const;
218  bool doesAlertTypeNeedVision(CscAlertType alertType) const;
219 
220  operator string() const;
221  string toString() const;
222 };
223 
225  float offsetTop;
226  float offsetRight;
227 };
228 
230  string objectId;
234  double certitude;
235  unsigned long long immobileSinceMilliseconds;
236 
237  LiveEnvironmentDetectedObject(const string &objectId,
238  int objectModelId,
239  const CscPoint3d &position,
240  const CscPoint3d &rotation,
241  double certitude,
242  unsigned long long immobileSinceMilliseconds);
243 };
244 
245 typedef function<void(bool accept)> Answer;
247 public:
248  const string uid;
249  const string message;
250  bool obsolete = false;
251  HumanDecision(const string &uid, const string &message, const Answer &answer);
252  operator string() const;
253  void answer(bool accept);
254  optional<bool> getAnswer() const;
255 
256 private:
257  const Answer answerFunction;
258  optional<bool> result = {};
259 };
260 
261 enum FocusType {
264 };
265 
269 };
270 
273  optional<IkFocusParam> ikParam = {};
274 
275  FocusParameter(FocusType focusType, IkFocusParam ikParam) : focusType(focusType), ikParam(ikParam) {}
276 };
277 
280 
282  unsigned fps = 0;
283  unsigned long long lastFrameTimestampMillis = 0;
284  string activeDetectionDescription = "";
285  string enabledAlertsDescription = "";
286 };
287 
288 typedef uint64_t CscEntityStatusFlags;
290  // the status is implemented on 64 bit , so 64 statuses are available
291  // if change, add or update state , think to update connect entityStatus
292  NONE = 0,
296  READY = 1ULL << 0,
300  CONSCIENCE_START = 1ULL << 1,
312  RECEIVE_MESSAGE = 1ULL << 4,
316  SEND_MESSAGE_CHUNKED = 1ULL << 5,
320  PROCESS_COMMAND = 1ULL << 6,
324  SEND_TCP_MESSAGE = 1ULL << 7,
332  CHECKING_UPGRADE = 1ULL << 9,
336  UPGRADE_IN_PROGRESS = 1ULL << 10,
340  OBSTACLE_IN_RANGE = 1ULL << 11,
364  ENTITY_BLOCKED_GYRO = 1ULL << 17,
368  ENTITY_BLOCKED_GPS = 1ULL << 18,
377 
380 };
381 
383 
390 public:
397 
398  virtual ~CscEntityReflexion();
399 
403  void stopAndRelease(bool removeFromEnvironment = true);
404 
405  map<string, EntitySensorValues> getAllSensorValuesBySensorName();
406  void setSensorValues(const string &sensorName, const map<string, double> &values);
407  bool isLidarEngineActivated();
408  bool isLidarEngineInitialized();
409 
410  string getEntityType(const CscEntityModel &model) const;
411 
415  void restoreCartography(optional<fs::path> cartographyDirMaybe = {});
416  CscPlaceCartography *getCartography() const;
417 
418  void setScene(CscWorldPlace *place);
419 
424  CscCaptureEngine *getCaptureEngine(const optional<string> &videoSourceId = {}) const;
425 
426  void resetToInitialState();
427  ptr<CscEntityReflexion> getSharedPtr() const;
428 
436  void consumeVideoSource(const optional<string> &id = {}, bool reopenEvenIfAlreadyOpened = true);
437 
446  void setVideoSource(ptr<CscEntityVideoSource> videoSource, bool consumeIfClosedOrSourceChanged = false);
447 
452  void resetParameters(ptr<CscEntityReflexionParameters>);
453 
454  ptr<const CscEntityReflexionParameters> getParameters() const;
455 
456  ptr<CscEntityReflexionDetectionParameters> getDetectionParameters();
457  void setDetectionParameters(ptr<CscEntityReflexionDetectionParameters>);
458 
459  void unwatchAlerts(const vector<CscAlertType> &alertsToBeUnwatched);
463  vector<CscDetectedAlert> getAlerts();
468  void addAlert(CscDetectedAlert *newIdentifiedAlert);
469  void markAlertDone(const AlertId &alertId);
470  bool isAlertDone(const AlertId &alertId);
471  void setAlertsMaxAgeMillis(long alertsMaxAgeMillis);
472 
473  void fireLiveEnvironmentUpdate();
474 
475  ptr<CscEntityClient> getEntityClient() const;
476 
477  optional<ptr<DetectionResult>> getLastDetectionResult();
478 
479  CscEnvironmentSimulator &getGlobalEnvironmentSimulator();
480 
481  void addLiveEnvironmentUpdateListener(LiveEnvironmentUpdateListener listener);
482  void onSequenceToBeSentToRealEntity(SequenceProcessorSendSequenceListener listener);
483 
484  const string &getSerialNumber() const;
485  const string &getEntityModelId() const;
486 
490  optional<fs::path> stopLastPeriodCaptureRecordingToFile();
491 
492  void startLastPeriodCaptureRecordingToFile(short durationSeconds, const fs::path &outputPath);
493 
494  void stopCaptureRecordingToFile();
495 
496  void startCaptureRecordingToFile(const fs::path &outputPath, const optional<string> &videoSourceId = {});
497 
498  void purgeAIObjectives();
499 
500  const CscEntityModel *getEntityModel() const;
501 
502  const CscSimulationWorld *getAISimulationWorld() const;
503 
504  float *geAIObjectivesStatus() const;
505 
509  CscSequence *processKnowledgeItem(CscKnowledgeItem *knowledgeItem, CscState *initialState);
510 
511  void stopLidarEngine();
512  void startLidarEngineLocalDevice(string devicePath, double *currentState);
513  void startLidarEngineEntity();
514  optional<string> getStringDetectorResult();
515  void clearStringDetectorResult();
516 
517  void vocalPhoneCallTest(const vector<string> &phoneNumbers, const map<string, string> &additionalParams);
518 
519  void removeObjectivesByAITypes(knowledge::CscArtificialIntelligenceType type);
520 
521  void setSlamCartographyActivated(bool enable);
522  void stopAndSaveLidarCartography();
523 
527  void setSlamLocalizationActivated(bool enable, CscPoint3dOriented *position = nullptr);
528 
529  void clearLidarCartography();
530 
531  CscEntityPositionManager *getPositionManager() const;
532 
533  vector<ptr<HumanDecision>> getOngoingDecisions();
534  void answerDecision(const string &decisionUid, bool accept);
535 
536  const FocusParameter *getFocusParameter();
537  void setFocusParameter(const FocusParameter *focusParam);
538 
539  map<string, ptr<CscPublicAIData>> getPublicAIDataForSubject(const string &subject);
540  void clearPublicAIDataForSubject(const string &subject);
541 
542  CscSequencesProcessor *getSequenceProcessor() const;
543  CscSlamEngine *getSlamEngine();
544  CscLidarEngine *getLidarEngine();
545 
549  bool isSimulated() const;
550 
554  bool useGnssPositioning() const;
555 
556  ptr<CscEntityIdentity> getEntityIdentity() const;
557 
561  void sendSequenceToRealRobot(CscSequence *sequence) const;
562 
567  void ifRunning(function<void()> action);
568 
569  void loadCartographyFromPoints(const vector<const CscPoint3d *> &points);
570 
571  const vector<ptr<CscEntityVideoSource>> &getVideoSources() const;
572 
576  ptr<CscEntityVideoSource> getVideoSource(const optional<string> &id = {}) const;
577 
581  void addVideoSource(ptr<CscEntityVideoSource> videoSource);
582 
587  void removeVideoSource(ptr<CscEntityVideoSource> videoSource);
588 
593  static bool &autoCloseStreamEnabled();
594 
595  CscEntityReflexionActivity getActivitySummary();
596 
598  return detectionState;
599  }
605  CscEntityStatusFlags getAllEntityStatusFlags() const;
609  bool hasStatusFlag(const vector<CscEntityStatusFlagsList> &statuses) const;
610  bool hasStatusFlag(CscEntityStatusFlagsList status) const;
611 
615  void setLastEntityStatusFlags(const string &lastEntityStatusFlags);
616 
620  void addAdditionalEntityStatusFlag(CscEntityStatusFlagsList flag);
621  void removeAdditionalEntityStatusFlag(CscEntityStatusFlagsList flag);
622 
623  void startAutonomousExploration();
624  void stopAutonomousExploration();
625 
626  void setEntityClient(ptr<CscEntityClient> entityClient);
627 
628  void ifNotStopped(const function<void()> &action);
629 
633  void addCustomData(const map<string, void *> &customData);
637  map<string, void *> getCustomData() const;
641  void *getCustomDataValue(const string &key) const;
642 
647  void *eraseCustomData(const string &key);
648 
649  template <typename T>
650  optional<T> getCustomDataValueCopy(const string &key) const {
651  std::shared_lock lock(customDataMutex);
652  T *result = nullptr;
653  auto valueMatch = customData.find(key);
654  if (valueMatch != customData.end()) {
655  result = static_cast<T*>(valueMatch->second);
656  }
657  return result == nullptr ? nullopt : optional<T>(*result);
658  }
659 
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;
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:324
conscience_core::ai::FocusType
FocusType
Definition: CscEntityReflexion.h:261
CscDetectionStats.h
conscience_core::ai::WAITING_CLIENT_CONNECTION
@ WAITING_CLIENT_CONNECTION
Definition: CscEntityReflexion.h:304
conscience_core::ai::ENTITY_DISTANT_REALITY_MOVE
@ ENTITY_DISTANT_REALITY_MOVE
Definition: CscEntityReflexion.h:372
conscience_core::ai::CscEntityReflexionDetectionParameters::waitForFirstResult
const optional< bool > waitForFirstResult
Definition: CscEntityReflexion.h:185
conscience_core::ai::CscEntityReflexionDetectionParameters::detectors
const vector< ConscienceDetectorType > detectors
Definition: CscEntityReflexion.h:168
conscience_core::ai::RECIEVE_ENGINE_RESPONSE
@ RECIEVE_ENGINE_RESPONSE
Definition: CscEntityReflexion.h:328
conscience_core::ai::CscEntityReflexionDetectionParameters::DetectionNotificationParameters::emailAddresses
vector< string > emailAddresses
Definition: CscEntityReflexion.h:156
conscience_core::ai::IkFocusParam
Definition: CscEntityReflexion.h:266
conscience_core::ai::SEND_MESSAGE_CHUNKED
@ SEND_MESSAGE_CHUNKED
Definition: CscEntityReflexion.h:316
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:382
conscience_core::lidar::CscLidarEngine
Definition: CscLidarEngine.h:62
conscience_core::detector_engine::CscDetectorEngine
Definition: CscDetectorEngine.h:107
conscience_core::ai::PAN_TILT
@ PAN_TILT
Definition: CscEntityReflexion.h:263
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:224
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:379
conscience_utils::async
Definition: CscEntityReflexion.h:50
conscience_core::ai::LiveEnvironmentDetectedObject
Definition: CscEntityReflexion.h:229
conscience_core::ai::CONSCIENCE_START
@ CONSCIENCE_START
Definition: CscEntityReflexion.h:300
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:246
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:174
CscEntityClient.h
conscience_core::ai::OBSTACLE_IN_RANGE
@ OBSTACLE_IN_RANGE
Definition: CscEntityReflexion.h:340
conscience_core::ai::LiveEnvironmentDetectedObject::objectModelId
int objectModelId
Definition: CscEntityReflexion.h:231
conscience_core::sequences_processor
Definition: CscEntityReflexion.h:46
conscience_core::ai::Answer
function< void(bool accept)> Answer
Definition: CscEntityReflexion.h:245
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:267
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:344
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:348
conscience_core::ai::SEQUENCE_PROCESSOR_SEQUENCE_TERMINATE
@ SEQUENCE_PROCESSOR_SEQUENCE_TERMINATE
Definition: CscEntityReflexion.h:360
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:292
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:312
conscience_core::ai::CscEntityReflexionDetectionParameters::notificationParameters
const optional< DetectionNotificationParameters > notificationParameters
Definition: CscEntityReflexion.h:183
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:182
conscience_core::ai::CscEntityReflexion::getDetectionState
ptr< CscEntityDetectionState > getDetectionState() const
Definition: CscEntityReflexion.h:597
conscience_core::ai::CscEntityReflexion
Definition: CscEntityReflexion.h:389
conscience_core::ai::ENTITY_EXPLORATION_RESTORE_MOVE
@ ENTITY_EXPLORATION_RESTORE_MOVE
Definition: CscEntityReflexion.h:378
conscience_core::ai::POSITION_ACCURACY_TOO_LARGE
@ POSITION_ACCURACY_TOO_LARGE
Definition: CscEntityReflexion.h:308
CscPublicAIData.h
conscience_core::ai::FocusParameter::FocusParameter
FocusParameter(FocusType focusType, IkFocusParam ikParam)
Definition: CscEntityReflexion.h:275
conscience_core::ai::SEQUENCE_PROCESSOR_SEQUENCE_UPLOADING
@ SEQUENCE_PROCESSOR_SEQUENCE_UPLOADING
Definition: CscEntityReflexion.h:356
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:230
conscience_core::ai::data
Definition: CscPublicAIData.cpp:4
conscience_core::ai::LiveEnvironmentDetectedObject::rotation
CscPoint3d rotation
Definition: CscEntityReflexion.h:233
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:364
conscience_core::detector_engine::LenseParameter
Definition: CscDetectorEngine.h:87
jwt::json::type
type
Generic JSON types used in JWTs.
Definition: jwt.h:1794
conscience_core::sequences_processor::CscSequencesProcessor
Definition: CscSequencesProcessor.h:15
conscience_core::ai::LiveEnvironmentUpdateListener
function< void(vector< ptr< const LiveEnvironmentDetectedObject >> detectedObjects)> LiveEnvironmentUpdateListener
Definition: CscEntityReflexion.h:278
conscience_core::ai::LiveEnvironmentDetectedObject::position
CscPoint3d position
Definition: CscEntityReflexion.h:232
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:188
conscience_core::ai::CscMrptAutonomousExploration
Definition: CscMrptAutonomousExploration.h:19
conscience_core::lidar::CscSlamEngine
Definition: CscSlamEngine.h:46
conscience_core::ai::INVERSE_KINEMATIC
@ INVERSE_KINEMATIC
Definition: CscEntityReflexion.h:262
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:368
conscience_core::ai::READY
@ READY
Definition: CscEntityReflexion.h:296
conscience_core::ai::CscEntityDetectionState
Definition: CscEntityDetectionState.h:139
conscience_core::media_capture
Definition: CscEntityReflexion.h:53
conscience_core::ai::CscEntityReflexionDetectionParameters::stats
const vector< CscDetectionStatsType > stats
Definition: CscEntityReflexion.h:180
conscience_core::ai::alerts::CscDetectedAlert
Definition: alerts.h:80
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:376
conscience_core::ai::CaptureDetectFocusLoopConfiguration::offsetTop
float offsetTop
Definition: CscEntityReflexion.h:90
conscience_core::ai::UPGRADE_IN_PROGRESS
@ UPGRADE_IN_PROGRESS
Definition: CscEntityReflexion.h:336
conscience_core::ai::HumanDecision::message
const string message
Definition: CscEntityReflexion.h:249
jwt::create
builder< json_traits > create()
Definition: jwt.h:3647
conscience_core::ai::LiveEnvironmentDetectedObject::immobileSinceMilliseconds
unsigned long long immobileSinceMilliseconds
Definition: CscEntityReflexion.h:235
cv
Definition: CscEntityDetectionState.h:24
conscience_core::ai::HumanDecision::uid
const string uid
Definition: CscEntityReflexion.h:248
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:288
conscience_core::ai::CHECKING_UPGRADE
@ CHECKING_UPGRADE
Definition: CscEntityReflexion.h:332
conscience_core::ai::CscEntityIdentity::name
const string name
Definition: CscEntityReflexion.h:102
conscience_core::ai::SequenceProcessorSendSequenceListener
function< void(CscSequence *sequence)> SequenceProcessorSendSequenceListener
Definition: CscEntityReflexion.h:279
conscience_core::lidar::CscEntityPositionManager
Definition: CscEntityPositionManager.h:44
conscience_utils::JSON::CscJsonObject
Definition: json.h:494
conscience_core::ai::CscEntityReflexion::getCustomDataValueCopy
optional< T > getCustomDataValueCopy(const string &key) const
Definition: CscEntityReflexion.h:650
conscience_core::axiomes::CscPoint3dOriented
Definition: Csc3dTypes.h:265
conscience_core::ai::CscEntityReflexionParameters
Definition: CscEntityReflexion.h:106
conscience_core::ai::FocusParameter::focusType
FocusType focusType
Definition: CscEntityReflexion.h:272
conscience_core::ai::PROCESS_COMMAND
@ PROCESS_COMMAND
Definition: CscEntityReflexion.h:320
conscience_core::ai::VisionDetectionTargetObjectOffset::offsetRight
float offsetRight
Definition: CscEntityReflexion.h:226
conscience_core::ai::CscEntityReflexionDetectionParameters::locateInSimulator
const bool locateInSimulator
Definition: CscEntityReflexion.h:184
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:281
conscience_core::ai::IkFocusParam::memberIdToMove
int memberIdToMove
Definition: CscEntityReflexion.h:268
conscience_core::ai::alerts::CscAlertType
uint64_t CscAlertType
Definition: alerts.h:37
conscience_core::ai::alerts::AlertId
string AlertId
Definition: alerts.h:36
ptr
std::shared_ptr< T > ptr
Definition: CscCommon.h:29
conscience_core::ai::LiveEnvironmentDetectedObject::certitude
double certitude
Definition: CscEntityReflexion.h:234
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:352
conscience_core::ai::CscEntityAlertIdentificationState
Definition: CscEntityDetectionState.h:132
CscSequence
Definition: CscSequence.h:51
conscience_core::ai::CscEntityStatusFlagsList
CscEntityStatusFlagsList
Definition: CscEntityReflexion.h:289
conscience_core::knowledge::CscArtificialIntelligenceType
CscArtificialIntelligenceType
Definition: CscKnowledgeItem.h:27
conscience_core::ai::FocusParameter
Definition: CscEntityReflexion.h:271
conscience_core::ai::VisionDetectionTargetObjectOffset::offsetTop
float offsetTop
Definition: CscEntityReflexion.h:225