在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ROS機(jī)器人如何使用Navigation導(dǎo)航包實現(xiàn)實時定位

新機(jī)器視覺 ? 來源:新機(jī)器視覺 ? 2023-12-03 11:00 ? 次閱讀

本篇文章主要分析,常規(guī)的ROS機(jī)器人是如何使用Navigation導(dǎo)航包實現(xiàn)實時定位的,定位精度的決定性因素等內(nèi)容,結(jié)構(gòu)上分為詳細(xì)介紹、概括總結(jié)、深入思考三大部分。

一、詳細(xì)介紹

常規(guī)的ROS機(jī)器人一般都會搭載,輪式里程計(編碼器),姿態(tài)傳感器(IMU)、激光雷達(dá)等感知傳感器。

rqt_graph是ROS中進(jìn)行分析的常用工具,下圖是航天三院開發(fā)的輕舟機(jī)器人運(yùn)行時的節(jié)點關(guān)系圖(點擊或拖拽可查看大圖),從下圖可以看出Navigation導(dǎo)航包的“指揮中心“”move_base節(jié)點訂閱了/odom_ekf節(jié)點發(fā)布的/odom_ekf話題,/odom_ekf中的內(nèi)容是機(jī)器人搭載的輪式里程計(編碼器)經(jīng)過推位得到定位信息/odom與姿態(tài)傳感器(IMU)的定位信息經(jīng)過/robot_pose_ekf節(jié)點,即使用擴(kuò)展卡爾曼濾波器(EKF)進(jìn)行融合后的定位信息。

f4e8ac32-9117-11ee-939d-92fbcf53809c.png

那么我們的ROS機(jī)器人是否就是使用這個定位信息作為機(jī)器人的實時位置進(jìn)行路徑規(guī)劃及其他應(yīng)用呢?答案是否定的,下面給出解釋

move_base節(jié)點中是通過調(diào)用getRobotPose函數(shù)來獲取機(jī)器人當(dāng)前的位姿的

getRobotPose(global_pose, planner_costmap_ros_);

getRobotPose函數(shù)的核心代碼如下,可以看出getRobotPose函數(shù)實際上是通過監(jiān)聽tf樹中的map坐標(biāo)系與base_link坐標(biāo)系的關(guān)系,從而得到map坐標(biāo)系下的base_link的坐標(biāo),也就是map坐標(biāo)系下機(jī)器人的位姿信息,也就是說機(jī)器人的實時定位信息是通過監(jiān)聽tf樹中map坐標(biāo)系與base_link坐標(biāo)系的變換關(guān)系來計算獲得的,并非使用了訂閱的/odom_ekf話題中的消息。

tf2::getIdentity(), global_pose.pose);
geometry_msgs::PoseStampedrobot_pose;
tf2::getIdentity(), robot_pose.pose);
robot_pose.header.frame_id = robot_base_frame_;
robot_pose.header.stamp=ros::Time();//latestavailable
ros::Time current_time = ros::now(); // save time for checking tf delay later


//getrobotposeonthegivencostmapframe
try
{
//通過tf獲取map到base_link的關(guān)系,那么也就是map下base_link的坐標(biāo),也就是map下機(jī)器人的坐標(biāo)
tf_.transform(robot_pose,global_pose,costmap->getGlobalFrameID());
  }

tf中的transform函數(shù)的具體代碼如下:(lookupTransform是tf樹的監(jiān)聽函數(shù))


 //tf中的transform函數(shù)的具體代碼如下:
template
  T& transform(const T& in, T& out, 
     const std::string& target_frame, ros::Duration timeout=ros::Duration(0.0)) const
{
  // do the transform
  tf2::doTransform(in, out, lookupTransform(target_frame, tf2::getFrameId(in), tf2::getTimestamp(in), timeout));
  return out;
 }

輕舟機(jī)器人運(yùn)行時的tf樹如下圖所示,可以看出map坐標(biāo)系與base_link坐標(biāo)系之間還存在一個odom坐標(biāo)系,map坐標(biāo)系與odom的坐標(biāo)變換關(guān)系是由/amcl節(jié)點廣播出來的,odom坐標(biāo)系與base_link坐標(biāo)系的坐標(biāo)變換關(guān)系是/robot_pose_ekf節(jié)點廣播出來的,所以,我們可以先大膽的推測,機(jī)器人的實時定位信息跟/amcl節(jié)點與/robot_pose_ekf節(jié)點均有關(guān),且/amcl節(jié)點給出的定位信息是借助激光雷達(dá)的數(shù)據(jù),采用粒子濾波算法(PF)估計出來的,而/robot_pose_ekf節(jié)點給出的定位信息是里程計信息和IMU信息經(jīng)過擴(kuò)展卡爾曼濾波(EKF)融合后得到的。

f51f9e04-9117-11ee-939d-92fbcf53809c.png

那么它們之間的關(guān)系又是怎樣的呢?下面通過解讀amcl包中廣播odom與map坐標(biāo)系的tf關(guān)系的過程來進(jìn)行解釋。

本部分的源碼如下:

geometry_msgs::PoseStamped odom_to_map;
try
{
tf2::Quaternionq;
q.setRPY(0,0,hyps[max_weight_hyp].pf_pose_mean.v[2]);
tf2::Transformtmp_tf(q,tf2::Vector3(hyps[max_weight_hyp].pf_pose_mean.v[0],
hyps[max_weight_hyp].pf_pose_mean.v[1],0.0));


geometry_msgs::PoseStampedtmp_tf_stamped;
tmp_tf_stamped.header.frame_id=base_frame_id_;
tmp_tf_stamped.header.stamp=laser_scan->header.stamp;
tf2::toMsg(tmp_tf.inverse(),tmp_tf_stamped.pose);


this->tf_->transform(tmp_tf_stamped,odom_to_map,odom_frame_id_);
   }
   catch(const tf2::TransformException&)
   {
ROS_DEBUG("Failedtosubtractbasetoodomtransform");
return;
   }


   tf2::convert(odom_to_map.pose, latest_tf_);
   latest_tf_valid_ = true;


   if (tf_broadcast_ == true)
   {
    // We want to send a transform that is good up until a
    // tolerance time so that odom can be used
ros::Timetransform_expiration=(laser_scan->header.stamp+ transform_tolerance_);
    geometry_msgs::TransformStamped tmp_tf_stamped;
    tmp_tf_stamped.header.frame_id = global_frame_id_;
    tmp_tf_stamped.header.stamp = transform_expiration;
    tmp_tf_stamped.child_frame_id = odom_frame_id_;
    tf2::convert(latest_tf_.inverse(), tmp_tf_stamped.transform);


    this->tfb_->sendTransform(tmp_tf_stamped);
    sent_first_transform_ = true;
   }

以上源碼可提取關(guān)鍵內(nèi)容,總結(jié)如下:

(1)獲取base_link在世界坐標(biāo)系map的坐標(biāo)變換,即base_link在map下的坐標(biāo),存放在tmp_tf 中

tf2::Transform tmp_tf(q, 
tf2::Vector3(hyps[max_weight_hyp].pf_pose_mean.v[0], 
hyps[max_weight_hyp].pf_pose_mean.v[1]0.0));

(2)將tmp_tf通過求逆變換inverse()表示為世界坐標(biāo)系map到base_link的坐標(biāo)變換,即map在base_link下的坐標(biāo),存放在tmp_tf_stamped.pose中

tf2::toMsg(tmp_tf.inverse(), tmp_tf_stamped.pose);

(3)使用transform變換獲取map到odom的變換,即map原點在odom坐標(biāo)系下的坐標(biāo),存放在odom_to_map中,并進(jìn)行了格式轉(zhuǎn)換存放在latest_tf_中。

this->tf_->transform(tmp_tf_stamped, odom_to_map, odom_frame_id_);

這里的具體實現(xiàn)過程如下:tmp_tf_stamped中存放的是世界坐標(biāo)系map到base_link的坐標(biāo)變換,根據(jù)此處傳入的參數(shù)可知transform函數(shù)中監(jiān)聽了base_link到odom坐標(biāo)系的坐標(biāo)變換,因此,可以看成將世界坐標(biāo)系map到base_link的坐標(biāo)變換再進(jìn)行了一次從base_link到odom的變換,進(jìn)而得到了map到odom的坐標(biāo)變換,即map原點在odom坐標(biāo)系下的坐標(biāo),存放在odom_to_map中

f52da468-9117-11ee-939d-92fbcf53809c.png

(4)最后,對latest_tf_求逆,得到odom—>map的變換,即odom在map坐標(biāo)系下的坐標(biāo)。

tf2::convert(latest_tf_.inverse(), tmp_tf_stamped.transform);

(5)廣播odom—>map的坐標(biāo)變換關(guān)系,即可實現(xiàn)對EKF的修正。

二、概括總結(jié)

☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆

總的來說,/robot_pose_ekf節(jié)點會高頻的廣播給出使用里程計信息和IMU信息經(jīng)過擴(kuò)展卡爾曼濾波(EKF)融合后得到的定位信息,這個定位信息就是odom坐標(biāo)系下的機(jī)器人位姿,如果這個定位信息是準(zhǔn)確的,odom坐標(biāo)系將與map坐標(biāo)系近似于重合,此時,定位信息可以看成全局坐標(biāo)系map下的機(jī)器人位姿信息。

然而里程計和IMU會有累計誤差,且該誤差會隨著時間的推移不斷增大,尤其是車輪打滑的情況下,這個偏移會很大,即odom坐標(biāo)系會逐漸偏離map坐標(biāo)系。此時,將ekf輸出的定位信息作為機(jī)器人在全局坐標(biāo)系下的位姿信息是不合適的,這也是為什么還需要AMCL通過粒子濾波輸出定位信息的原因。

AMCL功能包借助激光雷達(dá)的感知信息,通過粒子濾波低頻的廣播出odom坐標(biāo)系與map坐標(biāo)系的偏差,在這個過程中,會將粒子濾波估計出的全局坐標(biāo)系map下的機(jī)器人的位姿信息當(dāng)做“真值”去使用,即認(rèn)為粒子濾波估計出的定位信息是接近于真值的。用這個map→base_link(機(jī)器人)的坐標(biāo)關(guān)系減去ekf輸出的base_link→odom的坐標(biāo)關(guān)系,就是AMCL廣播的odom與map坐標(biāo)系的偏差,用這個偏差疊加上ekf的輸出來對efk估計的定位信息進(jìn)行糾正,并作為機(jī)器人實時的定位信息。

☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆

三、深入思考

1、odom坐標(biāo)系與map坐標(biāo)系的偏差所代表的意義是什么?

odom坐標(biāo)系與map坐標(biāo)系的偏差實際上是使用激光雷達(dá)感知信息的粒子濾波估計出定位信息與使用里程計和IMU信息通過擴(kuò)展卡爾曼濾波估計出的定位信息的差值。

在將AMCL使用粒子濾波估計出的機(jī)器人在全局坐標(biāo)系下的位姿信息,作為機(jī)器人真實的位姿信息的情況下,odom坐標(biāo)系與map坐標(biāo)系的偏差可以看成,ekf估計出的機(jī)器人的位姿信息與真實值之間的偏差,即odom與map坐標(biāo)系差的越大,ekf當(dāng)前的估計值與真實值的差距也就越大,越不準(zhǔn)確。

f5391d16-9117-11ee-939d-92fbcf53809c.png

2、粒子濾波與擴(kuò)展卡爾曼濾波輸出的定位信息那個更準(zhǔn)確?

使用激光雷達(dá)感知信息的粒子濾波估計出定位信息比使用里程計和IMU信息通過擴(kuò)展卡爾曼濾波估計出的定位信息要準(zhǔn)確,尤其是在機(jī)器人的運(yùn)動存在打滑現(xiàn)象時,下圖中的給出了機(jī)器人運(yùn)行一段時間回到起點后,ekf和amcl輸出的定位信息的偏差,可見在ekf在x軸上的偏差高達(dá)1.49m,而amcl的偏差僅在0.08m,運(yùn)行多圈以后ekf的偏差甚至達(dá)到了5.3m,而此時amcl的偏差僅為0.2m,可以看出經(jīng)過實驗測試,在機(jī)器人存在打滑現(xiàn)象時,amcl輸出的定位信息的精度要遠(yuǎn)高于ekf輸出的定位信息。這也是為什么可以將amcl輸出的定位信息近似當(dāng)真值使用來對ekf進(jìn)行修正的原因。

f543c73e-9117-11ee-939d-92fbcf53809c.png

f54eb130-9117-11ee-939d-92fbcf53809c.png

3、既然AMCL輸出的定位信息比ekf輸出的定位信息要準(zhǔn)確,為什么不直接使用AMCL輸出的定位信息作為機(jī)器人的定位信息使用,而是使用AMCL對ekf的輸出進(jìn)行修正?為什么AMCL不直接廣播map到base_link的坐標(biāo)變換關(guān)系?

因為,AMCL的定位信息準(zhǔn)確,但計算量較大,只能輸出一個低頻的定位信息,如10hz,而ekf的定位信息誤差較大,但可以高頻的輸出定位信息,如100hz。采用AMCL的對ekf進(jìn)行修正的模式,即可以較好的保證定位信息的實時性,又能較好的保證定位信息的準(zhǔn)確性。

4、ROS機(jī)器人是如何使用Navigation導(dǎo)航包實現(xiàn)定位的精度的決定性因素是什么?

ROS機(jī)器人是如何使用Navigation導(dǎo)航包實現(xiàn)定位的精度的決定性因素是 AMCL中粒子濾波的估計精度。假設(shè)AMCL輸出的定位信息的頻率是10HZ,ekf輸出的定位信息的頻率是100hz。則在0.1 _ n時刻機(jī)器人使用的定位信息就是AMCL輸出的定位信息,在0.1 _ n ~ 0.1 *(n+1) 的時間段內(nèi),比如0.16時刻輸出的定位信息 是0.1時刻AMCL輸出的定位信息與0.1時刻ekf輸出的定位信息的差值,加上0.16時刻ekf輸出的定位信息。即0.16時刻的定位使用的是0.1時刻的AMCL對ekf的修正(0.1時刻的map→base_link)加上0.16時刻的ekf輸出(0.16時刻的base_link → odom)。其中n取任意整數(shù)

所以,在0.1 _ n時刻的機(jī)器人定位信息的估計精度就是AMCl中粒子濾波的估計精度,在0.1 _ n ~ 0.1 *(n+1)的時間段內(nèi),ekf的估計精度越高只能保證,在該時間段內(nèi)的估計偏差越小,但是最終取決定性作用的還是AMCL的估計精度,舉個簡單的例子,在0.1時刻,AMCl估計的定位信息是 機(jī)器人處于x軸的5m處(認(rèn)為機(jī)器人0.1時刻真實位置也在5m處),0.1時刻ekf估計的定位信息是機(jī)器人處于x軸的5.2m處,此時0.1時刻amcl的修正信息是0.2m ,在0.16時刻ekf的估計位置是5.8m處,然而機(jī)器人的真實位置在5.4m處,0.16時刻AMCl的修正量依然使用的是0.1時刻的修正量,最終輸出的定位信息是在5.6m處,與真實信息差了0.2m,然而在0.2時刻,此時機(jī)器人位于6.01m處,AMCl估計的機(jī)器人也6m處,ekf估計的機(jī)器人位于6.6m處,此時ekf的估計偏差是0.61,AMCl對ekf的糾正是0.6,此時輸出的定位信息即6m,與真實位置偏差是0.01,也就是AMCL的估計精度。

所以,總的來說,ROS機(jī)器人是如何使用Navigation導(dǎo)航包實現(xiàn)定位的精度的決定性因素是 AMCL中粒子濾波的估計精度,即使是在0.1 _ n ~ 0.1 _(n+1)的時間段內(nèi)ekf的偏移特別大,那在 0.1 *(n+1)也會被修正為AMCL估計的位姿,與真實位置的定位偏差也會變?yōu)锳MCL的估計偏差。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2564

    文章

    52724

    瀏覽量

    764809
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    213

    文章

    29568

    瀏覽量

    211979
  • 定位
    +關(guān)注

    關(guān)注

    5

    文章

    1422

    瀏覽量

    35874
  • 激光雷達(dá)
    +關(guān)注

    關(guān)注

    971

    文章

    4212

    瀏覽量

    192275
  • ROS
    ROS
    +關(guān)注

    關(guān)注

    1

    文章

    286

    瀏覽量

    17610

原文標(biāo)題:ROS機(jī)器人如何使用Navigation導(dǎo)航包實現(xiàn)實時定位

文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    【「# ROS 2智能機(jī)器人開發(fā)實踐」閱讀體驗】+內(nèi)容初識

    控制機(jī)器人沿著路徑行駛,同時實時檢測環(huán)境變化,調(diào)整路徑規(guī)劃和導(dǎo)航控制策略。書中提供了完整的導(dǎo)航系統(tǒng)搭建示例,包括代碼實現(xiàn)和參數(shù)配置,幫助讀者
    發(fā)表于 04-27 11:24

    【「# ROS 2智能機(jī)器人開發(fā)實踐」閱讀體驗】+ROS2應(yīng)用案例

    這一部分內(nèi)容,我掌握了如何在ROS 2中實現(xiàn)SLAM,這對于提高機(jī)器人的自主導(dǎo)航能力具有重要意義。 其他內(nèi)容概述 除了二維碼識別和SLAM技術(shù),書中還介紹了其他視覺應(yīng)用和地圖構(gòu)建的內(nèi)
    發(fā)表于 04-27 11:42

    【「# ROS 2智能機(jī)器人開發(fā)實踐」閱讀體驗】視覺實現(xiàn)的基礎(chǔ)算法的應(yīng)用

    2的cv_bridge庫,可以輕松實現(xiàn)ROS圖像消息與OpenCV格式的轉(zhuǎn)換,這在實際開發(fā)中極為便利。 視覺巡線與二維碼識別的應(yīng)用 視覺巡線是機(jī)器人自主導(dǎo)航的經(jīng)典案例,書中從仿真到
    發(fā)表于 05-03 19:41

    機(jī)器人想要實現(xiàn)智能移動,必須具備超強(qiáng)的自主定位導(dǎo)航能力

    ```` 移動機(jī)器人想要在完全陌生的環(huán)境中(沒有預(yù)先錄入地圖的情況下)實現(xiàn)智能導(dǎo)航,顯然不是那么簡單。所以,移動機(jī)器人實現(xiàn)智能化的第一步,當(dāng)
    發(fā)表于 01-03 11:41

    SLAM不等于機(jī)器人自主定位導(dǎo)航

    得干凈,要盡量覆蓋從A到B點的所有區(qū)域,實現(xiàn)掃地機(jī)器人“掃地”的這個功能。 所以,機(jī)器人自主定位導(dǎo)航技術(shù)的發(fā)展還需要越來越多的技術(shù)加以支撐,
    發(fā)表于 08-24 16:56

    服務(wù)機(jī)器人是如何實現(xiàn)自主定位導(dǎo)航的?

    服務(wù)機(jī)器人想要自由行走,實現(xiàn)自主定位導(dǎo)航是關(guān)鍵,自主定位導(dǎo)航包括
    發(fā)表于 10-10 16:29

    【Toybrick RK3399Pro AI開發(fā)板試用體驗】機(jī)器人自主導(dǎo)航

    到達(dá)指定位置、機(jī)器人定時巡邏、跟隨等等,于是有了機(jī)器人實時定位導(dǎo)航
    發(fā)表于 08-21 22:12

    請問怎么設(shè)計一種室外移動機(jī)器人組合導(dǎo)航定位系統(tǒng)?

    怎么設(shè)計一種室外移動機(jī)器人組合導(dǎo)航定位系統(tǒng)?如何實現(xiàn)室外移動機(jī)器人組合導(dǎo)航
    發(fā)表于 04-19 10:50

    ROS navigation功能添加自定義的全局路徑規(guī)劃器(Global Path Planner)

    ROSnavigation官方功能提供了三種全局路徑規(guī)劃器:carrot_planner、global_planner、navfn。我們通常使用的是navfn,如果機(jī)器人執(zhí)行一些
    發(fā)表于 05-16 19:17

    基于ROS系統(tǒng)實現(xiàn)導(dǎo)航機(jī)器人的精確方向和距離控制

    本實驗箱以大載重的全向麥輪車為載體,基于ROS系統(tǒng)作為開發(fā)平臺,使用雙驅(qū)和四驅(qū)兩種不同的結(jié)構(gòu)作為機(jī)器人本體,最終通過地面二維碼實現(xiàn)導(dǎo)航機(jī)器人
    發(fā)表于 09-03 07:29

    ROS機(jī)器人定位導(dǎo)航仿真

    大作業(yè)——ROS機(jī)器人定位導(dǎo)航仿真一、安裝插件與相關(guān)配置1.下載源碼2.安裝相應(yīng)插件(1)ros-kinetic-driver-base(
    發(fā)表于 12-17 06:15

    如何對ROS機(jī)器人定位導(dǎo)航進(jìn)行仿真

    怎樣去實現(xiàn)ROS機(jī)器人定位導(dǎo)航呢?如何對ROS機(jī)器人
    發(fā)表于 12-23 09:22

    關(guān)于配置機(jī)器人導(dǎo)航功能的教程分享

    1、概述 ROS的二維導(dǎo)航功能,簡單來說,就是根據(jù)輸入的里程計等傳感器的信息流和機(jī)器人的全局位置,通過導(dǎo)航算法,計算得出安全可靠的
    發(fā)表于 10-12 17:21 ?1588次閱讀
    關(guān)于配置<b class='flag-5'>機(jī)器人</b>的<b class='flag-5'>導(dǎo)航</b>功能的教程分享

    怎么樣才能使用ROS系統(tǒng)實現(xiàn)機(jī)器人視覺導(dǎo)航識別算法的設(shè)計

    System)操作系統(tǒng),以Kinect為傳感器,采用Goog Le Net深度學(xué)習(xí)識別模型,在ROS系統(tǒng)導(dǎo)航算法的支持下實現(xiàn)了家政服務(wù)機(jī)器人導(dǎo)航
    發(fā)表于 08-14 15:54 ?18次下載
    怎么樣才能使用<b class='flag-5'>ROS</b>系統(tǒng)<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>機(jī)器人</b>視覺<b class='flag-5'>導(dǎo)航</b>識別算法的設(shè)計

    ROS Navigation Stack的整體設(shè)計思路和功能

    ROS Navigation Stack是ROS提供的一個二維的導(dǎo)航功能集合,通過輸入里程計、傳感器信息和目標(biāo)位姿,輸出控制
    的頭像 發(fā)表于 02-01 11:20 ?1650次閱讀
    主站蜘蛛池模板: 最近在线视频免费观看2019 | 三级理论片 | 欧美a一| 久久天天躁夜夜躁狠狠85麻豆 | 国产精品欧美一区二区三区 | 另类性欧美喷潮videofree | 99精品国产在热久久 | 男人日女人的网站 | 精品国产乱码久久久久久浪潮 | 经典三级四虎在线观看 | 高清不卡一区二区三区 | 色综合久久综精品 | 日本色黄视频 | 国产精品四虎在线观看免费 | 在线观看黄色的网站 | 色久优优 欧美色久优优 | 美女扒开尿口给男人桶动态图 | chinesevideo普通话对白 | 一级黄色录像毛片 | 欧美特级黄 | 亚洲午夜网 | 国产香蕉在线视频 | 国产精品欧美久久久久天天影视 | 伊人久久亚洲综合天堂 | 成人夜夜嗨 | 天堂-bt种子 | 天天插天天爽 | 亚洲精品456 | 精品精品国产高清a毛片牛牛 | 黄h视频| 欧美电影一区二区三区 | 天天射天天干天天 | 加勒比视频一区 | 天天射天天舔 | 日本电影在线观看黄 | 亚洲播放 | 国产精品国产三级在线高清观看 | 久久精品国产乱子伦多人 | 国产性夜夜春夜夜爽 | 日本三级成人午夜视频网 | 日本一卡二卡3卡四卡网站精品 |