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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

VINS-Mono 代码解析六、边缘化(3)

發(fā)布時(shí)間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VINS-Mono 代码解析六、边缘化(3) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

“ 在優(yōu)化完成后,滑動(dòng)窗口前,必須進(jìn)行邊緣化項(xiàng)的操作”

一、理論部分

VINS 細(xì)節(jié)系列 - 窗口優(yōu)化_努力努力努力-CSDN博客

?一個(gè)邊緣化的例子

下面我們用一個(gè)具體例子來形象說明邊緣化過程及其導(dǎo)致的矩陣稠密現(xiàn)象(fill-in)。設(shè)有 四個(gè)相機(jī)位姿 xpi ,

以及? 6 個(gè)路標(biāo)點(diǎn)xmk (路標(biāo)點(diǎn)用 xyz 的參數(shù)化), 相機(jī)與路標(biāo)點(diǎn)的邊表示一次觀測(cè), 相鄰相機(jī)之間的邊表示 IMU 約束,

相互關(guān)系如下:

下面試圖將 xp1? 給 marg 掉,然后再將 xm1 給 marg 掉, 看看 H 矩陣會(huì)如何變化

圖(12-a) 表示原始的 H 矩陣,注意這里的 左上角為路標(biāo)點(diǎn)相關(guān)部分, 而右下角是 pose 相關(guān)部分

圖(12-b)是把 H 矩陣中跟x p1 相關(guān)的部分移動(dòng)到 H 矩陣左上角

其中各矩陣的維度已在上式標(biāo)明,也就是說圖(12-c)的矩陣大小為 32×32。我們可以看到,圖(c)相對(duì)于圖(b)變得更稠密了,

即 marg 掉一個(gè) pose,會(huì)使得剩余的 H 矩陣有 3 個(gè)地方被 fill-in,如圖(c)中顏色加重區(qū)域。

這時(shí)圖關(guān)系則變?yōu)?

注意,觀察圖 16 可發(fā)現(xiàn)這時(shí)的 xm1 、xm2 和 xm3 彼此之間已經(jīng)產(chǎn)生了新的約束關(guān)系,且xp2 也與xm1 產(chǎn)生了新的約束關(guān)系。

圖(12-d)是 marg 掉xm1 后的 H 矩陣,詳細(xì)如下所示:

對(duì)應(yīng)的圖關(guān)系如下:

我們發(fā)現(xiàn), marg 掉xm1 后,并沒有是 H 矩陣更稠密,這是因?yàn)閤m1 之前并未與其他pose 有約束關(guān)系,即并未被觀察到,

因此如果 marg 掉那些不被其他幀觀測(cè)到的路標(biāo)點(diǎn),不會(huì)顯著地使 H 矩陣變得稠密。而要 marg 掉的路標(biāo)點(diǎn)中,對(duì)于那

些被其他幀觀測(cè)到路標(biāo)點(diǎn),要么就別設(shè)置為 marg, 要么就寧愿丟棄,這就是 OKVIS 中用到的策略

簡(jiǎn)單介紹

?1、優(yōu)化變量:

序號(hào)?????? ? ? ? 變量??????????? ? ?? ???? ? ? ? ?? ?? 維度

?? 0????????? para_Pose???????????????? (6維,相機(jī)位姿)
?? 1????????? para_SpeedBias??? (9維,相機(jī)速度、加速度偏置、角速度偏置)、
?? 2?????? ?? para_Ex_Pose???????? (6維、相機(jī)IMU外參)、
?? 3 ? ? ? ?? para_Feature?????????? (1維,特征點(diǎn)深度)、
?? 4????????? para_Td????????????????????? (1維,標(biāo)定同步時(shí)間)
五部分組成,在后面進(jìn)行邊緣化操作時(shí)這些優(yōu)化變量都是當(dāng)做整體看待

last_marginalization_parameter_blocks Xb變量,也是我們要優(yōu)化的變量;
last_marginalization_info??????????? ? ? ? ? ? ? ? ? ? ? Xm與Xb對(duì)應(yīng)的測(cè)量Zb,也是先驗(yàn)殘差(細(xì)品一下)

2、思路:
?

邊緣化策略

邊緣化分兩種情況,每種情況有各自的流程

a. 如果次新幀是關(guān)鍵幀,則將邊緣化最老幀,及其看到的路標(biāo)點(diǎn)和IMU數(shù)據(jù),轉(zhuǎn)化為先驗(yàn)。具體流程為:

1)將上一次先驗(yàn)殘差項(xiàng)傳遞給marginalization_info

2)將第0幀和第1幀間的IMU因子IMUFactor(pre_integrations[1]),添加到marginalization_info中

3)將第一次觀測(cè)為第0幀的所有路標(biāo)點(diǎn)對(duì)應(yīng)的視覺觀測(cè),添加到marginalization_info中

4)計(jì)算每個(gè)殘差,對(duì)應(yīng)的Jacobian,并將各參數(shù)塊拷貝到統(tǒng)一的內(nèi)存(parameter_block_data)中

5)多線程構(gòu)造先驗(yàn)項(xiàng)舒爾補(bǔ)AX=b的結(jié)構(gòu),在X0處線性化計(jì)算Jacobian和殘差

6)調(diào)整參數(shù)塊在下一次窗口中對(duì)應(yīng)的位置(往前移一格),注意這里是指針,后面slideWindow中會(huì)賦新值,這里只是提前占座

b. 如果次新幀不是關(guān)鍵幀,此時(shí)具體流程為:

1)保留次新幀的IMU測(cè)量,丟棄該幀的視覺測(cè)量,將上一次先驗(yàn)殘差項(xiàng)傳遞給marginalization_info

2)premargin:計(jì)算每個(gè)殘差,對(duì)應(yīng)的Jacobian,并更新parameter_block_data

3)marginalize:構(gòu)造先驗(yàn)項(xiàng)舒爾補(bǔ)AX=b的結(jié)構(gòu),計(jì)算Jacobian和殘差

4)調(diào)整參數(shù)塊在下一次窗口中對(duì)應(yīng)的位置(去掉次新幀)

3、marginalization_factor.cpp 代碼中有幾個(gè)變量需要提前說明:

舉例說明,當(dāng)?shù)谝淮?marg 掉最老幀時(shí),parameter_block_size 為所有變量及其對(duì)應(yīng)的
localSize,? parameter_block_data 為對(duì)應(yīng)的數(shù)據(jù)(double*類型)

?

二、程序部分

2.1? 把下面這個(gè)圖搞明白!

?

2.2 看 ?"marginalization_factor.h"? 中類和結(jié)構(gòu)體的定義

?1、class ResidualBlockInfo

類描述:這個(gè)類保存了待marg變量(xm)與相關(guān)聯(lián)變量(xb)之間的一個(gè)約束因子關(guān)系? -? Zm

struct ResidualBlockInfo {ResidualBlockInfo(ceres::CostFunction *_cost_function, ceres::LossFunction *_loss_function, std::vector<double *> _parameter_blocks, std::vector<int> _drop_set): cost_function(_cost_function), loss_function(_loss_function), parameter_blocks(_parameter_blocks), drop_set(_drop_set) {}void Evaluate();//調(diào)用cost_function的evaluate函數(shù)計(jì)算殘差 和 雅克比矩陣ceres::CostFunction *cost_function;ceres::LossFunction *loss_function;std::vector<double *> parameter_blocks;std::vector<int> drop_set;double **raw_jacobians;std::vector<Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>> jacobians;Eigen::VectorXd residuals;int localSize(int size){return size == 7 ? 6 : size;} }; 成員變量描述
cost_function對(duì)應(yīng)ceres中表示約束因子的類
parameter_blocks該約束因子相關(guān)聯(lián)的參數(shù)塊變量
drop_setparameter_blocks中待marg變量的索引

2、class MarginalizationInfo

類描述:這個(gè)類保存了優(yōu)化時(shí)上一步邊緣化后保留下來的先驗(yàn)信息

class MarginalizationInfo {public:~MarginalizationInfo();int localSize(int size) const;int globalSize(int size) const;void addResidualBlockInfo(ResidualBlockInfo *residual_block_info);void preMarginalize();void marginalize();std::vector<double *> getParameterBlocks(std::unordered_map<long, double *> &addr_shift);std::vector<ResidualBlockInfo *> factors;//這里將參數(shù)塊分為Xm,Xb,Xr,Xm表示被marg掉的參數(shù)塊,Xb表示與Xm相連接的參數(shù)塊,Xr表示剩余的參數(shù)塊//那么m=Xm的localsize之和,n為Xb的localsize之和,pos為(Xm+Xb)localsize之和int m, n; std::unordered_map<long, int> parameter_block_size; //global size 將被marg掉的約束邊相關(guān)聯(lián)的參數(shù)塊,即將被marg掉的參數(shù)塊以及與它們直接相連的參數(shù)快int sum_block_size;std::unordered_map<long, int> parameter_block_idx; //local size std::unordered_map<long, double *> parameter_block_data;std::vector<int> keep_block_size; //global sizestd::vector<int> keep_block_idx; //local sizestd::vector<double *> keep_block_data;Eigen::MatrixXd linearized_jacobians;Eigen::VectorXd linearized_residuals;const double eps = 1e-8;}; 成員變量描述
factorsxm與xb之間的約束因子,Zb
m所有將被marg掉變量的localsize之和,如上圖中xm的localsize
n所有與將被marg掉變量有約束關(guān)系的變量的localsize之和,如上圖中xb的localsize
parameter_block_size<參數(shù)塊地址,參數(shù)塊的global size>,參數(shù)塊包括xm和xb
parameter_block_idx<參數(shù)塊地址,參數(shù)塊排序好后的索引>,對(duì)參數(shù)塊進(jìn)行排序,xm排在前面,xb排成后面,使用localsize
parameter_block_data<參數(shù)塊地址,參數(shù)塊數(shù)據(jù)>,需要注意的是這里保存的參數(shù)塊數(shù)據(jù)是原始參數(shù)塊數(shù)據(jù)的一個(gè)拷貝,不再變化,用于記錄這些參數(shù)塊變量在marg時(shí)的狀態(tài)
keep_block_size<保留下來的參數(shù)塊地址,參數(shù)塊的globalsize>
keep_block_idx<保留下來的參數(shù)塊地址,參數(shù)塊的索引>,保留下來的參數(shù)塊是xb

成員函數(shù)信息:

成員函數(shù)描述
preMarginalize得到每次IMU和視覺觀測(cè)對(duì)應(yīng)的參數(shù)塊,雅克比矩陣,殘差值
marginalize開啟多線程構(gòu)建信息矩陣H和b ,同時(shí)從H,b中恢復(fù)出線性化雅克比和殘差

3、class MarginalizationFactor

類描述:該類是優(yōu)化時(shí)表示上一步邊緣化后保留下來的先驗(yàn)信息代價(jià)因子,變量marginalization_info保存了類似約束測(cè)量信息

class MarginalizationFactor : public ceres::CostFunction {public:MarginalizationFactor(MarginalizationInfo* _marginalization_info);virtual bool Evaluate(double const *const *parameters, double *residuals, double **jacobians) const;MarginalizationInfo* marginalization_info; };

2.3 程序講解

邊緣化部分在? optimization 函數(shù)里面,當(dāng)執(zhí)行完后端優(yōu)化后,緊接著就會(huì)執(zhí)行邊緣化,兩個(gè)過程都需要添加優(yōu)化變量和殘差,

但區(qū)別是邊緣化的變量少一點(diǎn)!主要是構(gòu)建模塊的過程!

?

一、如果邊緣化 “老幀”

【1】首先 把上一次先驗(yàn)項(xiàng)中的殘差項(xiàng)(尺寸為 n)傳遞給當(dāng)前先驗(yàn)項(xiàng),并從中去除需要丟棄 的狀態(tài)量;

即從舊的先驗(yàn)殘差項(xiàng) last_marginalization_info 新建一個(gè)新的 marginalization_factor,參與這個(gè)殘差項(xiàng)的優(yōu)化變量是:last_marginalization_parameter_blocks 里面的內(nèi)容:para_Pose、para_SpeedBias、para_Ex_Pose、para_Feature、para_Td 都是按順序排好的,所以要把 要丟棄 的狀態(tài)量? para_Pose[0]、para_SpeedBias[0] 對(duì)應(yīng)的序號(hào)用 drop_set 記錄下來

// --------------------------------------marginalization-----------------------------------------//添加殘差以及優(yōu)化變量的方式和后端線性優(yōu)化中添加的方式相似,因?yàn)檫吘壔悜?yīng)該就是仿照ceres寫的TicToc t_whole_marginalization;//一、邊緣化老幀,那就要考慮老幀的情況! //要邊緣化的參數(shù)塊是 para_Pose[0] para_SpeedBias[0] 以及 para_Feature[feature_index](滑窗內(nèi)的第feature_index個(gè)點(diǎn)的逆深度)if (marginalization_flag == MARGIN_OLD){MarginalizationInfo *marginalization_info = new MarginalizationInfo();//先驗(yàn)信息vector2double(); //【1】首先添加上一次先驗(yàn)殘差項(xiàng)if (last_marginalization_info && last_marginalization_info->valid){vector<int> drop_set;for (int i = 0; i < static_cast<int>(last_marginalization_parameter_blocks.size()); i++){//查詢last_marginalization_parameter_blocks中是首幀狀態(tài)量的序號(hào)if (last_marginalization_parameter_blocks[i] == para_Pose[0] ||last_marginalization_parameter_blocks[i] == para_SpeedBias[0])drop_set.push_back(i);}MarginalizationFactor *marginalization_factor = new MarginalizationFactor(last_marginalization_info);ResidualBlockInfo *residual_block_info = new ResidualBlockInfo(marginalization_factor, NULL,last_marginalization_parameter_blocks,drop_set); //調(diào)用addResidualBlockInfo()函數(shù)將各個(gè)殘差以及殘差涉及的優(yōu)化變量添加入優(yōu)化變量中marginalization_info->addResidualBlockInfo(residual_block_info);}

【2】添加IMU的marg信息到 marginalization_info 中:第0幀和第1幀之間的IMU預(yù)積分值以及第0幀和第1幀相關(guān)優(yōu)化變量

if(USE_IMU){if (pre_integrations[1]->sum_dt < 10.0){IMUFactor* imu_factor = new IMUFactor(pre_integrations[1]);//0和1是para_Pose[0], para_SpeedBias[0],需要marg的變量ResidualBlockInfo *residual_block_info = new ResidualBlockInfo(imu_factor, NULL,vector<double *>{para_Pose[0], para_SpeedBias[0], para_Pose[1], para_SpeedBias[1]},vector<int>{0, 1});marginalization_info->addResidualBlockInfo(residual_block_info);}}

【3】最后添加第一次觀測(cè)滑窗中第0幀的路標(biāo)點(diǎn)以及其他相關(guān)的滑窗中的幀的相關(guān)的優(yōu)化變量 到 marginalization_info 中

{int feature_index = -1;//這里是遍歷滑窗所有的特征點(diǎn)for (auto &it_per_id : f_manager.feature){//該特征點(diǎn)被觀測(cè)到的次數(shù)it_per_id.used_num = it_per_id.feature_per_frame.size();if (it_per_id.used_num < 4)continue;++feature_index;int imu_i = it_per_id.start_frame, imu_j = imu_i - 1;//特征點(diǎn)的起始幀必須是首幀,因此后面用來構(gòu)建marg矩陣的都是和第一幀有共視關(guān)系的滑窗幀,因?yàn)?marginalization_flag == MARGIN_OLDif (imu_i != 0)continue;//得到該Feature在起始幀下的歸一化坐標(biāo)Vector3d pts_i = it_per_id.feature_per_frame[0].point;for (auto &it_per_frame : it_per_id.feature_per_frame){imu_j++;if(imu_i != imu_j)//不需要起始觀測(cè)幀{Vector3d pts_j = it_per_frame.point;ProjectionTwoFrameOneCamFactor *f_td = new ProjectionTwoFrameOneCamFactor(pts_i, pts_j, it_per_id.feature_per_frame[0].velocity, it_per_frame.velocity,it_per_id.feature_per_frame[0].cur_td, it_per_frame.cur_td);ResidualBlockInfo *residual_block_info = new ResidualBlockInfo(f_td, loss_function, vector<double *>{para_Pose[imu_i], para_Pose[imu_j], para_Ex_Pose[0], para_Feature[feature_index], para_Td[0]},vector<int>{0, 3});marginalization_info->addResidualBlockInfo(residual_block_info);}if(STEREO && it_per_frame.is_stereo){Vector3d pts_j_right = it_per_frame.pointRight;if(imu_i != imu_j){ProjectionTwoFrameTwoCamFactor *f = new ProjectionTwoFrameTwoCamFactor(pts_i, pts_j_right, it_per_id.feature_per_frame[0].velocity, it_per_frame.velocityRight,it_per_id.feature_per_frame[0].cur_td, it_per_frame.cur_td);ResidualBlockInfo *residual_block_info = new ResidualBlockInfo(f, loss_function,vector<double *>{para_Pose[imu_i], para_Pose[imu_j], para_Ex_Pose[0], para_Ex_Pose[1], para_Feature[feature_index], para_Td[0]},vector<int>{0, 4});marginalization_info->addResidualBlockInfo(residual_block_info);}else{ProjectionOneFrameTwoCamFactor *f = new ProjectionOneFrameTwoCamFactor(pts_i, pts_j_right, it_per_id.feature_per_frame[0].velocity, it_per_frame.velocityRight,it_per_id.feature_per_frame[0].cur_td, it_per_frame.cur_td);ResidualBlockInfo *residual_block_info = new ResidualBlockInfo(f, loss_function,vector<double *>{para_Ex_Pose[0], para_Ex_Pose[1], para_Feature[feature_index], para_Td[0]},vector<int>{2});marginalization_info->addResidualBlockInfo(residual_block_info);}}}}}

【4】marginalization_info->preMarginalize():得到每次 IMU 和視覺觀測(cè)(cost_function)對(duì) 應(yīng)的參數(shù)塊(parameter_blocks),雅可比矩陣(jacobians),殘差值(residuals);

?marginalization_info->preMarginalize();

【4】marginalization_info->marginalize():多線程計(jì)整個(gè)先驗(yàn)項(xiàng)的參數(shù)塊,雅可比矩陣和 殘差值,其中與代碼對(duì)應(yīng)關(guān)系為:

marginalization_info->marginalize();

【5】最后移交了優(yōu)化項(xiàng)需要得到的兩個(gè)變量:last_marginalization_info和last_marginalization_parameter_blocks

std::unordered_map<long, double *> addr_shift;for (int i = 1; i <= WINDOW_SIZE; i++){addr_shift[reinterpret_cast<long>(para_Pose[i])] = para_Pose[i - 1];addr_shift[reinterpret_cast<long>(para_SpeedBias[i])] = para_SpeedBias[i - 1];}for (int i = 0; i < NUM_OF_CAM; i++)addr_shift[reinterpret_cast<long>(para_Ex_Pose[i])] = para_Ex_Pose[i];if (ESTIMATE_TD){addr_shift[reinterpret_cast<long>(para_Td[0])] = para_Td[0];}vector<double *> parameter_blocks = marginalization_info->getParameterBlocks(addr_shift);if (last_marginalization_info)delete last_marginalization_info;last_marginalization_info = marginalization_info;last_marginalization_parameter_blocks = parameter_blocks;

重要的三個(gè)結(jié)構(gòu)變量:

  • MarginalizationFactor *marginalization_factor
  • *MarginalizationInfo marginalization_info
  • ResidualBlockInfo *residual_block_info

MarginalizationFactor *marginalization_factor 兩個(gè)作用:(1)構(gòu)建ceres的殘差項(xiàng),即計(jì)算residual (2)構(gòu)建ResidualBlockInfo *residual_block_info

MarginalizationInfo *marginalization_info 由他可以獲取邊緣化信息,用它來構(gòu)建MarginalizationFactor *marginalization_factor以及得到對(duì)應(yīng)的參數(shù)塊

ResidualBlockInfo *residual_block_info 用它來豐富marginalization_info項(xiàng)的信息

從頭到位都是marginalization_info這個(gè)變量來進(jìn)行統(tǒng)籌安排進(jìn)行邊緣化。

通過marginalization_info->addResidualBlockInfo()來添加約束,有三個(gè)方面的來源:(1)舊的(2)imu預(yù)積分項(xiàng)(3)特征點(diǎn)

理解:

上面三步通過調(diào)用 addResidualBlockInfo() 已經(jīng)確定優(yōu)化變量的數(shù)量、存儲(chǔ)位置、長(zhǎng)度以及待優(yōu)化變量的數(shù)量以及存儲(chǔ)位置;

為什么要添加這些量呀?因?yàn)樵趉時(shí)刻這些量是我們要邊緣化掉的變量,殘差;但是k+1時(shí)刻就是我們的先驗(yàn),這不正是我們初衷嘛!

需要注意的是這些都是和第一幀圖像有關(guān)的!因?yàn)槲覀冞吘壔氖亲罾蠋?#xff01;三部分的流程都是一樣的,如下:

第一步 定義損失函數(shù),對(duì)于先驗(yàn)殘差就是MarginalizationFactor,對(duì)于IMU就是IMUFactor,對(duì)于視覺就是ProjectionTdFactor,

這三個(gè)損失函數(shù)的類都是繼承自ceres的損失函數(shù)類ceres::CostFunction,里面都重載了函數(shù); 函數(shù)通過傳入的優(yōu)化變量值 parameters,

以及先驗(yàn)值(對(duì)于先驗(yàn)殘差就是上一時(shí)刻的先驗(yàn)殘差last_marginalization_info,對(duì)于IMU就是預(yù)計(jì)分值pre_integrations[1],對(duì)于視覺

就是空間的的像素坐標(biāo)pts_i, pts_j)可以計(jì)算出各項(xiàng)殘差值residuals,以及殘差對(duì)應(yīng)個(gè)優(yōu)化變量的雅克比矩陣jacobians;?

bool MarginalizationFactor::Evaluate(double const *const *parameters, double *residuals, double **jacobians) const {int n = marginalization_info->n;int m = marginalization_info->m;Eigen::VectorXd dx(n);//遍歷本次邊緣化保留下的參數(shù)塊:keep_block_sizefor (int i = 0; i < static_cast<int>(marginalization_info->keep_block_size.size()); i++){//得到該參數(shù)塊的大小和序號(hào)int size = marginalization_info->keep_block_size[i];int idx = marginalization_info->keep_block_idx[i] - m;//x 感覺是邊緣化之前 BA優(yōu)化后的值 ?Eigen::VectorXd x = Eigen::Map<const Eigen::VectorXd>(parameters[i], size);//x0表示marg時(shí)參數(shù)塊變量的值(即xb)Eigen::VectorXd x0 = Eigen::Map<const Eigen::VectorXd>(marginalization_info->keep_block_data[i], size);if (size != 7)//speed_bias 9項(xiàng)dx.segment(idx, size) = x - x0;//變量的更新else//位置,姿態(tài)項(xiàng), 姿態(tài)不能直接加減了!要變成四元素的 ?{//使用四元數(shù)的表達(dá)方式dx.segment<3>(idx + 0) = x.head<3>() - x0.head<3>();dx.segment<3>(idx + 3) = 2.0 * Utility::positify(Eigen::Quaterniond(x0(6), x0(3), x0(4), x0(5)).inverse() * Eigen::Quaterniond(x(6), x(3), x(4), x(5))).vec();if (!((Eigen::Quaterniond(x0(6), x0(3), x0(4), x0(5)).inverse() * Eigen::Quaterniond(x(6), x(3), x(4), x(5))).w() >= 0)){dx.segment<3>(idx + 3) = 2.0 * -Utility::positify(Eigen::Quaterniond(x0(6), x0(3), x0(4), x0(5)).inverse() * Eigen::Quaterniond(x(6), x(3), x(4), x(5))).vec();}}}//計(jì)算殘差,理解,泰勒展開求的公式Eigen::Map<Eigen::VectorXd>(residuals, n) = marginalization_info->linearized_residuals + marginalization_info->linearized_jacobians * dx;//僅在邊緣化殘差這一塊,雅克比矩陣要固定?if (jacobians){for (int i = 0; i < static_cast<int>(marginalization_info->keep_block_size.size()); i++){if (jacobians[i]){int size = marginalization_info->keep_block_size[i], local_size = marginalization_info->localSize(size);int idx = marginalization_info->keep_block_idx[i] - m;//Eigen::Map<Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>> jacobian(jacobians[i], n, size);jacobian.setZero();jacobian.leftCols(local_size) = marginalization_info->linearized_jacobians.middleCols(idx, local_size);}}}return true; }

上面這段代碼是在優(yōu)化過程中,對(duì)先驗(yàn)約束項(xiàng)的更新,主要是對(duì)先驗(yàn)殘差的更新,雅克比不再發(fā)生變化。
代碼中的x0 表示marg xm狀態(tài)時(shí) xb變量的值; 優(yōu)化過程中先驗(yàn)項(xiàng)的雅克比保持不變,但是殘差需要變化,其變化公式推導(dǎo)如下:

第二步定義ResidualBlockInfo,其構(gòu)造函數(shù)如下:

ResidualBlockInfo(ceres::CostFunction *_cost_function, ceres::LossFunction *_loss_function, std::vector<double *> _parameter_blocks, std::vector<int> _drop_set) ---------------------------------------------------------------------------------------------------- void ResidualBlockInfo::Evaluate() {//獲取殘差的個(gè)數(shù): IMU + 視覺residuals.resize(cost_function->num_residuals());//優(yōu)化變量參數(shù)塊的變量大小:para_Pose、para_SpeedBias、para_Ex_Pose、para_Feature、para_Tdstd::vector<int> block_sizes = cost_function->parameter_block_sizes();//數(shù)組外圍的大小,也就是參數(shù)塊的個(gè)數(shù)raw_jacobians = new double *[block_sizes.size()];jacobians.resize(block_sizes.size());//分配每一行的大小,殘差的維數(shù)*每個(gè)參數(shù)塊中參數(shù)的個(gè)數(shù)block_sizes[i],J矩陣大小的確認(rèn)!想一下//比如:兩個(gè)殘差f1,f2;5個(gè)變量x1,x2,,,x5, 則J矩陣是2行5列呀for (int i = 0; i < static_cast<int>(block_sizes.size()); i++){jacobians[i].resize(cost_function->num_residuals(), block_sizes[i]);raw_jacobians[i] = jacobians[i].data();}//利用各自殘差的Evaluate函數(shù)計(jì)算殘差和雅克比矩陣。cost_function->Evaluate(parameter_blocks.data(), residuals.data(), raw_jacobians);//好像明白了,這個(gè)是視覺里面有的Huber核函數(shù);有魯棒核函數(shù)的殘差部分,重寫雅克比與殘差if (loss_function){double residual_scaling_, alpha_sq_norm_;double sq_norm, rho[3];sq_norm = residuals.squaredNorm();loss_function->Evaluate(sq_norm, rho);double sqrt_rho1_ = sqrt(rho[1]);if ((sq_norm == 0.0) || (rho[2] <= 0.0)){residual_scaling_ = sqrt_rho1_;alpha_sq_norm_ = 0.0;}else//這一部分公式?jīng)]有看懂!{const double D = 1.0 + 2.0 * sq_norm * rho[2] / rho[1];const double alpha = 1.0 - sqrt(D);residual_scaling_ = sqrt_rho1_ / (1 - alpha); alpha_sq_norm_ = alpha / sq_norm; }//感覺像根據(jù)先驗(yàn)殘差,推出新的殘差和雅可比公式一樣!for (int i = 0; i < static_cast<int>(parameter_blocks.size()); i++){jacobians[i] = sqrt_rho1_ * (jacobians[i] - alpha_sq_norm_ * residuals * (residuals.transpose() * jacobians[i]));}residuals *= residual_scaling_;} }

這一步是為了將不同的損失函數(shù)_cost_function以及優(yōu)化變量_parameter_blocks統(tǒng)一起來再一起添加到marginalization_info中。

變量_loss_function是核函數(shù),在VINS-mono的邊緣化中僅僅視覺殘差有用到核函數(shù),另外會(huì)設(shè)置需要被邊緣話的優(yōu)化變量的位置

_drop_set,這里對(duì)于不同損失函數(shù)又會(huì)有不同:對(duì)于先驗(yàn)損失,其待邊緣化優(yōu)化變量是根據(jù)是否等于para_Pose[0]或者

para_SpeedBias[0],也就是說和第一幀相關(guān)的優(yōu)化變量都作為邊緣化的對(duì)象。對(duì)于IMU,其輸入的_drop_set是 vector{0, 1},

也就是說其待邊緣化變量是para_Pose[0], para_SpeedBias[0],也是第一幀相關(guān)的變量都作為邊緣化的對(duì)象,

里值得注意的是和后端優(yōu)化不同,這里只添加了第一幀和第二幀的相關(guān)變量作為優(yōu)化變量,因此邊緣化構(gòu)造的信息矩陣會(huì)比

后端優(yōu)化構(gòu)造的信息矩陣要小對(duì)于視覺,其輸入的_drop_set是vector{0, 3},也就是說其待邊緣化變量是para_Pose[imu_i]和

para_Feature[feature_index],從這里可以看出來在VINS-mono的邊緣化操作中會(huì)不僅僅會(huì)邊緣化第一幀相關(guān)的優(yōu)化變量,

還會(huì)邊緣化掉以第一幀為起始觀察幀的路標(biāo)點(diǎn)。

問1:為什么輸入的_drop_set是 vector{0, 1},也就是說其待邊緣化變量是para_Pose[0], para_SpeedBias[0];

輸入的_drop_set是vector{0, 3},也就是說其待邊緣化變量是para_Pose[imu_i]和para_Feature[feature_index];

答1:如前面所示,優(yōu)化變量是按照固定的順序排列的

序號(hào)?????? ? ? ? ? ? 變量??????????? ? ?? ???? ? ? ? ?? ?

?? 0???????????? para_Pose?????????????????
?? 1???????????? para_SpeedBias????
?? 2?????? ????? para_Ex_Pose???????
?? 3 ? ? ? ????? para_Feature???????????
?? 4???????????? para_Td??????????????????????

問2:最后一部分為什么要重寫殘差和雅可比公式?公式怎么來的?

答2:看過論文的童鞋應(yīng)該知道,在優(yōu)化部分,視覺是加了核函數(shù)的,這樣帶來的問題是其對(duì)應(yīng)的殘差和雅可比是變的,這個(gè)應(yīng)該很好理解:

比如: f(x) 的雅可比是J, 那么 ρ(f(x))的雅可比肯定變了! ρ 是核函數(shù)! 公式我沒有推出來,還請(qǐng)知道的兄弟告訴一下!

經(jīng)過努力,得一絲頭緒! 其中核函數(shù)如下:

第三步是將定義的residual_block_info添加到marginalization_info中,通過下面這一句

marginalization_info->addResidualBlockInfo(residual_block_info);

addResidualBlockInfo() 這個(gè)函數(shù)的實(shí)現(xiàn)如下:

void MarginalizationInfo::addResidualBlockInfo(ResidualBlockInfo *residual_block_info) {factors.emplace_back(residual_block_info);//總殘差快std::vector<double *> &parameter_blocks = residual_block_info->parameter_blocks;std::vector<int> parameter_block_sizes = residual_block_info->cost_function->parameter_block_sizes();//這里應(yīng)該是優(yōu)化的變量for (int i = 0; i < static_cast<int>(residual_block_info->parameter_blocks.size()); i++){double *addr = parameter_blocks[i]; //指向數(shù)據(jù)的指針int size = parameter_block_sizes[i];//因?yàn)閮H僅有地址不行,還需要有地址指向的這個(gè)數(shù)據(jù)的長(zhǎng)度parameter_block_size[reinterpret_cast<long>(addr)] = size;//將指針強(qiáng)轉(zhuǎn)為數(shù)據(jù)的地址}//這里應(yīng)該是待邊緣化的變量for (int i = 0; i < static_cast<int>(residual_block_info->drop_set.size()); i++){//這個(gè)是待邊緣化的變量的iddouble *addr = parameter_blocks[residual_block_info->drop_set[i]];//將需要marg的變量的id存入parameter_block_idxparameter_block_idx[reinterpret_cast<long>(addr)] = 0;} }

目的:

?將不同損失函數(shù)對(duì)應(yīng)的優(yōu)化變量、邊緣化位置存入到 parameter_block_sizes 和 parameter_block_idx中,這里注意的是執(zhí)行到這一步,

parameter_block_idx 中僅僅有待邊緣化的優(yōu)化變量的內(nèi)存地址的key,而且其對(duì)應(yīng)value全部為0;

【4】調(diào)用 preMarginalize() 進(jìn)行預(yù)處理

上面通過調(diào)用 addResidualBlockInfo() 已經(jīng)確定優(yōu)化變量的數(shù)量、存儲(chǔ)位置、長(zhǎng)度以及待優(yōu)化變量的數(shù)量以及存儲(chǔ)位置,

下面就需要調(diào)用 preMarginalize() 進(jìn)行預(yù)處理, 得到每次 IMU 和視覺觀測(cè) (cost_function) 對(duì) 應(yīng)的參數(shù)塊(parameter_blocks),

雅可比矩陣(jacobians),殘差值(residuals);

void MarginalizationInfo::preMarginalize() {//遍歷所有factor,在前面的addResidualBlockInfo中會(huì)將不同的殘差塊加入到factor中。for (auto it : factors){it->Evaluate();//利用多態(tài)性分別計(jì)算所有狀態(tài)變量構(gòu)成的殘差和雅克比矩陣//遍歷所有參數(shù)塊std::vector<int> block_sizes = it->cost_function->parameter_block_sizes();for (int i = 0; i < static_cast<int>(block_sizes.size()); i++){//優(yōu)化變量的地址long addr = reinterpret_cast<long>(it->parameter_blocks[i]);int size = block_sizes[i];//將factor中的參數(shù)塊復(fù)制到parameter_block_data中,parameter_block_data是整個(gè)優(yōu)化變量的數(shù)據(jù)if (parameter_block_data.find(addr) == parameter_block_data.end()){double *data = new double[size]; //會(huì)在析構(gòu)函數(shù)中刪除memcpy(data, it->parameter_blocks[i], sizeof(double) * size); //重新開辟一塊內(nèi)存parameter_block_data[addr] = data;//通過之前優(yōu)化變量的數(shù)據(jù)的地址和新開辟的內(nèi)存數(shù)據(jù)進(jìn)行關(guān)聯(lián)}}} }

it->Evaluate()? 這一句里面其實(shí)就是調(diào)用各個(gè)損失函數(shù)中的重載函數(shù)Evaluate(),這個(gè)函數(shù)前面有提到過:

【5】調(diào)用marginalize()

開啟多線程構(gòu)建信息矩陣H和b ,同時(shí)從H,b中恢復(fù)出線性化雅克比和殘差

前面已經(jīng)將數(shù)據(jù)都準(zhǔn)備好了,下面通過調(diào)用marginalize()函數(shù)就要正式開始進(jìn)行邊緣化操作了,實(shí)現(xiàn)如下:

void MarginalizationInfo::marginalize() {int pos = 0;for (auto &it : parameter_block_idx)//遍歷待marg的優(yōu)化變量的內(nèi)存地址{it.second = pos;pos += localSize(parameter_block_size[it.first]);}m = pos;//需要marg掉的變量個(gè)數(shù)for (const auto &it : parameter_block_size)//計(jì)算除了邊緣化之外要保留的參數(shù)塊{//如果這個(gè)變量不是是待marg的優(yōu)化變量。if (parameter_block_idx.find(it.first) == parameter_block_idx.end()){parameter_block_idx[it.first] = pos;//就將這個(gè)待marg的變量id設(shè)為pospos += localSize(it.second); //pos加上這個(gè)變量的長(zhǎng)度}}//上面的操作就會(huì)將所有的優(yōu)化變量進(jìn)行一個(gè)偽排序 n = pos - m;//要保留下來的變量個(gè)數(shù)if(m == 0){valid = false;printf("unstable tracking...\n");return;}TicToc t_summing;Eigen::MatrixXd A(pos, pos);//整個(gè)矩陣大小 --- 沒有邊緣化之前的矩陣Eigen::VectorXd b(pos);A.setZero();b.setZero();TicToc t_thread_summing;pthread_t tids[NUM_THREADS];ThreadsStruct threadsstruct[NUM_THREADS];//攜帶每個(gè)線程的輸入輸出信息//為每個(gè)線程均勻分配factor。int i = 0;for (auto it : factors){threadsstruct[i].sub_factors.push_back(it);i++;i = i % NUM_THREADS;}//構(gòu)造4個(gè)線程,并確定線程的主程序for (int i = 0; i < NUM_THREADS; i++){TicToc zero_matrix;threadsstruct[i].A = Eigen::MatrixXd::Zero(pos,pos);threadsstruct[i].b = Eigen::VectorXd::Zero(pos);threadsstruct[i].parameter_block_size = parameter_block_size;threadsstruct[i].parameter_block_idx = parameter_block_idx;//分別構(gòu)造矩陣int ret = pthread_create( &tids[i], NULL, ThreadsConstructA ,(void*)&(threadsstruct[i]));if (ret != 0){ROS_WARN("pthread_create error");ROS_BREAK();}}//將每個(gè)線程構(gòu)建的A和b加起來for( int i = NUM_THREADS - 1; i >= 0; i--) {pthread_join( tids[i], NULL ); //阻塞等待線程完成A += threadsstruct[i].A;b += threadsstruct[i].b;}/*代碼中求Amm的逆矩陣時(shí),為了保證數(shù)值穩(wěn)定性,做了Amm=1/2*(Amm+Amm^T)的運(yùn)算,Amm本身是一個(gè)對(duì)稱矩陣,所以 等式成立。接著對(duì)Amm進(jìn)行了特征值分解,再求逆,更加的快速*/Eigen::MatrixXd Amm = 0.5 * (A.block(0, 0, m, m) + A.block(0, 0, m, m).transpose());Eigen::SelfAdjointEigenSolver<Eigen::MatrixXd> saes(Amm);Eigen::MatrixXd Amm_inv = saes.eigenvectors() * Eigen::VectorXd((saes.eigenvalues().array() > eps).select(saes.eigenvalues().array().inverse(), 0)).asDiagonal() * saes.eigenvectors().transpose();// 設(shè)x_{m}為要被marg掉的狀態(tài)量,x_{r}是與x_{m}相關(guān)的狀態(tài)量,所以在最后我們要保存的是x_{r}的信息//// | | | | |// | Amm | Amr| m |bmm| |x_{m}|// A = |______|____| b = |__ | A|x_{r}| = b// | Arm | Arr| n |brr|// | | | | |// 使用舒爾補(bǔ):// C = Arr - Arm*Amm^{-1}Amr// d = brr - Arm*Amm^{-1}bmm//舒爾補(bǔ),上面這段代碼邊緣化掉xm變量,保留xb變量 Eigen::VectorXd bmm = b.segment(0, m);Eigen::MatrixXd Amr = A.block(0, m, m, n);//0,m是開始的位置,m,m是開始位置后的大小Eigen::MatrixXd Arm = A.block(m, 0, n, m);Eigen::MatrixXd Arr = A.block(m, m, n, n);Eigen::VectorXd brr = b.segment(m, n);A = Arr - Arm * Amm_inv * Amr; b = brr - Arm * Amm_inv * bmm;//這里的A和b是marg過的A和b,大小是發(fā)生了變化的//下面就是更新先驗(yàn)殘差項(xiàng)Eigen::SelfAdjointEigenSolver<Eigen::MatrixXd> saes2(A);//求更新后 A特征值Eigen::VectorXd S = Eigen::VectorXd((saes2.eigenvalues().array() > eps).select(saes2.eigenvalues().array(), 0));Eigen::VectorXd S_inv = Eigen::VectorXd((saes2.eigenvalues().array() > eps).select(saes2.eigenvalues().array().inverse(), 0));//求取特征值及其逆的均方根Eigen::VectorXd S_sqrt = S.cwiseSqrt();Eigen::VectorXd S_inv_sqrt = S_inv.cwiseSqrt();//分別指的是邊緣化之后從信息矩陣A和b中恢復(fù)出來雅克比矩陣和殘差向量;//兩者會(huì)作為先驗(yàn)殘差帶入到下一輪的先驗(yàn)殘差的雅克比和殘差的計(jì)算當(dāng)中去linearized_jacobians = S_sqrt.asDiagonal() * saes2.eigenvectors().transpose();linearized_residuals = S_inv_sqrt.asDiagonal() * saes2.eigenvectors().transpose() * b; }

部分程序:

int pos = 0; //pos表示所有的被marg掉的參數(shù)塊以及它們的相連接參數(shù)塊的localsize之和for (auto &it : parameter_block_idx){it.second = pos;pos += localSize(parameter_block_size[it.first]);}m = pos; for (const auto &it : parameter_block_size){if (parameter_block_idx.find(it.first) == parameter_block_idx.end()){//將被marg掉參數(shù)的相連接參數(shù)塊添加道parameter_block_idx中parameter_block_idx[it.first] = pos;pos += localSize(it.second);}}n = pos - m;

這里對(duì) 參數(shù)塊變量進(jìn)行排序,待marg的參數(shù)塊變量放在前面,其他參數(shù)塊變量放在后面,

并將每個(gè)參數(shù)塊的對(duì)應(yīng)的下標(biāo)放在parameter_block_idx中; pos = m + n

TicToc t_thread_summing;pthread_t tids[NUM_THREADS];//攜帶每個(gè)線程的輸入輸出信息ThreadsStruct threadsstruct[NUM_THREADS];int i = 0;//將先驗(yàn)約束因子平均分配到線程中for (auto it : factors){threadsstruct[i].sub_factors.push_back(it);i++;i = i % NUM_THREADS;}for (int i = 0; i < NUM_THREADS; i++){TicToc zero_matrix;threadsstruct[i].A = Eigen::MatrixXd::Zero(pos,pos);threadsstruct[i].b = Eigen::VectorXd::Zero(pos);threadsstruct[i].parameter_block_size = parameter_block_size;threadsstruct[i].parameter_block_idx = parameter_block_idx;int ret = pthread_create( &tids[i], NULL, ThreadsConstructA ,(void*)&(threadsstruct[i]));if (ret != 0){ROS_WARN("pthread_create error");ROS_BREAK();}}//將每個(gè)線程構(gòu)建的A和b加起來for( int i = NUM_THREADS - 1; i >= 0; i--) {pthread_join( tids[i], NULL ); //阻塞等待線程完成A += threadsstruct[i].A;b += threadsstruct[i].b;}

這段代碼開啟多線程來構(gòu)建信息矩陣A和殘差b;將所有的先驗(yàn)約束因子平均分配到NUM_THREADS個(gè)線程中,每個(gè)線程分別構(gòu)建一個(gè)A和b;

函數(shù)會(huì)通過多線程快速構(gòu)造各個(gè)殘差對(duì)應(yīng)的各個(gè)優(yōu)化變量的信息矩陣(雅克比和殘差前面都已經(jīng)求出來了),如下圖所示:

這里構(gòu)造信息矩陣時(shí)采用的正是 parameter_block_idx 作為構(gòu)造順序,自然而然地將待邊緣化的變量構(gòu)造在矩陣的左上方;

子函數(shù)?? void* ThreadsConstructA(void* threadsstruct)?????????????

void* ThreadsConstructA(void* threadsstruct) {ThreadsStruct* p = ((ThreadsStruct*)threadsstruct);//遍歷該線程分配的所有factors,所有觀測(cè)項(xiàng)for (auto it : p->sub_factors){//遍歷該factor中的所有參數(shù)塊,五個(gè)參數(shù)塊,分別計(jì)算,理解!for (int i = 0; i < static_cast<int>(it->parameter_blocks.size()); i++){//得到參數(shù)塊的大小int idx_i = p->parameter_block_idx[reinterpret_cast<long>(it->parameter_blocks[i])];int size_i = p->parameter_block_size[reinterpret_cast<long>(it->parameter_blocks[i])];if (size_i == 7)//對(duì)于pose來說,是7維的,最后一維為0,這里取左邊6size_i = 6;//只提取local size部分,對(duì)于pose來說,是7維的,最后一維為0,這里取左邊6維//P.leftCols(cols) = P(:, 1:cols),取出從1列開始的cols列Eigen::MatrixXd jacobian_i = it->jacobians[i].leftCols(size_i);for (int j = i; j < static_cast<int>(it->parameter_blocks.size()); j++){int idx_j = p->parameter_block_idx[reinterpret_cast<long>(it->parameter_blocks[j])];int size_j = p->parameter_block_size[reinterpret_cast<long>(it->parameter_blocks[j])];if (size_j == 7)size_j = 6;Eigen::MatrixXd jacobian_j = it->jacobians[j].leftCols(size_j);//對(duì)應(yīng)對(duì)角區(qū)域,H*X=b, A代表H矩陣if (i == j)p->A.block(idx_i, idx_j, size_i, size_j) += jacobian_i.transpose() * jacobian_j;else{//對(duì)應(yīng)非對(duì)角區(qū)域p->A.block(idx_i, idx_j, size_i, size_j) += jacobian_i.transpose() * jacobian_j;p->A.block(idx_j, idx_i, size_j, size_i) = p->A.block(idx_i, idx_j, size_i, size_j).transpose();}}//求取g,Hx=g,都是根據(jù)公式來寫程序的!p->b.segment(idx_i, size_i) += jacobian_i.transpose() * it->residuals;}}return threadsstruct; }

這部分代碼是用來實(shí)現(xiàn)構(gòu)建A和b的:

Eigen::MatrixXd Amm = 0.5 * (A.block(0, 0, m, m) + A.block(0, 0, m, m).transpose());Eigen::SelfAdjointEigenSolver<Eigen::MatrixXd> saes(Amm);//ROS_ASSERT_MSG(saes.eigenvalues().minCoeff() >= -1e-4, "min eigenvalue %f", saes.eigenvalues().minCoeff());Eigen::MatrixXd Amm_inv = saes.eigenvectors() * Eigen::VectorXd((saes.eigenvalues().array() > eps).select(saes.eigenvalues().array().inverse(), 0)).asDiagonal() * saes.eigenvectors().transpose();//printf("error1: %f\n", (Amm * Amm_inv - Eigen::MatrixXd::Identity(m, m)).sum());Eigen::VectorXd bmm = b.segment(0, m);Eigen::MatrixXd Amr = A.block(0, m, m, n);Eigen::MatrixXd Arm = A.block(m, 0, n, m);Eigen::MatrixXd Arr = A.block(m, m, n, n);Eigen::VectorXd brr = b.segment(m, n);A = Arr - Arm * Amm_inv * Amr;b = brr - Arm * Amm_inv * bmm;

上面這段代碼邊緣化掉xm變量,保留xb變量,利用的方法是舒爾補(bǔ)

注意:上面這個(gè)等式就是先驗(yàn)信息,程序中又變成了 AX = b 的形式,從A和b中恢復(fù)出雅克比矩陣和殘差,作為下一時(shí)刻的先驗(yàn)信息;

代碼中求Amm的逆矩陣時(shí),為了保證數(shù)值穩(wěn)定性,做了Amm=1/2*(Amm+Amm^T)的運(yùn)算,Amm本身是一個(gè)對(duì)稱矩陣,

所以等式成立。接著對(duì)Amm進(jìn)行了特征值分解,再求逆,更加的快速。

Eigen::SelfAdjointEigenSolver<Eigen::MatrixXd> saes2(A);Eigen::VectorXd S = Eigen::VectorXd((saes2.eigenvalues().array() > eps).select(saes2.eigenvalues().array(), 0));Eigen::VectorXd S_inv = Eigen::VectorXd((saes2.eigenvalues().array() > eps).select(saes2.eigenvalues().array().inverse(), 0));Eigen::VectorXd S_sqrt = S.cwiseSqrt();Eigen::VectorXd S_inv_sqrt = S_inv.cwiseSqrt();linearized_jacobians = S_sqrt.asDiagonal() * saes2.eigenvectors().transpose();linearized_residuals = S_inv_sqrt.asDiagonal() * saes2.eigenvectors().transpose() * b;

上面這段代碼是從A和b中恢復(fù)出雅克比矩陣和殘差

【6】滑窗預(yù)移動(dòng)

//這里僅僅將指針進(jìn)行了一次移動(dòng),指針對(duì)應(yīng)的數(shù)據(jù)還是舊數(shù)據(jù),調(diào)用的 slideWindow() 才能實(shí)現(xiàn)真正的滑窗移動(dòng)std::unordered_map<long, double *> addr_shift;for (int i = 1; i <= WINDOW_SIZE; i++)//從1開始,因?yàn)榈谝粠臓顟B(tài)不要了{(lán)//這一步的操作指的是第i的位置存放的的是i-1的內(nèi)容,這就意味著窗口向前移動(dòng)了一格addr_shift[reinterpret_cast<long>(para_Pose[i])] = para_Pose[i - 1];if(USE_IMU)addr_shift[reinterpret_cast<long>(para_SpeedBias[i])] = para_SpeedBias[i - 1];}for (int i = 0; i < NUM_OF_CAM; i++)addr_shift[reinterpret_cast<long>(para_Ex_Pose[i])] = para_Ex_Pose[i];addr_shift[reinterpret_cast<long>(para_Td[0])] = para_Td[0];//根據(jù)地址來得到保留的參數(shù)塊vector<double *> parameter_blocks = marginalization_info->getParameterBlocks(addr_shift);if (last_marginalization_info)//Zbdelete last_marginalization_info; //刪除掉上一次的marg相關(guān)的內(nèi)容last_marginalization_info = marginalization_info; //marg相關(guān)內(nèi)容的遞歸last_marginalization_parameter_blocks = parameter_blocks; //優(yōu)化變量的遞歸,這里面僅僅是指針}

這一部分應(yīng)該很容易明白;當(dāng)邊緣化幀的 “新幀”就不說了,把上面的看懂了,估計(jì)那個(gè)也會(huì)了

/------------------------------------------------------------------程序-----------------------------------------------------------------------/

總結(jié)

以上是生活随笔為你收集整理的VINS-Mono 代码解析六、边缘化(3)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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

成人精品视频一区二区 | 成人免费无码大片a毛片 | 亚洲日本va中文字幕 | 久久久婷婷五月亚洲97号色 | 又粗又大又硬毛片免费看 | 日韩亚洲欧美中文高清在线 | 国产色xx群视频射精 | 狠狠色噜噜狠狠狠狠7777米奇 | 日本大香伊一区二区三区 | 久久97精品久久久久久久不卡 | 欧美人妻一区二区三区 | 波多野结衣一区二区三区av免费 | 亚洲色www成人永久网址 | 俺去俺来也www色官网 | 欧美激情一区二区三区成人 | 九九在线中文字幕无码 | 欧美性猛交xxxx富婆 | 天堂在线观看www | 久久99热只有频精品8 | 狠狠色丁香久久婷婷综合五月 | 两性色午夜免费视频 | 熟妇激情内射com | 婷婷丁香六月激情综合啪 | 荫蒂被男人添的好舒服爽免费视频 | √天堂中文官网8在线 | 久久久久久久女国产乱让韩 | 狂野欧美激情性xxxx | 亚洲成a人一区二区三区 | 无码中文字幕色专区 | 青青青手机频在线观看 | 欧美日韩一区二区综合 | 国产精品无码一区二区三区不卡 | 亚洲欧洲日本无在线码 | 国产精品久久久久久无码 | 国产欧美精品一区二区三区 | 亚洲人成无码网www | 欧美激情一区二区三区成人 | 麻豆国产人妻欲求不满谁演的 | 久久久国产精品无码免费专区 | 激情内射亚州一区二区三区爱妻 | 99精品久久毛片a片 | 国产亚洲精品久久久久久久久动漫 | 人人妻人人澡人人爽欧美一区九九 | 亚洲人亚洲人成电影网站色 | 国产精品久久久久久久9999 | 天堂无码人妻精品一区二区三区 | 欧美freesex黑人又粗又大 | 无码av中文字幕免费放 | 水蜜桃亚洲一二三四在线 | 国模大胆一区二区三区 | 成人试看120秒体验区 | 国产欧美熟妇另类久久久 | 波多野结衣av一区二区全免费观看 | 国产69精品久久久久app下载 | 性欧美videos高清精品 | 真人与拘做受免费视频 | 成人无码视频在线观看网站 | 国产精品对白交换视频 | 国产精品无套呻吟在线 | 国产无遮挡吃胸膜奶免费看 | 四虎国产精品免费久久 | 中文字幕av伊人av无码av | 两性色午夜视频免费播放 | 丝袜美腿亚洲一区二区 | 5858s亚洲色大成网站www | 久久无码专区国产精品s | 亚洲综合无码久久精品综合 | 蜜臀av无码人妻精品 | 天天摸天天透天天添 | 色婷婷av一区二区三区之红樱桃 | 亚洲精品无码国产 | 麻豆精产国品 | 国产麻豆精品精东影业av网站 | 国产激情无码一区二区 | 夜夜夜高潮夜夜爽夜夜爰爰 | 男女猛烈xx00免费视频试看 | 国产xxx69麻豆国语对白 | 少妇高潮一区二区三区99 | 欧美性生交活xxxxxdddd | 国産精品久久久久久久 | 永久免费精品精品永久-夜色 | 亚洲成a人一区二区三区 | 少妇无套内谢久久久久 | 97精品人妻一区二区三区香蕉 | 日韩av激情在线观看 | 日韩亚洲欧美中文高清在线 | 久久成人a毛片免费观看网站 | 激情爆乳一区二区三区 | 国产99久久精品一区二区 | 99在线 | 亚洲 | 99久久久无码国产aaa精品 | 亚洲综合伊人久久大杳蕉 | 四虎影视成人永久免费观看视频 | 熟妇人妻无乱码中文字幕 | 女高中生第一次破苞av | 久久精品一区二区三区四区 | 亚洲中文字幕无码中文字在线 | 亚洲国产精品美女久久久久 | 亚洲码国产精品高潮在线 | 免费国产黄网站在线观看 | 麻豆国产97在线 | 欧洲 | 自拍偷自拍亚洲精品10p | 无码人妻黑人中文字幕 | 一本精品99久久精品77 | 中文精品无码中文字幕无码专区 | 欧美人与禽zoz0性伦交 | 免费中文字幕日韩欧美 | 久久久精品国产sm最大网站 | 亚洲国产精品毛片av不卡在线 | 97se亚洲精品一区 | 国产av久久久久精东av | 在线精品国产一区二区三区 | 国产精品无码mv在线观看 | 日韩无套无码精品 | 久久久婷婷五月亚洲97号色 | 亚洲精品无码国产 | 无码国模国产在线观看 | 内射爽无广熟女亚洲 | 久久久久99精品成人片 | 欧洲熟妇色 欧美 | 一本久道久久综合狠狠爱 | 伊人久久大香线蕉av一区二区 | 亚洲熟熟妇xxxx | 国产成人综合美国十次 | 98国产精品综合一区二区三区 | 亚洲一区二区三区 | 天堂а√在线中文在线 | 天天摸天天碰天天添 | 少妇一晚三次一区二区三区 | 国内精品人妻无码久久久影院蜜桃 | 日韩人妻无码中文字幕视频 | 熟女少妇人妻中文字幕 | 2020最新国产自产精品 | 性史性农村dvd毛片 | 人人澡人人透人人爽 | 任你躁在线精品免费 | 一区二区传媒有限公司 | 老司机亚洲精品影院 | 无码国产色欲xxxxx视频 | 青青青爽视频在线观看 | yw尤物av无码国产在线观看 | 色婷婷久久一区二区三区麻豆 | 高中生自慰www网站 | 精品人妻av区 | 国产av一区二区三区最新精品 | 久久精品国产99精品亚洲 | 欧美人与动性行为视频 | 熟妇人妻激情偷爽文 | 亚洲精品久久久久avwww潮水 | 人人爽人人澡人人高潮 | 又紧又大又爽精品一区二区 | 无码av最新清无码专区吞精 | 激情综合激情五月俺也去 | 一区二区传媒有限公司 | 久久99国产综合精品 | 亚洲精品成人福利网站 | 无码精品国产va在线观看dvd | 久久久久人妻一区精品色欧美 | 精品亚洲韩国一区二区三区 | 久久久久久a亚洲欧洲av冫 | 国产av一区二区精品久久凹凸 | 纯爱无遮挡h肉动漫在线播放 | 色综合久久久无码中文字幕 | 久久99精品久久久久久 | 免费人成在线视频无码 | 99久久婷婷国产综合精品青草免费 | 久久 国产 尿 小便 嘘嘘 | 成在人线av无码免费 | 大地资源网第二页免费观看 | 无码人妻精品一区二区三区下载 | 国产精品99久久精品爆乳 | 色综合久久中文娱乐网 | 97夜夜澡人人爽人人喊中国片 | 欧美性猛交内射兽交老熟妇 | 1000部夫妻午夜免费 | 精品成在人线av无码免费看 | 日本精品久久久久中文字幕 | 思思久久99热只有频精品66 | 国产精品久久国产三级国 | 精品久久久无码人妻字幂 | 国色天香社区在线视频 | 亚洲精品成a人在线观看 | 欧美性生交活xxxxxdddd | 久久久精品欧美一区二区免费 | 国产精品-区区久久久狼 | 一本久道久久综合婷婷五月 | 中文字幕精品av一区二区五区 | 精品国产国产综合精品 | 人人妻人人澡人人爽人人精品 | 成人免费视频在线观看 | 久久zyz资源站无码中文动漫 | 国产精品-区区久久久狼 | 欧美肥老太牲交大战 | 97夜夜澡人人双人人人喊 | av无码电影一区二区三区 | 日本xxxx色视频在线观看免费 | 麻豆果冻传媒2021精品传媒一区下载 | 精品国产一区av天美传媒 | 国产乱人伦偷精品视频 | 小鲜肉自慰网站xnxx | 亚洲天堂2017无码中文 | 在线播放免费人成毛片乱码 | 精品人妻中文字幕有码在线 | 少妇无码一区二区二三区 | 国产偷自视频区视频 | 国产绳艺sm调教室论坛 | 亚洲欧洲中文日韩av乱码 | 最新国产乱人伦偷精品免费网站 | 扒开双腿疯狂进出爽爽爽视频 | 亚洲熟妇色xxxxx欧美老妇y | 狠狠色噜噜狠狠狠狠7777米奇 | 亚洲人交乣女bbw | 无码人中文字幕 | 在线播放无码字幕亚洲 | 亚洲阿v天堂在线 | 麻豆av传媒蜜桃天美传媒 | 初尝人妻少妇中文字幕 | 亚洲国产欧美日韩精品一区二区三区 | 性生交大片免费看女人按摩摩 | 大地资源网第二页免费观看 | 久久午夜无码鲁丝片秋霞 | 久久精品国产日本波多野结衣 | 亚洲а∨天堂久久精品2021 | 丝袜足控一区二区三区 | 国产真人无遮挡作爱免费视频 | 在线观看国产午夜福利片 | 青青草原综合久久大伊人精品 | 狠狠综合久久久久综合网 | 伊人色综合久久天天小片 | 人人爽人人爽人人片av亚洲 | 亚洲欧美国产精品专区久久 | 久久综合九色综合97网 | 曰本女人与公拘交酡免费视频 | 精品欧洲av无码一区二区三区 | 欧美国产日韩久久mv | 午夜福利一区二区三区在线观看 | 亚洲色无码一区二区三区 | 亚洲无人区一区二区三区 | 久精品国产欧美亚洲色aⅴ大片 | 在教室伦流澡到高潮hnp视频 | 亚洲国产综合无码一区 | 无码人妻精品一区二区三区下载 | 久久99精品国产麻豆蜜芽 | 美女毛片一区二区三区四区 | 国产片av国语在线观看 | 国产va免费精品观看 | 人人妻人人澡人人爽精品欧美 | 少妇激情av一区二区 | 色一情一乱一伦一区二区三欧美 | 欧美熟妇另类久久久久久多毛 | 在线观看国产一区二区三区 | 亚洲色欲色欲天天天www | 中文字幕无码免费久久9一区9 | 亚洲自偷自拍另类第1页 | 黑人巨大精品欧美一区二区 | 青青草原综合久久大伊人精品 | 久久久婷婷五月亚洲97号色 | 国产亲子乱弄免费视频 | 男人的天堂av网站 | 日日碰狠狠丁香久燥 | 亚洲国产午夜精品理论片 | 色婷婷综合中文久久一本 | 国产又爽又黄又刺激的视频 | 欧美日本日韩 | 色综合久久久无码网中文 | 成人综合网亚洲伊人 | 最近中文2019字幕第二页 | 国产成人综合色在线观看网站 | 亚洲国产精品一区二区美利坚 | 欧美人与动性行为视频 | 精品夜夜澡人妻无码av蜜桃 | 久久天天躁夜夜躁狠狠 | 亚洲欧美精品aaaaaa片 | 亚洲一区二区三区含羞草 | 露脸叫床粗话东北少妇 | 中文字幕中文有码在线 | 偷窥村妇洗澡毛毛多 | a国产一区二区免费入口 | 国产一区二区三区精品视频 | 精品成在人线av无码免费看 | 国产精品第一区揄拍无码 | 国产热a欧美热a在线视频 | 国産精品久久久久久久 | 爽爽影院免费观看 | 国产精品办公室沙发 | a国产一区二区免费入口 | 精品厕所偷拍各类美女tp嘘嘘 | 十八禁视频网站在线观看 | 亚洲无人区午夜福利码高清完整版 | 亚洲欧美精品伊人久久 | 呦交小u女精品视频 | 久久久www成人免费毛片 | 国产成人综合美国十次 | 国产人成高清在线视频99最全资源 | 亚洲熟悉妇女xxx妇女av | 国产女主播喷水视频在线观看 | 精品厕所偷拍各类美女tp嘘嘘 | 免费观看又污又黄的网站 | av无码电影一区二区三区 | 成人动漫在线观看 | 亚洲精品成人福利网站 | 欧美色就是色 | 亚洲精品综合一区二区三区在线 | 亚洲热妇无码av在线播放 | 无码一区二区三区在线观看 | 免费国产黄网站在线观看 | 欧美老妇交乱视频在线观看 | 青草青草久热国产精品 | 日韩人妻系列无码专区 | 欧美阿v高清资源不卡在线播放 | 久久久精品人妻久久影视 | 精品日本一区二区三区在线观看 | 永久免费观看国产裸体美女 | 奇米影视888欧美在线观看 | 少妇无码吹潮 | 99视频精品全部免费免费观看 | 久久精品无码一区二区三区 | 亚洲乱码日产精品bd | 一本大道伊人av久久综合 | 国产乱码精品一品二品 | 日韩成人一区二区三区在线观看 | 国产xxx69麻豆国语对白 | 欧美日韩亚洲国产精品 | 色综合久久中文娱乐网 | 亚洲无人区午夜福利码高清完整版 | 又色又爽又黄的美女裸体网站 | 男女猛烈xx00免费视频试看 | 亚洲中文字幕无码一久久区 | 国产精品99爱免费视频 | av无码电影一区二区三区 | 国产精品第一国产精品 | 久久精品国产99精品亚洲 | 欧美丰满少妇xxxx性 | 欧美亚洲日韩国产人成在线播放 | 欧美丰满熟妇xxxx性ppx人交 | 精品国偷自产在线 | 97夜夜澡人人爽人人喊中国片 | 国产人妖乱国产精品人妖 | 中国女人内谢69xxxxxa片 | 国产亚洲精品久久久久久 | 白嫩日本少妇做爰 | 国精品人妻无码一区二区三区蜜柚 | 色婷婷香蕉在线一区二区 | 综合激情五月综合激情五月激情1 | 国产精品手机免费 | 国语精品一区二区三区 | 大屁股大乳丰满人妻 | 好男人www社区 | 天堂а√在线中文在线 | 亚洲阿v天堂在线 | 天堂亚洲2017在线观看 | 亚洲精品午夜国产va久久成人 | a片免费视频在线观看 | 人妻少妇精品无码专区动漫 | 中文精品无码中文字幕无码专区 | 欧美日韩一区二区综合 | 久久久久久久久蜜桃 | 欧美喷潮久久久xxxxx | 六月丁香婷婷色狠狠久久 | 久久精品人人做人人综合试看 | 亚洲中文字幕久久无码 | 嫩b人妻精品一区二区三区 | 亚洲人亚洲人成电影网站色 | 99re在线播放 | 嫩b人妻精品一区二区三区 | 色偷偷人人澡人人爽人人模 | 人人妻人人澡人人爽人人精品 | 麻花豆传媒剧国产免费mv在线 | 欧美老人巨大xxxx做受 | 人人爽人人澡人人人妻 | 精品久久久中文字幕人妻 | 国产亲子乱弄免费视频 | 又粗又大又硬又长又爽 | 少妇人妻大乳在线视频 | 欧美兽交xxxx×视频 | 久久久久av无码免费网 | 亚洲熟妇色xxxxx欧美老妇 | 欧美三级a做爰在线观看 | 香港三级日本三级妇三级 | 亚洲成av人在线观看网址 | 99国产精品白浆在线观看免费 | 国产亚洲精品精品国产亚洲综合 | 国产亚洲精品精品国产亚洲综合 | 国产片av国语在线观看 | 国产在线精品一区二区三区直播 | 久久久久久久人妻无码中文字幕爆 | 亚洲乱码中文字幕在线 | 麻豆精品国产精华精华液好用吗 | 欧美人与禽猛交狂配 | 色五月丁香五月综合五月 | 东京一本一道一二三区 | 国产精品对白交换视频 | 粗大的内捧猛烈进出视频 | 精品久久久中文字幕人妻 | 国产一精品一av一免费 | 我要看www免费看插插视频 | 精品人妻中文字幕有码在线 | 天干天干啦夜天干天2017 | 精品国偷自产在线 | 夜夜躁日日躁狠狠久久av | 久久www免费人成人片 | 国产网红无码精品视频 | 澳门永久av免费网站 | 性欧美牲交在线视频 | 无码精品国产va在线观看dvd | 久久精品国产99久久6动漫 | 亚洲成a人片在线观看无码 | 日本又色又爽又黄的a片18禁 | 欧美日韩在线亚洲综合国产人 | 国产精品无套呻吟在线 | 成人三级无码视频在线观看 | 成人动漫在线观看 | 未满小14洗澡无码视频网站 | 亚洲中文字幕乱码av波多ji | 四虎影视成人永久免费观看视频 | 亚洲欧美日韩成人高清在线一区 | 亚洲中文字幕成人无码 | 久久久久久亚洲精品a片成人 | 国内精品久久久久久中文字幕 | 亚洲乱码日产精品bd | 国产又粗又硬又大爽黄老大爷视 | 国产无遮挡吃胸膜奶免费看 | 人妻少妇精品久久 | 在线精品国产一区二区三区 | 国产黄在线观看免费观看不卡 | 久久亚洲国产成人精品性色 | 国产高清不卡无码视频 | 55夜色66夜色国产精品视频 | 精品国精品国产自在久国产87 | 狠狠躁日日躁夜夜躁2020 | 国产极品美女高潮无套在线观看 | 极品嫩模高潮叫床 | 四虎4hu永久免费 | 亚洲综合在线一区二区三区 | 一本久久a久久精品vr综合 | 日本大香伊一区二区三区 | 欧洲欧美人成视频在线 | 亚洲成a人片在线观看无码3d | 青草青草久热国产精品 | 国产精品久久久午夜夜伦鲁鲁 | 小sao货水好多真紧h无码视频 | 波多野结衣乳巨码无在线观看 | 日韩人妻少妇一区二区三区 | 性色av无码免费一区二区三区 | 免费国产成人高清在线观看网站 | 欧美刺激性大交 | 天天综合网天天综合色 | 青青草原综合久久大伊人精品 | 久久国产精品偷任你爽任你 | 午夜男女很黄的视频 | 少妇性荡欲午夜性开放视频剧场 | 亚洲熟妇自偷自拍另类 | 岛国片人妻三上悠亚 | 国产偷自视频区视频 | 欧美三级a做爰在线观看 | 日日碰狠狠躁久久躁蜜桃 | 性开放的女人aaa片 | 一二三四在线观看免费视频 | 少妇人妻av毛片在线看 | 一二三四社区在线中文视频 | 一本色道久久综合亚洲精品不卡 | 性生交大片免费看l | 国产麻豆精品精东影业av网站 | 暴力强奷在线播放无码 | 国产亚洲精品久久久久久 | 99久久亚洲精品无码毛片 | 97久久超碰中文字幕 | 久久精品国产日本波多野结衣 | 亚洲综合色区中文字幕 | 97久久精品无码一区二区 | 亚洲熟熟妇xxxx | 日日躁夜夜躁狠狠躁 | 日本大香伊一区二区三区 | av在线亚洲欧洲日产一区二区 | 水蜜桃亚洲一二三四在线 | 久久久久久国产精品无码下载 | 久久久中文久久久无码 | 精品国产福利一区二区 | 无码福利日韩神码福利片 | 99久久无码一区人妻 | 亚洲乱码日产精品bd | 国产又粗又硬又大爽黄老大爷视 | 999久久久国产精品消防器材 | 久久精品人人做人人综合 | 女人色极品影院 | 日本熟妇大屁股人妻 | 秋霞成人午夜鲁丝一区二区三区 | 骚片av蜜桃精品一区 | 精品国产麻豆免费人成网站 | 欧美精品无码一区二区三区 | 内射巨臀欧美在线视频 | 色欲av亚洲一区无码少妇 | 成人精品视频一区二区三区尤物 | 牲交欧美兽交欧美 | 亚洲综合无码一区二区三区 | 久久久久久久久888 | 大屁股大乳丰满人妻 | 玩弄中年熟妇正在播放 | 97精品人妻一区二区三区香蕉 | 日本精品人妻无码77777 天堂一区人妻无码 | 无码人妻丰满熟妇区五十路百度 | 久久国产精品偷任你爽任你 | 午夜嘿嘿嘿影院 | 性欧美熟妇videofreesex | 亚洲码国产精品高潮在线 | www国产亚洲精品久久久日本 | 麻豆国产丝袜白领秘书在线观看 | 亚洲七七久久桃花影院 | 国产精品久久久久久久9999 | 午夜理论片yy44880影院 | 亚洲人成影院在线无码按摩店 | 久久国产精品_国产精品 | 丰满少妇高潮惨叫视频 | 亚洲色无码一区二区三区 | 成人免费视频在线观看 | 久久99精品国产.久久久久 | 亚洲国产精品久久人人爱 | 国产精品18久久久久久麻辣 | 永久免费观看美女裸体的网站 | 久久亚洲a片com人成 | 网友自拍区视频精品 | 偷窥村妇洗澡毛毛多 | 免费人成在线观看网站 | 日本护士xxxxhd少妇 | 国产熟妇另类久久久久 | 欧美激情综合亚洲一二区 | 88国产精品欧美一区二区三区 | 99久久人妻精品免费二区 | 亚洲综合伊人久久大杳蕉 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 成 人影片 免费观看 | 成人女人看片免费视频放人 | 成人一在线视频日韩国产 | 国产精品久久久av久久久 | 精品欧洲av无码一区二区三区 | 欧美日韩综合一区二区三区 | 四虎国产精品一区二区 | 久久伊人色av天堂九九小黄鸭 | 中文字幕人妻无码一区二区三区 | 精品无人国产偷自产在线 | 2020久久超碰国产精品最新 | 亚洲日韩一区二区 | 妺妺窝人体色www婷婷 | 国产高清av在线播放 | 日本乱人伦片中文三区 | 中文无码伦av中文字幕 | 国产熟妇另类久久久久 | 久久zyz资源站无码中文动漫 | 国产精品视频免费播放 | 又色又爽又黄的美女裸体网站 | 牲交欧美兽交欧美 | 亚洲另类伦春色综合小说 | 国产深夜福利视频在线 | 日本精品久久久久中文字幕 | 永久免费精品精品永久-夜色 | 亚洲大尺度无码无码专区 | 久久综合色之久久综合 | 色婷婷av一区二区三区之红樱桃 | 亚洲爆乳精品无码一区二区三区 | 成年女人永久免费看片 | 在线成人www免费观看视频 | 亚洲成av人片在线观看无码不卡 | 少妇无套内谢久久久久 | 国产成人无码一二三区视频 | 亚洲精品一区二区三区四区五区 | 精品偷自拍另类在线观看 | 国产免费无码一区二区视频 | 精品一区二区三区波多野结衣 | 亚洲午夜福利在线观看 | 狠狠色噜噜狠狠狠狠7777米奇 | 国产一区二区三区精品视频 | 久久99精品久久久久久动态图 | 国产精品成人av在线观看 | 狂野欧美性猛xxxx乱大交 | 国产亚洲精品久久久久久大师 | 男人的天堂2018无码 | 国产av剧情md精品麻豆 | 日本精品人妻无码免费大全 | 精品一区二区不卡无码av | 久久国产劲爆∧v内射 | 久久久久亚洲精品男人的天堂 | 精品无码成人片一区二区98 | 男女下面进入的视频免费午夜 | 一区二区三区乱码在线 | 欧洲 | 久久国产精品精品国产色婷婷 | 国产精品久久久久影院嫩草 | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲小说图区综合在线 | 亚洲色大成网站www | 婷婷六月久久综合丁香 | 亚洲熟妇色xxxxx欧美老妇y | 人人妻人人藻人人爽欧美一区 | 夜精品a片一区二区三区无码白浆 | 亚洲色大成网站www | 99精品无人区乱码1区2区3区 | a片在线免费观看 | 国产黄在线观看免费观看不卡 | 丁香啪啪综合成人亚洲 | 特级做a爰片毛片免费69 | 自拍偷自拍亚洲精品10p | 亚洲男女内射在线播放 | 国模大胆一区二区三区 | 欧美亚洲国产一区二区三区 | 久久精品无码一区二区三区 | 少妇被黑人到高潮喷出白浆 | 在线亚洲高清揄拍自拍一品区 | 老熟妇仑乱视频一区二区 | 色婷婷av一区二区三区之红樱桃 | 久久久婷婷五月亚洲97号色 | 无码精品人妻一区二区三区av | 日韩av无码一区二区三区 | 天下第一社区视频www日本 | 国语自产偷拍精品视频偷 | 东京一本一道一二三区 | 少妇一晚三次一区二区三区 | 波多野结衣av在线观看 | 国产精品99久久精品爆乳 | 精品久久久无码中文字幕 | 亚洲爆乳无码专区 | 日本成熟视频免费视频 | 少妇高潮喷潮久久久影院 | 日日天日日夜日日摸 | 少妇性l交大片欧洲热妇乱xxx | 亚洲 高清 成人 动漫 | 中文字幕av日韩精品一区二区 | 亚洲一区二区三区偷拍女厕 | 久久99精品久久久久久 | 日韩人妻系列无码专区 | 国产艳妇av在线观看果冻传媒 | 国产激情无码一区二区 | 久久精品国产99久久6动漫 | 日本欧美一区二区三区乱码 | 国产99久久精品一区二区 | 国产尤物精品视频 | 波多野结衣乳巨码无在线观看 | 亚洲成av人影院在线观看 | 国产婷婷色一区二区三区在线 | 99精品视频在线观看免费 | 午夜丰满少妇性开放视频 | 国产成人无码专区 | 久久无码专区国产精品s | 欧美人与动性行为视频 | 99久久精品午夜一区二区 | 丰满肥臀大屁股熟妇激情视频 | 2020久久香蕉国产线看观看 | 国产激情无码一区二区app | 亚洲熟妇自偷自拍另类 | 国产激情一区二区三区 | 福利一区二区三区视频在线观看 | 成人av无码一区二区三区 | 无套内谢老熟女 | 一个人看的www免费视频在线观看 | 国产精品理论片在线观看 | 中文字幕人妻无码一区二区三区 | 亚洲中文字幕在线观看 | 日日碰狠狠丁香久燥 | 亚洲一区二区三区在线观看网站 | 精品一区二区三区无码免费视频 | 国产精品无码mv在线观看 | 红桃av一区二区三区在线无码av | 亚洲人成无码网www | 国产精品毛片一区二区 | 亚洲中文字幕在线无码一区二区 | 国内精品人妻无码久久久影院蜜桃 | 免费人成网站视频在线观看 | 少妇人妻av毛片在线看 | 日韩亚洲欧美精品综合 | 精品无码av一区二区三区 | 国产精品va在线播放 | 女人被男人爽到呻吟的视频 | 人人澡人人妻人人爽人人蜜桃 | 4hu四虎永久在线观看 | 中文亚洲成a人片在线观看 | 国产精品无码一区二区三区不卡 | 亚洲欧美国产精品久久 | 高潮毛片无遮挡高清免费视频 | 久久国产36精品色熟妇 | 中文无码成人免费视频在线观看 | 老子影院午夜伦不卡 | 女人被男人躁得好爽免费视频 | 国产成人亚洲综合无码 | 蜜臀aⅴ国产精品久久久国产老师 | 日日摸天天摸爽爽狠狠97 | 午夜成人1000部免费视频 | 欧美人与善在线com | 国产在线精品一区二区三区直播 | 欧美xxxx黑人又粗又长 | 波多野结衣aⅴ在线 | 午夜无码人妻av大片色欲 | 亚洲中文字幕乱码av波多ji | 荡女精品导航 | 蜜桃视频插满18在线观看 | 骚片av蜜桃精品一区 | 中文无码精品a∨在线观看不卡 | 丰满人妻一区二区三区免费视频 | 人人妻人人澡人人爽欧美一区九九 | 国产无av码在线观看 | 少妇性l交大片欧洲热妇乱xxx | 国产精品人妻一区二区三区四 | 国产黑色丝袜在线播放 | 欧美成人午夜精品久久久 | 中文字幕无线码免费人妻 | 蜜桃臀无码内射一区二区三区 | 亚洲春色在线视频 | 欧美国产日韩亚洲中文 | 午夜精品久久久久久久 | 国产午夜福利100集发布 | 无码国产色欲xxxxx视频 | 亚洲精品一区二区三区婷婷月 | 欧美亚洲日韩国产人成在线播放 | 亚洲精品中文字幕 | 麻豆蜜桃av蜜臀av色欲av | 波多野结衣av一区二区全免费观看 | 中文字幕 亚洲精品 第1页 | 无码人妻av免费一区二区三区 | 亚洲精品午夜无码电影网 | 久精品国产欧美亚洲色aⅴ大片 | 国产欧美熟妇另类久久久 | 成人无码影片精品久久久 | 亚洲中文字幕在线观看 | 成年美女黄网站色大免费全看 | 久久久久se色偷偷亚洲精品av | 久久久国产一区二区三区 | 国产婷婷色一区二区三区在线 | 草草网站影院白丝内射 | 久久精品国产日本波多野结衣 | 国产人成高清在线视频99最全资源 | 中文字幕人妻无码一夲道 | 未满成年国产在线观看 | 伊人久久大香线蕉午夜 | 美女黄网站人色视频免费国产 | 少妇激情av一区二区 | 麻花豆传媒剧国产免费mv在线 | 伦伦影院午夜理论片 | 麻豆精品国产精华精华液好用吗 | 老太婆性杂交欧美肥老太 | 久久亚洲中文字幕无码 | 无套内谢的新婚少妇国语播放 | 玩弄人妻少妇500系列视频 | 草草网站影院白丝内射 | 国产av久久久久精东av | 婷婷丁香六月激情综合啪 | 欧美性黑人极品hd | 亚洲毛片av日韩av无码 | 香蕉久久久久久av成人 | 国产又粗又硬又大爽黄老大爷视 | 任你躁国产自任一区二区三区 | 国产精品久久久久久亚洲影视内衣 | 中文字幕日韩精品一区二区三区 | 久久99精品国产.久久久久 | 丰满少妇女裸体bbw | 性做久久久久久久久 | 亚洲国产精品成人久久蜜臀 | 欧美人与牲动交xxxx | 亚洲午夜福利在线观看 | 午夜福利不卡在线视频 | 亚洲欧洲日本综合aⅴ在线 | 77777熟女视频在线观看 а天堂中文在线官网 | 强伦人妻一区二区三区视频18 | 成人三级无码视频在线观看 | 免费人成在线观看网站 | 中国女人内谢69xxxxxa片 | 色爱情人网站 | 国产精品.xx视频.xxtv | 国产成人无码av片在线观看不卡 | 国产乱人无码伦av在线a | 亚洲无人区一区二区三区 | 狂野欧美激情性xxxx | 国产成人综合色在线观看网站 | 人人妻人人澡人人爽欧美一区九九 | 久久久久免费精品国产 | 国产一精品一av一免费 | 久久久久亚洲精品男人的天堂 | 国产无套粉嫩白浆在线 | 亚洲人成无码网www | 人妻人人添人妻人人爱 | 精品夜夜澡人妻无码av蜜桃 | 亚洲欧美精品aaaaaa片 | 精品少妇爆乳无码av无码专区 | 国产激情艳情在线看视频 | 人人妻人人澡人人爽人人精品浪潮 | 少妇被粗大的猛进出69影院 | 国产色视频一区二区三区 | 国产成人无码午夜视频在线观看 | 香港三级日本三级妇三级 | 男女性色大片免费网站 | 美女毛片一区二区三区四区 | 久久综合给合久久狠狠狠97色 | 少女韩国电视剧在线观看完整 | 国产熟妇另类久久久久 | 无码帝国www无码专区色综合 | 免费网站看v片在线18禁无码 | 久久久久久av无码免费看大片 | 国产免费久久久久久无码 | 国产午夜精品一区二区三区嫩草 | 大屁股大乳丰满人妻 | 亚洲熟妇色xxxxx欧美老妇 | 久久熟妇人妻午夜寂寞影院 | 少妇被粗大的猛进出69影院 | 日本免费一区二区三区最新 | 亚洲伊人久久精品影院 | 荫蒂被男人添的好舒服爽免费视频 | 婷婷综合久久中文字幕蜜桃三电影 | 国产在线精品一区二区高清不卡 | 少妇一晚三次一区二区三区 | 97夜夜澡人人爽人人喊中国片 | 亚洲中文字幕无码中文字在线 | 学生妹亚洲一区二区 | 亚洲大尺度无码无码专区 | 国产在线精品一区二区三区直播 | 国产精品人人爽人人做我的可爱 | 国产精品对白交换视频 | 亚洲va欧美va天堂v国产综合 | 99精品国产综合久久久久五月天 | 精品无人国产偷自产在线 | 沈阳熟女露脸对白视频 | 人妻少妇被猛烈进入中文字幕 | 亚洲国产成人av在线观看 | 久久综合久久自在自线精品自 | 性做久久久久久久免费看 | 国产精品亚洲lv粉色 | 欧美三级不卡在线观看 | 亚洲日本va中文字幕 | 无码人妻丰满熟妇区毛片18 | 国产无遮挡吃胸膜奶免费看 | 激情内射亚州一区二区三区爱妻 | 国产亚洲视频中文字幕97精品 | 成人影院yy111111在线观看 | 亚洲日韩乱码中文无码蜜桃臀网站 | 精品一区二区三区波多野结衣 | 中文字幕人妻无码一区二区三区 | 亚洲日本va中文字幕 | 一个人免费观看的www视频 | 大肉大捧一进一出视频出来呀 | a国产一区二区免费入口 | 久久久www成人免费毛片 | 久久aⅴ免费观看 | 色婷婷av一区二区三区之红樱桃 | 红桃av一区二区三区在线无码av | 日本一卡二卡不卡视频查询 | 国产精品视频免费播放 | 99国产精品白浆在线观看免费 | 国产一区二区三区精品视频 | 欧美日韩一区二区三区自拍 | 国产无遮挡又黄又爽又色 | 久久久久免费精品国产 | 亚洲欧美色中文字幕在线 | 亚洲理论电影在线观看 | 色婷婷香蕉在线一区二区 | 大肉大捧一进一出好爽视频 | 久青草影院在线观看国产 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 国产深夜福利视频在线 | 少妇无码av无码专区在线观看 | 日本又色又爽又黄的a片18禁 | 国产亚洲欧美日韩亚洲中文色 | 中文字幕人妻丝袜二区 | 亚洲自偷自偷在线制服 | 欧美老人巨大xxxx做受 | 亚洲人成网站在线播放942 | 国产 精品 自在自线 | 久久久久免费看成人影片 | 亚洲欧美精品伊人久久 | 国产乱子伦视频在线播放 | 成人无码精品1区2区3区免费看 | 无遮无挡爽爽免费视频 | 国产亚洲精品久久久ai换 | 国产精品va在线观看无码 | 国产精品福利视频导航 | 国产成人精品必看 | 色窝窝无码一区二区三区色欲 | 日日麻批免费40分钟无码 | 精品无码国产自产拍在线观看蜜 | 国产激情精品一区二区三区 | 国产精品igao视频网 | 精品乱码久久久久久久 | av小次郎收藏 | 色婷婷综合激情综在线播放 | 欧美日韩人成综合在线播放 | 亚洲精品一区二区三区在线 | 少妇人妻偷人精品无码视频 | 国产99久久精品一区二区 | 99久久久无码国产精品免费 | 熟女少妇人妻中文字幕 | 丝袜美腿亚洲一区二区 | 欧美精品在线观看 | 国产黑色丝袜在线播放 | 中文字幕日产无线码一区 | 国内丰满熟女出轨videos | av无码久久久久不卡免费网站 | 中文毛片无遮挡高清免费 | 午夜理论片yy44880影院 | 人人爽人人爽人人片av亚洲 | 色综合久久久无码网中文 | 永久免费观看国产裸体美女 | 无码国产乱人伦偷精品视频 | 亚洲一区av无码专区在线观看 | 天堂久久天堂av色综合 | 思思久久99热只有频精品66 | 人人妻人人澡人人爽欧美一区 | 亚洲欧美国产精品专区久久 | 久久人人爽人人爽人人片ⅴ | 欧美日韩在线亚洲综合国产人 | 国产精品美女久久久网av | 国产一区二区不卡老阿姨 | 中文无码精品a∨在线观看不卡 | 高中生自慰www网站 | 国产综合色产在线精品 | 中文字幕乱码中文乱码51精品 | 中文字幕无码免费久久99 | 成人精品视频一区二区三区尤物 | 野外少妇愉情中文字幕 | 亚洲熟妇色xxxxx欧美老妇y | 福利一区二区三区视频在线观看 | 亚洲春色在线视频 | 国产亚洲欧美在线专区 | 欧美精品国产综合久久 | 无遮挡国产高潮视频免费观看 | 伊在人天堂亚洲香蕉精品区 | 亚洲中文字幕无码中文字在线 | 蜜臀aⅴ国产精品久久久国产老师 | 久久精品女人天堂av免费观看 | 在线a亚洲视频播放在线观看 | 亚洲人成网站在线播放942 | aⅴ在线视频男人的天堂 | 亚洲欧美日韩成人高清在线一区 | 亚洲色欲色欲天天天www | 精品日本一区二区三区在线观看 | 丰满人妻翻云覆雨呻吟视频 | 国产成人亚洲综合无码 | 在线精品国产一区二区三区 | 成人免费无码大片a毛片 | 欧美丰满熟妇xxxx性ppx人交 | 中文字幕无码日韩欧毛 | 一本色道久久综合亚洲精品不卡 | 正在播放老肥熟妇露脸 | 理论片87福利理论电影 | 婷婷五月综合激情中文字幕 | 欧美xxxx黑人又粗又长 | 久久久久99精品成人片 | 青青草原综合久久大伊人精品 | 玩弄中年熟妇正在播放 | 娇妻被黑人粗大高潮白浆 | 久久 国产 尿 小便 嘘嘘 | 国产精品嫩草久久久久 | 奇米影视888欧美在线观看 | 男女超爽视频免费播放 | 久久精品国产日本波多野结衣 | 久久国产精品偷任你爽任你 | 国产免费无码一区二区视频 | 人妻少妇被猛烈进入中文字幕 | 大色综合色综合网站 | 午夜精品久久久内射近拍高清 | 欧美人与禽zoz0性伦交 | 久久人人爽人人爽人人片ⅴ | 国产免费久久久久久无码 | 少妇性荡欲午夜性开放视频剧场 | 国产精品毛片一区二区 | 极品嫩模高潮叫床 | 一本久道久久综合狠狠爱 | 午夜嘿嘿嘿影院 | 欧美性黑人极品hd | 国产亚洲美女精品久久久2020 | 乱人伦人妻中文字幕无码 | 熟妇女人妻丰满少妇中文字幕 | 亚洲综合无码久久精品综合 | 亚洲日本va午夜在线电影 | 男女性色大片免费网站 | 亚洲日韩精品欧美一区二区 | 又大又紧又粉嫩18p少妇 | 亚洲午夜久久久影院 | www一区二区www免费 | 国产亚洲精品久久久久久久久动漫 | 女人被男人躁得好爽免费视频 | 国产综合色产在线精品 | 少妇性荡欲午夜性开放视频剧场 | 成熟妇人a片免费看网站 | 国产内射老熟女aaaa | 国产美女极度色诱视频www | 欧美性猛交xxxx富婆 | 欧美老人巨大xxxx做受 | 亚洲区小说区激情区图片区 | 久久亚洲日韩精品一区二区三区 | 亚洲一区二区三区播放 | 麻豆人妻少妇精品无码专区 | 亚洲男人av香蕉爽爽爽爽 | 免费乱码人妻系列无码专区 | 亚洲国产成人av在线观看 | 亚洲色欲久久久综合网东京热 | 国产亚洲精品久久久久久大师 | 男女超爽视频免费播放 | 狠狠噜狠狠狠狠丁香五月 | 欧美一区二区三区 | 日韩少妇白浆无码系列 | 日产精品99久久久久久 | 欧洲极品少妇 | 中文字幕乱码人妻二区三区 | 永久免费观看国产裸体美女 | 中文字幕无码人妻少妇免费 | 美女毛片一区二区三区四区 | 国产国产精品人在线视 | 99久久99久久免费精品蜜桃 | 国产成人精品久久亚洲高清不卡 | 国产在线精品一区二区高清不卡 | 亚洲中文字幕va福利 | 亚洲s码欧洲m码国产av | 曰本女人与公拘交酡免费视频 | 国产激情无码一区二区app | 色欲综合久久中文字幕网 | 乌克兰少妇xxxx做受 | 久久久久久亚洲精品a片成人 | 日日摸天天摸爽爽狠狠97 | 伊人久久大香线焦av综合影院 | 国产深夜福利视频在线 | 免费无码肉片在线观看 | 人妻无码αv中文字幕久久琪琪布 | 精品国产一区二区三区四区 | 国产精品毛多多水多 | 粗大的内捧猛烈进出视频 | 国产香蕉尹人综合在线观看 | 鲁一鲁av2019在线 | 欧美熟妇另类久久久久久不卡 | 午夜福利一区二区三区在线观看 | 成人一区二区免费视频 | 国产区女主播在线观看 | 人人妻人人藻人人爽欧美一区 | 又大又紧又粉嫩18p少妇 | 少妇性l交大片欧洲热妇乱xxx | 一本久道久久综合狠狠爱 | 欧美国产日产一区二区 | 少妇性l交大片欧洲热妇乱xxx | 久青草影院在线观看国产 | 欧美日韩人成综合在线播放 | 欧美性生交活xxxxxdddd | 欧美人与动性行为视频 | 成 人 免费观看网站 | 黑人大群体交免费视频 | 装睡被陌生人摸出水好爽 | 欧美午夜特黄aaaaaa片 | 久久精品成人欧美大片 | 国内综合精品午夜久久资源 | 国产成人精品无码播放 | 国产偷国产偷精品高清尤物 | 亚洲综合在线一区二区三区 | 黑森林福利视频导航 | 欧美兽交xxxx×视频 | 内射老妇bbwx0c0ck | 久久综合香蕉国产蜜臀av | 国内精品久久久久久中文字幕 | 日日天日日夜日日摸 | 亚洲精品国产第一综合99久久 | 国产av无码专区亚洲awww | 国产午夜福利亚洲第一 | 欧美日韩久久久精品a片 | 国产高潮视频在线观看 | 人妻天天爽夜夜爽一区二区 | 性欧美videos高清精品 | 精品欧美一区二区三区久久久 | 伊人久久婷婷五月综合97色 | 国产免费久久精品国产传媒 | 狠狠色噜噜狠狠狠7777奇米 | 精品一二三区久久aaa片 | 婷婷综合久久中文字幕蜜桃三电影 | 国精产品一品二品国精品69xx | 国产亚av手机在线观看 | 俺去俺来也在线www色官网 | 无码精品国产va在线观看dvd | 日本高清一区免费中文视频 | 中文久久乱码一区二区 | 久久人人爽人人爽人人片av高清 | 最新版天堂资源中文官网 | 精品无码成人片一区二区98 | 黑人巨大精品欧美黑寡妇 | 牲欲强的熟妇农村老妇女 | 熟女体下毛毛黑森林 | 亚洲国产精品一区二区美利坚 | 国产av一区二区三区最新精品 | 国产精品内射视频免费 | 午夜福利一区二区三区在线观看 | 伊人久久婷婷五月综合97色 | 女人被男人爽到呻吟的视频 | 国产精品人人爽人人做我的可爱 | 久久久久久久人妻无码中文字幕爆 | 台湾无码一区二区 | 国产乱人伦av在线无码 | 国产口爆吞精在线视频 | √天堂资源地址中文在线 | 中文字幕乱码人妻无码久久 | 精品午夜福利在线观看 | 一本大道久久东京热无码av | 欧洲熟妇色 欧美 | 国产精品内射视频免费 | 老司机亚洲精品影院无码 | 熟妇女人妻丰满少妇中文字幕 | 日韩av激情在线观看 | 亚洲伊人久久精品影院 | 少妇无码吹潮 | 中文无码成人免费视频在线观看 | 人妻少妇被猛烈进入中文字幕 | 精品成在人线av无码免费看 | 精品国精品国产自在久国产87 | 国产亚洲精品久久久久久久 | 玩弄人妻少妇500系列视频 | 欧美丰满熟妇xxxx | 精品国精品国产自在久国产87 | 国产麻豆精品一区二区三区v视界 | 久久精品99久久香蕉国产色戒 | 性欧美大战久久久久久久 | aⅴ亚洲 日韩 色 图网站 播放 | 亚洲国产一区二区三区在线观看 | 亚洲精品一区二区三区大桥未久 | 性史性农村dvd毛片 | 国产激情无码一区二区app | 亚洲精品久久久久中文第一幕 | 少妇厨房愉情理9仑片视频 | 亚洲男人av香蕉爽爽爽爽 | 国产精品成人av在线观看 | 高清不卡一区二区三区 | 国产两女互慰高潮视频在线观看 | 久久午夜无码鲁丝片 | 成人无码视频在线观看网站 | 日本一区二区三区免费播放 | 一本久久a久久精品vr综合 | 日欧一片内射va在线影院 | 1000部啪啪未满十八勿入下载 | 中文字幕乱码亚洲无线三区 | 自拍偷自拍亚洲精品被多人伦好爽 | 狠狠cao日日穞夜夜穞av | 精品久久久久久亚洲精品 | 美女极度色诱视频国产 | 3d动漫精品啪啪一区二区中 | 天天摸天天碰天天添 | 国内老熟妇对白xxxxhd | 日韩人妻系列无码专区 | 蜜臀aⅴ国产精品久久久国产老师 | 99久久久国产精品无码免费 | 国产午夜视频在线观看 | 久久精品国产大片免费观看 | 4hu四虎永久在线观看 | 狠狠色噜噜狠狠狠7777奇米 | 久久综合色之久久综合 | 午夜福利试看120秒体验区 | 99麻豆久久久国产精品免费 | 色诱久久久久综合网ywww | 亚洲人成影院在线观看 | a在线观看免费网站大全 | 大胆欧美熟妇xx | 精品少妇爆乳无码av无码专区 | 国产人妻久久精品二区三区老狼 | 国产后入清纯学生妹 | 天堂无码人妻精品一区二区三区 | 搡女人真爽免费视频大全 | 欧美日韩一区二区综合 | 亚洲 欧美 激情 小说 另类 | 4hu四虎永久在线观看 | 黑森林福利视频导航 | 国产精品嫩草久久久久 | 波多野结衣乳巨码无在线观看 | 99久久无码一区人妻 | 久久国产精品萌白酱免费 | 日本精品少妇一区二区三区 | 亚洲精品国产精品乱码不卡 | 亚洲国产精品一区二区美利坚 | 老头边吃奶边弄进去呻吟 | 国产欧美精品一区二区三区 | 狠狠躁日日躁夜夜躁2020 | 久久亚洲精品中文字幕无男同 | 亚洲人成人无码网www国产 | 久久精品国产一区二区三区肥胖 | 午夜成人1000部免费视频 | 性色欲网站人妻丰满中文久久不卡 | 国产亚洲精品久久久久久 | 日韩成人一区二区三区在线观看 | 伊人久久大香线蕉av一区二区 | 亚洲天堂2017无码中文 | 久久久久成人片免费观看蜜芽 | 亚洲日本va午夜在线电影 | 日韩人妻无码中文字幕视频 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 亚洲中文字幕在线无码一区二区 | 日日摸天天摸爽爽狠狠97 | 天堂在线观看www | 亚洲国产综合无码一区 | 精品无码一区二区三区爱欲 | 久久午夜无码鲁丝片 | www国产亚洲精品久久久日本 | 久久久久久av无码免费看大片 | 丝袜足控一区二区三区 | 精品国产一区二区三区四区在线看 | 欧美国产亚洲日韩在线二区 | 高潮毛片无遮挡高清免费视频 | 99久久亚洲精品无码毛片 | 亚洲人交乣女bbw | 曰韩少妇内射免费播放 | 中文字幕日产无线码一区 | 大肉大捧一进一出视频出来呀 | 国产成人无码av一区二区 | 日本精品高清一区二区 | 中文字幕日韩精品一区二区三区 | 狠狠色色综合网站 | 亚洲理论电影在线观看 | 18精品久久久无码午夜福利 | 丰满岳乱妇在线观看中字无码 | 亚洲一区二区三区 | 精品一二三区久久aaa片 | 国产人妻久久精品二区三区老狼 | 青春草在线视频免费观看 | 丰满人妻翻云覆雨呻吟视频 | 一个人看的www免费视频在线观看 | 97久久精品无码一区二区 | 高潮毛片无遮挡高清免费 | 久久精品国产一区二区三区肥胖 | 欧美黑人性暴力猛交喷水 | 久久99精品国产.久久久久 | 日本成熟视频免费视频 | 娇妻被黑人粗大高潮白浆 | 欧美人与动性行为视频 | 国产亚洲精品久久久久久国模美 | 婷婷六月久久综合丁香 | 亚洲中文字幕无码一久久区 | 久久综合给合久久狠狠狠97色 | 亚洲 高清 成人 动漫 | 少妇厨房愉情理9仑片视频 | 久久久久成人片免费观看蜜芽 | 国语自产偷拍精品视频偷 | 欧美日本精品一区二区三区 | 国产av无码专区亚洲a∨毛片 | 久久久久久亚洲精品a片成人 | 国产精品自产拍在线观看 | 一本久道久久综合狠狠爱 | 一二三四在线观看免费视频 | 精品无码一区二区三区的天堂 | 久在线观看福利视频 | 亚洲成av人综合在线观看 | 无码免费一区二区三区 | 激情人妻另类人妻伦 | 无码乱肉视频免费大全合集 | 久久天天躁狠狠躁夜夜免费观看 | 成人无码精品一区二区三区 | 亚洲乱码日产精品bd | 国产明星裸体无码xxxx视频 | 18无码粉嫩小泬无套在线观看 | 日韩精品a片一区二区三区妖精 | 国产无遮挡又黄又爽免费视频 | 国产成人精品久久亚洲高清不卡 | 中文字幕乱妇无码av在线 | 丰满少妇弄高潮了www | 色五月五月丁香亚洲综合网 | 国产av剧情md精品麻豆 | 永久免费观看美女裸体的网站 | 色综合久久88色综合天天 | 正在播放东北夫妻内射 | 国产无av码在线观看 | 亚洲熟妇色xxxxx欧美老妇 | 精品人人妻人人澡人人爽人人 | 蜜桃无码一区二区三区 | 色综合久久网 | 亚洲日韩av一区二区三区中文 | 亚洲国产欧美在线成人 | 噜噜噜亚洲色成人网站 | 久久无码中文字幕免费影院蜜桃 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 少妇激情av一区二区 | 偷窥村妇洗澡毛毛多 | 又紧又大又爽精品一区二区 | 欧美熟妇另类久久久久久多毛 | 性做久久久久久久久 | 欧美自拍另类欧美综合图片区 | 色五月五月丁香亚洲综合网 | 午夜福利试看120秒体验区 | 亚洲日韩精品欧美一区二区 | 久久久精品国产sm最大网站 | 中文字幕av日韩精品一区二区 | 国产亚洲日韩欧美另类第八页 | 欧美熟妇另类久久久久久多毛 | 亚洲成av人综合在线观看 | 精品成人av一区二区三区 | 国产亚洲精品久久久ai换 | 亚洲综合伊人久久大杳蕉 | 1000部啪啪未满十八勿入下载 | 亚洲男人av香蕉爽爽爽爽 | 久久97精品久久久久久久不卡 | 国产成人无码专区 | 欧美喷潮久久久xxxxx | 人妻夜夜爽天天爽三区 | 国产av久久久久精东av | 国产精品.xx视频.xxtv | 学生妹亚洲一区二区 | 蜜桃无码一区二区三区 | 狠狠色丁香久久婷婷综合五月 | 国内揄拍国内精品少妇国语 | 日韩人妻无码中文字幕视频 | 国产真实夫妇视频 | 久久zyz资源站无码中文动漫 | 四虎永久在线精品免费网址 | 伊人久久大香线蕉午夜 | 欧洲美熟女乱又伦 | 思思久久99热只有频精品66 | 日产精品99久久久久久 | 久久无码中文字幕免费影院蜜桃 | 亚洲欧美精品伊人久久 | 又大又黄又粗又爽的免费视频 | 日本熟妇人妻xxxxx人hd | 麻豆果冻传媒2021精品传媒一区下载 | 荫蒂被男人添的好舒服爽免费视频 | 无码av免费一区二区三区试看 | 久久99精品国产.久久久久 | 久久午夜无码鲁丝片 | 麻豆国产人妻欲求不满 | 久久久久久久久蜜桃 | 国产97在线 | 亚洲 | 国产精品va在线播放 | 一本大道久久东京热无码av | 亚洲性无码av中文字幕 | 九九在线中文字幕无码 | 偷窥村妇洗澡毛毛多 | 亚洲国产精品美女久久久久 | 麻豆国产丝袜白领秘书在线观看 | 久久99久久99精品中文字幕 | 婷婷五月综合缴情在线视频 | 国内少妇偷人精品视频 | 久久国产36精品色熟妇 | 亚洲国产午夜精品理论片 | 精品久久综合1区2区3区激情 | 岛国片人妻三上悠亚 | 宝宝好涨水快流出来免费视频 | 99久久婷婷国产综合精品青草免费 | 国产精品久久久久9999小说 | 麻豆精品国产精华精华液好用吗 | 中文字幕无码人妻少妇免费 | 高潮毛片无遮挡高清免费视频 | 国产真实乱对白精彩久久 | 一个人看的视频www在线 | 欧美日本精品一区二区三区 | 免费看少妇作爱视频 | 国产电影无码午夜在线播放 | 国产精品第一区揄拍无码 | 欧美成人午夜精品久久久 | 中文精品无码中文字幕无码专区 | 欧美午夜特黄aaaaaa片 | 无码人妻丰满熟妇区五十路百度 | 国产人妻精品一区二区三区 | 正在播放老肥熟妇露脸 | 人妻aⅴ无码一区二区三区 | a国产一区二区免费入口 | 狠狠色噜噜狠狠狠狠7777米奇 | 久久精品一区二区三区四区 | 国产人成高清在线视频99最全资源 | 无码国产乱人伦偷精品视频 | 男人和女人高潮免费网站 | 男女猛烈xx00免费视频试看 | 超碰97人人射妻 | aa片在线观看视频在线播放 | 十八禁真人啪啪免费网站 | 精品无码国产自产拍在线观看蜜 | 18禁黄网站男男禁片免费观看 | 国产精品第一区揄拍无码 | 性色欲情网站iwww九文堂 | 国产欧美亚洲精品a | 日本饥渴人妻欲求不满 | 亚洲成a人一区二区三区 | 熟妇人妻中文av无码 | 成人三级无码视频在线观看 | 十八禁视频网站在线观看 | 青青青爽视频在线观看 | 欧洲美熟女乱又伦 | 国产欧美精品一区二区三区 | 人妻少妇被猛烈进入中文字幕 | 亚洲一区二区三区播放 | 日韩av激情在线观看 | 国产激情一区二区三区 | 女高中生第一次破苞av | 久久国产精品偷任你爽任你 | 丰满妇女强制高潮18xxxx | 激情五月综合色婷婷一区二区 | 亚洲国产欧美在线成人 | 天堂а√在线地址中文在线 | 精品无码一区二区三区爱欲 | 国产精品国产自线拍免费软件 | av在线亚洲欧洲日产一区二区 | 国产午夜亚洲精品不卡下载 | 成人女人看片免费视频放人 | 国产精品无码久久av | 高清无码午夜福利视频 | 熟妇女人妻丰满少妇中文字幕 | 夜夜高潮次次欢爽av女 | 樱花草在线社区www | 国产无av码在线观看 | 精品一区二区三区波多野结衣 | 亚洲自偷精品视频自拍 | 天天av天天av天天透 | 日韩亚洲欧美精品综合 | 男女性色大片免费网站 | 久久久久久a亚洲欧洲av冫 | 男女猛烈xx00免费视频试看 | 亚洲の无码国产の无码步美 | 午夜免费福利小电影 | 国产精品亚洲专区无码不卡 | 丰满少妇人妻久久久久久 | 国产精品亚洲专区无码不卡 | 国产精品无码成人午夜电影 | 中文字幕精品av一区二区五区 | 在线播放无码字幕亚洲 | 鲁一鲁av2019在线 | 国产精品毛多多水多 | 久久精品中文字幕大胸 | 亚洲一区二区三区国产精华液 | 婷婷五月综合激情中文字幕 | 两性色午夜视频免费播放 | 永久免费观看国产裸体美女 | 国产午夜无码精品免费看 | 国产精品久久国产三级国 | 久久精品丝袜高跟鞋 | 亚洲天堂2017无码中文 | 无码精品人妻一区二区三区av | 久久久亚洲欧洲日产国码αv | 国产精品va在线观看无码 | 黑人玩弄人妻中文在线 | 东京热男人av天堂 | 亚洲 激情 小说 另类 欧美 | 成人无码视频免费播放 | 亚洲精品国产第一综合99久久 | 在线亚洲高清揄拍自拍一品区 | 亚洲自偷自偷在线制服 | 久久久成人毛片无码 | 少妇激情av一区二区 | 免费国产成人高清在线观看网站 | 亚洲精品国产品国语在线观看 | 国产精品久久久久影院嫩草 | 国产精品高潮呻吟av久久4虎 | 日本一区二区更新不卡 | 日韩精品成人一区二区三区 | 欧美日韩综合一区二区三区 | 日本大乳高潮视频在线观看 | 国产女主播喷水视频在线观看 | 超碰97人人做人人爱少妇 | 白嫩日本少妇做爰 | 久久久成人毛片无码 | 欧美 丝袜 自拍 制服 另类 | 又色又爽又黄的美女裸体网站 | 国产精品美女久久久 | 成人精品视频一区二区三区尤物 | 亚洲日韩av一区二区三区四区 | 一本久久a久久精品亚洲 | 骚片av蜜桃精品一区 | 亚洲爆乳精品无码一区二区三区 | 国产精品亚洲综合色区韩国 | 蜜桃无码一区二区三区 | 蜜臀av无码人妻精品 | 无码人妻精品一区二区三区不卡 | 日韩亚洲欧美中文高清在线 | 久久精品国产99久久6动漫 | 国产9 9在线 | 中文 | 亚洲综合另类小说色区 | 久久国产自偷自偷免费一区调 | 女人被男人爽到呻吟的视频 | 中文字幕 亚洲精品 第1页 | 成人av无码一区二区三区 | 久久国产精品精品国产色婷婷 | 国产精品久久久久久亚洲毛片 | 亚洲无人区午夜福利码高清完整版 | 天天综合网天天综合色 | 中文字幕 人妻熟女 | 亚洲高清偷拍一区二区三区 | 亚洲精品久久久久久一区二区 | 国产suv精品一区二区五 | 99riav国产精品视频 | 国产精品人人妻人人爽 | 亚洲国产日韩a在线播放 | 久久久久免费看成人影片 | 精品偷自拍另类在线观看 | 日产精品99久久久久久 | 丁香花在线影院观看在线播放 | 在线观看免费人成视频 | 亚洲另类伦春色综合小说 | 性生交片免费无码看人 | 天天爽夜夜爽夜夜爽 | 亚洲国产午夜精品理论片 | 亚洲精品一区二区三区在线观看 | 国产在线精品一区二区高清不卡 | 国产亚洲人成a在线v网站 | 美女扒开屁股让男人桶 | 国产97色在线 | 免 | 国产成人综合美国十次 | 纯爱无遮挡h肉动漫在线播放 | 天下第一社区视频www日本 | 欧美第一黄网免费网站 | 久久97精品久久久久久久不卡 | 曰韩少妇内射免费播放 | 免费无码午夜福利片69 | 狠狠色丁香久久婷婷综合五月 | 久久久国产一区二区三区 | 2020久久超碰国产精品最新 | 麻花豆传媒剧国产免费mv在线 | 樱花草在线社区www | 亚洲一区二区三区四区 | 亚洲精品久久久久久久久久久 | 亚洲成av人片天堂网无码】 | 久久久中文字幕日本无吗 | 成人片黄网站色大片免费观看 | 鲁大师影院在线观看 | 男女作爱免费网站 | 99久久无码一区人妻 | 女人和拘做爰正片视频 | 国产艳妇av在线观看果冻传媒 | 免费无码av一区二区 | 欧洲vodafone精品性 | 免费国产成人高清在线观看网站 | 牲欲强的熟妇农村老妇女视频 | 未满成年国产在线观看 | 国产激情艳情在线看视频 | 国内精品人妻无码久久久影院蜜桃 | 亚洲中文字幕成人无码 | 免费网站看v片在线18禁无码 | 日本丰满护士爆乳xxxx | 国产成人一区二区三区在线观看 | 国产办公室秘书无码精品99 | 亚洲爆乳大丰满无码专区 | 亚洲成色www久久网站 | 国产明星裸体无码xxxx视频 | 国产小呦泬泬99精品 | 国产农村乱对白刺激视频 | 乱码午夜-极国产极内射 | 7777奇米四色成人眼影 | www国产精品内射老师 | 中文无码精品a∨在线观看不卡 | 国产极品美女高潮无套在线观看 | 小鲜肉自慰网站xnxx | 国产精品亚洲综合色区韩国 | 日产精品99久久久久久 | 97夜夜澡人人爽人人喊中国片 | 2020最新国产自产精品 | 女人被男人爽到呻吟的视频 | 欧美国产亚洲日韩在线二区 | 性色欲情网站iwww九文堂 | 三级4级全黄60分钟 | 激情内射亚州一区二区三区爱妻 | 偷窥日本少妇撒尿chinese | 狠狠色噜噜狠狠狠狠7777米奇 | 水蜜桃亚洲一二三四在线 | 亚洲一区二区三区播放 | 精品成在人线av无码免费看 | 日本爽爽爽爽爽爽在线观看免 | 好爽又高潮了毛片免费下载 | 免费播放一区二区三区 | 日韩精品久久久肉伦网站 | 我要看www免费看插插视频 | 波多野结衣av一区二区全免费观看 | 中文精品无码中文字幕无码专区 | 男女爱爱好爽视频免费看 | 欧美日韩亚洲国产精品 | 色综合久久中文娱乐网 | 亚欧洲精品在线视频免费观看 | 国产超碰人人爽人人做人人添 | 中文久久乱码一区二区 | 又大又黄又粗又爽的免费视频 | 俄罗斯老熟妇色xxxx | 鲁鲁鲁爽爽爽在线视频观看 | 三级4级全黄60分钟 | 一本大道伊人av久久综合 | 亚洲成av人在线观看网址 | 国产精品美女久久久久av爽李琼 | 澳门永久av免费网站 | 成人性做爰aaa片免费看不忠 | 亚洲精品国产品国语在线观看 | 中文精品久久久久人妻不卡 | 无码人妻丰满熟妇区毛片18 | 成熟妇人a片免费看网站 | 国产成人综合美国十次 | 国产精品人妻一区二区三区四 | 午夜熟女插插xx免费视频 | 精品人妻人人做人人爽夜夜爽 | 久久99久久99精品中文字幕 | 久久精品国产日本波多野结衣 | 日韩欧美中文字幕在线三区 | 天下第一社区视频www日本 | 人人妻人人澡人人爽人人精品 | 午夜精品一区二区三区在线观看 | 最近的中文字幕在线看视频 | 国产精品美女久久久网av | 国产精品人妻一区二区三区四 | 成年美女黄网站色大免费全看 | 午夜福利电影 | 国产精品久久福利网站 | 久久亚洲精品中文字幕无男同 | 国产肉丝袜在线观看 | 婷婷六月久久综合丁香 | 国产午夜精品一区二区三区嫩草 | 水蜜桃亚洲一二三四在线 | 国产精品沙发午睡系列 | 中文字幕 人妻熟女 | 一本久道高清无码视频 | 日本精品人妻无码免费大全 | av人摸人人人澡人人超碰下载 | 亚洲国产精品成人久久蜜臀 | 久久亚洲a片com人成 | 久久综合九色综合97网 | 精品国产青草久久久久福利 | 亚洲の无码国产の无码影院 | 高清无码午夜福利视频 | 亚洲熟熟妇xxxx | 人妻aⅴ无码一区二区三区 | av香港经典三级级 在线 | 亚洲国产av精品一区二区蜜芽 | 中文字幕乱码亚洲无线三区 | 亚洲精品国偷拍自产在线麻豆 | 成年美女黄网站色大免费全看 | 成年女人永久免费看片 | 国产免费久久精品国产传媒 | 国产在线精品一区二区高清不卡 | 亚洲自偷自拍另类第1页 | 99精品国产综合久久久久五月天 | 麻豆国产人妻欲求不满谁演的 | 无码av免费一区二区三区试看 | 欧美阿v高清资源不卡在线播放 | 国产成人精品视频ⅴa片软件竹菊 | 国产亚洲美女精品久久久2020 | 精品国产成人一区二区三区 | 少女韩国电视剧在线观看完整 | 日日干夜夜干 | 亚洲中文字幕乱码av波多ji | 狠狠cao日日穞夜夜穞av | 乌克兰少妇xxxx做受 | 成熟女人特级毛片www免费 | 成人免费视频视频在线观看 免费 | 377p欧洲日本亚洲大胆 | 夜夜影院未满十八勿进 | 国产成人无码av片在线观看不卡 | 动漫av网站免费观看 | 无码人妻少妇伦在线电影 | 奇米影视7777久久精品 | 牛和人交xxxx欧美 | 国内老熟妇对白xxxxhd | 国产欧美熟妇另类久久久 | 99精品国产综合久久久久五月天 | 撕开奶罩揉吮奶头视频 | 亚洲精品国偷拍自产在线麻豆 | 黑人巨大精品欧美黑寡妇 | 夜夜夜高潮夜夜爽夜夜爰爰 | 精品久久久久久人妻无码中文字幕 | 波多野结衣高清一区二区三区 | 人妻体内射精一区二区三四 | 婷婷综合久久中文字幕蜜桃三电影 | 亚洲日韩精品欧美一区二区 | 欧美喷潮久久久xxxxx | 亚洲一区av无码专区在线观看 | 影音先锋中文字幕无码 | 精品国产麻豆免费人成网站 | 天下第一社区视频www日本 | 日韩精品无码一区二区中文字幕 | 久久综合色之久久综合 | 久久精品国产亚洲精品 | 国产明星裸体无码xxxx视频 | 曰本女人与公拘交酡免费视频 | 一二三四社区在线中文视频 | 狠狠cao日日穞夜夜穞av | 九九久久精品国产免费看小说 | 亚洲一区二区三区含羞草 | 亚洲综合色区中文字幕 | 欧美老熟妇乱xxxxx | 色婷婷综合激情综在线播放 | 亚洲国产午夜精品理论片 | 久久国产劲爆∧v内射 | 高潮毛片无遮挡高清免费视频 | 亚洲中文字幕成人无码 | 波多野结衣一区二区三区av免费 | 久久精品国产一区二区三区肥胖 | 超碰97人人做人人爱少妇 | 国产精品高潮呻吟av久久4虎 | 成人欧美一区二区三区黑人 | 国产高清不卡无码视频 | 亚洲欧美综合区丁香五月小说 | 男女猛烈xx00免费视频试看 | 国产精品久久久久影院嫩草 | 青草青草久热国产精品 | 成人动漫在线观看 |