日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tof相机开发笔记

發布時間:2024/1/1 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tof相机开发笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近幫老師做tof相機的項目,甲方提供的代碼可以實現圖片數據的獲取,要求在此基礎上,能夠通過ros平臺實現slam導航、點云地圖的構建、拍照等功能。

一、深度圖獲取

1、文件編譯

1.1編譯方式的配置

快捷鍵 ctrl + shift + B 調用編譯,選擇:catkin_make:build

可以點擊配置設置為默認,修改.vscode/tasks.json 文件

{ // 有關 tasks.json 格式的文檔,請參見// https://go.microsoft.com/fwlink/?LinkId=733558"version": "2.0.0","tasks": [{"label": "catkin_make:debug", //代表提示的描述性信息"type": "shell", //可以選擇shell或者process,如果是shell代碼是在shell里面運行一個命令,如果是process代表作為一個進程來運行"command": "catkin_make",//這個是我們需要運行的命令"args": [],//如果需要在命令后面加一些后綴,可以寫在這里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”"group": {"kind":"build","isDefault":true},"presentation": {"reveal": "always"//可選always或者silence,代表是否輸出信息},"problemMatcher": "$msCompile"}] }

配置好后,快捷鍵 ctrl + shift + B可快速編譯。

1.2glibc庫安裝與glibc++升級

出現的問題(如圖)

?可以看到,其中的主要問題是GLIBCXX庫和GLIBC庫版本過低。查看這兩個庫的版本。

首先明確兩個庫的位置

GLIBCXX /usr/lib/x86_64-linux-gnu/libstdc++.so.6 GLIBC /lib/x86_64-linux-gnu/libm.so.6

?沒有升級前,libstdc++版本為6.0.21(對應LIBCXX3.4.21),libsm版本為2.23(已經升級了,沒有截圖)

?查看庫版本升級后的版本,libstdc++版本為6.0.28(對應LIBCXX3.4.28)),這個時候包含了3.4.22,也就解決了3.4.22沒有定義的問題。

?libstdc++庫版本的升級是通過升級gcc和g++的版本升級的。均從5.4.0升級到7.5.0的版本,安裝完成后,libstdc++也就升級了。

下面是安裝方法:

ubuntu16.04安裝gcc g++7.5.0及各個版本的切換_8BitCat的博客-CSDN博客

同理,libcm庫文件也需要升級到2.29及以上版本

下面是升級方法

ImportError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29‘ not found_ppipp1109的博客-CSDN博客

?安裝對應的glibc庫

?注意:為了規范,不同的是,其中創建build文件夾,在build文件夾中進行下面的操作,指定安裝目錄,其中必須要有configure文件才可以使用下面的指令,否則會出現無此文件的顯示

../configure --prefix=/usr/local/glibc

在執行make -j8之前,輸入下面的指令bison是一種解析器生成器,如果不安裝,make -j8無效

sudo apt-get install bison

升級后

?還是有兩處小問題。其中的‘__strtof128_nan@GLIBC_PRIVATE’未定義的引用,我發現libm.so.6中的是“__strtof128_nan@@GLIBC_PRIVATE”,而對‘glob@GLIBC_2.27’未定義的引用,我已經向libm.so.6鏈接到2.29版本,出現這種情況,我也是不能理解的,計劃再次升級版本。

1.3小結

yankai@yankai-linux:/usr/lib/x86_64-linux-gnu$ ls -l libstdc++.so.6 lrwxrwxrwx 1 root root 19 6月 3 2021 libstdc++.so.6 -> libstdc++.so.6.0.28yankai@yankai-linux:/lib/x86_64-linux-gnu$ ls -l libm.so.6 lrwxrwxrwx 1 root root 33 11月 30 17:32 libm.so.6 -> /usr/local/glibc/lib/libm-2.29.so

ls -l? 庫文件,該指令可以查看庫文件鏈接的庫版本。

yankai@yankai-linux:/lib/x86_64-linux-gnu$ sudo ln -sf /usr/local/glibc/lib/libm-2.29.so libm.so.6 yankai@yankai-linux:/lib/x86_64-linux-gnu$ ls -l libm.so.6 lrwxrwxrwx 1 root root 33 11月 30 18:45 libm.so.6 -> /usr/local/glibc/lib/libm-2.29.so

?ln -sf 需要鏈接的庫版本? 目標庫,該指令可鏈接庫文件,用來更新庫版本。

yankai@yankai-linux:/usr/lib/x86_64-linux-gnu$ sudo find / -name "libstdc++.so.6*" [sudo] yankai 的密碼: /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28-gdb.py find: `/run/user/1000/doc': 權限不夠 find: `/run/user/1000/gvfs': 權限不夠 /home/yankai/qt/QtAndorid/environment/android-studio/bin/lldb/lib/libstdc++.so.6 /home/yankai/qt/QtAndorid/environment/android-sdk-linux/tools/lib/libstdc++/libstdc++.so.6 /home/yankai/qt/QtAndorid/environment/android-sdk-linux/tools/lib/libstdc++/libstdc++.so.6.0.18 /home/yankai/qt/QtAndorid/environment/android-sdk-linux/tools/lib64/libstdc++/libstdc++.so.6 /home/yankai/qt/QtAndorid/environment/android-sdk-linux/tools/lib64/libstdc++/libstdc++.so.6.0.18

sudo find / -name "文件名",可以全局搜索文件的位置,用這個搜索到庫,再進行一些列操作。

yankai@yankai-linux:/usr/lib/x86_64-linux-gnu$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBC GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBCXX_3.4.20 GLIBCXX_3.4.21 GLIBCXX_3.4.22 GLIBCXX_3.4.23 GLIBCXX_3.4.24 GLIBCXX_3.4.25 GLIBCXX_3.4.26 GLIBCXX_3.4.27 GLIBCXX_3.4.28 GLIBC_2.2.5 GLIBC_2.3 GLIBC_2.14 GLIBC_2.6 GLIBC_2.4 GLIBC_2.18 GLIBC_2.16 GLIBC_2.3.4 GLIBC_2.17 GLIBC_2.3.2 GLIBCXX_DEBUG_MESSAGE_LENGTH

strings 文件名 | grep 想要尋找的字符,管道的使用。可以快速找到文件中的字符,這個幫助快速定位libstdc++庫中GLIBCXX的版本。

../configure --prefix=/usr/local/glibc

編譯前,在build文件夾中,設置安裝路徑,這個是glibc2.29庫的安裝路徑。

ps:以上是在ubantu16.04下,并未完成編譯,在ubantu18.04下,只是將glibc升級到2.29后,就編譯成功了,下面的內容都是在編譯成功后進行的。

2、相機的連接

相機與電腦通過網線連接,通過ip進行通信,這個時候需要注意,要想相機和電腦進行通信,那么它們的ip必須在同一個頻段。通過軟件查閱到了相機的ip為192.168.31.3。這個時候我們要將與相機連接的網卡ip設置為192.168.31.1~255中的一個ip。

2.1查看網卡信息

指令ifconfig

?enp3s0為電腦中的網卡,enxf8e43b05fd67為網口轉usb的設備,也是一個網卡。

這里相機是與第二個網卡連接在一起的,因此需要修改第二個網卡的ip

修改后,可以看到inet為 192.168.31.55,此時則可以運行程序,建立連接。

2.2小結

ip通信需要在同一個頻段下

ifconfig,查看網卡信息

sudo ifconfig 網卡名 ip,則可以修改網卡的指定ip

注意:拔掉網口后再插入,通過ifconfig可以看到,設定的ip初始化了,因此需要重新設置ip。

3、代碼解析

3.1基本思路

解析代碼的目的是獲得深度圖信息,然后再在rviz中顯示,通過rviz中Image訂閱的信息類型為sensor_msg::Image,因此,首先查閱該信息中包含的內容。

使用指令 rosmsg info sensor_msg/Isensor_msgs::Image。

?基本思路:現在就是要在代碼中發布獲取這個msg的所需要的信息,并將其通過一個topic發布出來,并由rivz訂閱顯示深度圖。

?3.2修改代碼

由于對該相機的流程并不熟悉,因此再它所給的example中,對代碼進行修改,其中主要是代碼的添加。

example中,給了相機的整個流程框架,這個先不深究。

代碼主要是在StreamCB回調函數進行修改的,該函數在每獲取一幀圖像時就會被調用一次,因此在這個函數中可以實時獲取信息、發布topic。

void StreamCB(void *handle, MemSinkCfg *cfg, XdynFrame_t *data) {UserHandler *user = (UserHandler *)handle;static ros::NodeHandle n;static ros::Publisher publisher = n.advertise<sensor_msgs::Image>("tof_info", 100);static sensor_msgs::Image tof_info;// wo can do some user handler// warnning : 這個回調函數內部不適合做耗時很大的操作,請注意printf("get stream data: ");//檢查圖像類型for(int i = 0; i < MEM_AGENT_SINK_MAX; i ++){printf("[%d:%d] ", i, cfg->isUsed[i]);}printf("\n");for(int i = 0; i < MEM_AGENT_SINK_MAX; i ++){if(cfg->isUsed[i] && data[i].addr){if(i == MEM_AGENT_SINK_DEPTH){SaveImageData_depth(data[i].addr, data[i].size, 100);if(data[i].ex){XdynDepthFrameInfo_t *depthInfo = (XdynDepthFrameInfo_t *)data[i].ex;//信息發布tof_info.header.seq = 1;tof_info.header.stamp = ros::Time::now();tof_info.header.frame_id = "tof_info";//圖片長、寬、類型、數據儲存方式、每行字節長度tof_info.width = depthInfo->frameInfo.width;tof_info.height = depthInfo->frameInfo.height;tof_info.encoding = "mono16";//圖片類型為16UC1tof_info.is_bigendian = 0;//圖片是否是大端儲存方式,0-不是tof_info.step = 2 *depthInfo->frameInfo.width;//圖片的步長float funitofdepth = depthInfo->fUnitOfDepth;uint16_t *depth = (uint16_t *)data[i].addr;//數據類型強制轉換//深度信息的獲取for(int j = 0; j < data[i].size / 2; j++){uint16_t depth_ = depth[j] * funitofdepth;//將16位的數據換成8位的進行儲存tof_info.data.push_back(depth_);tof_info.data.push_back(depth_ >> 8);//注意數組與容器的區別// tof_info.data[j * 2] = depth_;// tof_info.data[j * 2 + 1] = depth_ >> 8;}publisher.publish(tof_info);printf("data_size %d: %d funitofdepth %f \n", i, tof_info.data.size(), funitofdepth);tof_info.data.clear();// printf("depth image : height = %d, width = %d, format = %d, index = %d, rs_tx = %d, tx_us = %d, temp01 = %d \n",// depthInfo->frameInfo.height, depthInfo->frameInfo.width, depthInfo->frameInfo.format,// depthInfo->frameInfo.rx_ts, depthInfo->frameInfo.tx_us, depthInfo->frameInfo.temp0);// if(!user->pcConver.IsInit()){// MemSinkInfo info;// user->stream->GetResolution(info);// user->pcConver.Init(info, depthInfo->fUnitOfDepth, depthInfo->fLensParas);// user->imgSize = info.width * info.height;// user->pcAttr = (PCPoint_t *)calloc(1, info.width * info.height * sizeof(PCPoint_t));// }// // 將深度轉化為點云user->pcConver.Depth2PC((uint16_t *)data[i].addr, user->pcAttr);// // 保存點云// SaveImageData_pointcloud(user->pcAttr, user->imgSize * sizeof(PCPoint_t));// printf("get depth size [%d], fUnitOfDepth = %f, hz[%f, %f]\n", // data[i].size, depthInfo->fUnitOfDepth, depthInfo->fModFreqMHZ[0], depthInfo->fModFreqMHZ[1]);}}else if(i == MEM_AGENT_SINK_POINT_CLOUD){SaveImageData_pointcloud(data[i].addr, data[i].size);//SavePointCloud_ply(memData[i].addr, memData[i].size);printf("get point cloud size [%d]\n", data[i].size);}else if(i == MEM_AGENT_SINK_GRAY){printf("get gray size [%d]\n", data[i].size);SaveImageData_gray(data[i].addr, data[i].size);}else if(i == MEM_AGENT_SINK_CONFID){printf("get confid size [%d]\n", data[i].size);SaveImageData_amp(data[i].addr, data[i].size);}}} }

?這個是該函數的所有內容,我在其中添加的就是信息的發布這一段。

其中注意數據類型的強制轉換、16位數據如何以8位的形式儲存、大段與小段字節數據、數組與容器之間的區別。

數據類型的強制轉換

16位數據如何以8位的形式儲存

uint8_t,uint16_t,uint64_t 相互轉換_Hanyang Li的博客-CSDN博客_uint8轉uint16

?大段與小段字節數據

大端與小端字節數據詳解_dosthing的博客-CSDN博客_大端數據和小端數據

數組與容器之間的區別

ch1_1 c++中的 數組array 與 容器vector_mingqian_chu的博客-CSDN博客_c++中容器中保存數組

3.3深度圖顯示

代碼修改完畢,連接到相機后,發布sensor_msgs::Image信息,啟動rviz接收后,效果如下圖:

?二、圖片鏡像

1.灰度圖的獲取

灰度圖的獲取方式和深度圖是一樣的,由于不需要作數據類型轉換,獲取灰度圖的代碼更加簡單,依然是發布話題sensor_msgs::Image,然后在rivz中獲取信息即可得到。.

XdynFrameInfo_t *grayInfo = (XdynFrameInfo_t*)data[i].ex;tof_info_gray.header.seq = 1;tof_info_gray.header.stamp = ros::Time::now();tof_info_gray.header.frame_id = "tof_info_gray";tof_info_gray.width = 320;tof_info_gray.height =240;tof_info_gray.encoding = "mono16";tof_info_gray.is_bigendian = 0;tof_info_gray.step = 2 * 320;uint8_t *gray = (uint8_t *)data[i].addr;// printf("gray_width = %d, gray_height = %d\n",grayInfo->width, grayInfo->height);uint16_t *gray_ = (uint16_t *)data[i].addr;for(int j = 0; j < data[i].size; j++){tof_info_gray.data.push_back(gray[j]);}pub_gray.publish(tof_info_gray);printf("get gray size [%d]\n", tof_info_gray.data.size());tof_info_gray.data.clear();

2.圖片鏡像

在獲取到深度圖以及灰度圖后,發現獲取的圖像存在鏡像問題,只有將圖片鏡像后才能獲取正常的圖片。

2.1自己寫代碼

自己花了一上午寫了代碼,主要思路是將每一行的像素反過來,這樣就可以實現鏡像,但是事實證明我想的太簡單了,根本就不是想要的效果。

2.2使用opencv鏡像

考慮到opencv中可以使用鏡像,因此使用opencv來進行鏡像

2.2.1安裝opencv

參考以下博客安裝

ubuntu18.04安裝opencv4.5.4_趙fefe的博客-CSDN博客_ubuntu安裝opencv4.5

2.2.2配置opencv庫

在CMakeLists.txt文件中添加以下代碼,尋找opencv庫,并鏈接opencv庫

#尋找opencv頭文件 find_package(OpenCV REQUIRED) include_directories(include ${OpenCV_INCLUDE_DIRS}) ... target_link_libraries(xdyn_streamer_example${catkin_LIBRARIES}libxdyn_streamer.so${OpenCV_LIBRARIES} ) target_link_libraries(imgMir${catkin_LIBRARIES}libxdyn_streamer.so${OpenCV_LIBRARIES} )

?2.2.3鏡像代碼

#include "ros/ros.h" #include "sensor_msgs/Image.h" #include "sensor_msgs/PointCloud2.h" #include "opencv2/opencv.hpp" #include "cv_bridge/cv_bridge.h" #include "cv_bridge/rgb_colors.h" #include "pcl_conversions/pcl_conversions.h" #include "pcl/io/pcd_io.h" #include "pcl/point_types.h" #include "pcl/visualization/cloud_viewer.h" #include "pcl/common/transforms.h" #include "pcl/visualization/cloud_viewer.h"using namespace cv;void operInfo_gray(const sensor_msgs::Image::ConstPtr& tof_info_gray){ROS_INFO("灰度圖的長度為%d, 寬度為%d \n", tof_info_gray->height, tof_info_gray->width );static ros::NodeHandle n;static ros::Publisher publisher = n.advertise<sensor_msgs::Image>("gray_image", 100);static sensor_msgs::Image image;cv_bridge::CvImagePtr gray_pty;gray_pty = cv_bridge::toCvCopy(tof_info_gray, sensor_msgs::image_encodings::TYPE_16UC1);cv::Mat gray_img = gray_pty->image;printf("img.row:%d, img.col:%d", gray_img.rows, gray_img.cols);flip(gray_img, gray_img, 1);//沿著y軸對稱sensor_msgs::ImagePtr msg = cv_bridge::CvImage(tof_info_gray->header, "mono16", gray_img).toImageMsg();publisher.publish(msg);}void operInfo_depth(const sensor_msgs::Image::ConstPtr& tof_info_depth){ROS_INFO("深度圖的長度為%d, 寬度為%d \n", tof_info_depth->height, tof_info_depth->width );static ros::NodeHandle n;static ros::Publisher publisher = n.advertise<sensor_msgs::Image>("depth_image", 100);static sensor_msgs::Image image;cv_bridge::CvImagePtr depth_pty;depth_pty = cv_bridge::toCvCopy(tof_info_depth, sensor_msgs::image_encodings::TYPE_16UC1);cv::Mat depth_img = depth_pty->image;printf("img.row:%d, img.col:%d", depth_img.rows, depth_img.cols);flip(depth_img, depth_img, 1);//沿著y軸對稱sensor_msgs::ImagePtr msg = cv_bridge::CvImage(tof_info_depth->header, "mono16", depth_img).toImageMsg();publisher.publish(msg);} void operInfo_pcd(const sensor_msgs::PointCloud2::ConstPtr& tof_info_pcd) {static ros::NodeHandle n;static ros::Publisher publisher = n.advertise<sensor_msgs::PointCloud2>("pcd_image", 100);pcl::PointCloud<pcl::PointXYZI>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZI>);pcl::PointCloud<pcl::PointXYZI>::Ptr transformed_cloud (new pcl::PointCloud<pcl::PointXYZI> );sensor_msgs::PointCloud2 pointCloud;pcl::fromROSMsg(*tof_info_pcd, *cloud);float A = 0, B = 1, C = 1, D = 0;float e = sqrt(A * A + B * B + C * C);//為了后續將平面法向量轉化為單位向量float a = A / e, b = B / e, c = C / e;float r = D / e;Eigen::Matrix4f mirMatrix;mirMatrix << 1 - 2 * a*a, -2 * a*b, -2 * a*c, -2 * a*r,-2 * a*b, 1 - 2 * b*b, -2 * b*c, -2 * b*r,-2 * a*c, -2 * b*c, 1 - 2 * c*c, -2 * c*r,0, 0, 0, 1;// float theta = M_PI;// Eigen::Affine3f transform = Eigen::Affine3f::Identity();// transform.rotate (Eigen::AngleAxisf (theta, Eigen::Vector3f::UnitY()));pcl::transformPointCloud(*cloud, *transformed_cloud, mirMatrix);pcl::toROSMsg(*transformed_cloud, pointCloud);// static pcl::visualization::CloudViewer viewer("123");//直接創造一個顯示窗口// viewer.showCloud(transformed_cloud);//窗口顯示點云publisher.publish(pointCloud);}int main(int argc, char *argv[]) {setlocale(LC_ALL, "");ros::init(argc, argv, "ros2OpneCV");ros::NodeHandle nh;ros::Subscriber sub_gray = nh.subscribe<sensor_msgs::Image>("tof_info_gray", 10, operInfo_gray);ros::Subscriber sub_depth = nh.subscribe<sensor_msgs::Image>("tof_info_depth", 10, operInfo_depth);ros::Subscriber sub_pcd = nh.subscribe<sensor_msgs::PointCloud2>("tof_info_pcd", 10, operInfo_pcd);ros::spin();return 0; }

其中回調函數operInfo_depth與operInfo_gray是分別將深度圖與灰度圖鏡像的函數。思路是首先將sensor_msgs::Image的話題信息轉換成cv類型的,通過矩陣Mat接收圖片,然后再進行flip鏡像操作,操作完成后再將cv類型的圖片轉換為sensor_msgs::Image類型的消息發布即可。

2.2.4鏡像效果

?

?由效果圖可以看出,鏡像效果還是很不錯的。

三、點云的獲取與鏡像

3.1點云數據的獲取

點云話題發布數據如下,經過計算點云數據中的每個點的數據信息有16個字節,參考下面的博客

解析sensor_msgs::PointCloud2 ROS點云數據_KennethYangle的博客-CSDN博客_sensor_msgs/pointcloud2

?推測出16個字節中有xyz各占四個字節,還有四個字節是intensity,然后再參考相關資料,完善配了點云信息的發布。

}else if(i == MEM_AGENT_SINK_POINT_CLOUD){//發布點云信息tof_info_pcd.header.seq = 1;tof_info_pcd.header.stamp = ros::Time::now();tof_info_pcd.header.frame_id = "tof_info_pcd";tof_info_pcd.height = 1;tof_info_pcd.width = 320 * 240;tof_info_pcd.fields.resize(4);tof_info_pcd.fields[0].name = "x";tof_info_pcd.fields[0].offset = 0;tof_info_pcd.fields[0].datatype = 7;tof_info_pcd.fields[0].count = 1;tof_info_pcd.fields[1].name = "y";tof_info_pcd.fields[1].offset = 4;tof_info_pcd.fields[1].datatype = 7;tof_info_pcd.fields[1].count = 1;tof_info_pcd.fields[2].name = "z";tof_info_pcd.fields[2].offset = 8;tof_info_pcd.fields[2].datatype = 7;tof_info_pcd.fields[2].count = 1;tof_info_pcd.fields[3].name = "intensity";tof_info_pcd.fields[3].offset = 12;tof_info_pcd.fields[3].datatype = 7;tof_info_pcd.fields[3].count = 1;tof_info_pcd.is_bigendian = 0;tof_info_pcd.point_step = 16;tof_info_pcd.row_step = tof_info_pcd.point_step * tof_info_pcd.width;uint8_t *pcd = (uint8_t *)data[i].addr;for(int q = 0; q < data[i].size; q++){tof_info_pcd.data.push_back(pcd[q]);}tof_info_pcd.is_dense = 1;pub_pointCloud.publish(tof_info_pcd);tof_info_pcd.data.clear();// SaveImageData_pointcloud(data[i].addr, data[i].size);//SavePointCloud_ply(memData[i].addr, memData[i].size);// printf("get point cloud size [%d]\n", data[i].size);}else if(i == MEM_AGENT_SINK_GRAY){

?3.2點云的鏡像

由于獲取的點云信息和上面的深度圖與灰度圖一樣,需要進行鏡像,才可以正常顯示,通過查閱資料,決定將點云信息sensor_msgs::PointCloud2轉換成pcl::PointCloud信息后進行鏡像操作,然后再轉換成sensor_msgs::PointCloud2信息發布,在rviz中顯示。

參考以下博客寫出了點云的鏡像程序

PCL實現點云關于空間中任意平面對稱_mengzhilv11的博客-CSDN博客_pcl::transformpointcloud

void operInfo_pcd(const sensor_msgs::PointCloud2::ConstPtr& tof_info_pcd) {static ros::NodeHandle n;static ros::Publisher publisher = n.advertise<sensor_msgs::PointCloud2>("pcd_image", 100);pcl::PointCloud<pcl::PointXYZI>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZI>);pcl::PointCloud<pcl::PointXYZI>::Ptr transformed_cloud (new pcl::PointCloud<pcl::PointXYZI> );sensor_msgs::PointCloud2 pointCloud;pcl::fromROSMsg(*tof_info_pcd, *cloud);float A = 0, B = 1, C = 1, D = 0;float e = sqrt(A * A + B * B + C * C);//為了后續將平面法向量轉化為單位向量float a = A / e, b = B / e, c = C / e;float r = D / e;Eigen::Matrix4f mirMatrix;mirMatrix << 1 - 2 * a*a, -2 * a*b, -2 * a*c, -2 * a*r,-2 * a*b, 1 - 2 * b*b, -2 * b*c, -2 * b*r,-2 * a*c, -2 * b*c, 1 - 2 * c*c, -2 * c*r,0, 0, 0, 1;// float theta = M_PI;// Eigen::Affine3f transform = Eigen::Affine3f::Identity();// transform.rotate (Eigen::AngleAxisf (theta, Eigen::Vector3f::UnitY()));pcl::transformPointCloud(*cloud, *transformed_cloud, mirMatrix);pcl::toROSMsg(*transformed_cloud, pointCloud);// static pcl::visualization::CloudViewer viewer("123");//直接創造一個顯示窗口// viewer.showCloud(transformed_cloud);//窗口顯示點云publisher.publish(pointCloud);}

通過更改ABCD的值來指定平面。

3.3鏡像效果

?三個圖均為鏡像后的點云圖、深度圖以灰度圖,效果還不錯。

四、點云地圖的構建

4.1 尋找思路

通過查閱一些資料,以及目前可以獲取的數據:深度圖,灰度圖以及點云圖。決定采用orb-slam2來進行點云地圖的構建。

前兩次構建

參考的該博主的博客,代碼是在高博的基礎上更改的,不僅僅是為了構建點云地圖,還有八叉樹地圖的構建,第一版代碼運行起來后,一旦運行的數據變多,就會崩調,第二版代碼運行起來后,構建的點云有錯位的情況,考慮到都是在高博代碼的基礎上修改的,因此決定直接跑高博的代碼。

?ORB-SLAM2 在線構建稠密點云(一)_熊貓飛天的博客-CSDN博客_稠密點云

?4.2 運行高博的代碼

4.2.1 配置環境

ubantu18.04 + ROS Melodic

安裝Eigen庫

安裝pangolin0.5庫

安裝sophus庫

opencv庫(無需安裝,ros自帶3.2.0版本)

pcl庫(無需安裝,ros自帶1.7版本)

參考博客

Ubuntu18.04安裝和配置ORB_SLAM2(非ROS、ROS環境)_混沌浮世的博客-CSDN博客

?4.2.2 代碼運行

參考下面的一篇博客,我遇到的問題基本一樣

高翔ORB-SLAM2稠密建圖編譯(添加實時彩色點云地圖+保存點云地圖)_m0_60355964的博客-CSDN博客_稠密點云彩色

?4.2.3 相機標定

代碼運行后,沒有了前兩次的bug,可以平穩運行,但是在繞房間轉了一圈后,發現墻面是圓的,推測是沒有考慮相機畸變參數的原因。

修改前k1、k2均為0,下面是修改后的,無切向畸變,有徑向畸變。

?

?標定方法參考下面這篇博客,使用matlab工具箱進行標定。

相機標定之使用Matlab工具箱_Robots.的博客-CSDN博客_matlab相機標定

更新參數后,點云地圖恢復正常。

?如何卸載安裝完成的庫?

Linux下PCL的安裝與卸載_zzr1024的博客-CSDN博客_卸載pcl

?找到安裝路徑(通過再次安裝可以找到),再移除文件即可。

OpenCV庫共存問題

?Ubuntu下多版本OpenCV共存和切換_W_Tortoise的博客-CSDN博客_ubuntu opencv多版本
Gtk-ERROR **: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported

Gtk-ERROR **: GTK+ 2.x symbols detected. Using GTK+ 2.x and【qt吧】_百度貼吧

?論ORBSLAM_with_pointcloud_map段錯誤(核心已轉儲)的另一種解決方法

論ORBSLAM_with_pointcloud_map段錯誤(核心已轉儲)的另一種解決方法 - 代碼先鋒網

ORB-SLAM2啟動

https://blog.csdn.net/xyt723916/article/details/89374201
?

orbslam2_pointcloud: /usr/include/pcl-1.8/pcl/conversions.h:252:void pcl::toPCLPointCloud2(const pcl::PointCloud<PointT>&, pcl::PCLPointCloud2&) [with PointT = pcl::PointXYZRGBA]: 假設 ‘cloud.points.size () == cloud.width * cloud.height’ 失敗。
已放棄 (核心已轉儲)

4.3 運行基于ORB-SLAM2的稠密點云地圖

?4.3.1 代碼來源

ORB-SLAM 2+3 rgbd稠密地圖 (地圖可回環)_小白逆襲的博客-CSDN博客_orbslam2 dense map

感謝大佬!!!

4.3.2 配置運行流程以及問題

高翔ORB-SLAM2稠密建圖編譯(添加實時彩色點云地圖+保存點云地圖)_m0_60355964的博客-CSDN博客_orb_slam2 彩色

參考該博客

其中庫文件的問題如下

?

?當出現無法顯示點云地圖的情況時(最好是一開始就改,免得需要重新編譯,浪費時間)

將pointcloudmapping.h49行bool loopbusy 改為 bool loopbusy = false,然后依次重新運行build.sh和build_ros.sh。

成功運行!!!

?

總結

以上是生活随笔為你收集整理的tof相机开发笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产免费专区 | 天天干天天在线 | 国产精品99久久久精品免费观看 | 久久精品理论 | 2019久久精品 | 午夜久久久久久久 | 国产成人精品区 | 91麻豆精品国产91久久久久久久久 | 久久99久久99精品免观看软件 | 精品国产一区二区三区久久久蜜月 | 亚洲欧美精品在线 | 怡春院av| 99精品视频观看 | 九九综合久久 | 在线播放一区 | 精品国产区 | 成人免费网视频 | 久久国产精品视频观看 | 国产精品中文字幕在线观看 | 麻豆极品 | 午夜av免费 | 久久一本综合 | 日韩有色 | 欧美网址在线观看 | 97精品在线观看 | 欧美一区二区三区免费看 | 亚洲综合色视频在线观看 | 国产精品视屏 | 亚洲午夜精品在线观看 | 欧美成人在线免费 | 在线观看日韩专区 | 99色精品视频 | 在线黄色毛片 | 天天操天天色天天射 | 国产一区免费观看 | 国内精品久久久久影院日本资源 | 精品国产自在精品国产精野外直播 | 婷婷在线免费视频 | 97超碰人人模人人人爽人人爱 | 一本色道久久综合亚洲二区三区 | 激情网站网址 | 日韩免费高清 | 国产精品高清免费在线观看 | 91av原创 | 91麻豆视频网站 | 国产日女人 | 在线观看视频三级 | 91精品在线看 | 亚洲国产精品视频在线观看 | 国产专区日韩专区 | 色射爱 | 欧美日韩亚洲一 | 国产精品区一区 | 激情综合网五月婷婷 | 久久97久久 | 国产一区二区在线免费观看 | 日日夜夜天天干 | 成人午夜精品久久久久久久3d | 五月天中文字幕 | 午夜精品福利一区二区三区蜜桃 | 公开超碰在线 | 在线观看一区二区视频 | 九九热在线观看视频 | 天天激情在线 | 色a网| 操一草| 久久久久久蜜桃一区二区 | 日韩欧三级 | 天天艹天天爽 | 欧美韩国日本在线观看 | 亚洲欧洲成人 | 久久久久久美女 | 97热久久免费频精品99 | wwwwwww色| 天天色天天上天天操 | 日日爽夜夜爽 | 亚洲九九影院 | 久久久久亚洲国产精品 | 亚洲高清免费在线 | 丁香婷婷电影 | 国产原厂视频在线观看 | 欧美精品免费在线观看 | 一级黄色片在线免费看 | 免费看短 | 婷婷激情五月 | 久久久99精品免费观看乱色 | 激情综合网在线观看 | 男女全黄一级一级高潮免费看 | 五月天久久 | 美女久久精品 | 最新中文字幕视频 | 精品99久久 | 国产精品久久久久久久久久妇女 | 亚州欧美精品 | 色97在线| 五月婷婷深开心 | 色婷婷综合成人av | 国产黄色精品视频 | 97在线观看免费观看 | 国产精品综合久久久久久 | 99视频在线免费观看 | 天天se天天cao天天干 | 精品国产中文字幕 | 亚洲手机天堂 | 免费a v在线 | 亚洲精品乱码久久久久久高潮 | 日日麻批40分钟视频免费观看 | 国产一区私人高清影院 | 国产69精品久久久久久 | 久久久久免费电影 | 亚洲午夜久久久久久久久电影网 | 免费av片在线 | 亚洲综合欧美精品电影 | 免费看黄20分钟 | 国产一级免费视频 | 久久亚洲欧美日韩精品专区 | 国产91精品一区二区麻豆亚洲 | 婷婷激情小说网 | 波多野结衣在线观看一区 | 最新中文字幕在线资源 | 久久国产精品99久久久久久老狼 | 国产麻豆精品久久一二三 | 国产精品福利在线 | 黄色网www | 成全免费观看视频 | 精品一区二区视频 | 色婷婷激情电影 | 91.麻豆视频 | 福利在线看片 | 狠狠操.com | 激情久久网 | 天天操天天摸天天射 | 日韩久久精品一区二区 | 亚洲精品久久久蜜桃 | 五月婷婷综合在线 | 香蕉网址 | 六月丁香色婷婷 | 久久兔费看a级 | 伊人色**天天综合婷婷 | 久久y| 午夜影院一级 | 手机在线观看国产精品 | 久久久久久久久免费视频 | 国产一区二区三区久久久 | 亚洲久草网| 国产自产高清不卡 | 欧美日韩综合在线 | 国产色婷婷精品综合在线手机播放 | 亚洲国产日韩一区 | 最新av观看| 久久艹精品 | 久久免费视屏 | 欧美久久精品 | 国产成人三级三级三级97 | 韩日在线一区 | 久久久久久黄色 | 日本精品在线看 | 国产精品毛片一区视频 | 免费亚洲婷婷 | 欧美一二区视频 | 亚洲成av人片在线观看 | 天天干 夜夜操 | 日韩欧美大片免费观看 | www.成人久久 | 国产国产人免费人成免费视频 | 伊人色综合久久天天网 | 久久久精品午夜 | 天天综合久久 | 精品久久久久国产免费第一页 | 日本在线视频网址 | 欧美日韩免费观看一区二区三区 | 99精品国产一区二区三区不卡 | 99色网站 | 亚洲在线精品视频 | 亚洲精品国久久99热 | 在线观看一级 | 亚洲精品字幕在线观看 | 国产一区二区播放 | 久久在线免费 | 午夜体验区 | 免费看黄在线看 | www黄com | 国产第一页福利影院 | 国产在线一区二区 | 国产成人亚洲精品自产在线 | 99精品视频在线观看免费 | 欧美性另类 | 国产成人一区二区三区在线观看 | 久久精品国产久精国产 | 亚洲高清视频在线观看 | 97超碰在线久草超碰在线观看 | 五月天色婷婷丁香 | 日本巨乳在线 | 亚洲精品在线观看中文字幕 | 成人avav| 91精品区 | 午夜久久福利视频 | 中文字幕资源站 | 伊人午夜| 国产高清精品在线观看 | 欧美性粗大hdvideo | 亚洲免费成人av电影 | 免费h精品视频在线播放 | 午夜影院在线观看18 | 亚洲伊人色 | 99热手机在线 | 国产不卡在线视频 | 久久另类小说 | 欧美一级片在线观看视频 | 最新中文字幕 | 一区二区三区免费在线观看视频 | 九九热久久久 | 国产91在线 | 美洲 | 亚洲激情一区二区三区 | 91大神在线观看视频 | 天天色.com| 一区二区三区免费在线观看视频 | 久久久久欠精品国产毛片国产毛生 | 日韩成人精品一区二区 | 久久成人精品视频 | 亚洲综合视频在线 | 国产在线1区 | 久久夜色精品国产欧美一区麻豆 | 色噜噜在线观看 | 成人性生交大片免费看中文网站 | 超碰日韩| 国产又粗又硬又爽的视频 | 在线日韩 | 成人午夜在线观看 | 正在播放 国产精品 | 中文字幕在线观看2018 | av在线h| 久久免费视频网站 | 中文区中文字幕免费看 | 激情九九 | 欧美久久久一区二区三区 | 国产黄色成人 | 91最新在线视频 | 国产精品美女免费 | 婷婷久久婷婷 | 久久久受www免费人成 | 91精品久久久久久久久久入口 | 欧美久久久久久久久久久久久 | 在线视频一区观看 | a极黄色片 | 色999精品 | 黄色一级在线观看 | 四虎在线视频免费观看 | 亚洲在线成人精品 | 亚洲无吗av | 久久精品国产免费看久久精品 | 成人在线黄色 | 国产剧在线观看片 | 中文字幕亚洲综合久久五月天色无吗'' | 日韩有色 | 国产精品精品久久久 | 视频成人 | 四虎成人网 | 成人毛片100免费观看 | 一区二区三区四区五区在线 | 久久精品视频国产 | 一区二区电影在线观看 | 人人爽影院 | 丁香婷婷深情五月亚洲 | 97人人射 | a天堂免费 | 99热手机在线 | 日韩中文在线观看 | 91亚洲精品久久久蜜桃网站 | 成人黄色在线观看视频 | 亚洲天堂自拍视频 | 日韩一级电影在线观看 | 中文字幕中文字幕在线中文字幕三区 | 国产啊v在线 | 天天操天天舔天天干 | 国产中文字幕一区二区三区 | 91成人免费 | 最新日韩视频在线观看 | 日韩另类在线 | 国产精品人人做人人爽人人添 | 日韩xxxx视频 | 国产一区播放 | 欧美一区二视频在线免费观看 | 亚洲视屏 | 亚洲3级 | 九九九免费视频 | 中文网丁香综合网 | 中文字幕视频一区 | 国产原创在线视频 | 国产成人一区二区在线观看 | 97精品国自产拍在线观看 | 欧美91视频 | 欧美韩日视频 | av成人动漫| 久久夜夜爽| 欧美一级片免费播放 | 欧美精品一区在线 | 91精品国产综合久久久久久久 | 超碰免费在线公开 | 91福利小视频 | 成年人在线免费看视频 | 中文字幕亚洲精品在线观看 | 91麻豆精品一区二区三区 | 波多野结依在线观看 | 日日爱999| 在线播放亚洲激情 | 一区二区三区免费 | 天天插综合 | 91中文字幕在线观看 | 免费开视频 | 成年人免费在线观看网站 | 久草在线精品观看 | 中文字幕国产在线 | 久久精品视频免费 | 国产手机在线 | 99免费在线视频 | 久久久高清免费视频 | 国产尤物一区二区三区 | 超碰在线人人97 | 免费观看国产精品视频 | 欧美激情第八页 | 国产精品 日韩精品 | 91激情视频在线播放 | 亚洲成aⅴ人片久久青草影院 | 欧美男男tv网站 | 久久福利国产 | 91爱爱网址| 免费又黄又爽视频 | 欧美精品一区二区三区四区在线 | 久久久久久久久久久久国产精品 | a级国产片 | 久久久久久久久亚洲精品 | 久久精品一区二区三区四区 | 国产精品欧美在线 | 人人澡人人添人人爽一区二区 | 91精彩在线视频 | 久久久久久久网 | 91久久奴性调教 | 国产精品成人免费精品自在线观看 | 久色免费视频 | 综合色中文 | 五月天综合色激情 | 亚洲成aⅴ人片久久青草影院 | 国产精品久久久久久久久久ktv | 亚洲dvd| 亚洲国产av精品毛片鲁大师 | 亚洲成人黄色网址 | 五月天色网站 | 在线观看国产日韩欧美 | 99精彩视频在线观看免费 | 欧美性大战久久久久 | 91成人免费在线视频 | 久久免费成人精品视频 | 日韩综合视频在线观看 | 久久久精品电影 | 天天操天天射天天舔 | 国产涩涩网站 | 一区二区精品视频 | 国产一级一片免费播放放 | 天天综合五月天 | 午夜久久网站 | 欧美激情视频一区二区三区 | 免费观看国产精品 | 99福利片| 精品国精品自拍自在线 | 色在线中文字幕 | 狠狠色网 | 国产成人精品一区二区三区福利 | 国产在线欧美 | 中文字幕在线人 | 91毛片视频 | 91传媒在线| 国产精品欧美在线 | 亚洲第一中文字幕 | 久久激五月天综合精品 | 日日操操| 99久久婷婷国产综合精品 | 69亚洲视频| 草免费视频 | 久草干 | 99久久99久国产黄毛片 | 亚洲精品欧洲精品 | 欧美性大战久久久久 | 国产一级片免费观看 | 精品国产99国产精品 | 韩国av一区 | 国产精品美女久久久久久免费 | 国产高清在线免费视频 | 国产精品video爽爽爽爽 | 日日干夜夜爱 | 亚洲观看黄色网 | 91精品国产电影 | 国产又粗又猛又爽又黄的视频先 | 日本高清免费中文字幕 | 五月激情久久久 | 免费a网址| 91高清免费观看 | 激情综合网婷婷 | 91看成人 | 丁香免费视频 | 久久国产精品视频免费看 | 国产色一区 | 麻豆国产精品va在线观看不卡 | 丁香久久激情 | 国产成人在线观看免费 | 天天天天天干 | 日本一区二区高清不卡 | 久草视频观看 | 国色天香av| 国产韩国日本高清视频 | 欧美激情综合五月色丁香小说 | 天天操天天添天天吹 | 亚洲一区二区91 | 国产黄色精品在线 | 懂色av一区二区三区蜜臀 | 免费黄色看片 | 天天草av| 国产精品麻豆一区二区三区 | 香蕉视频在线看 | 日韩av成人免费看 | 免费网址你懂的 | 国产精品久久久久永久免费看 | 另类五月激情 | www.在线观看视频 | 日本三级人妇 | 欧美一区二区在线刺激视频 | 亚洲免费在线观看视频 | 黄色av一级片 | 久久久国产精品人人片99精片欧美一 | 成人黄色在线 | 又黄又爽又色无遮挡免费 | 麻豆影音先锋 | 日韩精品五月天 | 91精品久久久久久 | 99久久99久国产黄毛片 | 91久久国产综合精品女同国语 | 天天综合91 | 又黄又爽又色无遮挡免费 | 国产一区在线播放 | 成人h动漫精品一区二 | 国产精品爽爽久久久久久蜜臀 | 97在线观看免费观看 | 午夜精品av| 91麻豆网 | 精品国产aⅴ一区二区三区 在线直播av | 激情视频91 | 91av视频在线观看免费 | 国产一区二区三区免费观看视频 | 色99色| 五月天激情综合网 | 欧美精品在线免费 | 亚洲欧美乱综合图片区小说区 | 亚洲精品99久久久久中文字幕 | 香蕉视频国产在线观看 | 五月天九九 | 亚洲精品免费视频 | 黄污在线观看 | 天天干天天天 | 麻豆国产在线视频 | 另类五月激情 | 欧美成人在线网站 | 日本视频不卡 | 精品国产a | 在线观看黄色国产 | 狠狠色噜噜狠狠狠狠 | 久久在草| 激情视频一区二区三区 | 国产高清成人av | 亚洲免费不卡 | 99久久精品免费看国产一区二区三区 | 在线免费观看国产视频 | 国产又黄又爽又猛视频日本 | 亚洲精选久久 | 天海冀一区二区三区 | 天天狠狠干| 日韩av伦理片| 丁香视频在线观看 | 96看片 | 成年在线观看 | 免费麻豆 | 波多野结衣在线观看一区二区三区 | av成年人电影| 九九九热精品 | 日本三级香港三级人妇99 | 成人黄性视频 | 超碰在线观看99 | 婷婷色在线资源 | 日日操夜 | 欧美在线视频一区二区三区 | 欧美韩国在线 | 91网在线看 | 伊人成人久久 | 中文字幕精品一区 | 色六月婷婷| 久久久国内精品 | 久久综合久久综合这里只有精品 | 婷婷久久一区二区三区 | 国产伦理久久精品久久久久_ | 黄色官网在线观看 | 中文字幕亚洲高清 | 久香蕉| 中文字幕在线观看第二页 | 免费视频一区 | 五月婷婷丁香网 | 在线观看黄色的网站 | 日韩精品你懂的 | 国产精品毛片一区二区 | a√天堂中文在线 | 韩国av永久免费 | 中文字幕欧美日韩va免费视频 | 免费在线观看的av网站 | 久久艹在线观看 | 久精品视频| 97网在线观看 | 亚洲情影院| 99re久久精品国产 | 国产精品3区| 探花视频免费观看高清视频 | 久久国产视屏 | 国产69精品久久久久99 | 91豆花在线观看 | 91资源在线观看 | 亚洲精品视 | 夜夜夜精品 | 日韩精品在线一区 | 欧美有色 | 亚洲精品黄色 | 91欧美视频网站 | 一区二区欧美日韩 | 国产精品va在线播放 | 国产一级在线看 | www.99热精品 | 色是在线视频 | 国产成人精品久久久久 | 91自拍视频在线观看 | 国产精品网红直播 | 免费网站观看www在线观看 | 91精品一区二区三区久久久久久 | 黄色小说免费在线观看 | 久久视频在线 | av在线电影免费观看 | 国产精品一区久久久久 | 国产成人精品一区二区在线观看 | 国产精品久久久免费看 | 91九色蝌蚪| 五月天色丁香 | 久久国产手机看片 | 亚洲精品啊啊啊 | 国产精品福利在线观看 | 久久高清国产 | 久草视频在 | 97在线影院| 在线91色 | 日韩中字在线观看 | 四虎在线免费观看 | 探花视频在线版播放免费观看 | 黄色大片网 | 国产精品久久久久久久婷婷 | 色99视频| 99久久精品无码一区二区毛片 | 欧美一二在线 | 99久久精品免费视频 | 成人午夜黄色影院 | 亚洲精品国久久99热 | 在线观看一区二区精品 | 国产黄色免费观看 | 99麻豆久久久国产精品免费 | 国产系列 在线观看 | 国产精品午夜久久 | 国产一级片视频 | 国产最新视频在线观看 | 日韩精品中文字幕在线播放 | 在线免费观看欧美日韩 | 黄色1级毛片 | 国产精品国产亚洲精品看不卡15 | 在线观看国产 | 成人一区不卡 | 日本狠狠色 | 天天色天天操综合网 | 99久热在线精品视频观看 | 欧美日韩精品在线 | 成人蜜桃网 | 色噜噜日韩精品欧美一区二区 | 在线观看黄色国产 | 久久黄页 | 精品99久久 | 综合网天天 | 国产精品黄色影片导航在线观看 | 婷婷色婷婷 | 成人免费在线电影 | 99视频精品 | 日日日网 | 亚洲国产精品免费 | 国产69精品久久app免费版 | 日韩免费播放 | 亚洲精品九九 | 久久久一本精品99久久精品66 | 亚洲区视频在线观看 | 日日狠狠 | 成人综合婷婷国产精品久久免费 | 国产精品女人久久久久久 | 国产高清视频在线免费观看 | 国产黄色片在线 | 亚洲国产精品久久久久 | 黄色资源网站 | 亚洲成免费 | 中文字幕资源站 | 国产成人61精品免费看片 | 国产理论免费 | 久久99精品久久久久婷婷 | 五月婷婷开心中文字幕 | 久久亚洲日本 | 在线国产一区二区三区 | 国产精品久久久久久久久久99 | 99久久er热在这里只有精品15 | www黄com | 视频在线91 | 日韩精品一区二 | 亚洲精品国久久99热 | 人人澡人人舔 | 国产成人1区 | 欧美天堂影院 | 成人免费xxxxxx视频 | 免费在线观看av电影 | 久久久麻豆精品一区二区 | 欧美热久久 | 久久精品久久精品久久精品 | 亚洲天堂自拍视频 | 欧美片网站yy | www色综合 | 国产麻豆果冻传媒在线观看 | 国产精品一区二区三区在线免费观看 | 国产99久久九九精品免费 | 中文字幕成人一区 | 又黄又网站 | 国产特黄色片 | 国产高清一级 | 在线观看黄网站 | 在线午夜电影神马影院 | 特黄一级毛片 | 激情欧美一区二区三区免费看 | 夜又临在线观看 | 五月婷婷激情综合网 | 日韩在线一二三区 | 欧美福利在线播放 | 精品免费观看视频 | 久久久精品在线观看 | 久久9视频 | 色婷婷av一区 | 久久精品欧美日韩精品 | 涩涩色亚洲一区 | 精品色综合 | 97av影院| 国产精品一区二区你懂的 | 狠狠操精品 | 久久久久久久久久久久久久电影 | 日韩三级久久 | 欧美成人按摩 | 特级片免费看 | 国产特级毛片aaaaaa毛片 | 免费的国产精品 | 又黄又刺激视频 | 丁香九月婷婷综合 | 国产一区免费在线 | 欧美a级片网站 | 免费a现在观看 | 国内精品久久久精品电影院 | 中文免费观看 | 久草在线视频在线 | 国产999精品久久久久久麻豆 | 日本高清xxxx | 大型av综合网站 | 91试看 | 激情在线网站 | 日韩av视屏在线观看 | 国产美腿白丝袜足在线av | 午夜91视频| 婷婷五月色综合 | 欧美一区二区精品在线 | 美女网站色在线观看 | 丁香六月综合网 | 人人澡人人澡人人 | 中文字幕欧美激情 | 中文字幕第一页在线 | 中文字幕一区av | 精品不卡av | 91视频 - v11av| 国产成人精品在线 | 国产一区二区精品久久91 | 国产精品视频免费在线观看 | 激情网五月天 | 国产一区二区三区四区大秀 | 日韩精品资源 | 色资源网在线观看 | 婷婷香蕉 | 亚洲九九九在线观看 | 一本色道久久综合亚洲二区三区 | www.天天射| 日日夜夜天天人人 | 极品久久久久 | 又大又硬又黄又爽视频在线观看 | av午夜电影 | 看片的网址 | 日韩av电影一区 | 女人魂免费观看 | 乱男乱女www7788 | 久久久一本精品99久久精品66 | 99国产在线 | 人人澡视频 | 国产剧在线观看片 | 成人一级片在线观看 | 蜜桃麻豆www久久囤产精品 | 天天射成人 | 91精品国产综合久久婷婷香蕉 | 亚洲狠狠操| 亚洲伊人成综合网 | 天天操天天草 | 久久久久久欧美二区电影网 | 东方av在线免费观看 | 久草网免费 | 人人爽人人爽人人片av免 | 久草精品电影 | 亚洲国产精品女人久久久 | 97精品超碰一区二区三区 | 国产亚洲欧美在线视频 | 中文字幕在线观看视频网站 | 中文字幕在线一区二区三区 | 91丨九色丨91啦蝌蚪老版 | 国产理论一区二区三区 | 国产黄色精品网站 | 99精品热| .精品久久久麻豆国产精品 亚洲va欧美 | 婷婷色中文| 天天躁日日躁狠狠躁av麻豆 | 视频91| 欧美色888 | 欧美激情另类 | 日韩av影视在线观看 | 久久精品2| 国内精品久久久久久久久 | 91精品久久久久久综合五月天 | 亚洲 综合 国产 精品 | 97色视频在线 | 日日干影院 | 色播五月激情综合网 | 91伊人影院 | 成人av亚洲 | 欧美激情综合五月色丁香 | 日本中文字幕在线观看 | 五月天久久久久 | 欧美 高跟鞋交 xxxxhd | 欧美 日韩 国产 中文字幕 | 9免费视频| 最新av免费| 五月综合 | 国产色婷婷 | 天天综合网 天天 | 99r在线精品 | 久久精品第一页 | 91香蕉视频在线 | 国产在线污 | 最近久乱中文字幕 | 98涩涩国产露脸精品国产网 | 国产一区二区三精品久久久无广告 | 久久久久久久久久久久久久电影 | 日产中文字幕 | 精品国产免费人成在线观看 | 香蕉视频久久久 | 中文字幕日韩有码 | 日韩在线理论 | 欧美日韩视频免费看 | 久久久久人人 | 国产在线精品区 | 国产午夜一区二区 | 亚洲自拍av在线 | 久久久国产精品免费 | 99热这里是精品 | 亚洲精品久久激情国产片 | 国产区精品在线 | 99热.com| 99久久日韩精品视频免费在线观看 | 国产精品免费高清 | 久久99久久99精品中文字幕 | 91国内在线视频 | 精品久久久久免费极品大片 | 国产又粗又猛又爽 | 在线视频 成人 | 国产a国产a国产a | 久久99精品一区二区三区三区 | 亚洲最新av在线网站 | 欧美日韩亚洲第一页 | 九九久久国产精品 | 911久久 | 成人黄色一级视频 | 丁香六月激情 | 九九热在线免费观看 | 在线欧美国产 | 色姑娘综合 | 在线观看国产福利片 | 久久国产欧美日韩精品 | 久久久久久久久久免费视频 | 国产黑丝一区二区三区 | 人人看人人草 | 激情亚洲综合在线 | 亚洲精品色婷婷 | 97视频人人 | www成人精品| 色射色 | 日韩精品免费在线观看视频 | 久久高视频 | 狠狠狠色 | 亚洲理论片在线观看 | 欧美日韩1区2区 | 色偷偷网站视频 | 在线观看免费观看在线91 | 中文字幕在线观看免费高清完整版 | 一级片免费在线 | www.com久久久 | 中文字幕日韩一区二区三区不卡 | 91pony九色丨交换 | 在线午夜 | 91亚洲精| 人人插人人舔 | 91精品久| 国产网站色 | av电影在线不卡 | 日韩1级片| 91日韩精品视频 | 美女网站视频久久 | 中文字幕av最新 | 久久国产精品偷 | 国产99久久久国产 | 免费高清看电视网站 | 色综合天天做天天爱 | h视频在线看 | 久久爱导航 | 亚洲视频2| 看片网站黄色 | 黄色的网站在线 | 久久综合久久综合这里只有精品 | 亚洲 欧洲av| 国产精品成人一区二区三区 | 久久99精品国产 | 四虎小视频| 91在线播放综合 | 亚洲精品字幕在线 | 手机在线中文字幕 | 日韩av成人 | 国产手机视频在线播放 | 成人一级免费视频 | 五月天激情在线 | 日精品在线观看 | 久草视频免费在线播放 | 中文字幕国产精品 | 超碰97成人 | 日韩在线免费视频观看 | 国产a国产a国产a | av直接看| 天天操天天插 | 亚洲成人中文在线 | 欧美日韩电影在线播放 | 在线黄色av电影 | 国产精品99久久久久久久久 | 五月天综合激情网 | 三级午夜片 | 一区二区欧美在线观看 | 午夜影视av| 在线观看免费视频你懂的 | 一区二区欧美在线观看 | 91热视频在线观看 | 亚洲国产精品成人精品 | 热热热热热色 | 亚洲天堂网在线视频 | 超碰99人人 | 日色在线视频 | 狠狠干狠狠久久 | 国产成人精品不卡 | 韩国av免费在线观看 | 国产69精品久久久久99尤 | 丰满少妇在线观看资源站 | 在线观看中文 | 国产永久免费高清在线观看视频 | 国产1区在线观看 | av成人在线电影 | 超碰免费久久 | 日韩精品免费在线观看视频 | 三级黄色片在线观看 | 开心激情五月网 | www.午夜| 一区二区三区 中文字幕 | 黄网站色成年免费观看 | 综合网天天 | 国产黄色av网站 | 一区中文字幕在线观看 | 婷婷丁香色综合狠狠色 | 国产亚洲片| 亚洲综合日韩在线 | 在线观看的av | 亚洲精品观看 | 91爱看片 | 国产又粗又猛又黄又爽的视频 | 免费在线观看日韩视频 | 中文字幕一区二区三 | 97在线观看免费观看 | 国产专区免费 | www.色午夜.com | 国产成人精品一区二区三区在线观看 | 中文字幕成人在线观看 | 久久欧美综合 | 国产精品中文在线 | 国产日韩精品久久 | 丁香综合 | 久久久久久亚洲精品 | 国精产品999国精产品视频 | 国产欧美精品一区二区三区 | 99久久精品无码一区二区毛片 | www久 | 在线观看国产 | 日韩免费久久 | 国产在线视频一区二区三区 | 天天插综合网 | 91理论片午午伦夜理片久久 | 久久a级片 | 最新国产精品拍自在线播放 | 成片视频免费观看 | 美女精品久久久 | 久久久久久黄色 | 国产成人久久av | 婷婷午夜激情 | 国产精品手机看片 | 99色在线播放 | 亚洲国产精品视频 | 日韩三区在线 | 亚洲视频在线免费观看 | www.久久成人| 一区二区在线电影 | 在线播放91| 久久久久久视频 | 日韩午夜高清 | 91精品视频在线免费观看 | 国产精品久久99综合免费观看尤物 | 国产精品久久久免费看 | 天天爱天天射天天干天天 | 婷婷精品国产一区二区三区日韩 | 99久久99久久精品国产片 | www亚洲精品| 九九久久成人 | 欧美一级看片 | av视屏在线| 亚洲一级黄色片 | 成人性生活大片 | 婷婷色影院 | 黄色小说视频在线 | 久久毛片视频 | 丁香五月网久久综合 | 国产理论片在线观看 | 人人爱在线视频 | 黄色成年网站 | 欧美日韩精品在线观看视频 | 中文字幕91在线 | 午夜体验区 | 九九久久影视 | 久草精品国产 | 日本三级中文字幕在线观看 | 在线视频1卡二卡三卡 | 久久久久久久久久国产精品 | 97超碰人人澡人人爱 | www免费视频com━ | www.天天射.com | 91一区啪爱嗯打偷拍欧美 | 狠狠狠色丁香婷婷综合久久五月 | 日韩欧美国产视频 | www.天堂av| 天天av资源| 欧美国产高清 | 精品国产成人 | 啪一啪在线 | 国产91全国探花系列在线播放 | 久久久国产高清 | 精品久久久久久久久中文字幕 | 日韩午夜在线播放 | 国产美女在线精品免费观看 | 成人97人人超碰人人99 | 最新精品视频在线 | 国产手机视频在线观看 | 97天堂 | 久精品视频免费观看2 | 久久成人黄色 | 国产精品久久久久毛片大屁完整版 | 欧美成人性网 | 九九热精品视频在线观看 | 国产色综合 | 国产精品视频99 | 国产成人99久久亚洲综合精品 | 日韩av网站在线播放 | 91资源在线视频 | 丰满少妇久久久 | 国内精品免费 |