Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef TANGO_3D_RECONSTRUCTION_HELPER_H_
00015 #define TANGO_3D_RECONSTRUCTION_HELPER_H_
00016 #include <string>
00017
00018 #include <tango_3d_reconstruction/tango_3d_reconstruction_api.h>
00019 #include <tango_support/tango_support.h>
00020
00021 #include <nav_msgs/OccupancyGrid.h>
00022 #include <ros/ros.h>
00023 #include <visualization_msgs/MarkerArray.h>
00024
00025 namespace tango_3d_reconstruction_helper {
00026 const double TANGO_3DR_DEFAULT_RESOLUTION = 0.05;
00027 const bool TANGO_3DR_DEFAULT_USE_SPACE_CLEARING = false;
00028 const int32_t TANGO_3DR_DEFAULT_MIN_NUM_VERTICES = 1;
00029 const int32_t TANGO_3DR_DEFAULT_UPDATE_METHOD = 0;
00030 const int32_t TANGO_3DR_DEFAULT_MAX_VOXEL_WEIGHT = 16383;
00031 const double TANGO_3DR_DEFAULT_FLOORPLAN_MAX_ERROR = 0.;
00032
00033
00034
00035
00036
00037 const uint8_t TANGO_3DR_OCCUPANCY_GRID_DEFAULT_THRESHOLD = 180;
00038
00039 const std::string TANGO_3DR_RESOLUTION_PARAM_NAME = "reconstruction/resolution_3d";
00040 const std::string TANGO_3DR_USE_SPACE_CLEARING_PARAM_NAME = "reconstruction/use_space_clearing";
00041 const std::string TANGO_3DR_MIN_NUM_VERTICES_PARAM_NAME = "reconstruction/min_num_vertices";
00042 const std::string TANGO_3DR_UPDATE_METHOD_PARAM_NAME = "reconstruction/update_method";
00043 const std::string TANGO_3DR_MAX_VOXEL_WEIGHT_PARAM_NAME = "reconstruction/max_voxel_weight";
00044 const std::string TANGO_3DR_FLOORPLAN_MAX_ERROR_PARAM_NAME = "reconstruction/floorplan_max_error";
00045 const std::string TANGO_3DR_OCCUPANCY_GRID_THRESHOLD_PARAM_NAME = "reconstruction/occupancy_grid_threshold";
00046
00047 Tango3DR_Status TangoSetup3DRConfig(
00048 const ros::NodeHandle& node_handle, double* t3dr_resolution,
00049 Tango3DR_ReconstructionContext* t3dr_context,
00050 Tango3DR_CameraCalibration* t3dr_color_camera_intrinsics);
00051
00052 void UpdateMesh(const Tango3DR_ReconstructionContext& t3dr_context,
00053 TangoSupport_PointCloudManager* point_cloud_manager,
00054 TangoSupport_ImageBufferManager* image_buffer_manager,
00055 Tango3DR_Pose* last_camera_depth_pose,
00056 Tango3DR_Pose* last_camera_color_pose,
00057 Tango3DR_GridIndexArray* t3dr_updated_indices);
00058
00059 void ExtractMeshAndConvertToMarkerArray(
00060 const Tango3DR_ReconstructionContext& t3dr_context,
00061 const Tango3DR_GridIndexArray& t3dr_updated_indices,
00062 double time_offset, const std::string& base_frame_id,
00063 visualization_msgs::MarkerArray* mesh_marker_array);
00064
00065 bool ExtractFloorPlanImageAndConvertToOccupancyGrid(
00066 const Tango3DR_ReconstructionContext& t3dr_context,
00067 double time_offset, const std::string& base_frame_id,
00068 double t3dr_resolution, uint8_t threshold,
00069 nav_msgs::OccupancyGrid* occupancy_grid);
00070
00071 }
00072 #endif // TANGO_3D_RECONSTRUCTION_HELPER_H_