25 #include "slamtec_remote_objects.hxx"
76 namespace rp {
namespace standalone {
namespace aurora {
81 class RemoteDataProvider;
82 class RemoteController;
83 class RemoteMapManager;
84 class LIDAR2DMapBuilder;
96 : _sdk_listener_obj{ 0 }
159 RemoteSDKListener* This =
reinterpret_cast<RemoteSDKListener*
>(user_data);
161 RemoteTrackingFrameInfo frameInfo(*tracking_data, *provided_buffer_info);
163 This->onTrackingData(frameInfo);
167 RemoteSDKListener* This =
reinterpret_cast<RemoteSDKListener*
>(user_data);
169 This->onIMUData(imu_data, imu_data_count);
173 RemoteSDKListener* This =
reinterpret_cast<RemoteSDKListener*
>(user_data);
175 This->onNewMappingFlags(flags);
179 RemoteSDKListener* This =
reinterpret_cast<RemoteSDKListener*
>(user_data);
181 This->onDeviceStatusChanged(timestamp_ns, status);
185 RemoteSDKListener* This =
reinterpret_cast<RemoteSDKListener*
>(user_data);
186 This->onLIDARScan(*header, points);
195 class RemoteMapDataVisitor {
197 friend class RemoteDataProvider;
199 virtual ~RemoteMapDataVisitor() {}
200 RemoteMapDataVisitor()
202 memset(&_visitor_obj, 0,
sizeof(_visitor_obj));
215 RemoteMapDataVisitor* This =
reinterpret_cast<RemoteMapDataVisitor*
>(user_data);
216 This->onMapData(map_data);
220 RemoteMapDataVisitor* This =
reinterpret_cast<RemoteMapDataVisitor*
>(user_data);
221 This->onKeyFrameData(keyframe_data);
225 RemoteMapDataVisitor* This =
reinterpret_cast<RemoteMapDataVisitor*
>(user_data);
226 This->onMapPointData(mp_data);
259 _mapDataCallback = (mapDataCallback);
263 This->_mapDataCallback(*map_data);
271 _keyFrameDataCallback = (keyFrameDataCallback);
276 This->_keyFrameDataCallback(kframeData);
284 _mapPointDataCallback = (mapPointDataCallback);
287 This->_mapPointDataCallback(*mp_data);
292 MapDataCallback _mapDataCallback;
293 KeyFrameDataCallback _keyFrameDataCallback;
294 MapPointDataCallback _mapPointDataCallback;
332 serverList.resize(maxFetchCount);
335 serverList.resize(count);
350 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
427 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
441 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
455 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
470 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
484 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
499 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
514 bool sendCustomCommand(uint64_t timeout_ms, uint64_t cmd,
const void* data =
nullptr,
size_t data_size = 0,
void* response =
nullptr,
size_t response_buffer_size = 0,
size_t* response_retrieved_size =
nullptr,
slamtec_aurora_sdk_errorcode_t* errcode =
nullptr) {
519 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
588 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
619 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
656 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
674 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
689 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
705 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
723 std::vector<uint8_t> imgbufferLeft, imgbufferRight;
724 std::vector< slamtec_aurora_sdk_keypoint_t> keypointBufferLeft, keypointBufferRight;
728 memset(&bufferInfo, 0,
sizeof(bufferInfo));
731 if (result != SLAMTEC_AURORA_SDK_ERRORCODE_OK) {
761 if (result == SLAMTEC_AURORA_SDK_ERRORCODE_OK) {
763 std::move(imgbufferLeft), std::move(imgbufferRight),
764 std::move(keypointBufferLeft), std::move(keypointBufferRight)));
767 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
776 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
784 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
801 std::vector< slamtec_aurora_sdk_lidar_scan_point_t> localdata;
803 size_t newSize = 4096;
806 localdata.resize(newSize);
809 if (result != SLAMTEC_AURORA_SDK_ERRORCODE_OK) {
826 scanData.
scanData = std::move(localdata);
845 size_t bufferCount = 0;
846 imuDataOut.resize(4096);
851 if (result == SLAMTEC_AURORA_SDK_ERRORCODE_OK) {
852 imuDataOut.resize(bufferCount);
854 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
869 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
884 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
898 if (result != SLAMTEC_AURORA_SDK_ERRORCODE_OK) {
905 descBuffer.resize(mapCount*2);
906 size_t actualCount = 0;
911 if (result != SLAMTEC_AURORA_SDK_ERRORCODE_OK) {
915 descBuffer.resize(actualCount);
950 uint32_t* mapIDsBuffer =
nullptr;
952 if (!mapIDs.empty()) {
953 mapIDsBuffer = mapIDs.data();
954 mapCount = mapIDs.size();
962 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
982 : _handle(handle), _ownBuffer(ownBuffer)
1030 int bL2p = (l2pMapping ? 1 : 0);
1032 if (result != SLAMTEC_AURORA_SDK_ERRORCODE_OK) {
1038 dataOut.resize(cellSize);
1042 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
1087 float minRes, maxRes;
1089 return std::make_tuple(0.0f, 0.0f);
1091 return std::make_tuple(minRes, maxRes);
1126 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
1152 mapBigChange =
false;
1153 memset(&rectOut, 0,
sizeof(rectOut));
1156 mapBigChange = (mpChange != 0);
1168 slamtec_aurora_sdk_lidar2dmap_previewmap_get_generation_options(_sdk, &optionsOut);
1197 return _cachedPreviewMap;
1213 if (result != SLAMTEC_AURORA_SDK_ERRORCODE_OK) {
1217 return std::make_shared<OccupancyGridMap2DRef>(handleOut,
true);
1223 , _cachedPreviewMap(nullptr, false)
1227 mutable OccupancyGridMap2DRef _cachedPreviewMap;
1257 bool getAllDetectionDesc(std::vector<slamtec_aurora_sdk_floor_detection_desc_t>& descBuffer,
int & currentFloorID) {
1262 size_t actualCount = 0;
1265 if (result != SLAMTEC_AURORA_SDK_ERRORCODE_OK) {
1270 if (actualCount > descBuffer.size()) {
1271 descBuffer.resize(actualCount);
1275 descBuffer.resize(actualCount);
1288 size_t histogramSize = 100;
1296 if (result != SLAMTEC_AURORA_SDK_ERRORCODE_OK) {
1342 return result == SLAMTEC_AURORA_SDK_ERRORCODE_OK;
1357 rawListener = &listener->_sdk_listener_obj;
1361 if (slamtec_aurora_sdk_is_valid_handle(handle)) {
The floor detection histogram class wraps the floor detection histogram data and its description.
Definition: slamtec_remote_objects.hxx:732
slamtec_aurora_sdk_floor_detection_histogram_info_t info
The floor detection histogram info.
Definition: slamtec_remote_objects.hxx:760
std::vector< float > histogramData
The floor detection histogram data.
Definition: slamtec_remote_objects.hxx:765
The floor detector class.
Definition: slamtec_remote_public.hxx:1237
bool getCurrentDetectedFloorDesc(slamtec_aurora_sdk_floor_detection_desc_t &descOut)
Get the detected floor description of the current detected floor.
Definition: slamtec_remote_public.hxx:1247
bool getAllDetectionDesc(std::vector< slamtec_aurora_sdk_floor_detection_desc_t > &descBuffer, int ¤tFloorID)
Get all the detected floor descriptions.
Definition: slamtec_remote_public.hxx:1257
bool getDetectionHistogram(FloorDetectionHistogram &histogramOut)
Get the detection histogram of the floor detection.
Definition: slamtec_remote_public.hxx:1287
The 2D gridmap generation options class wraps the 2D gridmap generation options.
Definition: slamtec_remote_objects.hxx:667
The 2D gridmap builder class.
Definition: slamtec_remote_public.hxx:1077
bool isPreviewMapAutoFloorDetectionEnabled() const
Check if the auto floor detection is enabled for the preview map.
Definition: slamtec_remote_public.hxx:1187
size_t getMaxGridCellCount() const
Definition: slamtec_remote_public.hxx:1101
bool isPreviewMapBackgroundUpdateActive() const
Check if the preview map background update is active.
Definition: slamtec_remote_public.hxx:1140
void getAndResetPreviewMapDirtyRect(slamtec_aurora_sdk_rect_t &rectOut, bool &mapBigChange)
Get the dirty rectangle of the preview map and reset the dirty rectangle.
Definition: slamtec_remote_public.hxx:1149
std::shared_ptr< OccupancyGridMap2DRef > generateFullMap(const LIDAR2DGridMapGenerationOptions &options, bool waitForDataSync=true, uint64_t timeout_ms=30000)
Generate the full map.
Definition: slamtec_remote_public.hxx:1209
const OccupancyGridMap2DRef & getPreviewMap() const
Get the preview map to access the map data.
Definition: slamtec_remote_public.hxx:1195
bool requireRedrawPreviewMap()
Require the preview map to be redrawn.
Definition: slamtec_remote_public.hxx:1115
void setPreviewMapAutoFloorDetection(bool enable)
Set the auto floor detection for the preview map.
Definition: slamtec_remote_public.hxx:1179
void stopPreviewMapBackgroundUpdate()
Stop the preview map background update.
Definition: slamtec_remote_public.hxx:1132
void getPreviewMapGenerationOptions(LIDAR2DGridMapGenerationOptions &optionsOut) const
Get the generation options of the preview map.
Definition: slamtec_remote_public.hxx:1167
bool startPreviewMapBackgroundUpdate(const LIDAR2DGridMapGenerationOptions &options)
Start the preview map background update.
Definition: slamtec_remote_public.hxx:1124
std::tuple< float, float > getSupportedResolutionRange() const
Get the supported resolution range of the 2D gridmap.
Definition: slamtec_remote_public.hxx:1086
Definition: slamtec_remote_objects.hxx:24
The 2D gridmap reference class wraps the 2D gridmap handle.
Definition: slamtec_remote_public.hxx:978
bool readCellData(const slamtec_aurora_sdk_rect_t &rect, slamtec_aurora_sdk_2d_gridmap_fetch_info_t &fetchInfoOut, std::vector< uint8_t > &dataOut, bool l2pMapping=true) const
Read the cell data of the 2D gridmap.
Definition: slamtec_remote_public.hxx:1029
void getMaxMapCapacityDimension(slamtec_aurora_sdk_2dmap_dimension_t &dimensionOut) const
Get the maximum capacity dimension of the 2D gridmap.
Definition: slamtec_remote_public.hxx:1017
slamtec_aurora_sdk_occupancy_grid_2d_handle_t getHandle() const
Get the handle of the 2D gridmap.
Definition: slamtec_remote_public.hxx:1062
void getMapDimension(slamtec_aurora_sdk_2dmap_dimension_t &dimensionOut) const
Get the dimension of the 2D gridmap.
Definition: slamtec_remote_public.hxx:1009
bool readCellData(const slamtec_aurora_sdk_rect_t &rect, slamtec_aurora_sdk_2d_gridmap_fetch_info_t &fetchInfoOut, uint8_t *dataBuffer, size_t dataBufferSize, bool l2pMapping=true) const
Read the cell data of the 2D gridmap.
Definition: slamtec_remote_public.hxx:1054
float getResolution() const
Get the resolution of the 2D gridmap.
Definition: slamtec_remote_public.hxx:997
The controller class for communicating with the remote device.
Definition: slamtec_remote_public.hxx:319
bool requireMappingMode(uint64_t timeout_ms=SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_TIMEOUT, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
Require the remote device to enter the mapping mode.
Definition: slamtec_remote_public.hxx:450
void setLowRateMode(bool enable)
Set the low rate mode.
Definition: slamtec_remote_public.hxx:374
size_t getDiscoveredServers(std::vector< SDKServerConnectionDesc > &serverList, size_t maxFetchCount=32)
Get the discovered server list.
Definition: slamtec_remote_public.hxx:330
void disconnect()
Disconnect from the remote device.
Definition: slamtec_remote_public.hxx:356
bool cancelRelocalization(uint64_t timeout_ms=SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_TIMEOUT, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
Cancel the relocalization.
Definition: slamtec_remote_public.hxx:479
bool requirePureLocalizationMode(uint64_t timeout_ms=SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_TIMEOUT, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
Require the remote device to enter the pure localization mode.
Definition: slamtec_remote_public.hxx:436
void setMapDataSyncing(bool enable)
Set the map data syncing mode.
Definition: slamtec_remote_public.hxx:386
bool isRawDataSubscribed()
Check if the raw data subscription is enabled.
Definition: slamtec_remote_public.hxx:412
void resyncMapData(bool invalidateCache=false)
Resync the map data.
Definition: slamtec_remote_public.hxx:395
bool connect(const SDKServerConnectionDesc &serverDesc, slamtec_aurora_sdk_errorcode_t *errCode=nullptr)
Connect to the remote device.
Definition: slamtec_remote_public.hxx:345
bool sendCustomCommand(uint64_t timeout_ms, uint64_t cmd, const void *data=nullptr, size_t data_size=0, void *response=nullptr, size_t response_buffer_size=0, size_t *response_retrieved_size=nullptr, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
Send a custom command to the remote device.
Definition: slamtec_remote_public.hxx:514
bool isConnected()
Check if the controller is connected to the remote device.
Definition: slamtec_remote_public.hxx:364
bool setLoopClosure(bool enable, uint64_t timeout_ms=SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_TIMEOUT, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
Set the loop closure flag.
Definition: slamtec_remote_public.hxx:494
bool requireMapReset(uint64_t timeout_ms=SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_TIMEOUT, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
Require the remote device to perform the map reset.
Definition: slamtec_remote_public.hxx:422
bool requireRelocalization(uint64_t timeout_ms=SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_TIMEOUT, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
Require the remote device to perform the relocalization.
Definition: slamtec_remote_public.hxx:465
void setRawDataSubscription(bool enable)
Set the raw data subscription mode.
Definition: slamtec_remote_public.hxx:404
The data provider class for accessing the data retrieved from the remote device.
Definition: slamtec_remote_public.hxx:639
bool peekRecentLIDARScanSingleLayer(SingleLayerLIDARScan &scanData, slamtec_aurora_sdk_pose_se3_t &scanPoseSE3, bool forceLatest=false, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
Peek the recent LIDAR scan data in single layer mode.
Definition: slamtec_remote_public.hxx:799
bool getCurrentPoseSE3(slamtec_aurora_sdk_pose_se3_t &poseOut, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
Get the current device pose in SE3 format.
Definition: slamtec_remote_public.hxx:651
bool getMappingFlags(slamtec_aurora_sdk_mapping_flag_t &flagsOut, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
Get the current mapping flags.
Definition: slamtec_remote_public.hxx:684
bool getAllMapInfo(std::vector< slamtec_aurora_sdk_map_desc_t > &descBuffer, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
Get all map info.
Definition: slamtec_remote_public.hxx:894
bool getGlobalMappingInfo(slamtec_aurora_sdk_global_map_desc_t &descOut, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
Get the global mapping info.
Definition: slamtec_remote_public.hxx:879
bool peekTrackingData(RemoteTrackingFrameInfo &infoOut, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
Peek the tracking data.
Definition: slamtec_remote_public.hxx:717
bool getIMUInfo(slamtec_aurora_sdk_imu_info_t &infoOut, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
Get the IMU info.
Definition: slamtec_remote_public.hxx:864
bool accessMapData(const slamtec_aurora_sdk_map_data_visitor_t &visitor, std::vector< uint32_t > mapIDs=std::vector< uint32_t >(), slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
Access the map data like keyframe and map points data.
Definition: slamtec_remote_public.hxx:949
bool peekIMUData(std::vector< slamtec_aurora_sdk_imu_data_t > &imuDataOut, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
Peek the IMU data.
Definition: slamtec_remote_public.hxx:844
bool getCurrentPose(slamtec_aurora_sdk_pose_t &poseOut, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
Get the current device pose in Euler angles (Roll-Pitch-Yaw RPY order) format.
Definition: slamtec_remote_public.hxx:669
bool accessMapData(const RemoteMapDataVisitor &visitor, std::vector< uint32_t > mapIDs=std::vector< uint32_t >(), slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
Access the map data like keyframe and map points data.
Definition: slamtec_remote_public.hxx:932
bool getLastDeviceStatus(slamtec_aurora_sdk_device_status_t &statusOut, uint64_t ×tamp_ns, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
Get the last device status.
Definition: slamtec_remote_public.hxx:700
The image reference class wraps the image description and data.
Definition: slamtec_remote_objects.hxx:281
The keyframe data class wraps the keyframe description and its data.
Definition: slamtec_remote_objects.hxx:563
The map data visitor class for accessing the map data from the remote device.
Definition: slamtec_remote_public.hxx:241
void subscribeMapData(const MapDataCallback &mapDataCallback)
Subscribe the map data callback.
Definition: slamtec_remote_public.hxx:258
void subscribeMapPointData(const MapPointDataCallback &mapPointDataCallback)
Subscribe the map point data callback.
Definition: slamtec_remote_public.hxx:283
void subscribeKeyFrameData(const KeyFrameDataCallback &keyFrameDataCallback)
Subscribe the keyframe data callback.
Definition: slamtec_remote_public.hxx:270
The map manager class for managing the map data.
Definition: slamtec_remote_public.hxx:540
bool startUploadSession(const char *mapfilePath, slamtec_aurora_sdk_mapstorage_session_result_callback_t resultCallBack=nullptr, void *userData=nullptr, slamtec_aurora_sdk_errorcode_t *errCode=nullptr)
Start an upload session.
Definition: slamtec_remote_public.hxx:556
bool startSession(const char *mapfilePath, slamtec_aurora_sdk_mapstorage_session_type_t sessionType, slamtec_aurora_sdk_mapstorage_session_result_callback_t resultCallBack=nullptr, void *userData=nullptr, slamtec_aurora_sdk_errorcode_t *errCode=nullptr)
Start a map streaming session.
Definition: slamtec_remote_public.hxx:583
bool startDownloadSession(const char *mapfilePath, slamtec_aurora_sdk_mapstorage_session_result_callback_t resultCallBack=nullptr, void *userData=nullptr, slamtec_aurora_sdk_errorcode_t *errCode=nullptr)
Start a download session.
Definition: slamtec_remote_public.hxx:569
bool isSessionActive()
Check if the map streaming session is active.
Definition: slamtec_remote_public.hxx:595
void abortSession()
Abort the map streaming session.
Definition: slamtec_remote_public.hxx:604
bool querySessionStatus(slamtec_aurora_sdk_mapstorage_session_status_t &progressOut, slamtec_aurora_sdk_errorcode_t *errCode=nullptr)
Query the status of the map streaming session.
Definition: slamtec_remote_public.hxx:614
The listener base class for receiving the data stream from the remote device.
Definition: slamtec_remote_public.hxx:92
The main class for the remote SDK.
Definition: slamtec_remote_public.hxx:1328
RemoteController controller
The controller class object.
Definition: slamtec_remote_public.hxx:1457
static bool GetSDKInfo(slamtec_aurora_sdk_version_info_t &info_out, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
Get the SDK version info.
Definition: slamtec_remote_public.hxx:1337
RemoteDataProvider dataProvider
The data provider class object.
Definition: slamtec_remote_public.hxx:1453
void disconnect()
Disconnect from the server.
Definition: slamtec_remote_public.hxx:1407
bool isConnected()
Check if the session is connected.
Definition: slamtec_remote_public.hxx:1416
static void DestroySession(RemoteSDK *session)
Destroy a session.
Definition: slamtec_remote_public.hxx:1374
void stopBackgroundMapDataSyncing()
Stop the background map data syncing.
Definition: slamtec_remote_public.hxx:1432
FloorDetector floorDetector
The floor detector class object.
Definition: slamtec_remote_public.hxx:1473
RemoteMapManager mapManager
The map manager class object.
Definition: slamtec_remote_public.hxx:1461
size_t getDiscoveredServers(std::vector< SDKServerConnectionDesc > &serverList, size_t maxFetchCount=32)
Get the discovered servers.
Definition: slamtec_remote_public.hxx:1387
void startBackgroundMapDataSyncing()
Start the background map data syncing.
Definition: slamtec_remote_public.hxx:1424
LIDAR2DMapBuilder lidar2DMapBuilder
The LIDAR 2D map builder class object.
Definition: slamtec_remote_public.hxx:1467
bool connect(const SDKServerConnectionDesc &serverDesc, slamtec_aurora_sdk_errorcode_t *errCode=nullptr)
Connect to a server.
Definition: slamtec_remote_public.hxx:1399
void release()
Release the session.
Definition: slamtec_remote_public.hxx:1446
static RemoteSDK * CreateSession(const RemoteSDKListener *listener=nullptr, const SDKConfig &config=SDKConfig(), slamtec_aurora_sdk_errorcode_t *error_code=nullptr)
Create a session.
Definition: slamtec_remote_public.hxx:1353
The tracking frame info class wraps the tracking information and its data.
Definition: slamtec_remote_objects.hxx:337
The SDK configuration class.
Definition: slamtec_remote_public.hxx:305
The server connection description class.
Definition: slamtec_remote_objects.hxx:135
The single layer LIDAR scan data class wraps the LIDAR scan data and its description.
Definition: slamtec_remote_objects.hxx:625
slamtec_aurora_sdk_lidar_singlelayer_scandata_info_t info
The LIDAR scan data info.
Definition: slamtec_remote_objects.hxx:653
std::vector< slamtec_aurora_sdk_lidar_scan_point_t > scanData
The LIDAR scan data.
Definition: slamtec_remote_objects.hxx:658
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_autofloordetection_get_current_detection_desc(slamtec_aurora_sdk_session_handle_t handle, slamtec_aurora_sdk_floor_detection_desc_t *desc_out)
Get the floor detection description of the current floor detected.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_autofloordetection_get_all_detection_info(slamtec_aurora_sdk_session_handle_t handle, slamtec_aurora_sdk_floor_detection_desc_t *desc_buffer, size_t buffer_count, size_t *actual_count_out, int *current_floor_id)
Get the floor detection descriptions of all floors detected.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_autofloordetection_get_detection_histogram(slamtec_aurora_sdk_session_handle_t handle, slamtec_aurora_sdk_floor_detection_histogram_info_t *header_out, float *histogram_buffer, size_t buffer_count)
Get the floor detection histogram.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_controller_set_raw_data_subscription(slamtec_aurora_sdk_session_handle_t handle, int enable)
Set the raw data subscription.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_controller_require_mapping_mode(slamtec_aurora_sdk_session_handle_t handle, uint64_t timeout_ms)
Require the remote Device to enter the mapping mode.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_controller_set_loop_closure(slamtec_aurora_sdk_session_handle_t handle, int enable, uint64_t timeout_ms)
Require the remote Device to enable/disable the loop closure.
int AURORA_SDK_API slamtec_aurora_sdk_controller_is_connected(slamtec_aurora_sdk_session_handle_t handle)
Check if the session is connected to a server.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_controller_cancel_relocalization(slamtec_aurora_sdk_session_handle_t handle, uint64_t timeout_ms)
Require the remote Device to cancel the relocalization process.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_controller_require_relocalization(slamtec_aurora_sdk_session_handle_t handle, uint64_t timeout_ms)
Require the remote Device to enter the relocalization mode.
void AURORA_SDK_API slamtec_aurora_sdk_controller_resync_map_data(slamtec_aurora_sdk_session_handle_t handle, int invalidate_cache)
Resync the map data.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_controller_require_map_reset(slamtec_aurora_sdk_session_handle_t handle, uint64_t timeout_ms)
Require the remote Device to reset the map, a.k.a. clear all the map data and restart the mapping pro...
void AURORA_SDK_API slamtec_aurora_sdk_controller_set_low_rate_mode(slamtec_aurora_sdk_session_handle_t handle, int enable)
Set the low rate mode.
void AURORA_SDK_API slamtec_aurora_sdk_controller_set_map_data_syncing(slamtec_aurora_sdk_session_handle_t handle, int enable)
Set the map data syncing.
int AURORA_SDK_API slamtec_aurora_sdk_controller_get_discovered_servers(slamtec_aurora_sdk_session_handle_t handle, slamtec_aurora_sdk_server_connection_info_t *servers, size_t max_server_count)
Get the discovered servers list.
int AURORA_SDK_API slamtec_aurora_sdk_controller_is_raw_data_subscribed(slamtec_aurora_sdk_session_handle_t handle)
Check if the raw data is subscribed.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_controller_send_custom_command(slamtec_aurora_sdk_session_handle_t handle, uint64_t timeout_ms, uint64_t cmd, const void *data, size_t data_size, void *response, size_t response_buffer_size, size_t *response_retrieved_size)
Send a custom command to the remote Device.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_controller_connect(slamtec_aurora_sdk_session_handle_t handle, const slamtec_aurora_sdk_server_connection_info_t *server_conn_info)
Connect to a server.
void AURORA_SDK_API slamtec_aurora_sdk_controller_disconnect(slamtec_aurora_sdk_session_handle_t handle)
Disconnect from a server.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_controller_require_pure_localization_mode(slamtec_aurora_sdk_session_handle_t handle, uint64_t timeout_ms)
Require the remote Device to enter the pure localization mode, the map data will not be updated.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_dataprovider_get_imu_info(slamtec_aurora_sdk_session_handle_t handle, slamtec_aurora_sdk_imu_info_t *info_out)
Get the IMU info.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_dataprovider_access_map_data(slamtec_aurora_sdk_session_handle_t handle, const slamtec_aurora_sdk_map_data_visitor_t *visitor, uint32_t *map_ids, size_t map_count)
Access the map data like keyframe and map points data.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_dataprovider_get_last_device_status(slamtec_aurora_sdk_session_handle_t handle, slamtec_aurora_sdk_device_status_t *status_out, uint64_t *timestamp_ns_out)
Get the last device status.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_dataprovider_get_current_pose(slamtec_aurora_sdk_session_handle_t handle, slamtec_aurora_sdk_pose_t *pose_out)
Get the current pose (base to world) in Euler angles (Roll-Pitch-Yaw RPY order) format.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_dataprovider_get_relocalization_status(slamtec_aurora_sdk_session_handle_t handle, slamtec_aurora_sdk_relocalization_status_type_t *status_out, uint64_t *timestamp_ns_out)
Get the relocalization status.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_dataprovider_peek_tracking_data(slamtec_aurora_sdk_session_handle_t handle, slamtec_aurora_sdk_tracking_info_t *tracking_data_out, const slamtec_aurora_sdk_tracking_data_buffer_t *provided_buffer_info)
Peek the tracking data.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_dataprovider_peek_recent_lidar_scan_singlelayer(slamtec_aurora_sdk_session_handle_t handle, slamtec_aurora_sdk_lidar_singlelayer_scandata_info_t *header_out, slamtec_aurora_sdk_lidar_scan_point_t *scan_points_out, size_t buffer_count, slamtec_aurora_sdk_pose_se3_t *scanpose, int forceLatest)
Peek the most recent single layer LiDAR scan data and its pose.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_dataprovider_peek_imu_data(slamtec_aurora_sdk_session_handle_t handle, slamtec_aurora_sdk_imu_data_t *imu_data_out, size_t buffer_count, size_t *actual_count_out)
Peek the IMU data.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_dataprovider_get_current_pose_se3(slamtec_aurora_sdk_session_handle_t handle, slamtec_aurora_sdk_pose_se3_t *pose_out)
Get the current pose (base to world) in SE3 format.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_dataprovider_get_mapping_flags(slamtec_aurora_sdk_session_handle_t handle, slamtec_aurora_sdk_mapping_flag_t *flags_out)
Get the current mapping flags.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_dataprovider_get_all_map_info(slamtec_aurora_sdk_session_handle_t handle, slamtec_aurora_sdk_map_desc_t *desc_buffer, size_t buffer_count, size_t *actual_count_out)
Get all map info.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_dataprovider_get_global_mapping_info(slamtec_aurora_sdk_session_handle_t handle, slamtec_aurora_sdk_global_map_desc_t *desc_out)
Get the global mapping info.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_lidar2dmap_get_supported_max_grid_cell_count(slamtec_aurora_sdk_session_handle_t handle, size_t *max_cell_count)
Get the supported maximum grid cell count of the LIDAR 2D map.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_lidar2dmap_gridmap_get_resolution(const slamtec_aurora_sdk_occupancy_grid_2d_handle_t gridmap_handle, float *resolution_out)
Get the resolution of the LIDAR 2D map.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_lidar2dmap_previewmap_set_auto_floor_detection(slamtec_aurora_sdk_session_handle_t handle, int enable)
Set the auto floor detection for the LIDAR 2D preview map.
int AURORA_SDK_API slamtec_aurora_sdk_lidar2dmap_previewmap_is_auto_floor_detection(slamtec_aurora_sdk_session_handle_t handle)
Check if the auto floor detection is enabled for the LIDAR 2D preview map.
void AURORA_SDK_API slamtec_aurora_sdk_lidar2dmap_gridmap_release(slamtec_aurora_sdk_occupancy_grid_2d_handle_t gridmap_handle)
Release the LIDAR 2D map.
void AURORA_SDK_API slamtec_aurora_sdk_lidar2dmap_previewmap_stop_background_update(slamtec_aurora_sdk_session_handle_t handle)
Stop the background map generation for the LIDAR 2D preview map.
int AURORA_SDK_API slamtec_aurora_sdk_lidar2dmap_previewmap_is_background_updating(slamtec_aurora_sdk_session_handle_t handle)
Check if the background map generation for the LIDAR 2D preview map is running.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_lidar2dmap_gridmap_read_cell_data(const slamtec_aurora_sdk_occupancy_grid_2d_handle_t gridmap_handle, const slamtec_aurora_sdk_rect_t *fetch_rect, slamtec_aurora_sdk_2d_gridmap_fetch_info_t *info_out, uint8_t *cell_buffer, size_t cell_buffer_size, int l2p_mapping)
Read the cell data of the LIDAR 2D map.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_lidar2dmap_previewmap_get_and_reset_update_dirty_rect(slamtec_aurora_sdk_session_handle_t handle, slamtec_aurora_sdk_rect_t *dirty_rect_out, int *map_big_change)
Get the dirty rect of the LIDAR 2D preview map and reset the dirty rect.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_lidar2dmap_previewmap_start_background_update(slamtec_aurora_sdk_session_handle_t handle, const slamtec_aurora_sdk_2d_gridmap_generation_options_t *build_options)
Start the background map generation for the LIDAR 2D preview map.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_lidar2dmap_generate_fullmap(slamtec_aurora_sdk_session_handle_t handle, slamtec_aurora_sdk_occupancy_grid_2d_handle_t *generated_gridmap_handle_out, const slamtec_aurora_sdk_2d_gridmap_generation_options_t *build_options, int wait_for_data_sync, uint64_t timeout_ms)
Generate the full map on demand.
const slamtec_aurora_sdk_occupancy_grid_2d_handle_t AURORA_SDK_API slamtec_aurora_sdk_lidar2dmap_previewmap_get_gridmap_handle(slamtec_aurora_sdk_session_handle_t handle)
Get the handle of the LIDAR 2D preview map.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_lidar2dmap_gridmap_get_dimension(const slamtec_aurora_sdk_occupancy_grid_2d_handle_t gridmap_handle, slamtec_aurora_sdk_2dmap_dimension_t *dimension_out, int get_max_capcity)
Get the current dimension of the LIDAR 2D map.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_lidar2dmap_previewmap_require_redraw(slamtec_aurora_sdk_session_handle_t handle)
Require the LIDAR 2D preview map to be redrawn.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_lidar2dmap_get_supported_grid_resultion_range(slamtec_aurora_sdk_session_handle_t handle, float *min_resolution, float *max_resolution)
Get the supported grid resolution range of the LIDAR 2D map.
void AURORA_SDK_API slamtec_aurora_sdk_mapmanager_abort_session(slamtec_aurora_sdk_session_handle_t handle)
Abort the current map storage session.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_mapmanager_start_storage_session(slamtec_aurora_sdk_session_handle_t handle, const char *map_file_name, slamtec_aurora_sdk_mapstorage_session_type_t session_type, slamtec_aurora_sdk_mapstorage_session_result_callback_t callback, void *user_data)
Start a map storage session.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_mapmanager_query_storage_status(slamtec_aurora_sdk_session_handle_t handle, slamtec_aurora_sdk_mapstorage_session_status_t *progress_out)
Query the progress of the current map storage session.
int AURORA_SDK_API slamtec_aurora_sdk_mapmanager_is_storage_session_active(slamtec_aurora_sdk_session_handle_t handle)
Check if the map storage session is in progress.
void * slamtec_aurora_sdk_session_handle_t
The session handle type.
Definition: aurora_pubsdk_objects.h:27
uint32_t slamtec_aurora_sdk_mapping_flag_t
The mapping flag value.
Definition: aurora_pubsdk_objects.h:416
uint32_t slamtec_aurora_sdk_errorcode_t
The error code value type.
Definition: aurora_pubsdk_common_def.h:68
uint32_t slamtec_aurora_sdk_device_status_t
The device status value.
Definition: aurora_pubsdk_objects.h:483
uint32_t slamtec_aurora_sdk_mapstorage_session_type_t
The map storage session type.
Definition: aurora_pubsdk_objects.h:174
void * slamtec_aurora_sdk_occupancy_grid_2d_handle_t
The occupancy grid 2D handle type.
Definition: aurora_pubsdk_objects.h:41
struct _slamtec_aurora_sdk_session_config_t slamtec_aurora_sdk_session_config_t
The session config structure.
@ SLAMTEC_AURORA_SDK_MAPSTORAGE_SESSION_TYPE_DOWNLOAD
The download session type.
Definition: aurora_pubsdk_objects.h:192
@ SLAMTEC_AURORA_SDK_MAPSTORAGE_SESSION_TYPE_UPLOAD
The upload session type.
Definition: aurora_pubsdk_objects.h:187
virtual void onIMUData(const slamtec_aurora_sdk_imu_data_t *imuBuffer, size_t bufferCount)
The callback for the IMU data.
Definition: slamtec_remote_public.hxx:122
virtual void onRawCamImageData(uint64_t timestamp_ns, const RemoteImageRef &left, const RemoteImageRef &right)
The callback for the raw image data.
Definition: slamtec_remote_public.hxx:115
virtual void onLIDARScan(const slamtec_aurora_sdk_lidar_singlelayer_scandata_info_t &header, const slamtec_aurora_sdk_lidar_scan_point_t *points)
The callback for the LIDAR scan data.
Definition: slamtec_remote_public.hxx:144
virtual void onTrackingData(const RemoteTrackingFrameInfo &info)
The callback for the tracking data.
Definition: slamtec_remote_public.hxx:108
virtual void onNewMappingFlags(slamtec_aurora_sdk_mapping_flag_t flags)
The callback for the mapping flags.
Definition: slamtec_remote_public.hxx:129
void(* slamtec_aurora_sdk_mapstorage_session_result_callback_t)(void *user_data, int is_ok)
The map storage session result callback.
Definition: aurora_pubsdk_objects.h:1239
virtual void onDeviceStatusChanged(uint64_t timestamp_ns, slamtec_aurora_sdk_device_status_t status)
The callback for the device status.
Definition: slamtec_remote_public.hxx:136
slamtec_aurora_sdk_session_handle_t AURORA_SDK_API slamtec_aurora_sdk_create_session(const slamtec_aurora_sdk_session_config_t *config, size_t config_size, const slamtec_aurora_sdk_listener_t *listener, slamtec_aurora_sdk_errorcode_t *error_code)
Create a SDK session.
slamtec_aurora_sdk_errorcode_t AURORA_SDK_API slamtec_aurora_sdk_get_version_info(slamtec_aurora_sdk_version_info_t *info_out)
Get the version info of the SDK.
void AURORA_SDK_API slamtec_aurora_sdk_release_session(slamtec_aurora_sdk_session_handle_t handle)
Release a SDK session.
The 2D gridmap dimension structure.
Definition: aurora_pubsdk_objects.h:833
The 2D gridmap fetch info structure.
Definition: aurora_pubsdk_objects.h:921
int cell_height
The height of the retrieved gridmap cell in meters.
Definition: aurora_pubsdk_objects.h:937
int cell_width
The width of the retrieved gridmap cell in meters.
Definition: aurora_pubsdk_objects.h:933
The device status structure.
Definition: aurora_pubsdk_objects.h:491
The floor detection description structure.
Definition: aurora_pubsdk_objects.h:945
int bin_total_count
The total count of the histogram bin.
Definition: aurora_pubsdk_objects.h:988
The global map description structure.
Definition: aurora_pubsdk_objects.h:999
The image description structure.
Definition: aurora_pubsdk_objects.h:517
uint32_t data_size
The size of the image data in bytes.
Definition: aurora_pubsdk_objects.h:543
The IMU data structure.
Definition: aurora_pubsdk_objects.h:712
The IMU info structure.
Definition: aurora_pubsdk_objects.h:743
The keyframe description structure.
Definition: aurora_pubsdk_objects.h:1158
The LIDAR scan point structure.
Definition: aurora_pubsdk_objects.h:778
The single layer LIDAR scan data header structure.
Definition: aurora_pubsdk_objects.h:798
uint32_t scan_count
The count of the scan points.
Definition: aurora_pubsdk_objects.h:824
The listener structure.
Definition: aurora_pubsdk_objects.h:1311
slamtec_aurora_sdk_on_lidar_scan_callback_t on_lidar_scan
The callback for the lidar scan data, set to NULL to ignore this callback.
Definition: aurora_pubsdk_objects.h:1341
slamtec_aurora_sdk_on_image_data_callback_t on_raw_image_data
The callback for the raw image data, set to NULL to ignore this callback.
Definition: aurora_pubsdk_objects.h:1320
slamtec_aurora_sdk_on_device_status_callback_t on_device_status
The callback for the device status, set to NULL to ignore this callback.
Definition: aurora_pubsdk_objects.h:1336
void * user_data
The user data to be passed to the callback.
Definition: aurora_pubsdk_objects.h:1315
slamtec_aurora_sdk_on_imu_data_callback_t on_imu_data
The callback for the IMU data, set to NULL to ignore this callback.
Definition: aurora_pubsdk_objects.h:1328
slamtec_aurora_sdk_on_mapping_flags_callback_t on_mapping_flags
The callback for the mapping flags, set to NULL to ignore this callback.
Definition: aurora_pubsdk_objects.h:1332
slamtec_aurora_sdk_on_tracking_data_callback_t on_tracking_data
The callback for the tracking data, set to NULL to ignore this callback.
Definition: aurora_pubsdk_objects.h:1324
The map data visitor structure.
Definition: aurora_pubsdk_objects.h:1374
void * user_data
The user data to be passed to the callback.
Definition: aurora_pubsdk_objects.h:1378
slamtec_aurora_sdk_on_map_keyframe_callback_t on_keyframe
The callback for accessing the keyframe data, set to NULL to ignore this callback.
Definition: aurora_pubsdk_objects.h:1383
slamtec_aurora_sdk_on_map_point_callback_t on_map_point
The callback for accessing the map point data, set to NULL to ignore this callback.
Definition: aurora_pubsdk_objects.h:1387
slamtec_aurora_sdk_on_map_desc_callback_t on_map_desc
The callback for accessing the map description, set to NULL to ignore this callback.
Definition: aurora_pubsdk_objects.h:1391
The map description structure.
Definition: aurora_pubsdk_objects.h:1097
The map point description structure.
Definition: aurora_pubsdk_objects.h:1205
The map storage session status structure.
Definition: aurora_pubsdk_objects.h:244
The SE3 pose structure.
Definition: aurora_pubsdk_objects.h:342
The pose structure using translation and Euler angle.
Definition: aurora_pubsdk_objects.h:360
The rectangle structure.
Definition: aurora_pubsdk_objects.h:858
Definition: aurora_pubsdk_objects.h:507
The session config structure.
Definition: aurora_pubsdk_objects.h:93
The tracking data buffer structure.
Definition: aurora_pubsdk_objects.h:578
slamtec_aurora_sdk_keypoint_t * keypoints_right
The buffer to hold keypoints of the right camera.
Definition: aurora_pubsdk_objects.h:623
slamtec_aurora_sdk_keypoint_t * keypoints_left
The buffer to hold keypoints of the left camera.
Definition: aurora_pubsdk_objects.h:612
void * imgdata_left
The buffer to hold image data of the left camera.
Definition: aurora_pubsdk_objects.h:584
void * imgdata_right
The buffer to hold image data of the right camera.
Definition: aurora_pubsdk_objects.h:600
size_t keypoints_left_buffer_count
The size of the buffer to hold keypoints of the left camera.
Definition: aurora_pubsdk_objects.h:617
size_t keypoints_right_buffer_count
The size of the buffer to hold keypoints of the right camera.
Definition: aurora_pubsdk_objects.h:629
size_t imgdata_right_size
The size of the buffer to hold image data of the right camera.
Definition: aurora_pubsdk_objects.h:605
size_t imgdata_left_size
The size of the buffer to hold image data of the left camera.
Definition: aurora_pubsdk_objects.h:592
The tracking info structure.
Definition: aurora_pubsdk_objects.h:659
uint32_t keypoints_left_count
The count of the keypoints of the left image.
Definition: aurora_pubsdk_objects.h:698
slamtec_aurora_sdk_image_desc_t left_image_desc
The description of the left image.
Definition: aurora_pubsdk_objects.h:670
slamtec_aurora_sdk_image_desc_t right_image_desc
The description of the right image.
Definition: aurora_pubsdk_objects.h:675
uint32_t keypoints_right_count
The count of the keypoints of the right image.
Definition: aurora_pubsdk_objects.h:703
The version info structure.
Definition: aurora_pubsdk_objects.h:60