久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【LeGO-LOAM论文阅读(二)--特征提取(二)】

發(fā)布時(shí)間:2023/12/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【LeGO-LOAM论文阅读(二)--特征提取(二)】 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

簡介

上篇博客介紹了特征提取的原理以及坐標(biāo)轉(zhuǎn)化和插值的源碼理解,這篇將介紹特征提取的后續(xù)算法模塊。

源碼

1、新數(shù)據(jù)進(jìn)來進(jìn)行坐標(biāo)轉(zhuǎn)換和插補(bǔ)等工作

見【LeGO-LOAM論文閱讀(二)–特征提取(一)】

2、進(jìn)行光滑度計(jì)算

光滑度計(jì)算公式:

S取10,代表參與計(jì)算點(diǎn)數(shù),計(jì)算點(diǎn)左右各有5個(gè),r表示深度距離,計(jì)算點(diǎn)云開始5個(gè)點(diǎn)后到點(diǎn)云結(jié)束5個(gè)點(diǎn)前的點(diǎn)云平滑度,計(jì)算方式與論文中給的并不一樣。

// 計(jì)算光滑性,這里的計(jì)算沒有完全按照公式進(jìn)行,// 缺少除以總點(diǎn)數(shù)i和r[i]void calculateSmoothness(){int cloudSize = segmentedCloud->points.size();for (int i = 5; i < cloudSize - 5; i++) {float diffRange = segInfo.segmentedCloudRange[i-5] + segInfo.segmentedCloudRange[i-4]+ segInfo.segmentedCloudRange[i-3] + segInfo.segmentedCloudRange[i-2]+ segInfo.segmentedCloudRange[i-1] - segInfo.segmentedCloudRange[i] * 10+ segInfo.segmentedCloudRange[i+1] + segInfo.segmentedCloudRange[i+2]+ segInfo.segmentedCloudRange[i+3] + segInfo.segmentedCloudRange[i+4]+ segInfo.segmentedCloudRange[i+5]; cloudCurvature[i] = diffRange*diffRange;

初始化點(diǎn)云標(biāo)簽,初始化為0,surfPointsFlat標(biāo)記為-1,surfPointsLessFlatScan為不大于0的標(biāo)簽,cornerPointsSharp標(biāo)記為2,cornerPointsLessSharp標(biāo)記為1。

// 在markOccludedPoints()函數(shù)中對(duì)該參數(shù)進(jìn)行重新修改cloudNeighborPicked[i] = 0;// 在extractFeatures()函數(shù)中會(huì)對(duì)標(biāo)簽進(jìn)行修改,// 初始化為0,surfPointsFlat標(biāo)記為-1,surfPointsLessFlatScan為不大于0的標(biāo)簽// cornerPointsSharp標(biāo)記為2,cornerPointsLessSharp標(biāo)記為1cloudLabel[i] = 0;cloudSmoothness[i].value = cloudCurvature[i];cloudSmoothness[i].ind = i;}}

3、標(biāo)記阻塞點(diǎn)。

阻塞點(diǎn)指點(diǎn)云之間相互遮擋而且距離比較近的點(diǎn)。將被遮擋的點(diǎn)云連續(xù)五個(gè)標(biāo)志位cloudNeighborPicked標(biāo)記為1。depth大的那個(gè)就是被遮擋的那個(gè)。具體參數(shù)設(shè)置為什么是10和0.3我也不清楚,應(yīng)該是是試驗(yàn)過的,各位可以考慮話說弄成別的試試

void markOccludedPoints(){int cloudSize = segmentedCloud->points.size();for (int i = 5; i < cloudSize - 6; ++i){float depth1 = segInfo.segmentedCloudRange[i];float depth2 = segInfo.segmentedCloudRange[i+1];int columnDiff = std::abs(int(segInfo.segmentedCloudColInd[i+1] - segInfo.segmentedCloudColInd[i]));if (columnDiff < 10){// 選擇距離較遠(yuǎn)的那些點(diǎn),并將他們標(biāo)記為1if (depth1 - depth2 > 0.3){cloudNeighborPicked[i - 5] = 1;cloudNeighborPicked[i - 4] = 1;cloudNeighborPicked[i - 3] = 1;cloudNeighborPicked[i - 2] = 1;cloudNeighborPicked[i - 1] = 1;cloudNeighborPicked[i] = 1;}else if (depth2 - depth1 > 0.3){cloudNeighborPicked[i + 1] = 1;cloudNeighborPicked[i + 2] = 1;cloudNeighborPicked[i + 3] = 1;cloudNeighborPicked[i + 4] = 1;cloudNeighborPicked[i + 5] = 1;cloudNeighborPicked[i + 6] = 1;}}

接著排除共面的情況,舍棄距離變換比較大的點(diǎn)

float diff1 = std::abs(segInfo.segmentedCloudRange[i-1] - segInfo.segmentedCloudRange[i]);float diff2 = std::abs(segInfo.segmentedCloudRange[i+1] - segInfo.segmentedCloudRange[i]);// 選擇距離變化較大的點(diǎn),并將他們標(biāo)記為1if (diff1 > 0.02 * segInfo.segmentedCloudRange[i] && diff2 > 0.02 * segInfo.segmentedCloudRange[i])cloudNeighborPicked[i] = 1;}}

4、特征抽取。

這部分對(duì)計(jì)算好平滑度的點(diǎn)云將進(jìn)行特征提取,提取出線特征和面特征。由于點(diǎn)云過于龐大,后面處理的時(shí)候?qū)c(diǎn)云進(jìn)行了下采樣來提高計(jì)算效率。
清空上一幀特征:

void extractFeatures(){cornerPointsSharp->clear();cornerPointsLessSharp->clear();surfPointsFlat->clear();surfPointsLessFlat->clear();

將每一幀點(diǎn)云數(shù)據(jù)按水平角度分為6份,每份是60°的激光數(shù)據(jù),sp儲(chǔ)存的是每份數(shù)據(jù)的起點(diǎn),ep儲(chǔ)存的是每份數(shù)據(jù)的終點(diǎn)。

for (int i = 0; i < N_SCAN; i++) {surfPointsLessFlatScan->clear();for (int j = 0; j < 6; j++) {// sp和ep的含義是什么???startPointer,endPointer?int sp = (segInfo.startRingIndex[i] * (6 - j) + segInfo.endRingIndex[i] * j) / 6;int ep = (segInfo.startRingIndex[i] * (5 - j) + segInfo.endRingIndex[i] * (j + 1)) / 6 - 1;if (sp >= ep)continue;

將每份點(diǎn)云按照平滑度進(jìn)行排序(由小到大):

std::sort(cloudSmoothness.begin()+sp, cloudSmoothness.begin()+ep, by_value());

提取線特征的條件:不是被淘汰的點(diǎn)(cloudNeighborPicked=0)并且平滑度大于設(shè)定的閾值還有不能是地面點(diǎn):

int largestPickedNum = 0;for (int k = ep; k >= sp; k--) {// 每次ind的值就是等于k??? 有什么意義?// 因?yàn)樯厦鎸?duì)cloudSmoothness進(jìn)行了一次從小到大排序,所以ind不一定等于k了int ind = cloudSmoothness[k].ind;if (cloudNeighborPicked[ind] == 0 &&cloudCurvature[ind] > edgeThreshold &&segInfo.segmentedCloudGroundFlag[ind] == false) {

在滿足條件的點(diǎn)云中,將最大平滑度的兩個(gè)點(diǎn)云加入到cornerPointsSharp中,并將標(biāo)志cloudLabel置為2

largestPickedNum++;if (largestPickedNum <= 2) {// 論文中nFe=2,cloudSmoothness已經(jīng)按照從小到大的順序排列,// 所以這邊只要選擇最后兩個(gè)放進(jìn)隊(duì)列即可// cornerPointsSharp標(biāo)記為2cloudLabel[ind] = 2;cornerPointsSharp->push_back(segmentedCloud->points[ind]);cornerPointsLessSharp->push_back(segmentedCloud->points[ind]);

將平滑度前20的點(diǎn)云加入到cornerPointsLessSharp中,并將cloudLabel置為1

} else if (largestPickedNum <= 20) {// 塞20個(gè)點(diǎn)到cornerPointsLessSharp中去// cornerPointsLessSharp標(biāo)記為1cloudLabel[ind] = 1;cornerPointsLessSharp->push_back(segmentedCloud->points[ind]);} else {break;}

將已經(jīng)加入到cornerPointsSharp和cornerPointsLessSharp中的點(diǎn)淘汰,后面不再用:

cloudNeighborPicked[ind] = 1;

計(jì)算已經(jīng)被選為線特征點(diǎn)云前后5個(gè)點(diǎn)之間的距離差值,若距離較近
同樣淘汰(避免兩個(gè)特征點(diǎn)表示的是同一個(gè)線特征):

for (int l = 1; l <= 5; l++) {// 從ind+l開始后面5個(gè)點(diǎn),每個(gè)點(diǎn)index之間的差值,// 確保columnDiff<=10,然后標(biāo)記為我們需要的點(diǎn)int columnDiff = std::abs(int(segInfo.segmentedCloudColInd[ind + l] - segInfo.segmentedCloudColInd[ind + l - 1]));if (columnDiff > 10)break;cloudNeighborPicked[ind + l] = 1;}for (int l = -1; l >= -5; l--) {// 從ind+l開始前面五個(gè)點(diǎn),計(jì)算差值然后標(biāo)記int columnDiff = std::abs(int(segInfo.segmentedCloudColInd[ind + l] - segInfo.segmentedCloudColInd[ind + l + 1]));if (columnDiff > 10)break;cloudNeighborPicked[ind + l] = 1;}}}

提取面特征的條件,不能是淘汰點(diǎn),平滑度小于設(shè)定閾值并且只能是地面點(diǎn):

int smallestPickedNum = 0;for (int k = sp; k <= ep; k++) {int ind = cloudSmoothness[k].ind;// 平面點(diǎn)只從地面點(diǎn)中進(jìn)行選擇? 為什么要這樣做?if (cloudNeighborPicked[ind] == 0 &&cloudCurvature[ind] < surfThreshold &&segInfo.segmentedCloudGroundFlag[ind] == true) {

將滿足條件的點(diǎn)加入surfPointsFlat同時(shí)標(biāo)志cloudLabel設(shè)為-1:

cloudLabel[ind] = -1;surfPointsFlat->push_back(segmentedCloud->points[ind]);

將最小平滑度的四個(gè)點(diǎn)放入surfPointsFlat,同時(shí)設(shè)置為淘汰點(diǎn)。

// 論文中nFp=4,將4個(gè)最平的平面點(diǎn)放入隊(duì)列中smallestPickedNum++;if (smallestPickedNum >= 4) {break;}cloudNeighborPicked[ind] = 1;

同時(shí)判斷面特征點(diǎn)前后5個(gè)點(diǎn)并標(biāo)記(和線特征一樣):

for (int l = 1; l <= 5; l++) {// 從前面往后判斷是否是需要的鄰接點(diǎn),是的話就進(jìn)行標(biāo)記int columnDiff = std::abs(int(segInfo.segmentedCloudColInd[ind + l] - segInfo.segmentedCloudColInd[ind + l - 1]));if (columnDiff > 10)break;cloudNeighborPicked[ind + l] = 1;}for (int l = -1; l >= -5; l--) {// 從后往前開始標(biāo)記int columnDiff = std::abs(int(segInfo.segmentedCloudColInd[ind + l] - segInfo.segmentedCloudColInd[ind + l + 1]));if (columnDiff > 10)break;cloudNeighborPicked[ind + l] = 1;}}}

將cloudLabe<= 0的點(diǎn)先都加入 surfPointsLessFlatScan中:

for (int k = sp; k <= ep; k++) {if (cloudLabel[k] <= 0) {surfPointsLessFlatScan->push_back(segmentedCloud->points[k]);}}}

surfPointsLessFlatScan中的點(diǎn)云會(huì)非常的多,為了提高計(jì)算效率,對(duì)點(diǎn)云進(jìn)行下采樣:

// surfPointsLessFlatScan中有過多的點(diǎn)云,如果點(diǎn)云太多,計(jì)算量太大// 進(jìn)行下采樣,可以大大減少計(jì)算量surfPointsLessFlatScanDS->clear();downSizeFilter.setInputCloud(surfPointsLessFlatScan);downSizeFilter.filter(*surfPointsLessFlatScanDS);*surfPointsLessFlat += *surfPointsLessFlatScanDS;}}

5、發(fā)布四種點(diǎn)云信息。

分別發(fā)布平滑度大的點(diǎn)云、平滑度較大的點(diǎn)云、平滑度小的點(diǎn)云、平滑度較小的點(diǎn)云:

void publishCloud(){sensor_msgs::PointCloud2 laserCloudOutMsg;if (pubCornerPointsSharp.getNumSubscribers() != 0){pcl::toROSMsg(*cornerPointsSharp, laserCloudOutMsg);laserCloudOutMsg.header.stamp = cloudHeader.stamp;laserCloudOutMsg.header.frame_id = "/camera";pubCornerPointsSharp.publish(laserCloudOutMsg);}if (pubCornerPointsLessSharp.getNumSubscribers() != 0){pcl::toROSMsg(*cornerPointsLessSharp, laserCloudOutMsg);laserCloudOutMsg.header.stamp = cloudHeader.stamp;laserCloudOutMsg.header.frame_id = "/camera";pubCornerPointsLessSharp.publish(laserCloudOutMsg);}if (pubSurfPointsFlat.getNumSubscribers() != 0){pcl::toROSMsg(*surfPointsFlat, laserCloudOutMsg);laserCloudOutMsg.header.stamp = cloudHeader.stamp;laserCloudOutMsg.header.frame_id = "/camera";pubSurfPointsFlat.publish(laserCloudOutMsg);}if (pubSurfPointsLessFlat.getNumSubscribers() != 0){pcl::toROSMsg(*surfPointsLessFlat, laserCloudOutMsg);laserCloudOutMsg.header.stamp = cloudHeader.stamp;laserCloudOutMsg.header.frame_id = "/camera";pubSurfPointsLessFlat.publish(laserCloudOutMsg);}}

回到runFeatureAssociation函數(shù)里,判斷有沒有初始化·,即判斷是不是第一幀數(shù)據(jù),systemInitedLM初始為0,:

if (!systemInitedLM) {checkSystemInitialization();return;}

將第一幀的曲率較大的點(diǎn)保存為上一幀用于匹配的線特征:

void checkSystemInitialization(){// 交換cornerPointsLessSharp和laserCloudCornerLastpcl::PointCloud<PointType>::Ptr laserCloudTemp = cornerPointsLessSharp;cornerPointsLessSharp = laserCloudCornerLast;laserCloudCornerLast = laserCloudTemp;

將第一幀的曲率較小的點(diǎn)保存為上一幀用于匹配的面特征

// 交換surfPointsLessFlat和laserCloudSurfLastlaserCloudTemp = surfPointsLessFlat;surfPointsLessFlat = laserCloudSurfLast;laserCloudSurfLast = laserCloudTemp;

將特征點(diǎn)保存到KD樹中:

kdtreeCornerLast->setInputCloud(laserCloudCornerLast);kdtreeSurfLast->setInputCloud(laserCloudSurfLast);

記錄特征點(diǎn)數(shù)

laserCloudCornerLastNum = laserCloudCornerLast->points.size();laserCloudSurfLastNum = laserCloudSurfLast->points.size();

發(fā)布特征點(diǎn)云消息:

sensor_msgs::PointCloud2 laserCloudCornerLast2;pcl::toROSMsg(*laserCloudCornerLast, laserCloudCornerLast2);laserCloudCornerLast2.header.stamp = cloudHeader.stamp;laserCloudCornerLast2.header.frame_id = "/camera";pubLaserCloudCornerLast.publish(laserCloudCornerLast2);sensor_msgs::PointCloud2 laserCloudSurfLast2;pcl::toROSMsg(*laserCloudSurfLast, laserCloudSurfLast2);laserCloudSurfLast2.header.stamp = cloudHeader.stamp;laserCloudSurfLast2.header.frame_id = "/camera";pubLaserCloudSurfLast.publish(laserCloudSurfLast2);

保存累積旋轉(zhuǎn)量:

transformSum[0] += imuPitchStart;transformSum[2] += imuRollStart;

checkSystemInitialization判斷完第一幀數(shù)據(jù)將systemInitedLM設(shè)為1

systemInitedLM = true; }

6、更新位姿

這里主要是保存當(dāng)前點(diǎn)云中最后一個(gè)點(diǎn)的旋轉(zhuǎn)角、最后一個(gè)點(diǎn)相對(duì)于第一個(gè)點(diǎn)的位移以及速度:

void updateInitialGuess(){imuPitchLast = imuPitchCur;imuYawLast = imuYawCur;imuRollLast = imuRollCur;imuShiftFromStartX = imuShiftFromStartXCur;imuShiftFromStartY = imuShiftFromStartYCur;imuShiftFromStartZ = imuShiftFromStartZCur;imuVeloFromStartX = imuVeloFromStartXCur;imuVeloFromStartY = imuVeloFromStartYCur;imuVeloFromStartZ = imuVeloFromStartZCur;

但是我發(fā)現(xiàn)最后一個(gè)點(diǎn)的位移變換函數(shù)根本沒有被調(diào)用,我覺得這個(gè)函數(shù)是要在插值和坐標(biāo)轉(zhuǎn)那被調(diào)用,可以并沒有,有沒有大佬能解釋下。

void ShiftToStartIMU(float pointTime){// 下面三個(gè)量表示的是世界坐標(biāo)系下,從start到cur的坐標(biāo)的漂移imuShiftFromStartXCur = imuShiftXCur - imuShiftXStart - imuVeloXStart * pointTime;imuShiftFromStartYCur = imuShiftYCur - imuShiftYStart - imuVeloYStart * pointTime;imuShiftFromStartZCur = imuShiftZCur - imuShiftZStart - imuVeloZStart * pointTime;// 從世界坐標(biāo)系變換到start坐標(biāo)系float x1 = cosImuYawStart * imuShiftFromStartXCur - sinImuYawStart * imuShiftFromStartZCur;float y1 = imuShiftFromStartYCur;float z1 = sinImuYawStart * imuShiftFromStartXCur + cosImuYawStart * imuShiftFromStartZCur;float x2 = x1;float y2 = cosImuPitchStart * y1 + sinImuPitchStart * z1;float z2 = -sinImuPitchStart * y1 + cosImuPitchStart * z1;imuShiftFromStartXCur = cosImuRollStart * x2 + sinImuRollStart * y2;imuShiftFromStartYCur = -sinImuRollStart * x2 + cosImuRollStart * y2;imuShiftFromStartZCur = z2;}

更新旋轉(zhuǎn)量(相鄰兩幀):

// 關(guān)于下面負(fù)號(hào)的說明:// transformCur是在Cur坐標(biāo)系下的 p_start=R*p_cur+t// R和t是在Cur坐標(biāo)系下的// 而imuAngularFromStart是在start坐標(biāo)系下的,所以需要加負(fù)號(hào)if (imuAngularFromStartX != 0 || imuAngularFromStartY != 0 || imuAngularFromStartZ != 0){transformCur[0] = - imuAngularFromStartY;transformCur[1] = - imuAngularFromStartZ;transformCur[2] = - imuAngularFromStartX;

更新位移量(兩幀之間):

// 速度乘以時(shí)間,當(dāng)前變換中的位移if (imuVeloFromStartX != 0 || imuVeloFromStartY != 0 || imuVeloFromStartZ != 0){transformCur[3] -= imuVeloFromStartX * scanPeriod;transformCur[4] -= imuVeloFromStartY * scanPeriod;transformCur[5] -= imuVeloFromStartZ * scanPeriod;}}

7、更新變換矩陣。

如果線特征或者面特征太少,直接退出:

void updateTransformation(){if (laserCloudCornerLastNum < 10 || laserCloudSurfLastNum < 100)return;

尋找面特征對(duì)應(yīng)點(diǎn)findCorrespondingSurfFeatures, iterCount迭代次數(shù)?:

for (int iterCount1 = 0; iterCount1 < 25; iterCount1++) {laserCloudOri->clear();coeffSel->clear();// 找到對(duì)應(yīng)的特征平面// 然后計(jì)算協(xié)方差矩陣,保存在coeffSel隊(duì)列中// laserCloudOri中保存的是對(duì)應(yīng)于coeffSel的未轉(zhuǎn)換到開始時(shí)刻的原始點(diǎn)云數(shù)據(jù)findCorrespondingSurfFeatures(iterCount1);

面特征點(diǎn)數(shù)賦值:

void findCorrespondingSurfFeatures(int iterCount){int surfPointsFlatNum = surfPointsFlat->points.size();

將特征點(diǎn)坐標(biāo)變換到開始時(shí)刻 TransformToStart:

for (int i = 0; i < surfPointsFlatNum; i++) {// 坐標(biāo)變換到開始時(shí)刻,參數(shù)0是輸入,參數(shù)1是輸出TransformToStart(&surfPointsFlat->points[i], &pointSel);

注意假設(shè)了勻速運(yùn)動(dòng)模型,也就是說位姿的變化是線性的,而代碼中提到的s就是隨時(shí)間線性變化的因子。回顧之前點(diǎn)云強(qiáng)度的保存的數(shù)據(jù)的計(jì)算,point.intensity = int(segmentedCloud->points[i].intensity) + scanPeriod * relTime;,再結(jié)合s的定義, float s = 10 * (pi->intensity - int(pi->intensity));,發(fā)現(xiàn)s就是relTime,為當(dāng)前點(diǎn)云時(shí)間減去初始點(diǎn)云相對(duì)于幀點(diǎn)云時(shí)間差的比值。

void TransformToStart(PointType const * const pi, PointType * const po){// intensity代表的是:整數(shù)部分ring序號(hào),小數(shù)部分是當(dāng)前點(diǎn)在這一圈中所花的時(shí)間// 關(guān)于intensity, 參考 adjustDistortion() 函數(shù)中的定義// s代表的其實(shí)是一個(gè)比例,s的計(jì)算方法應(yīng)該如下:// s=(pi->intensity - int(pi->intensity))/SCAN_PERIOD// ===> SCAN_PERIOD=0.1(雷達(dá)頻率為10hz)// 以上理解感謝github用戶StefanGlaser// https://github.com/laboshinl/loam_velodyne/issues/29float s = 10 * (pi->intensity - int(pi->intensity));

計(jì)算當(dāng)前點(diǎn)云和開始時(shí)刻的旋轉(zhuǎn)角度以及位移,這里用了勻速運(yùn)動(dòng)模型:

float rx = s * transformCur[0];float ry = s * transformCur[1];float rz = s * transformCur[2];float tx = s * transformCur[3];float ty = s * transformCur[4];float tz = s * transformCur[5];

計(jì)算特征點(diǎn)對(duì)應(yīng)于開始時(shí)刻坐標(biāo)系的坐標(biāo),先平移在旋轉(zhuǎn):

float x1 = cos(rz) * (pi->x - tx) + sin(rz) * (pi->y - ty);float y1 = -sin(rz) * (pi->x - tx) + cos(rz) * (pi->y - ty);float z1 = (pi->z - tz);float x2 = x1;float y2 = cos(rx) * y1 + sin(rx) * z1;float z2 = -sin(rx) * y1 + cos(rx) * z1;po->x = cos(ry) * x2 - sin(ry) * z2;po->y = y2;po->z = sin(ry) * x2 + cos(ry) * z2;po->intensity = pi->intensity;}

每5此迭代重新匹配特征點(diǎn):

if (iterCount % 5 == 0) {

在上一幀曲率較小的點(diǎn)(平面特征點(diǎn))組成的KD樹中尋找一個(gè)最近鄰點(diǎn):

kdtreeSurfLast->nearestKSearch(pointSel, 1, pointSearchInd, pointSearchSqDis);int closestPointInd = -1, minPointInd2 = -1, minPointInd3 = -1;// sq:平方,距離的平方值// 如果nearestKSearch找到的1(k=1)個(gè)鄰近點(diǎn)滿足條件if (pointSearchSqDis[0] < nearestFeatureSearchSqDist) {closestPointInd = pointSearchInd[0];

找到該最近鄰點(diǎn)的線束(第幾行第幾列)point.intensity保存里點(diǎn)云的行列值:

// point.intensity 保存的是什么值? 第幾次scan?// thisPoint.intensity = (float)rowIdn + (float)columnIdn / 10000.0;// fullInfoCloud->points[index].intensity = range;// 在imageProjection.cpp文件中有上述兩行代碼,兩種類型的值,應(yīng)該存的是上面一個(gè)int closestPointScan = int(laserCloudSurfLast->points[closestPointInd].intensity);

在最近鄰點(diǎn)i 所在線束尋找再尋找另外一個(gè)最近點(diǎn),以及在最近鄰點(diǎn)i ii所在線束的相鄰線束中尋找第三個(gè)最近點(diǎn),組成匹配平面:

// 主要功能是找到2個(gè)scan之內(nèi)的最近點(diǎn),并將找到的最近點(diǎn)及其序號(hào)保存// 之前掃描的保存到minPointSqDis2,之后的保存到minPointSqDis2float pointSqDis, minPointSqDis2 = nearestFeatureSearchSqDist, minPointSqDis3 = nearestFeatureSearchSqDist;

首先在雷達(dá)點(diǎn)云存儲(chǔ)的正方向(ScanID增大的方向和雷達(dá)旋轉(zhuǎn)正方向)尋找其他兩個(gè)點(diǎn),為什么加上2.5,因?yàn)樯舷聝蓚€(gè)scan相差2°:

for (int j = closestPointInd + 1; j < surfPointsFlatNum; j++) {// int類型的值加上2.5? 為什么不直接加上2?// 四舍五入if (int(laserCloudSurfLast->points[j].intensity) > closestPointScan + 2.5) {break;}

計(jì)算距離,找到最近鄰的點(diǎn),將之前掃描到的點(diǎn)保存在minPointSqDis2中,之后掃描到的保存在minPointSqDis3中:

pointSqDis = (laserCloudSurfLast->points[j].x - pointSel.x) * (laserCloudSurfLast->points[j].x - pointSel.x) + (laserCloudSurfLast->points[j].y - pointSel.y) * (laserCloudSurfLast->points[j].y - pointSel.y) + (laserCloudSurfLast->points[j].z - pointSel.z) * (laserCloudSurfLast->points[j].z - pointSel.z);if (int(laserCloudSurfLast->points[j].intensity) <= closestPointScan) {if (pointSqDis < minPointSqDis2) {minPointSqDis2 = pointSqDis;minPointInd2 = j;}} else {if (pointSqDis < minPointSqDis3) {minPointSqDis3 = pointSqDis;minPointInd3 = j;}}

反方向(ScanID減小的方向和雷達(dá)旋轉(zhuǎn)反方向?qū)ふ尹c(diǎn),并確定總的最近鄰點(diǎn):

// 往前找for (int j = closestPointInd - 1; j >= 0; j--) {if (int(laserCloudSurfLast->points[j].intensity) < closestPointScan - 2.5) {break;}pointSqDis = (laserCloudSurfLast->points[j].x - pointSel.x) * (laserCloudSurfLast->points[j].x - pointSel.x) + (laserCloudSurfLast->points[j].y - pointSel.y) * (laserCloudSurfLast->points[j].y - pointSel.y) + (laserCloudSurfLast->points[j].z - pointSel.z) * (laserCloudSurfLast->points[j].z - pointSel.z);if (int(laserCloudSurfLast->points[j].intensity) >= closestPointScan) {if (pointSqDis < minPointSqDis2) {minPointSqDis2 = pointSqDis;minPointInd2 = j;}} else {if (pointSqDis < minPointSqDis3) {minPointSqDis3 = pointSqDis;minPointInd3 = j;}}}}

找到平面匹配的三個(gè)點(diǎn):

pointSearchSurfInd1[i] = closestPointInd;pointSearchSurfInd2[i] = minPointInd2;pointSearchSurfInd3[i] = minPointInd3;}

找到特征點(diǎn)的對(duì)應(yīng)點(diǎn)以后的工作就是計(jì)算距離了,在這里還計(jì)算了平面法向量(就是點(diǎn)到平面的直線的方向向量)在各個(gè)軸的方向分解,在雅可比的計(jì)算中使用:

// 前后都能找到對(duì)應(yīng)的最近點(diǎn)在給定范圍之內(nèi)// 那么就開始計(jì)算距離// [pa,pb,pc]是tripod1,tripod2,tripod3這3個(gè)點(diǎn)構(gòu)成的一個(gè)平面的方向量,// ps是模長,它是三角形面積的2倍if (pointSearchSurfInd2[i] >= 0 && pointSearchSurfInd3[i] >= 0) {tripod1 = laserCloudSurfLast->points[pointSearchSurfInd1[i]];tripod2 = laserCloudSurfLast->points[pointSearchSurfInd2[i]];tripod3 = laserCloudSurfLast->points[pointSearchSurfInd3[i]];float pa = (tripod2.y - tripod1.y) * (tripod3.z - tripod1.z) - (tripod3.y - tripod1.y) * (tripod2.z - tripod1.z);float pb = (tripod2.z - tripod1.z) * (tripod3.x - tripod1.x) - (tripod3.z - tripod1.z) * (tripod2.x - tripod1.x);float pc = (tripod2.x - tripod1.x) * (tripod3.y - tripod1.y) - (tripod3.x - tripod1.x) * (tripod2.y - tripod1.y);float pd = -(pa * tripod1.x + pb * tripod1.y + pc * tripod1.z);float ps = sqrt(pa * pa + pb * pb + pc * pc);pa /= ps;pb /= ps;pc /= ps;pd /= ps;// 距離沒有取絕對(duì)值// 兩個(gè)向量的點(diǎn)乘,分母除以ps中已經(jīng)除掉了,// 加pd原因:pointSel與tripod1構(gòu)成的線段需要相減float pd2 = pa * pointSel.x + pb * pointSel.y + pc * pointSel.z + pd;float s = 1;if (iterCount >= 5) {// /加上影響因子s = 1 - 1.8 * fabs(pd2) / sqrt(sqrt(pointSel.x * pointSel.x+ pointSel.y * pointSel.y + pointSel.z * pointSel.z));}if (s > 0.1 && pd2 != 0) {// [x,y,z]是整個(gè)平面的單位法量// intensity是平面外一點(diǎn)到該平面的距離coeff.x = s * pa;coeff.y = s * pb;coeff.z = s * pc;coeff.intensity = s * pd2;// 未經(jīng)變換的點(diǎn)放入laserCloudOri隊(duì)列,距離,法向量值放入coeffSellaserCloudOri->push_back(surfPointsFlat->points[i]);coeffSel->push_back(coeff);}}}}

面特征優(yōu)化(這塊我看暈了,以下參考LeGO-LOAM源碼解析5: featureAssociation(三)):
定義各個(gè)矩陣,matA表示J,matAtA表示H,matAtB表示b:

int pointSelNum = laserCloudOri->points.size();cv::Mat matA(pointSelNum, 3, CV_32F, cv::Scalar::all(0));cv::Mat matAt(3, pointSelNum, CV_32F, cv::Scalar::all(0));cv::Mat matAtA(3, 3, CV_32F, cv::Scalar::all(0));cv::Mat matB(pointSelNum, 1, CV_32F, cv::Scalar::all(0));cv::Mat matAtB(3, 1, CV_32F, cv::Scalar::all(0));cv::Mat matX(3, 1, CV_32F, cv::Scalar::all(0));

對(duì)每個(gè)線特征點(diǎn)求關(guān)于對(duì)應(yīng)三個(gè)變量的解雅可比矩陣A和損失向量B,拼裝成為一個(gè)大的求解矩陣:

float srx = sin(transformCur[0]);float crx = cos(transformCur[0]);float sry = sin(transformCur[1]);float cry = cos(transformCur[1]);float srz = sin(transformCur[2]);float crz = cos(transformCur[2]);float tx = transformCur[3];float ty = transformCur[4];float tz = transformCur[5];float a1 = crx*sry*srz; float a2 = crx*crz*sry; float a3 = srx*sry; float a4 = tx*a1 - ty*a2 - tz*a3;float a5 = srx*srz; float a6 = crz*srx; float a7 = ty*a6 - tz*crx - tx*a5;float a8 = crx*cry*srz; float a9 = crx*cry*crz; float a10 = cry*srx; float a11 = tz*a10 + ty*a9 - tx*a8;float b1 = -crz*sry - cry*srx*srz; float b2 = cry*crz*srx - sry*srz;float b5 = cry*crz - srx*sry*srz; float b6 = cry*srz + crz*srx*sry;float c1 = -b6; float c2 = b5; float c3 = tx*b6 - ty*b5; float c4 = -crx*crz; float c5 = crx*srz; float c6 = ty*c5 + tx*-c4;float c7 = b2; float c8 = -b1; float c9 = tx*-b2 - ty*-b1;// 構(gòu)建雅可比矩陣,求解for (int i = 0; i < pointSelNum; i++) {pointOri = laserCloudOri->points[i];coeff = coeffSel->points[i];float arx = (-a1*pointOri.x + a2*pointOri.y + a3*pointOri.z + a4) * coeff.x+ (a5*pointOri.x - a6*pointOri.y + crx*pointOri.z + a7) * coeff.y+ (a8*pointOri.x - a9*pointOri.y - a10*pointOri.z + a11) * coeff.z;float arz = (c1*pointOri.x + c2*pointOri.y + c3) * coeff.x+ (c4*pointOri.x - c5*pointOri.y + c6) * coeff.y+ (c7*pointOri.x + c8*pointOri.y + c9) * coeff.z;float aty = -b6 * coeff.x + c4 * coeff.y + b2 * coeff.z;float d2 = coeff.intensity;matA.at<float>(i, 0) = arx;matA.at<float>(i, 1) = arz;matA.at<float>(i, 2) = aty;matB.at<float>(i, 0) = -0.05 * d2;}

使用OpenCV函數(shù)進(jìn)行求解,利用QR分解加速:

cv::transpose(matA, matAt);matAtA = matAt * matA;matAtB = matAt * matB;cv::solve(matAtA, matAtB, matX, cv::DECOMP_QR);

關(guān)于退化問題的討論,與LOAM中一致,請(qǐng)參考loam源碼解析5 : laserOdometry(三)中的退化問題分析:

if (iterCount == 0) {cv::Mat matE(1, 3, CV_32F, cv::Scalar::all(0));cv::Mat matV(3, 3, CV_32F, cv::Scalar::all(0));cv::Mat matV2(3, 3, CV_32F, cv::Scalar::all(0));cv::eigen(matAtA, matE, matV);matV.copyTo(matV2);isDegenerate = false;float eignThre[3] = {10, 10, 10};for (int i = 2; i >= 0; i--) {if (matE.at<float>(0, i) < eignThre[i]) {for (int j = 0; j < 3; j++) {matV2.at<float>(i, j) = 0;}isDegenerate = true;} else {break;}}matP = matV.inv() * matV2;}if (isDegenerate) {cv::Mat matX2(3, 1, CV_32F, cv::Scalar::all(0));matX.copyTo(matX2);matX = matP * matX2;}

使用迭代計(jì)算的增量進(jìn)行姿態(tài)更新:

transformCur[1] += matX.at<float>(0, 0);transformCur[3] += matX.at<float>(1, 0);transformCur[5] += matX.at<float>(2, 0);for(int i=0; i<6; i++){if(isnan(transformCur[i]))transformCur[i]=0;}

計(jì)算姿態(tài)是否合法,以及是否滿足迭代條件:

float deltaR = sqrt(pow(rad2deg(matX.at<float>(0, 0)), 2) +pow(rad2deg(matX.at<float>(1, 0)), 2));float deltaT = sqrt(pow(matX.at<float>(2, 0) * 100, 2));if (deltaR < 0.1 && deltaT < 0.1) {return false;}return true;}

線特征匹配與優(yōu)化:

for (int iterCount2 = 0; iterCount2 < 25; iterCount2++) {laserCloudOri->clear();coeffSel->clear();// 找到對(duì)應(yīng)的特征邊/角點(diǎn)// 尋找邊特征的方法和尋找平面特征的很類似,過程可以參照尋找平面特征的注釋findCorrespondingCornerFeatures(iterCount2);if (laserCloudOri->points.size() < 10)continue;// 通過角/邊特征的匹配,計(jì)算變換矩陣if (calculateTransformationCorner(iterCount2) == false)break;}}

這塊和面特征匹配優(yōu)化的思想類似:
將曲率大的點(diǎn)(待匹配的特征點(diǎn))的坐標(biāo)全部轉(zhuǎn)換到當(dāng)前幀的初始時(shí)刻:

void findCorrespondingCornerFeatures(int iterCount){int cornerPointsSharpNum = cornerPointsSharp->points.size();for (int i = 0; i < cornerPointsSharpNum; i++) {TransformToStart(&cornerPointsSharp->points[i], &pointSel);

每五次迭代重新匹配特征點(diǎn):

if (iterCount % 5 == 0) {

在上一幀曲率較大的點(diǎn)組成的KD樹中尋找一個(gè)最近鄰點(diǎn),找到該最近鄰點(diǎn)的線束,

kdtreeCornerLast->nearestKSearch(pointSel, 1, pointSearchInd, pointSearchSqDis);int closestPointInd = -1, minPointInd2 = -1;if (pointSearchSqDis[0] < nearestFeatureSearchSqDist) {closestPointInd = pointSearchInd[0];int closestPointScan = int(laserCloudCornerLast->points[closestPointInd].intensity);

在最近鄰點(diǎn)i ii所在線束的相鄰線束中尋找第二個(gè)最近點(diǎn),組成匹配直線:
首先在雷達(dá)點(diǎn)云存儲(chǔ)的正方向(ScanID增大的方向和雷達(dá)旋轉(zhuǎn)正方向)尋找另外一個(gè)點(diǎn):
然后在雷達(dá)點(diǎn)云存儲(chǔ)的反方向(ScanID減小的方向和雷達(dá)旋轉(zhuǎn)反方向)尋找其他兩個(gè)點(diǎn):

float pointSqDis, minPointSqDis2 = nearestFeatureSearchSqDist;for (int j = closestPointInd + 1; j < cornerPointsSharpNum; j++) {if (int(laserCloudCornerLast->points[j].intensity) > closestPointScan + 2.5) {break;}pointSqDis = (laserCloudCornerLast->points[j].x - pointSel.x) * (laserCloudCornerLast->points[j].x - pointSel.x) + (laserCloudCornerLast->points[j].y - pointSel.y) * (laserCloudCornerLast->points[j].y - pointSel.y) + (laserCloudCornerLast->points[j].z - pointSel.z) * (laserCloudCornerLast->points[j].z - pointSel.z);if (int(laserCloudCornerLast->points[j].intensity) > closestPointScan) {if (pointSqDis < minPointSqDis2) {minPointSqDis2 = pointSqDis;minPointInd2 = j;}}}for (int j = closestPointInd - 1; j >= 0; j--) {if (int(laserCloudCornerLast->points[j].intensity) < closestPointScan - 2.5) {break;}pointSqDis = (laserCloudCornerLast->points[j].x - pointSel.x) * (laserCloudCornerLast->points[j].x - pointSel.x) + (laserCloudCornerLast->points[j].y - pointSel.y) * (laserCloudCornerLast->points[j].y - pointSel.y) + (laserCloudCornerLast->points[j].z - pointSel.z) * (laserCloudCornerLast->points[j].z - pointSel.z);if (int(laserCloudCornerLast->points[j].intensity) < closestPointScan) {if (pointSqDis < minPointSqDis2) {minPointSqDis2 = pointSqDis;minPointInd2 = j;}}}}

找到用于匹配的兩個(gè)點(diǎn)(形成邊緣線):

pointSearchCornerInd1[i] = closestPointInd;pointSearchCornerInd2[i] = minPointInd2;}

找到特征點(diǎn)的對(duì)應(yīng)點(diǎn)以后的工作就是計(jì)算距離了,在這里還計(jì)算了就是點(diǎn)到直線的方向向量在各個(gè)軸的方向分解,在雅可比的計(jì)算中使用:

if (pointSearchCornerInd2[i] >= 0) {tripod1 = laserCloudCornerLast->points[pointSearchCornerInd1[i]];tripod2 = laserCloudCornerLast->points[pointSearchCornerInd2[i]];float x0 = pointSel.x;float y0 = pointSel.y;float z0 = pointSel.z;float x1 = tripod1.x;float y1 = tripod1.y;float z1 = tripod1.z;float x2 = tripod2.x;float y2 = tripod2.y;float z2 = tripod2.z;float m11 = ((x0 - x1)*(y0 - y2) - (x0 - x2)*(y0 - y1));float m22 = ((x0 - x1)*(z0 - z2) - (x0 - x2)*(z0 - z1));float m33 = ((y0 - y1)*(z0 - z2) - (y0 - y2)*(z0 - z1));float a012 = sqrt(m11 * m11 + m22 * m22 + m33 * m33);float l12 = sqrt((x1 - x2)*(x1 - x2) + (y1 - y2)*(y1 - y2) + (z1 - z2)*(z1 - z2));float la = ((y1 - y2)*m11 + (z1 - z2)*m22) / a012 / l12;float lb = -((x1 - x2)*m11 - (z1 - z2)*m33) / a012 / l12;float lc = -((x1 - x2)*m22 + (y1 - y2)*m33) / a012 / l12;float ld2 = a012 / l12;float s = 1;if (iterCount >= 5) {s = 1 - 1.8 * fabs(ld2);}if (s > 0.1 && ld2 != 0) {coeff.x = s * la; coeff.y = s * lb;coeff.z = s * lc;coeff.intensity = s * ld2;laserCloudOri->push_back(cornerPointsSharp->points[i]);coeffSel->push_back(coeff);}}}}

線特征優(yōu)化(我已經(jīng)麻了):

bool calculateTransformationCorner(int iterCount){int pointSelNum = laserCloudOri->points.size();cv::Mat matA(pointSelNum, 3, CV_32F, cv::Scalar::all(0));cv::Mat matAt(3, pointSelNum, CV_32F, cv::Scalar::all(0));cv::Mat matAtA(3, 3, CV_32F, cv::Scalar::all(0));cv::Mat matB(pointSelNum, 1, CV_32F, cv::Scalar::all(0));cv::Mat matAtB(3, 1, CV_32F, cv::Scalar::all(0));cv::Mat matX(3, 1, CV_32F, cv::Scalar::all(0));// 以下為開始計(jì)算A,A=[J的偏導(dǎo)],J的偏導(dǎo)的計(jì)算公式是什么?float srx = sin(transformCur[0]);float crx = cos(transformCur[0]);float sry = sin(transformCur[1]);float cry = cos(transformCur[1]);float srz = sin(transformCur[2]);float crz = cos(transformCur[2]);float tx = transformCur[3];float ty = transformCur[4];float tz = transformCur[5];float b1 = -crz*sry - cry*srx*srz; float b2 = cry*crz*srx - sry*srz; float b3 = crx*cry; float b4 = tx*-b1 + ty*-b2 + tz*b3;float b5 = cry*crz - srx*sry*srz; float b6 = cry*srz + crz*srx*sry; float b7 = crx*sry; float b8 = tz*b7 - ty*b6 - tx*b5;float c5 = crx*srz;for (int i = 0; i < pointSelNum; i++) {pointOri = laserCloudOri->points[i];coeff = coeffSel->points[i];float ary = (b1*pointOri.x + b2*pointOri.y - b3*pointOri.z + b4) * coeff.x+ (b5*pointOri.x + b6*pointOri.y - b7*pointOri.z + b8) * coeff.z;float atx = -b5 * coeff.x + c5 * coeff.y + b1 * coeff.z;float atz = b7 * coeff.x - srx * coeff.y - b3 * coeff.z;float d2 = coeff.intensity;// A=[J的偏導(dǎo)]; B=[權(quán)重系數(shù)*(點(diǎn)到直線的距離)] 求解公式: AX=B// 為了讓左邊滿秩,同乘At-> At*A*X = At*BmatA.at<float>(i, 0) = ary;matA.at<float>(i, 1) = atx;matA.at<float>(i, 2) = atz;matB.at<float>(i, 0) = -0.05 * d2;}// transpose函數(shù)求得matA的轉(zhuǎn)置matAtcv::transpose(matA, matAt);matAtA = matAt * matA;matAtB = matAt * matB;// 通過QR分解的方法,求解方程AtA*X=AtB,得到Xcv::solve(matAtA, matAtB, matX, cv::DECOMP_QR);if (iterCount == 0) {cv::Mat matE(1, 3, CV_32F, cv::Scalar::all(0));cv::Mat matV(3, 3, CV_32F, cv::Scalar::all(0));cv::Mat matV2(3, 3, CV_32F, cv::Scalar::all(0));// 計(jì)算At*A的特征值和特征向量// 特征值存放在matE,特征向量matVcv::eigen(matAtA, matE, matV);matV.copyTo(matV2);// 退化的具體表現(xiàn)是指什么?isDegenerate = false;float eignThre[3] = {10, 10, 10};for (int i = 2; i >= 0; i--) {if (matE.at<float>(0, i) < eignThre[i]) {for (int j = 0; j < 3; j++) {matV2.at<float>(i, j) = 0;}// 存在比10小的特征值則出現(xiàn)退化isDegenerate = true;} else {break;}}matP = matV.inv() * matV2;}if (isDegenerate) {cv::Mat matX2(3, 1, CV_32F, cv::Scalar::all(0));matX.copyTo(matX2);matX = matP * matX2;}transformCur[1] += matX.at<float>(0, 0);transformCur[3] += matX.at<float>(1, 0);transformCur[5] += matX.at<float>(2, 0);for(int i=0; i<6; i++){if(isnan(transformCur[i]))transformCur[i]=0;}float deltaR = sqrt(pow(rad2deg(matX.at<float>(0, 0)), 2));float deltaT = sqrt(pow(matX.at<float>(1, 0) * 100, 2) +pow(matX.at<float>(2, 0) * 100, 2));if (deltaR < 0.1 && deltaT < 0.1) {return false;}return true;}

以上部分我不完全理解就不贅述了,總之經(jīng)過上面的騷操作我們得到了當(dāng)前幀的角度旋轉(zhuǎn)量和位移量。

8、積分總變換。

然后就算旋轉(zhuǎn)變化:

// 旋轉(zhuǎn)角的累計(jì)變化量void integrateTransformation(){float rx, ry, rz, tx, ty, tz; // AccumulateRotation作用// 將計(jì)算的兩幀之間的位姿“累加”起來,獲得相對(duì)于第一幀的旋轉(zhuǎn)矩陣// transformSum + (-transformCur) =(rx,ry,rz)AccumulateRotation(transformSum[0], transformSum[1], transformSum[2], -transformCur[0], -transformCur[1], -transformCur[2], rx, ry, rz);

其中 AccumulateRotation功能就是計(jì)算旋轉(zhuǎn)變化的:

void AccumulateRotation(float cx, float cy, float cz, float lx, float ly, float lz, float &ox, float &oy, float &oz){// 參考:https://www.cnblogs.com/ReedLW/p/9005621.html// 0--->(cx,cy,cz)--->(lx,ly,lz)// 從0時(shí)刻到(cx,cy,cz),然后在(cx,cy,cz)的基礎(chǔ)上又旋轉(zhuǎn)(lx,ly,lz)// 求最后總的位姿結(jié)果是什么?// R*p_cur = R_c*R_l*p_cur ==> R=R_c* R_l//// |cly*clz+sly*slx*slz clz*sly*slx-cly*slz clx*sly|// R_l=| clx*slz clx*clz -slx|// |cly*slx*slz-clz*sly cly*clz*slx+sly*slz cly*clx|// R_c=...// -srx=(ccx*scy,-scx,cly*clx)*(clx*slz,clx*clz,-slx)// ...// 然后根據(jù)R再來求(ox,oy,oz)float srx = cos(lx)*cos(cx)*sin(ly)*sin(cz) - cos(cx)*cos(cz)*sin(lx) - cos(lx)*cos(ly)*sin(cx);ox = -asin(srx);float srycrx = sin(lx)*(cos(cy)*sin(cz) - cos(cz)*sin(cx)*sin(cy)) + cos(lx)*sin(ly)*(cos(cy)*cos(cz) + sin(cx)*sin(cy)*sin(cz)) + cos(lx)*cos(ly)*cos(cx)*sin(cy);float crycrx = cos(lx)*cos(ly)*cos(cx)*cos(cy) - cos(lx)*sin(ly)*(cos(cz)*sin(cy) - cos(cy)*sin(cx)*sin(cz)) - sin(lx)*(sin(cy)*sin(cz) + cos(cy)*cos(cz)*sin(cx));oy = atan2(srycrx / cos(ox), crycrx / cos(ox));float srzcrx = sin(cx)*(cos(lz)*sin(ly) - cos(ly)*sin(lx)*sin(lz)) + cos(cx)*sin(cz)*(cos(ly)*cos(lz) + sin(lx)*sin(ly)*sin(lz)) + cos(lx)*cos(cx)*cos(cz)*sin(lz);float crzcrx = cos(lx)*cos(lz)*cos(cx)*cos(cz) - cos(cx)*sin(cz)*(cos(ly)*sin(lz) - cos(lz)*sin(lx)*sin(ly)) - sin(cx)*(sin(ly)*sin(lz) + cos(ly)*cos(lz)*sin(lx));oz = atan2(srzcrx / cos(ox), crzcrx / cos(ox));}

接著計(jì)算當(dāng)前幀與初始幀的位移變化:

// 進(jìn)行平移分量的更新float x1 = cos(rz) * (transformCur[3] - imuShiftFromStartX) - sin(rz) * (transformCur[4] - imuShiftFromStartY);float y1 = sin(rz) * (transformCur[3] - imuShiftFromStartX) + cos(rz) * (transformCur[4] - imuShiftFromStartY);float z1 = transformCur[5] - imuShiftFromStartZ;float x2 = x1;float y2 = cos(rx) * y1 - sin(rx) * z1;float z2 = sin(rx) * y1 + cos(rx) * z1;tx = transformSum[3] - (cos(ry) * x2 + sin(ry) * z2);ty = transformSum[4] - y2;tz = transformSum[5] - (-sin(ry) * x2 + cos(ry) * z2);

修正累計(jì)位姿變換(公式又讓我麻了,后面要是有心情在先詳細(xì)解釋這些數(shù)學(xué)原理):

// 與accumulateRotatio聯(lián)合起來更新transformSum的rotation部分的工作// 可視為transformToEnd的下部分的逆過程PluginIMURotation(rx, ry, rz, imuPitchStart, imuYawStart, imuRollStart, imuPitchLast, imuYawLast, imuRollLast, rx, ry, rz); void PluginIMURotation(float bcx, float bcy, float bcz, float blx, float bly, float blz, float alx, float aly, float alz, float &acx, float &acy, float &acz){// 參考:https://www.cnblogs.com/ReedLW/p/9005621.html// -imuStart imuEnd 0// transformSum.rot= R * R * R// YXZ ZXY k+1// bcx,bcy,bcz (rx, ry, rz)構(gòu)成了 R_(k+1)^(0)// blx,bly,blz(imuPitchStart, imuYawStart, imuRollStart) 構(gòu)成了 R_(YXZ)^(-imuStart)// alx,aly,alz(imuPitchLast, imuYawLast, imuRollLast)構(gòu)成了 R_(ZXY)^(imuEnd)float sbcx = sin(bcx);float cbcx = cos(bcx);float sbcy = sin(bcy);float cbcy = cos(bcy);float sbcz = sin(bcz);float cbcz = cos(bcz);float sblx = sin(blx);float cblx = cos(blx);float sbly = sin(bly);float cbly = cos(bly);float sblz = sin(blz);float cblz = cos(blz);float salx = sin(alx);float calx = cos(alx);float saly = sin(aly);float caly = cos(aly);float salz = sin(alz);float calz = cos(alz);float srx = -sbcx*(salx*sblx + calx*caly*cblx*cbly + calx*cblx*saly*sbly) - cbcx*cbcz*(calx*saly*(cbly*sblz - cblz*sblx*sbly) - calx*caly*(sbly*sblz + cbly*cblz*sblx) + cblx*cblz*salx) - cbcx*sbcz*(calx*caly*(cblz*sbly - cbly*sblx*sblz) - calx*saly*(cbly*cblz + sblx*sbly*sblz) + cblx*salx*sblz);acx = -asin(srx);float srycrx = (cbcy*sbcz - cbcz*sbcx*sbcy)*(calx*saly*(cbly*sblz - cblz*sblx*sbly) - calx*caly*(sbly*sblz + cbly*cblz*sblx) + cblx*cblz*salx) - (cbcy*cbcz + sbcx*sbcy*sbcz)*(calx*caly*(cblz*sbly - cbly*sblx*sblz) - calx*saly*(cbly*cblz + sblx*sbly*sblz) + cblx*salx*sblz) + cbcx*sbcy*(salx*sblx + calx*caly*cblx*cbly + calx*cblx*saly*sbly);float crycrx = (cbcz*sbcy - cbcy*sbcx*sbcz)*(calx*caly*(cblz*sbly - cbly*sblx*sblz) - calx*saly*(cbly*cblz + sblx*sbly*sblz) + cblx*salx*sblz) - (sbcy*sbcz + cbcy*cbcz*sbcx)*(calx*saly*(cbly*sblz - cblz*sblx*sbly) - calx*caly*(sbly*sblz + cbly*cblz*sblx) + cblx*cblz*salx) + cbcx*cbcy*(salx*sblx + calx*caly*cblx*cbly + calx*cblx*saly*sbly);acy = atan2(srycrx / cos(acx), crycrx / cos(acx));float srzcrx = sbcx*(cblx*cbly*(calz*saly - caly*salx*salz) - cblx*sbly*(caly*calz + salx*saly*salz) + calx*salz*sblx) - cbcx*cbcz*((caly*calz + salx*saly*salz)*(cbly*sblz - cblz*sblx*sbly) + (calz*saly - caly*salx*salz)*(sbly*sblz + cbly*cblz*sblx) - calx*cblx*cblz*salz) + cbcx*sbcz*((caly*calz + salx*saly*salz)*(cbly*cblz + sblx*sbly*sblz) + (calz*saly - caly*salx*salz)*(cblz*sbly - cbly*sblx*sblz) + calx*cblx*salz*sblz);float crzcrx = sbcx*(cblx*sbly*(caly*salz - calz*salx*saly) - cblx*cbly*(saly*salz + caly*calz*salx) + calx*calz*sblx) + cbcx*cbcz*((saly*salz + caly*calz*salx)*(sbly*sblz + cbly*cblz*sblx) + (caly*salz - calz*salx*saly)*(cbly*sblz - cblz*sblx*sbly) + calx*calz*cblx*cblz) - cbcx*sbcz*((saly*salz + caly*calz*salx)*(cblz*sbly - cbly*sblx*sblz) + (caly*salz - calz*salx*saly)*(cbly*cblz + sblx*sbly*sblz) - calx*calz*cblx*sblz);acz = atan2(srzcrx / cos(acx), crzcrx / cos(acx));}

最終位姿變換:

transformSum[0] = rx;transformSum[1] = ry;transformSum[2] = rz;transformSum[3] = tx;transformSum[4] = ty;transformSum[5] = tz;}

9、發(fā)布里程計(jì)及上一幀點(diǎn)云信息

發(fā)布里程計(jì):

void publishOdometry(){geometry_msgs::Quaternion geoQuat = tf::createQuaternionMsgFromRollPitchYaw(transformSum[2], -transformSum[0], -transformSum[1]);// rx,ry,rz轉(zhuǎn)化為四元數(shù)發(fā)布laserOdometry.header.stamp = cloudHeader.stamp;laserOdometry.pose.pose.orientation.x = -geoQuat.y;laserOdometry.pose.pose.orientation.y = -geoQuat.z;laserOdometry.pose.pose.orientation.z = geoQuat.x;laserOdometry.pose.pose.orientation.w = geoQuat.w;laserOdometry.pose.pose.position.x = transformSum[3];laserOdometry.pose.pose.position.y = transformSum[4];laserOdometry.pose.pose.position.z = transformSum[5];pubLaserOdometry.publish(laserOdometry);// laserOdometryTrans 是用于tf廣播laserOdometryTrans.stamp_ = cloudHeader.stamp;laserOdometryTrans.setRotation(tf::Quaternion(-geoQuat.y, -geoQuat.z, geoQuat.x, geoQuat.w));laserOdometryTrans.setOrigin(tf::Vector3(transformSum[3], transformSum[4], transformSum[5]));tfBroadcaster.sendTransform(laserOdometryTrans);}

發(fā)布點(diǎn)云:
把特征點(diǎn)云投影到每幀的結(jié)尾時(shí)刻:

void publishCloudsLast(){updateImuRollPitchYawStartSinCos();int cornerPointsLessSharpNum = cornerPointsLessSharp->points.size();for (int i = 0; i < cornerPointsLessSharpNum; i++) {// TransformToEnd的作用是將k+1時(shí)刻的less特征點(diǎn)轉(zhuǎn)移至k+1時(shí)刻的sweep的結(jié)束位置處的雷達(dá)坐標(biāo)系下TransformToEnd(&cornerPointsLessSharp->points[i], &cornerPointsLessSharp->points[i]);}int surfPointsLessFlatNum = surfPointsLessFlat->points.size();for (int i = 0; i < surfPointsLessFlatNum; i++) {TransformToEnd(&surfPointsLessFlat->points[i], &surfPointsLessFlat->points[i]);}

用KD樹存儲(chǔ)當(dāng)前幀點(diǎn)云:

pcl::PointCloud<PointType>::Ptr laserCloudTemp = cornerPointsLessSharp;cornerPointsLessSharp = laserCloudCornerLast;laserCloudCornerLast = laserCloudTemp;laserCloudTemp = surfPointsLessFlat;surfPointsLessFlat = laserCloudSurfLast;laserCloudSurfLast = laserCloudTemp;laserCloudCornerLastNum = laserCloudCornerLast->points.size();laserCloudSurfLastNum = laserCloudSurfLast->points.size();if (laserCloudCornerLastNum > 10 && laserCloudSurfLastNum > 100) {kdtreeCornerLast->setInputCloud(laserCloudCornerLast);kdtreeSurfLast->setInputCloud(laserCloudSurfLast);}frameCount++;

發(fā)布各類點(diǎn)云(發(fā)布界外點(diǎn)云、線特征點(diǎn)云、面特征點(diǎn)云):

if (frameCount >= skipFrameNum + 1) {frameCount = 0;// 調(diào)整坐標(biāo)系,x=y,y=z,z=xadjustOutlierCloud();sensor_msgs::PointCloud2 outlierCloudLast2;pcl::toROSMsg(*outlierCloud, outlierCloudLast2);outlierCloudLast2.header.stamp = cloudHeader.stamp;outlierCloudLast2.header.frame_id = "/camera";pubOutlierCloudLast.publish(outlierCloudLast2);sensor_msgs::PointCloud2 laserCloudCornerLast2;pcl::toROSMsg(*laserCloudCornerLast, laserCloudCornerLast2);laserCloudCornerLast2.header.stamp = cloudHeader.stamp;laserCloudCornerLast2.header.frame_id = "/camera";pubLaserCloudCornerLast.publish(laserCloudCornerLast2);sensor_msgs::PointCloud2 laserCloudSurfLast2;pcl::toROSMsg(*laserCloudSurfLast, laserCloudSurfLast2);laserCloudSurfLast2.header.stamp = cloudHeader.stamp;laserCloudSurfLast2.header.frame_id = "/camera";pubLaserCloudSurfLast.publish(laserCloudSurfLast2);}}

參考:
LeGO-LOAM源碼解析5: featureAssociation(三)
坐標(biāo)轉(zhuǎn)換與imu融合

總結(jié)

以上是生活随笔為你收集整理的【LeGO-LOAM论文阅读(二)--特征提取(二)】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

日韩精品a片一区二区三区妖精 | 99久久久无码国产aaa精品 | 久久精品国产99精品亚洲 | 天下第一社区视频www日本 | 思思久久99热只有频精品66 | 亚洲精品久久久久中文第一幕 | 亚洲の无码国产の无码影院 | 亚洲成a人片在线观看无码 | 日韩欧美中文字幕在线三区 | 成人免费视频视频在线观看 免费 | 日日鲁鲁鲁夜夜爽爽狠狠 | 男女作爱免费网站 | 少妇一晚三次一区二区三区 | 亚洲成av人在线观看网址 | 狠狠噜狠狠狠狠丁香五月 | 一本久道高清无码视频 | 国产色xx群视频射精 | 激情亚洲一区国产精品 | 欧美老人巨大xxxx做受 | 亚洲午夜福利在线观看 | 久久熟妇人妻午夜寂寞影院 | 熟女少妇在线视频播放 | 纯爱无遮挡h肉动漫在线播放 | 欧美日韩视频无码一区二区三 | 噜噜噜亚洲色成人网站 | 国产成人精品必看 | 欧美熟妇另类久久久久久多毛 | 粉嫩少妇内射浓精videos | 国产人妖乱国产精品人妖 | 国产精品高潮呻吟av久久4虎 | 亚洲国产欧美国产综合一区 | 成人免费无码大片a毛片 | 人妻尝试又大又粗久久 | 欧美人与物videos另类 | 国产精品久久精品三级 | √8天堂资源地址中文在线 | 中文亚洲成a人片在线观看 | 无码人妻精品一区二区三区下载 | 东京热男人av天堂 | 国产99久久精品一区二区 | 国产免费久久精品国产传媒 | 色婷婷欧美在线播放内射 | 久久午夜夜伦鲁鲁片无码免费 | 国产成人无码一二三区视频 | 国产手机在线αⅴ片无码观看 | 亚洲第一网站男人都懂 | av香港经典三级级 在线 | 色欲av亚洲一区无码少妇 | 欧美精品国产综合久久 | 久久婷婷五月综合色国产香蕉 | 亚洲精品欧美二区三区中文字幕 | 国精产品一品二品国精品69xx | 成人精品天堂一区二区三区 | 亚洲成色在线综合网站 | 色综合久久久久综合一本到桃花网 | 香蕉久久久久久av成人 | 一个人免费观看的www视频 | 又紧又大又爽精品一区二区 | 国产精品久久久一区二区三区 | 亚洲爆乳精品无码一区二区三区 | 最新版天堂资源中文官网 | 日韩欧美中文字幕公布 | 漂亮人妻洗澡被公强 日日躁 | 亚洲色在线无码国产精品不卡 | 精品久久8x国产免费观看 | 日产精品高潮呻吟av久久 | 色欲综合久久中文字幕网 | 扒开双腿疯狂进出爽爽爽视频 | 精品国产一区二区三区四区在线看 | 日本精品人妻无码免费大全 | 又大又硬又黄的免费视频 | 国产在线无码精品电影网 | 中文字幕精品av一区二区五区 | 欧美一区二区三区视频在线观看 | 精品熟女少妇av免费观看 | 成人免费视频视频在线观看 免费 | av在线亚洲欧洲日产一区二区 | 国产精品美女久久久久av爽李琼 | 婷婷丁香五月天综合东京热 | 理论片87福利理论电影 | 一个人看的www免费视频在线观看 | 一区二区三区乱码在线 | 欧洲 | 亚洲一区二区三区播放 | 18精品久久久无码午夜福利 | 在线观看国产一区二区三区 | 兔费看少妇性l交大片免费 | 最新国产乱人伦偷精品免费网站 | 国产小呦泬泬99精品 | 欧美国产日韩亚洲中文 | 无码吃奶揉捏奶头高潮视频 | 国产莉萝无码av在线播放 | 色妞www精品免费视频 | 国产性生大片免费观看性 | 久久精品无码一区二区三区 | 久9re热视频这里只有精品 | 精品国产麻豆免费人成网站 | 中国女人内谢69xxxxxa片 | 在线视频网站www色 | 六十路熟妇乱子伦 | 一本久道高清无码视频 | 无码人妻丰满熟妇区毛片18 | 国精产品一区二区三区 | 88国产精品欧美一区二区三区 | 国产精品久久久久久亚洲影视内衣 | av无码不卡在线观看免费 | 性色av无码免费一区二区三区 | 亚洲精品国偷拍自产在线麻豆 | 水蜜桃亚洲一二三四在线 | 在线 国产 欧美 亚洲 天堂 | 7777奇米四色成人眼影 | 国产 浪潮av性色四虎 | 国产av无码专区亚洲a∨毛片 | 狂野欧美性猛交免费视频 | 久久精品一区二区三区四区 | 一本久久a久久精品亚洲 | 亚洲一区二区三区国产精华液 | 无码毛片视频一区二区本码 | 午夜成人1000部免费视频 | 久久午夜无码鲁丝片 | 少妇无码av无码专区在线观看 | 清纯唯美经典一区二区 | 少妇被黑人到高潮喷出白浆 | 成年美女黄网站色大免费全看 | 又大又硬又黄的免费视频 | 久久久国产精品无码免费专区 | 小sao货水好多真紧h无码视频 | 亲嘴扒胸摸屁股激烈网站 | 亚洲精品中文字幕 | 日日躁夜夜躁狠狠躁 | 美女黄网站人色视频免费国产 | 77777熟女视频在线观看 а天堂中文在线官网 | 国产美女极度色诱视频www | 午夜福利一区二区三区在线观看 | 亚洲成a人片在线观看无码3d | 亚洲色无码一区二区三区 | 天堂在线观看www | 亚洲人成网站免费播放 | 国产在线精品一区二区三区直播 | 久久人人97超碰a片精品 | 成人aaa片一区国产精品 | 99精品国产综合久久久久五月天 | 国产小呦泬泬99精品 | 麻豆av传媒蜜桃天美传媒 | 久青草影院在线观看国产 | 日本又色又爽又黄的a片18禁 | 在线观看国产一区二区三区 | 六月丁香婷婷色狠狠久久 | 精品乱码久久久久久久 | 中文字幕日产无线码一区 | 久久无码中文字幕免费影院蜜桃 | 99久久精品无码一区二区毛片 | 欧美兽交xxxx×视频 | 久久亚洲中文字幕无码 | 亚洲日韩一区二区 | 日日摸日日碰夜夜爽av | 波多野结衣av一区二区全免费观看 | 蜜臀aⅴ国产精品久久久国产老师 | 精品成在人线av无码免费看 | 国产成人人人97超碰超爽8 | 国模大胆一区二区三区 | 东京一本一道一二三区 | 中文毛片无遮挡高清免费 | 欧美黑人乱大交 | 天天做天天爱天天爽综合网 | 中文字幕乱妇无码av在线 | 乱人伦人妻中文字幕无码 | 夜夜夜高潮夜夜爽夜夜爰爰 | 中文字幕av日韩精品一区二区 | 青青青爽视频在线观看 | 99麻豆久久久国产精品免费 | 国产成人人人97超碰超爽8 | 亚洲色www成人永久网址 | 无码午夜成人1000部免费视频 | 国产精品久久久久久久影院 | 国产人成高清在线视频99最全资源 | 久久精品国产99久久6动漫 | 亚拍精品一区二区三区探花 | 人人妻人人澡人人爽欧美精品 | 亚洲娇小与黑人巨大交 | 日本va欧美va欧美va精品 | 国产婷婷色一区二区三区在线 | 亚洲一区二区三区香蕉 | 俄罗斯老熟妇色xxxx | 自拍偷自拍亚洲精品10p | 俺去俺来也在线www色官网 | 久久久久久九九精品久 | 午夜不卡av免费 一本久久a久久精品vr综合 | 精品一二三区久久aaa片 | 亚洲精品一区二区三区在线观看 | 国产乱子伦视频在线播放 | 天海翼激烈高潮到腰振不止 | 好男人社区资源 | 又大又黄又粗又爽的免费视频 | 国产三级久久久精品麻豆三级 | 曰本女人与公拘交酡免费视频 | 大乳丰满人妻中文字幕日本 | 妺妺窝人体色www在线小说 | 国产成人综合美国十次 | 99久久精品无码一区二区毛片 | 亚洲性无码av中文字幕 | 思思久久99热只有频精品66 | 亚洲国产精品久久久久久 | 性做久久久久久久久 | 亚洲欧美日韩成人高清在线一区 | 亚洲va欧美va天堂v国产综合 | 97se亚洲精品一区 | 日韩精品一区二区av在线 | 精品乱码久久久久久久 | 亚洲码国产精品高潮在线 | 国产午夜福利100集发布 | а√天堂www在线天堂小说 | 亚洲一区二区观看播放 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 亚洲码国产精品高潮在线 | 日韩av无码一区二区三区不卡 | 国产精品国产三级国产专播 | 国产精品美女久久久网av | 成人亚洲精品久久久久 | 国产精品.xx视频.xxtv | 丝袜美腿亚洲一区二区 | 亚洲精品中文字幕久久久久 | 久久国产劲爆∧v内射 | 国产两女互慰高潮视频在线观看 | 国产69精品久久久久app下载 | 色婷婷久久一区二区三区麻豆 | 丰满岳乱妇在线观看中字无码 | 天干天干啦夜天干天2017 | 两性色午夜免费视频 | 亚洲综合伊人久久大杳蕉 | 精品久久久久久人妻无码中文字幕 | 国产人妻精品午夜福利免费 | 99精品无人区乱码1区2区3区 | 欧美黑人性暴力猛交喷水 | 亚洲精品成人福利网站 | 一本久久a久久精品vr综合 | 久久综合狠狠综合久久综合88 | 亚洲国产欧美日韩精品一区二区三区 | 亚洲国产高清在线观看视频 | 377p欧洲日本亚洲大胆 | 国产午夜亚洲精品不卡下载 | 国产精品无码久久av | 久久久久国色av免费观看性色 | 老子影院午夜精品无码 | aⅴ亚洲 日韩 色 图网站 播放 | 中文字幕无码av波多野吉衣 | 国产麻豆精品一区二区三区v视界 | 国产人妻久久精品二区三区老狼 | 少妇邻居内射在线 | 无人区乱码一区二区三区 | 美女黄网站人色视频免费国产 | 性生交大片免费看女人按摩摩 | 亚洲色www成人永久网址 | √天堂资源地址中文在线 | 久久精品国产亚洲精品 | 精品亚洲成av人在线观看 | 日本乱偷人妻中文字幕 | 久久精品国产99精品亚洲 | 日韩在线不卡免费视频一区 | 少妇愉情理伦片bd | 久久无码中文字幕免费影院蜜桃 | 九九热爱视频精品 | 久久精品国产大片免费观看 | 3d动漫精品啪啪一区二区中 | 免费无码的av片在线观看 | 欧美日韩综合一区二区三区 | 国产成人综合美国十次 | 日日鲁鲁鲁夜夜爽爽狠狠 | 久久亚洲精品成人无码 | 久久午夜无码鲁丝片秋霞 | 国产精品久久久久7777 | 一本大道伊人av久久综合 | 少妇被黑人到高潮喷出白浆 | 国产人妖乱国产精品人妖 | 国产午夜福利亚洲第一 | 久久精品人人做人人综合 | 女人被男人躁得好爽免费视频 | 天天燥日日燥 | 国产亚av手机在线观看 | 日韩在线不卡免费视频一区 | 未满成年国产在线观看 | 久久精品一区二区三区四区 | 青青草原综合久久大伊人精品 | 一本久久伊人热热精品中文字幕 | 成人精品一区二区三区中文字幕 | 日产精品高潮呻吟av久久 | 精品aⅴ一区二区三区 | 亚洲色在线无码国产精品不卡 | 日欧一片内射va在线影院 | 国产亚洲精品久久久久久 | 强奷人妻日本中文字幕 | 午夜时刻免费入口 | 欧美成人高清在线播放 | 亚洲国产精品久久久天堂 | 国产成人精品三级麻豆 | 4hu四虎永久在线观看 | 成人免费视频一区二区 | 日本va欧美va欧美va精品 | 久久久国产一区二区三区 | 高中生自慰www网站 | 欧美性猛交内射兽交老熟妇 | 久久婷婷五月综合色国产香蕉 | 亚洲天堂2017无码中文 | v一区无码内射国产 | 影音先锋中文字幕无码 | 在线观看国产一区二区三区 | av无码不卡在线观看免费 | 亚洲精品一区二区三区大桥未久 | 偷窥日本少妇撒尿chinese | 久久午夜无码鲁丝片 | 无码av最新清无码专区吞精 | 欧美日韩在线亚洲综合国产人 | 国产午夜手机精彩视频 | 国产在线一区二区三区四区五区 | 国产精品视频免费播放 | 国产一区二区三区精品视频 | a国产一区二区免费入口 | 亚洲最大成人网站 | 娇妻被黑人粗大高潮白浆 | 久久精品成人欧美大片 | 红桃av一区二区三区在线无码av | 天堂久久天堂av色综合 | 正在播放老肥熟妇露脸 | 亚洲中文字幕乱码av波多ji | 伊人久久大香线蕉av一区二区 | 无码人妻出轨黑人中文字幕 | 99久久精品日本一区二区免费 | 无码人妻av免费一区二区三区 | 亚洲中文字幕成人无码 | 99久久婷婷国产综合精品青草免费 | 牲欲强的熟妇农村老妇女视频 | 玩弄少妇高潮ⅹxxxyw | 给我免费的视频在线观看 | 久久五月精品中文字幕 | 任你躁在线精品免费 | 国产9 9在线 | 中文 | 亚洲综合伊人久久大杳蕉 | 国产三级久久久精品麻豆三级 | 亚洲va欧美va天堂v国产综合 | 夜夜高潮次次欢爽av女 | 久久人人爽人人爽人人片ⅴ | 成人女人看片免费视频放人 | 亚洲精品中文字幕乱码 | 亚洲成熟女人毛毛耸耸多 | 亚洲日本va中文字幕 | 131美女爱做视频 | av无码久久久久不卡免费网站 | 欧美一区二区三区视频在线观看 | 国产又粗又硬又大爽黄老大爷视 | 国产成人一区二区三区在线观看 | 性做久久久久久久免费看 | 成人无码精品1区2区3区免费看 | √天堂中文官网8在线 | 国产熟妇高潮叫床视频播放 | 国产免费久久久久久无码 | 牛和人交xxxx欧美 | 少妇性l交大片欧洲热妇乱xxx | 国产亚洲精品久久久久久久久动漫 | 久久久久亚洲精品男人的天堂 | 中国女人内谢69xxxx | 日本大乳高潮视频在线观看 | 日韩欧美中文字幕在线三区 | 无码纯肉视频在线观看 | 精品国产一区av天美传媒 | 俺去俺来也在线www色官网 | yw尤物av无码国产在线观看 | 撕开奶罩揉吮奶头视频 | 成年美女黄网站色大免费全看 | 最新国产麻豆aⅴ精品无码 | 少妇一晚三次一区二区三区 | 久久综合久久自在自线精品自 | 国产一区二区三区四区五区加勒比 | 日韩精品无码一区二区中文字幕 | 国产三级精品三级男人的天堂 | 久久精品国产一区二区三区 | 国产精品99爱免费视频 | 久久久国产一区二区三区 | av香港经典三级级 在线 | 色诱久久久久综合网ywww | 99精品国产综合久久久久五月天 | 午夜男女很黄的视频 | 精品一区二区不卡无码av | 日韩精品无码一本二本三本色 | 图片区 小说区 区 亚洲五月 | 99久久久无码国产精品免费 | 亚洲中文字幕在线无码一区二区 | 在线观看国产午夜福利片 | 高清不卡一区二区三区 | 好爽又高潮了毛片免费下载 | 中文无码精品a∨在线观看不卡 | 精品亚洲韩国一区二区三区 | 国产片av国语在线观看 | 又色又爽又黄的美女裸体网站 | 婷婷丁香五月天综合东京热 | 荡女精品导航 | 精品无码一区二区三区爱欲 | 欧美亚洲国产一区二区三区 | 亚洲狠狠色丁香婷婷综合 | 漂亮人妻洗澡被公强 日日躁 | 国产超级va在线观看视频 | 天堂在线观看www | 亚洲精品久久久久avwww潮水 | 无码国产激情在线观看 | 人人妻人人澡人人爽欧美一区 | aa片在线观看视频在线播放 | 一本加勒比波多野结衣 | 国产深夜福利视频在线 | ass日本丰满熟妇pics | 精品水蜜桃久久久久久久 | 少妇性l交大片 | 樱花草在线播放免费中文 | 人人超人人超碰超国产 | 亚洲成av人片天堂网无码】 | 国产精品国产自线拍免费软件 | 婷婷综合久久中文字幕蜜桃三电影 | 欧美野外疯狂做受xxxx高潮 | 成人免费视频视频在线观看 免费 | 中文字幕无码免费久久9一区9 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 国产色视频一区二区三区 | 99久久人妻精品免费二区 | 欧美猛少妇色xxxxx | 亚洲精品久久久久中文第一幕 | 精品人妻人人做人人爽 | 牲交欧美兽交欧美 | 国产精品久久久久7777 | 亚洲色欲久久久综合网东京热 | 亚洲熟妇色xxxxx亚洲 | 老太婆性杂交欧美肥老太 | 国产精品国产三级国产专播 | 撕开奶罩揉吮奶头视频 | 99久久精品国产一区二区蜜芽 | 国产九九九九九九九a片 | 国产真实伦对白全集 | 青草视频在线播放 | 国产尤物精品视频 | 荫蒂添的好舒服视频囗交 | 捆绑白丝粉色jk震动捧喷白浆 | 国产一区二区三区四区五区加勒比 | 老熟妇乱子伦牲交视频 | 国产精品高潮呻吟av久久4虎 | 人妻少妇精品无码专区二区 | 色狠狠av一区二区三区 | 亚洲 另类 在线 欧美 制服 | 娇妻被黑人粗大高潮白浆 | 精品无码一区二区三区爱欲 | 国产免费无码一区二区视频 | 国产两女互慰高潮视频在线观看 | 亚欧洲精品在线视频免费观看 | 欧美xxxx黑人又粗又长 | 扒开双腿疯狂进出爽爽爽视频 | 国模大胆一区二区三区 | 亚洲 欧美 激情 小说 另类 | 国产乱人无码伦av在线a | 欧美激情综合亚洲一二区 | 天堂亚洲免费视频 | 青春草在线视频免费观看 | 精品日本一区二区三区在线观看 | 亚洲精品一区二区三区在线观看 | 狠狠色噜噜狠狠狠7777奇米 | 亚洲熟女一区二区三区 | 国内综合精品午夜久久资源 | 无套内射视频囯产 | 欧美日韩综合一区二区三区 | 国产一区二区三区四区五区加勒比 | 麻豆国产丝袜白领秘书在线观看 | 日本一区二区更新不卡 | 青草青草久热国产精品 | 欧美放荡的少妇 | 精品一二三区久久aaa片 | 免费看少妇作爱视频 | 国产97在线 | 亚洲 | 亚洲中文字幕乱码av波多ji | 亚洲日韩一区二区 | 午夜精品一区二区三区在线观看 | 无码一区二区三区在线 | 99久久人妻精品免费二区 | 久久久精品456亚洲影院 | 午夜精品久久久久久久 | 在线观看免费人成视频 | 国产精品嫩草久久久久 | 国产精品igao视频网 | 亚洲中文字幕在线观看 | 久久午夜无码鲁丝片午夜精品 | 一个人看的www免费视频在线观看 | 欧美精品在线观看 | 无码帝国www无码专区色综合 | 女高中生第一次破苞av | 国产人成高清在线视频99最全资源 | 亚洲色成人中文字幕网站 | 欧美放荡的少妇 | 欧美老妇与禽交 | 国产人妻人伦精品1国产丝袜 | 欧洲欧美人成视频在线 | 亚洲欧美日韩国产精品一区二区 | 精品无码一区二区三区的天堂 | 狠狠色噜噜狠狠狠狠7777米奇 | 内射巨臀欧美在线视频 | 天下第一社区视频www日本 | 熟女俱乐部五十路六十路av | 精品久久久久久亚洲精品 | 最近中文2019字幕第二页 | 俺去俺来也www色官网 | 日本成熟视频免费视频 | 日产国产精品亚洲系列 | 日日噜噜噜噜夜夜爽亚洲精品 | 男人和女人高潮免费网站 | 人妻体内射精一区二区三四 | 又黄又爽又色的视频 | 亚洲七七久久桃花影院 | 成在人线av无码免费 | 无码任你躁久久久久久久 | 美女扒开屁股让男人桶 | 人人妻人人澡人人爽欧美一区九九 | 亚洲性无码av中文字幕 | a片在线免费观看 | 国产精品久久久久久久9999 | 久久精品国产99久久6动漫 | 国产亚洲精品精品国产亚洲综合 | 婷婷综合久久中文字幕蜜桃三电影 | 国精产品一品二品国精品69xx | 一本大道伊人av久久综合 | 在线欧美精品一区二区三区 | 俺去俺来也在线www色官网 | 亚洲无人区一区二区三区 | 又大又黄又粗又爽的免费视频 | 樱花草在线播放免费中文 | 999久久久国产精品消防器材 | 无套内射视频囯产 | 国产又爽又猛又粗的视频a片 | 国产黑色丝袜在线播放 | www国产精品内射老师 | 亚洲成在人网站无码天堂 | 欧美 丝袜 自拍 制服 另类 | 中文字幕人妻无码一区二区三区 | 亚洲aⅴ无码成人网站国产app | 久久久婷婷五月亚洲97号色 | 熟妇激情内射com | 在线看片无码永久免费视频 | 成年美女黄网站色大免费视频 | 亚洲色成人中文字幕网站 | 日本高清一区免费中文视频 | 久久亚洲a片com人成 | 精品午夜福利在线观看 | 精品国精品国产自在久国产87 | 国产成人无码av片在线观看不卡 | 色一情一乱一伦一区二区三欧美 | 日韩av无码一区二区三区不卡 | 两性色午夜视频免费播放 | 国产av人人夜夜澡人人爽麻豆 | 97久久精品无码一区二区 | 西西人体www44rt大胆高清 | 999久久久国产精品消防器材 | 国产精品99久久精品爆乳 | 一个人看的www免费视频在线观看 | 欧美熟妇另类久久久久久不卡 | 久久99精品国产麻豆 | 人妻少妇精品无码专区动漫 | 日日摸天天摸爽爽狠狠97 | 亚洲精品久久久久久一区二区 | 国产亚洲精品精品国产亚洲综合 | 免费网站看v片在线18禁无码 | 无码人妻丰满熟妇区五十路百度 | 狂野欧美性猛交免费视频 | 精品无码一区二区三区的天堂 | 久久综合九色综合97网 | 成人免费视频一区二区 | 日韩av激情在线观看 | 天堂在线观看www | 久久久久99精品成人片 | 国产肉丝袜在线观看 | 国产综合色产在线精品 | 欧美丰满熟妇xxxx | 亚洲国产av美女网站 | 无码午夜成人1000部免费视频 | 国产亚洲精品精品国产亚洲综合 | 扒开双腿疯狂进出爽爽爽视频 | 思思久久99热只有频精品66 | 亚洲人成人无码网www国产 | 7777奇米四色成人眼影 | 麻豆果冻传媒2021精品传媒一区下载 | 亚洲а∨天堂久久精品2021 | 日韩 欧美 动漫 国产 制服 | 2019午夜福利不卡片在线 | 国产成人无码专区 | 日韩av无码中文无码电影 | 中文字幕乱码中文乱码51精品 | 俺去俺来也在线www色官网 | 日韩无码专区 | 兔费看少妇性l交大片免费 | 蜜桃av抽搐高潮一区二区 | 亚洲国产精品无码久久久久高潮 | 国产精品久久久av久久久 | www国产亚洲精品久久久日本 | 无码吃奶揉捏奶头高潮视频 | 国产精品欧美成人 | 丰满护士巨好爽好大乳 | 精品欧美一区二区三区久久久 | 国产精品久久久久久久9999 | 成人毛片一区二区 | 亚洲男人av香蕉爽爽爽爽 | 丰满诱人的人妻3 | 综合激情五月综合激情五月激情1 | 久久久久久久女国产乱让韩 | 欧美35页视频在线观看 | 亚洲精品一区二区三区四区五区 | 国内揄拍国内精品人妻 | 午夜无码人妻av大片色欲 | 99久久精品国产一区二区蜜芽 | 麻豆成人精品国产免费 | 中文无码伦av中文字幕 | 亚洲日本一区二区三区在线 | 18禁止看的免费污网站 | 乱码av麻豆丝袜熟女系列 | 高潮毛片无遮挡高清免费 | 美女极度色诱视频国产 | 一本色道婷婷久久欧美 | 夜夜躁日日躁狠狠久久av | 国产三级精品三级男人的天堂 | 成人精品视频一区二区 | 玩弄人妻少妇500系列视频 | 天海翼激烈高潮到腰振不止 | 内射老妇bbwx0c0ck | 亚洲成av人在线观看网址 | 亚洲综合无码一区二区三区 | 日韩欧美群交p片內射中文 | 亚洲а∨天堂久久精品2021 | 国产精品多人p群无码 | 少妇性荡欲午夜性开放视频剧场 | 无码国产色欲xxxxx视频 | 大胆欧美熟妇xx | 亚洲熟妇色xxxxx欧美老妇 | 日本一本二本三区免费 | 国产美女精品一区二区三区 | 在线成人www免费观看视频 | 人妻无码αv中文字幕久久琪琪布 | 人妻少妇精品久久 | 国内少妇偷人精品视频免费 | 人人超人人超碰超国产 | 日韩精品无码免费一区二区三区 | 欧洲vodafone精品性 | 狂野欧美激情性xxxx | 亚洲乱码日产精品bd | 国产suv精品一区二区五 | 日韩精品一区二区av在线 | 一本色道婷婷久久欧美 | aⅴ亚洲 日韩 色 图网站 播放 | 国产9 9在线 | 中文 | 日本乱人伦片中文三区 | 乌克兰少妇xxxx做受 | 无码精品国产va在线观看dvd | 亚洲天堂2017无码 | 人人爽人人爽人人片av亚洲 | 乱码午夜-极国产极内射 | 少妇厨房愉情理9仑片视频 | 狠狠躁日日躁夜夜躁2020 | 欧美野外疯狂做受xxxx高潮 | 国产黑色丝袜在线播放 | 日韩人妻少妇一区二区三区 | 蜜桃视频插满18在线观看 | 亚洲精品一区二区三区在线观看 | 国产精品久久精品三级 | 水蜜桃av无码 | 伊人久久大香线焦av综合影院 | 特大黑人娇小亚洲女 | 高清不卡一区二区三区 | 欧美精品在线观看 | 国产精品欧美成人 | 国产在线精品一区二区高清不卡 | 小鲜肉自慰网站xnxx | 亚洲性无码av中文字幕 | 麻豆成人精品国产免费 | 俺去俺来也www色官网 | 精品无人国产偷自产在线 | 一本色道婷婷久久欧美 | 18禁黄网站男男禁片免费观看 | 学生妹亚洲一区二区 | 久久久精品人妻久久影视 | 国产精品二区一区二区aⅴ污介绍 | 青青久在线视频免费观看 | 日本护士xxxxhd少妇 | 久久久精品国产sm最大网站 | 亚洲中文无码av永久不收费 | 大地资源中文第3页 | 亚洲精品午夜无码电影网 | 中文无码成人免费视频在线观看 | 免费国产黄网站在线观看 | 麻豆精产国品 | 天天摸天天碰天天添 | 国产在线一区二区三区四区五区 | 波多野42部无码喷潮在线 | 中文毛片无遮挡高清免费 | 色情久久久av熟女人妻网站 | 亚洲人成人无码网www国产 | 任你躁国产自任一区二区三区 | 人人妻人人澡人人爽欧美精品 | 又大又黄又粗又爽的免费视频 | 色老头在线一区二区三区 | 久久亚洲a片com人成 | 日韩人妻少妇一区二区三区 | 欧美阿v高清资源不卡在线播放 | 久久久久成人精品免费播放动漫 | 精品无人国产偷自产在线 | 一个人看的www免费视频在线观看 | 久久精品国产99精品亚洲 | 领导边摸边吃奶边做爽在线观看 | 捆绑白丝粉色jk震动捧喷白浆 | 国产精品-区区久久久狼 | www国产亚洲精品久久久日本 | 久久综合狠狠综合久久综合88 | 久久亚洲中文字幕无码 | 亚洲综合精品香蕉久久网 | 国产手机在线αⅴ片无码观看 | 亚洲狠狠婷婷综合久久 | 福利一区二区三区视频在线观看 | 牛和人交xxxx欧美 | 国产香蕉尹人视频在线 | 欧美激情一区二区三区成人 | 亚洲国产一区二区三区在线观看 | 国产精品无码mv在线观看 | 少妇愉情理伦片bd | 美女扒开屁股让男人桶 | 久久婷婷五月综合色国产香蕉 | 人人妻人人澡人人爽人人精品 | 夜精品a片一区二区三区无码白浆 | 国产真人无遮挡作爱免费视频 | 老熟女重囗味hdxx69 | 在线欧美精品一区二区三区 | 老太婆性杂交欧美肥老太 | 欧美老妇与禽交 | 偷窥日本少妇撒尿chinese | 亚洲日韩av一区二区三区四区 | 亚洲爆乳精品无码一区二区三区 | 日韩av激情在线观看 | 日本一卡二卡不卡视频查询 | www国产亚洲精品久久久日本 | 亚洲天堂2017无码 | 无码国产激情在线观看 | 欧美国产日韩久久mv | 四虎国产精品一区二区 | 偷窥村妇洗澡毛毛多 | 午夜精品久久久内射近拍高清 | 国产精品爱久久久久久久 | 色一情一乱一伦 | 18禁黄网站男男禁片免费观看 | 国产午夜福利亚洲第一 | 亚洲国产精品无码久久久久高潮 | 99久久无码一区人妻 | 国产成人综合美国十次 | 福利一区二区三区视频在线观看 | 夫妻免费无码v看片 | 成人亚洲精品久久久久 | 精品午夜福利在线观看 | 国产精品香蕉在线观看 | 亚洲综合另类小说色区 | 亚洲无人区一区二区三区 | 人人澡人人妻人人爽人人蜜桃 | 国产色在线 | 国产 | 国产成人综合在线女婷五月99播放 | 国产精品久久国产精品99 | 久久国产精品偷任你爽任你 | 国产真人无遮挡作爱免费视频 | 午夜精品一区二区三区在线观看 | 欧美变态另类xxxx | 精品人人妻人人澡人人爽人人 | 欧美猛少妇色xxxxx | 鲁鲁鲁爽爽爽在线视频观看 | 国内精品九九久久久精品 | 久久国产精品萌白酱免费 | 最新国产乱人伦偷精品免费网站 | 久久综合网欧美色妞网 | 国产在线aaa片一区二区99 | 蜜臀av无码人妻精品 | 国产精品a成v人在线播放 | 中文字幕无码人妻少妇免费 | 理论片87福利理论电影 | 青青草原综合久久大伊人精品 | 蜜桃无码一区二区三区 | 无码精品国产va在线观看dvd | 亚洲日韩av一区二区三区四区 | 中文字幕精品av一区二区五区 | 极品嫩模高潮叫床 | 国产成人人人97超碰超爽8 | 欧美性生交xxxxx久久久 | 一本久道高清无码视频 | 久热国产vs视频在线观看 | 精品国产精品久久一区免费式 | 野外少妇愉情中文字幕 | 帮老师解开蕾丝奶罩吸乳网站 | 久久熟妇人妻午夜寂寞影院 | 中文字幕乱码亚洲无线三区 | 亚洲乱亚洲乱妇50p | 亚洲 日韩 欧美 成人 在线观看 | 任你躁在线精品免费 | 亚洲娇小与黑人巨大交 | 欧美性猛交内射兽交老熟妇 | 中文字幕乱码人妻无码久久 | 国产精品内射视频免费 | 亚洲欧美综合区丁香五月小说 | 午夜不卡av免费 一本久久a久久精品vr综合 | 无码福利日韩神码福利片 | 女人色极品影院 | 欧美性猛交xxxx富婆 | 成人性做爰aaa片免费看不忠 | 少妇人妻大乳在线视频 | 又粗又大又硬毛片免费看 | 国产精品香蕉在线观看 | 精品久久综合1区2区3区激情 | 免费人成网站视频在线观看 | 99久久人妻精品免费一区 | 中文字幕无码免费久久9一区9 | 国产激情综合五月久久 | 欧美精品国产综合久久 | 老熟妇乱子伦牲交视频 | 男人的天堂2018无码 | а√资源新版在线天堂 | 亚洲 高清 成人 动漫 | 无码人妻丰满熟妇区五十路百度 | 最新国产乱人伦偷精品免费网站 | 在线播放免费人成毛片乱码 | 日韩精品乱码av一区二区 | 精品国偷自产在线 | 日韩av无码一区二区三区不卡 | 无码福利日韩神码福利片 | 国产精品亚洲综合色区韩国 | 99国产精品白浆在线观看免费 | 成人欧美一区二区三区 | 欧洲极品少妇 | 国产精品99爱免费视频 | 久久久久se色偷偷亚洲精品av | 亚洲欧洲无卡二区视頻 | 无码国产激情在线观看 | 国产真实伦对白全集 | 76少妇精品导航 | 国产精品怡红院永久免费 | 76少妇精品导航 | www成人国产高清内射 | 性色欲网站人妻丰满中文久久不卡 | 国产成人人人97超碰超爽8 | 人人妻人人澡人人爽精品欧美 | 中文无码伦av中文字幕 | 人人爽人人爽人人片av亚洲 | 男女下面进入的视频免费午夜 | 中文字幕av日韩精品一区二区 | 青青久在线视频免费观看 | 一个人看的视频www在线 | 久久久国产精品无码免费专区 | 中文字幕久久久久人妻 | 日本丰满护士爆乳xxxx | a片在线免费观看 | 18黄暴禁片在线观看 | 网友自拍区视频精品 | 天天拍夜夜添久久精品 | 国产免费久久久久久无码 | 日韩精品无码免费一区二区三区 | 久久久中文久久久无码 | 蜜桃视频插满18在线观看 | 熟女少妇人妻中文字幕 | 国产午夜精品一区二区三区嫩草 | 欧美成人高清在线播放 | 爆乳一区二区三区无码 | 未满小14洗澡无码视频网站 | 成人动漫在线观看 | av无码久久久久不卡免费网站 | 国产激情艳情在线看视频 | 娇妻被黑人粗大高潮白浆 | 女人被男人爽到呻吟的视频 | 波多野结衣一区二区三区av免费 | 日本熟妇大屁股人妻 | 亚洲一区二区三区国产精华液 | 国产手机在线αⅴ片无码观看 | 九一九色国产 | 日日躁夜夜躁狠狠躁 | 久久久久久av无码免费看大片 | 少妇厨房愉情理9仑片视频 | 男女超爽视频免费播放 | 扒开双腿疯狂进出爽爽爽视频 | 日韩精品久久久肉伦网站 | 亚洲国产av美女网站 | 给我免费的视频在线观看 | 日日橹狠狠爱欧美视频 | 色一情一乱一伦一视频免费看 | 中文字幕av伊人av无码av | 国产偷国产偷精品高清尤物 | 男女下面进入的视频免费午夜 | 欧美日韩一区二区综合 | 亚洲一区二区三区无码久久 | 色综合视频一区二区三区 | 成人影院yy111111在线观看 | 亚洲国产成人av在线观看 | 三上悠亚人妻中文字幕在线 | 国产精品无码mv在线观看 | 2019午夜福利不卡片在线 | 999久久久国产精品消防器材 | 欧美日韩人成综合在线播放 | 国产国语老龄妇女a片 | 国产日产欧产精品精品app | 成人精品视频一区二区三区尤物 | 亚洲日韩乱码中文无码蜜桃臀网站 | 最近的中文字幕在线看视频 | 午夜时刻免费入口 | 欧美激情一区二区三区成人 | 国产高潮视频在线观看 | 大肉大捧一进一出视频出来呀 | 台湾无码一区二区 | 国产成人无码a区在线观看视频app | 亚洲成av人综合在线观看 | 中文字幕乱码亚洲无线三区 | 六月丁香婷婷色狠狠久久 | 玩弄中年熟妇正在播放 | 乱人伦中文视频在线观看 | 风流少妇按摩来高潮 | 午夜福利不卡在线视频 | 国产精品亚洲а∨无码播放麻豆 | 97精品人妻一区二区三区香蕉 | 国产精品爱久久久久久久 | 麻豆精品国产精华精华液好用吗 | 国产成人无码专区 | 久久久国产精品无码免费专区 | 欧美成人高清在线播放 | 麻豆av传媒蜜桃天美传媒 | 日本欧美一区二区三区乱码 | 国产黑色丝袜在线播放 | 夜夜躁日日躁狠狠久久av | 中文字幕无码免费久久9一区9 | 国产超碰人人爽人人做人人添 | www一区二区www免费 | 色综合天天综合狠狠爱 | 少妇愉情理伦片bd | 无套内谢的新婚少妇国语播放 | 欧美 丝袜 自拍 制服 另类 | 少妇性俱乐部纵欲狂欢电影 | a在线观看免费网站大全 | 人人妻人人澡人人爽人人精品 | 欧美 日韩 亚洲 在线 | 欧美肥老太牲交大战 | 午夜成人1000部免费视频 | √天堂资源地址中文在线 | 国产精品二区一区二区aⅴ污介绍 | 水蜜桃av无码 | 九九综合va免费看 | av无码不卡在线观看免费 | 亚洲区小说区激情区图片区 | 国产精品99久久精品爆乳 | av在线亚洲欧洲日产一区二区 | 野外少妇愉情中文字幕 | 在教室伦流澡到高潮hnp视频 | 国产色在线 | 国产 | 亚洲成a人片在线观看无码3d | 欧美阿v高清资源不卡在线播放 | 日本xxxx色视频在线观看免费 | 麻花豆传媒剧国产免费mv在线 | 国产又爽又猛又粗的视频a片 | 中文字幕 人妻熟女 | 中文字幕无码乱人伦 | 亚洲欧美日韩成人高清在线一区 | 国产香蕉97碰碰久久人人 | 国产9 9在线 | 中文 | 亚洲日本一区二区三区在线 | 精品久久久无码人妻字幂 | 久久99热只有频精品8 | 欧美黑人巨大xxxxx | 人妻中文无码久热丝袜 | 内射巨臀欧美在线视频 | 国产99久久精品一区二区 | 永久免费观看美女裸体的网站 | av人摸人人人澡人人超碰下载 | 国产又爽又猛又粗的视频a片 | 国产精品亚洲综合色区韩国 | 中文字幕乱码人妻二区三区 | 亚洲男人av香蕉爽爽爽爽 | 亚洲精品久久久久中文第一幕 | 蜜臀av无码人妻精品 | 久久久久久a亚洲欧洲av冫 | 亚洲综合精品香蕉久久网 | 精品久久久无码中文字幕 | 亚洲色大成网站www国产 | 蜜臀aⅴ国产精品久久久国产老师 | 蜜桃臀无码内射一区二区三区 | 女人和拘做爰正片视频 | 欧美丰满熟妇xxxx | 无码吃奶揉捏奶头高潮视频 | 久久精品国产99久久6动漫 | 无套内谢老熟女 | 在线精品亚洲一区二区 | 国内揄拍国内精品少妇国语 | 亚洲区欧美区综合区自拍区 | 亚洲精品中文字幕久久久久 | 亚洲国产精品久久人人爱 | 色婷婷欧美在线播放内射 | 伊人色综合久久天天小片 | 亚洲一区二区三区在线观看网站 | 国产av无码专区亚洲awww | 无码免费一区二区三区 | 98国产精品综合一区二区三区 | 欧美兽交xxxx×视频 | 精品国产青草久久久久福利 | 亚洲狠狠婷婷综合久久 | 国产 浪潮av性色四虎 | 亚洲中文字幕无码一久久区 | www国产亚洲精品久久网站 | 撕开奶罩揉吮奶头视频 | 自拍偷自拍亚洲精品被多人伦好爽 | 激情五月综合色婷婷一区二区 | 伊人久久大香线焦av综合影院 | 鲁鲁鲁爽爽爽在线视频观看 | 国内少妇偷人精品视频 | 国产97在线 | 亚洲 | 亚洲区欧美区综合区自拍区 | 超碰97人人射妻 | 人人妻人人藻人人爽欧美一区 | 狠狠色丁香久久婷婷综合五月 | 蜜桃无码一区二区三区 | 成人免费无码大片a毛片 | 激情国产av做激情国产爱 | 波多野结衣高清一区二区三区 | 色妞www精品免费视频 | 牲交欧美兽交欧美 | 夜先锋av资源网站 | 亚洲色www成人永久网址 | 亚洲国产午夜精品理论片 | 国产熟妇另类久久久久 | 中文字幕乱妇无码av在线 | 欧美freesex黑人又粗又大 | 蜜桃臀无码内射一区二区三区 | 免费播放一区二区三区 | 美女毛片一区二区三区四区 | 国产莉萝无码av在线播放 | 日韩精品一区二区av在线 | 国产精品二区一区二区aⅴ污介绍 | 国产在线无码精品电影网 | 99久久99久久免费精品蜜桃 | 性欧美疯狂xxxxbbbb | 正在播放老肥熟妇露脸 | 中文字幕色婷婷在线视频 | 国产精品久久久久久亚洲影视内衣 | 成熟妇人a片免费看网站 | 伊人久久大香线焦av综合影院 | 女人高潮内射99精品 | 人妻有码中文字幕在线 | 久久久久久久人妻无码中文字幕爆 | 亚洲呦女专区 | 国产性生交xxxxx无码 | 露脸叫床粗话东北少妇 | 妺妺窝人体色www婷婷 | 日日躁夜夜躁狠狠躁 | 亚洲人成人无码网www国产 | 98国产精品综合一区二区三区 | 亚拍精品一区二区三区探花 | 国产综合色产在线精品 | 精品人妻人人做人人爽夜夜爽 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产精品亚洲综合色区韩国 | 麻花豆传媒剧国产免费mv在线 | 色偷偷人人澡人人爽人人模 | 久久久久久久女国产乱让韩 | 亚洲中文字幕乱码av波多ji | 亚洲日韩中文字幕在线播放 | 无码精品人妻一区二区三区av | 77777熟女视频在线观看 а天堂中文在线官网 | 久久99久久99精品中文字幕 | 亚洲国产午夜精品理论片 | 亚洲 a v无 码免 费 成 人 a v | 亚洲爆乳大丰满无码专区 | 动漫av网站免费观看 | 欧美兽交xxxx×视频 | 亚洲热妇无码av在线播放 | 综合人妻久久一区二区精品 | 成年美女黄网站色大免费视频 | 精品少妇爆乳无码av无码专区 | 亚洲精品久久久久久一区二区 | 一本色道婷婷久久欧美 | 丰满人妻一区二区三区免费视频 | 99久久99久久免费精品蜜桃 | av无码电影一区二区三区 | 真人与拘做受免费视频一 | 无码av中文字幕免费放 | 国产人妖乱国产精品人妖 | 蜜桃视频插满18在线观看 | 乌克兰少妇xxxx做受 | 国产成人无码av一区二区 | av无码电影一区二区三区 | 亚洲国产成人av在线观看 | 鲁一鲁av2019在线 | 中文字幕无码av激情不卡 | 久久久久久久女国产乱让韩 | 无码成人精品区在线观看 | 亚洲爆乳大丰满无码专区 | 国产特级毛片aaaaaaa高清 | 人妻互换免费中文字幕 | 国产精品亚洲专区无码不卡 | aⅴ在线视频男人的天堂 | 精品久久久久香蕉网 | 国产成人无码午夜视频在线观看 | 老子影院午夜精品无码 | 亚洲精品中文字幕久久久久 | 中文字幕无线码免费人妻 | 国产精品亚洲一区二区三区喷水 | 麻豆精品国产精华精华液好用吗 | 国产莉萝无码av在线播放 | 99久久精品午夜一区二区 | 蜜臀av无码人妻精品 | 亚洲欧美精品伊人久久 | 中文字幕亚洲情99在线 | 久久亚洲日韩精品一区二区三区 | 国产香蕉97碰碰久久人人 | 欧美日韩视频无码一区二区三 | 丰满诱人的人妻3 | 久久久久久av无码免费看大片 | 天干天干啦夜天干天2017 | 久久久久国色av免费观看性色 | 国产av无码专区亚洲a∨毛片 | 丰腴饱满的极品熟妇 | 久久久久久九九精品久 | 麻豆国产人妻欲求不满 | 荫蒂被男人添的好舒服爽免费视频 | 亚洲国产日韩a在线播放 | 一个人免费观看的www视频 | 久久久久se色偷偷亚洲精品av | 亚洲狠狠婷婷综合久久 | 波多野结衣av一区二区全免费观看 | 超碰97人人射妻 | 又大又黄又粗又爽的免费视频 | 亚洲精品一区二区三区在线观看 | 中文字幕人妻丝袜二区 | 国产内射爽爽大片视频社区在线 | 欧美怡红院免费全部视频 | 精品久久久中文字幕人妻 | 丰满人妻被黑人猛烈进入 | 午夜性刺激在线视频免费 | 久久久中文字幕日本无吗 | 四虎国产精品一区二区 | 国产精品美女久久久久av爽李琼 | 天天爽夜夜爽夜夜爽 | 久久人人爽人人人人片 | 撕开奶罩揉吮奶头视频 | 国产两女互慰高潮视频在线观看 | 欧美变态另类xxxx | 狠狠亚洲超碰狼人久久 | 精品偷自拍另类在线观看 | 亚洲天堂2017无码中文 | 亚洲第一无码av无码专区 | 内射欧美老妇wbb | 人妻夜夜爽天天爽三区 | 亚拍精品一区二区三区探花 | 日本精品少妇一区二区三区 | 日韩精品一区二区av在线 | 国产精品怡红院永久免费 | 亚洲人成网站色7799 | 成人精品一区二区三区中文字幕 | 国内精品久久久久久中文字幕 | 国产色视频一区二区三区 | 亚洲中文字幕在线观看 | 亚洲精品一区二区三区在线 | 亚洲啪av永久无码精品放毛片 | 丰满岳乱妇在线观看中字无码 | 青青久在线视频免费观看 | 任你躁在线精品免费 | 中文字幕无线码免费人妻 | 中文字幕无码av激情不卡 | 亚洲理论电影在线观看 | 玩弄人妻少妇500系列视频 | 日本一本二本三区免费 | 久久综合九色综合97网 | 国产九九九九九九九a片 | 99久久精品国产一区二区蜜芽 | 无码吃奶揉捏奶头高潮视频 | 野外少妇愉情中文字幕 | 久久伊人色av天堂九九小黄鸭 | 波多野结衣一区二区三区av免费 | 伊人久久大香线蕉av一区二区 | 日本一卡2卡3卡四卡精品网站 | 亚洲精品中文字幕久久久久 | 在线а√天堂中文官网 | 少妇太爽了在线观看 | 国产精品高潮呻吟av久久 | 成年女人永久免费看片 | 免费看男女做好爽好硬视频 | 又大又硬又黄的免费视频 | 国产真实乱对白精彩久久 | 中文字幕乱码人妻二区三区 | 亚洲综合无码久久精品综合 | 久久久久久亚洲精品a片成人 | 性欧美熟妇videofreesex | 日日摸夜夜摸狠狠摸婷婷 | 亚洲日本va午夜在线电影 | 亚洲日韩av一区二区三区中文 | 一本色道久久综合亚洲精品不卡 | 人人妻人人澡人人爽精品欧美 | 奇米影视7777久久精品 | 亚洲国产精品无码一区二区三区 | 成人免费视频一区二区 | 日日鲁鲁鲁夜夜爽爽狠狠 | 一个人看的www免费视频在线观看 | 精品一区二区三区波多野结衣 | 亚洲区欧美区综合区自拍区 | 成人无码精品1区2区3区免费看 | 亚洲国产欧美国产综合一区 | 成人欧美一区二区三区黑人免费 | 精品成人av一区二区三区 | 久久久精品成人免费观看 | 亚洲啪av永久无码精品放毛片 | 无码成人精品区在线观看 | 国内精品九九久久久精品 | 国产免费久久精品国产传媒 | 亚洲成a人一区二区三区 | 亚洲国产成人av在线观看 | 久久久久国色av免费观看性色 | 波多野结衣一区二区三区av免费 | 老司机亚洲精品影院无码 | 久久精品一区二区三区四区 | 欧美日韩一区二区三区自拍 | 亚洲中文字幕在线无码一区二区 | 国产亚洲美女精品久久久2020 | 久9re热视频这里只有精品 | 老太婆性杂交欧美肥老太 | 日本一卡二卡不卡视频查询 | 国产偷国产偷精品高清尤物 | 欧美日本日韩 | 婷婷六月久久综合丁香 | 亚洲熟妇自偷自拍另类 | 伊人久久大香线蕉av一区二区 | 精品无码国产自产拍在线观看蜜 | 国内揄拍国内精品少妇国语 | 欧美性生交活xxxxxdddd | 无码纯肉视频在线观看 | 国产精品丝袜黑色高跟鞋 | 人人妻人人澡人人爽人人精品浪潮 | 国产在线精品一区二区三区直播 | 日产精品99久久久久久 | 秋霞成人午夜鲁丝一区二区三区 | 高潮喷水的毛片 | www一区二区www免费 | 亚洲一区二区三区香蕉 | 久久精品国产大片免费观看 | 18无码粉嫩小泬无套在线观看 | 乱人伦人妻中文字幕无码久久网 | 欧美日韩视频无码一区二区三 | 少妇的肉体aa片免费 | 欧美激情内射喷水高潮 | 久久久无码中文字幕久... | 成人片黄网站色大片免费观看 | 人妻少妇精品无码专区动漫 | 国产内射老熟女aaaa | 国产精品久久久久7777 | 欧美人妻一区二区三区 | 精品厕所偷拍各类美女tp嘘嘘 | 麻花豆传媒剧国产免费mv在线 | www国产亚洲精品久久网站 | 亚洲欧美精品aaaaaa片 | 大地资源网第二页免费观看 | 久久午夜夜伦鲁鲁片无码免费 | 亚洲の无码国产の无码影院 | 亚洲天堂2017无码中文 | 午夜精品一区二区三区在线观看 | 99久久99久久免费精品蜜桃 | 日日摸日日碰夜夜爽av | 欧洲精品码一区二区三区免费看 | 亚洲熟妇色xxxxx欧美老妇 | 人妻与老人中文字幕 | 高清无码午夜福利视频 | 一本大道伊人av久久综合 | 亚洲精品一区三区三区在线观看 | 精品国产乱码久久久久乱码 | 国产在线一区二区三区四区五区 | 99久久人妻精品免费一区 | 色五月丁香五月综合五月 | 老太婆性杂交欧美肥老太 | 国精品人妻无码一区二区三区蜜柚 | 亚洲色www成人永久网址 | 无码福利日韩神码福利片 | 四虎影视成人永久免费观看视频 | 国产一区二区三区四区五区加勒比 | 亚洲精品成a人在线观看 | 亚洲高清偷拍一区二区三区 | 我要看www免费看插插视频 | 亚洲色偷偷偷综合网 | 欧美乱妇无乱码大黄a片 | 欧美freesex黑人又粗又大 | 国产激情精品一区二区三区 | 亚洲精品一区三区三区在线观看 | 日韩精品无码一本二本三本色 | 妺妺窝人体色www婷婷 | 亚洲 欧美 激情 小说 另类 | 国产午夜精品一区二区三区嫩草 | 青青青手机频在线观看 | 99久久人妻精品免费一区 | 亚洲精品午夜无码电影网 | 内射巨臀欧美在线视频 | 国产乱人无码伦av在线a | 大乳丰满人妻中文字幕日本 | 国产精品怡红院永久免费 | 精品一区二区不卡无码av | 亚洲精品中文字幕久久久久 | 国内老熟妇对白xxxxhd | 精品无码一区二区三区的天堂 | 久久精品国产一区二区三区肥胖 | 粉嫩少妇内射浓精videos | 亚洲日韩乱码中文无码蜜桃臀网站 | 久久99精品久久久久久动态图 | 人妻aⅴ无码一区二区三区 | 综合激情五月综合激情五月激情1 | 国产成人一区二区三区在线观看 | 久久久无码中文字幕久... | 国模大胆一区二区三区 | 亚洲色大成网站www国产 | 波多野结衣av一区二区全免费观看 | 55夜色66夜色国产精品视频 | 久久精品中文闷骚内射 | 一本色道婷婷久久欧美 | 99久久精品国产一区二区蜜芽 | 东京无码熟妇人妻av在线网址 | 久久人人爽人人爽人人片av高清 | 国产精品资源一区二区 | 女人被男人爽到呻吟的视频 | 超碰97人人做人人爱少妇 | 日产国产精品亚洲系列 | 国产激情一区二区三区 | 久久综合九色综合欧美狠狠 | 久久精品人妻少妇一区二区三区 | 欧美日韩久久久精品a片 | 亚无码乱人伦一区二区 | 亚洲精品中文字幕乱码 | 欧美丰满少妇xxxx性 | 精品夜夜澡人妻无码av蜜桃 | 久久久久久久人妻无码中文字幕爆 | 亚洲成色www久久网站 | 国产人成高清在线视频99最全资源 | 久久久中文久久久无码 | 十八禁视频网站在线观看 | 激情内射日本一区二区三区 | 成人无码视频在线观看网站 | 亚洲熟妇色xxxxx欧美老妇y | 久久国产自偷自偷免费一区调 | 亚洲精品国产精品乱码不卡 | 在线看片无码永久免费视频 | 久久亚洲精品中文字幕无男同 | 成 人影片 免费观看 | 久久精品中文字幕一区 | 人妻有码中文字幕在线 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 鲁鲁鲁爽爽爽在线视频观看 | 亚洲色在线无码国产精品不卡 | 荡女精品导航 | 欧美午夜特黄aaaaaa片 | 日韩人妻系列无码专区 | 国产精品无码永久免费888 | 欧美日本精品一区二区三区 | 精品久久久久久人妻无码中文字幕 | 成人欧美一区二区三区黑人 | 国产精品18久久久久久麻辣 | 夜夜夜高潮夜夜爽夜夜爰爰 | 久久精品人人做人人综合 | 丰满人妻精品国产99aⅴ | 成人三级无码视频在线观看 | 亚拍精品一区二区三区探花 | 国产高潮视频在线观看 | 成人试看120秒体验区 | 国产精品人人妻人人爽 | 国产真实乱对白精彩久久 | 少妇厨房愉情理9仑片视频 | 性生交大片免费看女人按摩摩 | 高清不卡一区二区三区 | 99久久人妻精品免费二区 | 少妇性荡欲午夜性开放视频剧场 | 亚洲成a人片在线观看日本 | 日本高清一区免费中文视频 | 欧美日韩色另类综合 | 国产疯狂伦交大片 | 亚洲精品国偷拍自产在线观看蜜桃 | 99在线 | 亚洲 | 天天摸天天透天天添 | 成人精品一区二区三区中文字幕 | 亚洲精品无码人妻无码 | 国产人妖乱国产精品人妖 | 亚洲s码欧洲m码国产av | 激情内射日本一区二区三区 | 国精产品一区二区三区 | 久久久精品欧美一区二区免费 | 久久久无码中文字幕久... | 免费看少妇作爱视频 | 高潮毛片无遮挡高清免费视频 | 色综合久久久无码网中文 | 无码成人精品区在线观看 | 国产xxx69麻豆国语对白 | 小泽玛莉亚一区二区视频在线 | 国产精品高潮呻吟av久久 | 日本在线高清不卡免费播放 | 婷婷综合久久中文字幕蜜桃三电影 | 亚洲日韩中文字幕在线播放 | 亚洲 激情 小说 另类 欧美 | 国产精品香蕉在线观看 | 国产精品久久久久久亚洲影视内衣 | 少妇久久久久久人妻无码 | 熟女体下毛毛黑森林 | 久久综合给合久久狠狠狠97色 | 国产va免费精品观看 | 天天摸天天碰天天添 | 久久综合网欧美色妞网 | 国产疯狂伦交大片 | 免费人成在线观看网站 | 欧美怡红院免费全部视频 | 在线精品国产一区二区三区 | 娇妻被黑人粗大高潮白浆 | 天堂а√在线地址中文在线 | 国产无套粉嫩白浆在线 | 377p欧洲日本亚洲大胆 | 亚洲自偷自偷在线制服 | 国产激情一区二区三区 | 久久久中文字幕日本无吗 | 国产成人午夜福利在线播放 | 人妻aⅴ无码一区二区三区 | 狂野欧美性猛交免费视频 | 久久午夜无码鲁丝片午夜精品 | 人妻夜夜爽天天爽三区 | 亚洲精品久久久久avwww潮水 | 中文字幕乱码人妻无码久久 | 未满小14洗澡无码视频网站 | 国产精品二区一区二区aⅴ污介绍 | 巨爆乳无码视频在线观看 | 老司机亚洲精品影院 | 亚洲日韩av片在线观看 | 亚洲日韩中文字幕在线播放 | 在线播放亚洲第一字幕 | 四虎永久在线精品免费网址 | 久久久久久av无码免费看大片 | 久久成人a毛片免费观看网站 | 一二三四在线观看免费视频 | 国产明星裸体无码xxxx视频 | 婷婷五月综合缴情在线视频 | 欧美精品一区二区精品久久 | 国产疯狂伦交大片 | 久久无码中文字幕免费影院蜜桃 | 日韩精品无码一本二本三本色 | 国产在线一区二区三区四区五区 | 一本大道伊人av久久综合 | 国产区女主播在线观看 | 未满成年国产在线观看 | 老司机亚洲精品影院无码 | 亚洲精品国产精品乱码不卡 | 国产激情一区二区三区 | 欧美精品在线观看 | 日日干夜夜干 | 波多野结衣一区二区三区av免费 | 亚洲欧美国产精品专区久久 | 少妇高潮一区二区三区99 | 成人一区二区免费视频 | 性生交片免费无码看人 | 色五月五月丁香亚洲综合网 | 亚洲色大成网站www国产 | 55夜色66夜色国产精品视频 | 国产在线精品一区二区高清不卡 | 国产精品久久久av久久久 | 国产精品99爱免费视频 | 狂野欧美性猛xxxx乱大交 | av香港经典三级级 在线 | 无码纯肉视频在线观看 | 波多野结衣高清一区二区三区 | 极品嫩模高潮叫床 | 精品一二三区久久aaa片 | 88国产精品欧美一区二区三区 | 4hu四虎永久在线观看 | 蜜桃av抽搐高潮一区二区 | 99麻豆久久久国产精品免费 | 性生交大片免费看女人按摩摩 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久亚洲精品中文字幕无男同 | 国产又爽又猛又粗的视频a片 | 男女下面进入的视频免费午夜 | 亚洲中文字幕在线无码一区二区 | 国产精品久久国产精品99 | 日本熟妇人妻xxxxx人hd | 亚洲精品久久久久中文第一幕 | 大地资源中文第3页 | 精品久久久久久人妻无码中文字幕 | 精品国产av色一区二区深夜久久 | 亚洲va欧美va天堂v国产综合 | 99久久久无码国产精品免费 | 中文无码成人免费视频在线观看 | 亚洲日韩一区二区三区 | 窝窝午夜理论片影院 | 野狼第一精品社区 | 亚洲人成网站色7799 | 天天av天天av天天透 | www国产精品内射老师 | 国产精品国产三级国产专播 | 国产av无码专区亚洲a∨毛片 | 国产成人精品必看 | 国产猛烈高潮尖叫视频免费 | 国产手机在线αⅴ片无码观看 | 乱人伦中文视频在线观看 | 无码人妻精品一区二区三区下载 | 激情国产av做激情国产爱 | 国产亚洲视频中文字幕97精品 | 久久久中文久久久无码 | 人妻少妇被猛烈进入中文字幕 | 久久精品国产一区二区三区肥胖 | 亚洲精品美女久久久久久久 | 欧美亚洲日韩国产人成在线播放 | 成人精品视频一区二区 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 亚洲精品午夜国产va久久成人 | 精品无人国产偷自产在线 | 亚洲爆乳大丰满无码专区 | 日产精品高潮呻吟av久久 | 亚洲国产精品无码一区二区三区 | 国产亚洲日韩欧美另类第八页 | 亚洲人亚洲人成电影网站色 | 久热国产vs视频在线观看 | 97资源共享在线视频 | 亚洲中文字幕va福利 | 亚洲成熟女人毛毛耸耸多 | 国产精品99爱免费视频 | 精品 日韩 国产 欧美 视频 | 国内少妇偷人精品视频 | 无码国产色欲xxxxx视频 | 2019nv天堂香蕉在线观看 | 国产在线一区二区三区四区五区 | 亚洲国产成人av在线观看 | 国精品人妻无码一区二区三区蜜柚 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产精品人妻一区二区三区四 | 国产sm调教视频在线观看 | 无遮挡啪啪摇乳动态图 | 国产亚洲人成在线播放 | 国产深夜福利视频在线 | 国产精品久久久av久久久 | 无码人妻黑人中文字幕 | 精品人妻av区 | 久久99热只有频精品8 | 97资源共享在线视频 | 奇米影视7777久久精品人人爽 | 国产精品成人av在线观看 | 欧洲欧美人成视频在线 | 欧美精品一区二区精品久久 | 99久久精品无码一区二区毛片 | 97久久国产亚洲精品超碰热 | 精品一区二区不卡无码av | 好屌草这里只有精品 | 1000部夫妻午夜免费 | 亚洲日韩乱码中文无码蜜桃臀网站 | 色一情一乱一伦一区二区三欧美 | 麻豆精品国产精华精华液好用吗 | 国产做国产爱免费视频 | 国产午夜精品一区二区三区嫩草 | 成人女人看片免费视频放人 | 亚洲区欧美区综合区自拍区 | 99精品无人区乱码1区2区3区 | 中文字幕av日韩精品一区二区 | 青青草原综合久久大伊人精品 | 人人妻人人澡人人爽精品欧美 | 国产成人人人97超碰超爽8 | 老头边吃奶边弄进去呻吟 | 97色伦图片97综合影院 | 丰腴饱满的极品熟妇 | 国产午夜视频在线观看 | 国产成人人人97超碰超爽8 | 日韩av无码一区二区三区不卡 | www国产精品内射老师 | 欧美熟妇另类久久久久久多毛 | 天天拍夜夜添久久精品 | 丰满妇女强制高潮18xxxx | 波多野结衣高清一区二区三区 | 国产香蕉尹人视频在线 | 亚洲爆乳无码专区 | 精品乱子伦一区二区三区 | 久久午夜无码鲁丝片秋霞 | 亚洲精品久久久久avwww潮水 | 中文精品久久久久人妻不卡 | 亚洲熟熟妇xxxx | 高中生自慰www网站 | 国产成人一区二区三区别 | 18禁黄网站男男禁片免费观看 | 成人片黄网站色大片免费观看 | 日本丰满熟妇videos | 综合人妻久久一区二区精品 | 欧美一区二区三区 | 久久精品无码一区二区三区 | 又紧又大又爽精品一区二区 | 国产精品人妻一区二区三区四 | 麻豆精品国产精华精华液好用吗 | 男女性色大片免费网站 | 成人免费视频在线观看 | 成人欧美一区二区三区黑人免费 | 中文字幕无码日韩欧毛 | 男女猛烈xx00免费视频试看 | 动漫av一区二区在线观看 | 水蜜桃av无码 | 国产精品久久久久影院嫩草 | 精品欧美一区二区三区久久久 | 国产高清av在线播放 | 国产黑色丝袜在线播放 | 午夜无码区在线观看 | 夜先锋av资源网站 | 亚洲综合无码一区二区三区 | 精品午夜福利在线观看 | 一本精品99久久精品77 | 无码帝国www无码专区色综合 | 日韩无码专区 | 丝袜人妻一区二区三区 | 亚洲中文无码av永久不收费 | 亚洲成在人网站无码天堂 | 欧美激情内射喷水高潮 | 无遮无挡爽爽免费视频 | 天天躁夜夜躁狠狠是什么心态 | 鲁大师影院在线观看 | 欧美日韩一区二区免费视频 | 人妻有码中文字幕在线 | 国产精品久免费的黄网站 | 波多野结衣av一区二区全免费观看 | 亚洲欧洲中文日韩av乱码 | 乱人伦人妻中文字幕无码久久网 | 国产精品无码一区二区桃花视频 | 国产成人无码a区在线观看视频app | 免费中文字幕日韩欧美 | 99国产精品白浆在线观看免费 | 欧美zoozzooz性欧美 | 丰满少妇女裸体bbw | 成 人 免费观看网站 | 国产成人亚洲综合无码 | 国产人妻大战黑人第1集 | 日韩视频 中文字幕 视频一区 | 午夜理论片yy44880影院 | 色婷婷久久一区二区三区麻豆 | 亚洲日本va中文字幕 | 日本欧美一区二区三区乱码 | 99国产欧美久久久精品 | 88国产精品欧美一区二区三区 | 亚洲爆乳精品无码一区二区三区 | 成人无码视频在线观看网站 | 一本久久a久久精品vr综合 | 亚洲色成人中文字幕网站 | 亚洲中文无码av永久不收费 | 国产后入清纯学生妹 | 无码国产乱人伦偷精品视频 | 内射欧美老妇wbb | 在线观看免费人成视频 | 青青久在线视频免费观看 | 影音先锋中文字幕无码 | 中文字幕av伊人av无码av | 日日橹狠狠爱欧美视频 | 97精品国产97久久久久久免费 | 波多野结衣乳巨码无在线观看 | 亚洲一区二区三区播放 | 丰满妇女强制高潮18xxxx | 日日摸夜夜摸狠狠摸婷婷 | 久久精品人人做人人综合 | 97精品人妻一区二区三区香蕉 | 性开放的女人aaa片 | 中文字幕乱码亚洲无线三区 | 国产婷婷色一区二区三区在线 | 久久久av男人的天堂 | 免费国产黄网站在线观看 | 曰本女人与公拘交酡免费视频 | 亚洲熟妇色xxxxx欧美老妇 | 强辱丰满人妻hd中文字幕 | 2019午夜福利不卡片在线 | 欧美人与动性行为视频 | 国产亚洲精品久久久闺蜜 | 欧美亚洲国产一区二区三区 | 亚洲国产午夜精品理论片 | 东京热无码av男人的天堂 | 国产欧美亚洲精品a | 亚洲一区二区三区无码久久 | 婷婷丁香五月天综合东京热 | 日韩欧美中文字幕公布 | 午夜福利不卡在线视频 | 久久综合给久久狠狠97色 | 色婷婷久久一区二区三区麻豆 | 97无码免费人妻超级碰碰夜夜 | aⅴ在线视频男人的天堂 | 色欲久久久天天天综合网精品 | 国产97在线 | 亚洲 | 国内精品人妻无码久久久影院蜜桃 | 夜夜夜高潮夜夜爽夜夜爰爰 | 久久久久久久女国产乱让韩 | 免费国产黄网站在线观看 |