10 #include <sys/socket.h>     11 #include <netinet/in.h>     12 #include <netinet/tcp.h>    15 #include <arpa/inet.h>    17 #include <opencv2/opencv.hpp>    18 #include <opencv2/core/core.hpp>    19 #include <opencv2/highgui/highgui.hpp>    20 #include <opencv2/imgproc/imgproc.hpp>    22 #include <octomap/octomap.h>    24 #include "../include/eigen/Eigen/Dense"    25 #include "../include/eigen/Eigen/src/Geometry/Quaternion.h"    27 #include "../include/se2/se2.h"    57                 for (
int rid = 0; rid < 
map_rows; ++rid)
    59                 for (
int rid = 0; rid < 
map_rows; ++rid)
    61                         for (
int cid = 0; cid < 
map_cols; ++cid)
    64                                 m_cellmap[rid][cid].
isFree = 
false;
    89         m_tree = 
new octomap::OcTree(resolution);
   105         const double camera_factor = 1000;
   106         const double camera_cx = 320.5;
   107         const double camera_cy = 240.5;
   108         const double camera_fx = 554.38;
   109         const double camera_fy = 554.38;
   110         const int scan_max_range = 3000; 
   113         const int MAXRECV = 10240;
   114         const int frame_rows = 480;
   115         const int frame_cols = 640;
   116         char *server_ip = 
"192.168.180.128";
   142                 for (
int i = 0; i < 
rbt_num; i++)
   144                         m_rgb.push_back(cv::Mat(frame_rows, frame_cols, CV_8UC3));
   145                         m_depth.push_back(cv::Mat(frame_rows, frame_cols, CV_16UC1));
   149                 m_pose.resize(rbt_num);
   150                 for (
int i = 0; i < 
rbt_num; ++i)
   155                 m_frustum_contours.clear();
   156                 m_frustum_contours.resize(rbt_num);
   158                 m_free_space_contours2d.clear();
   159                 m_free_space_contours2d.resize(rbt_num);
   162                 m_pose2d.resize(rbt_num);
   180         bool create_connection();
   183         bool getRGBDFromServer();
   185         bool rcvRGBDFromServer();
   187         bool getPoseFromServer();
   189         bool rcvPoseFromServer();
   191         void scanSurroundingsCmd();
   193         bool socket_move_to_views(std::vector<std::vector<double>> poses);
   196         void insertAFrame2Tree(cv::Mat & depth, std::vector<float> pose);
   199         void fuseScans2MapAndTree();
   202         std::vector<cv::Point> loadIdealFrustum(Eigen::MatrixXd r, Eigen::Vector3d t);
   205         void fillTrivialHolesKnownRegion();
   208         void SetUpSurroundings();
   211         void findExtraFreeSpace(
int rid, cv::Mat depth, std::vector<float> pose);
   214         std::pair<Eigen::MatrixXd, Eigen::Vector3d> coord_trans_7f_rt(std::vector<float> pose);
   217         iro::SE2 coord_trans_7f_se2(std::vector<float> pose);
   220         std::vector<double> coord_trans_se22gazebo(
iro::SE2 pose);
   223         Eigen::Vector2i coord_trans_oc2cell(Eigen::Vector3d p_oc);
   226         Eigen::Vector2i coord_trans_oc2cell(Eigen::Vector3d p_oc, 
double node_size, 
int scale);
   229         void projectOctree2Map();
   232         cv::Mat visCellMap();
   235         cv::Mat showCellMap();
   238         cv::Mat showStatement();
   256                 m_recon3D.
m_tree->writeBinary(
"/home/bamboo/catkin_ws/src/co_scan/temp/dsy_octree.bt");
 std::vector< std::vector< float > > m_set_pose
std::vector< iro::SE2 > m_pose2d
const double free_voxel_porject_height
std::vector< std::vector< float > > m_pose
Recon3D(float resolution)
std::vector< cv::Mat > m_rgb
const double project_min_height
std::vector< cv::Mat > m_depth
std::vector< std::vector< cv::Point > > m_free_space_contours2d
const double project_max_height
std::vector< std::vector< cv::Point > > m_frustum_contours