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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ROS话题模式及多线程

發布時間:2024/1/18 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ROS话题模式及多线程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章介紹ROS通訊中基于發布/訂閱模型的話題模式,默認情況下的消息發送和接收處理,以及如何引入多線程來提高程序性能。

通信機制

ROS常用的通信機制包含話題發布/訂閱模型的話題模式與服務器/客戶端的服務模式,兩種模式的差異如下表

條目話題模式服務模式
通信模型發布/訂閱客戶端/服務器
反饋機制
底層協議ROSTCP/ROSUDPROSTCP/ROSUDP
緩沖區
實時性
節點關系多對多一對多(一個Server)
使用場景弱邏輯處理,多數據傳輸強邏輯處理,少數據傳輸
此處會針對話題模式做一些原理介紹與其多線程的應用。下面是ROS中一些基本的中英文技術詞匯的對照:
中文消息話題節點發布者訂閱者回調函數
英文messagetopicnodepublishersubscribercallback

話題模式

話題模式是有多個發布者與多個訂閱者參與的異步通信模式,他們通過節點管理器(ros master)注冊信息,建立連接和通信。
同一節點的所有發布者發布的消息被存儲在全局的消息隊列中,根據時間戳進行取舍。所有的訂閱者被所在節點調用時(e.g. ros::spin())去消息隊列中取得訂閱話題的消息并執行回調函數。
此處可以理解為生產者消費者模型,發布者負責生產消息存入消息隊列中,訂閱者負責從消息隊列取出消息并消費(回調函數),這里通過消息隊列作為數據的緩存區來解耦發布者與訂閱者。

跟經典的生產消費模型不同的是,同一節點的發布者與訂閱者都有自己專門的消息隊列去存儲消息,主要是因為發布者是基于話題發送,而不是直接向訂閱者發送,所以必須要有一個消息隊列來存放發布的消息,以供訂閱者來獲取。而且這個消息隊列的好處是在網絡差、帶寬小、延時高的時候,保證數據不容易丟失。因為發布者與訂閱者不一定在同一臺主機上,因此消息需要通過網絡來交換。但是網絡的性能時好時壞,如果訂閱者沒有消息隊列,那么每次運行回調函數前都要先通過網絡取回消息,然后才能處理。當網絡很差時,就會讓系統堵塞。而有消息隊列的話,訂閱者就可以一邊處理隊列中的消息,一邊通過網絡緩存新的消息,而不用每次處理消息前都要臨時去讀一個回來。這樣就增加了系統的可靠性。
這里會引入的一個問題,同一話題的消息在發布消息隊列發送到訂閱消息隊列的時候會產生拷貝,造成內存浪費。針對發布節點與訂閱節點在同一臺機器的情況,ROS引入了nodelet來避免這個開銷。

發布者的消息隊列

節點中的全局消息隊列會將所有發布者的消息存儲起來,此處的消息隊列可以理解為一個線程安全,根據時間戳排序的消息存儲器,如:

消息隊列的長度,即一個消息隊列中能存儲多少條消息是由創建發布者的時候定義,如

// chatter_pub為發布者對象實例,std_msgs::String為消息類型,“chatter”為話題名稱,1000為話題的消息隊列長度 ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);

此處的1000即為消息隊列中會緩存多少條信息。 當同一話題所有發布者生產的頻率大于對應訂閱者消費的頻率時,發布的新消息存入消息隊列時,會將時間戳最老的消息丟棄掉。如上圖中,如果定義的隊列長度為5,當前消息隊列中的消息數也為5,當新消息被發布到消息隊列中時,消息1(timestamp = t1)會被丟棄以便儲存新的消息。
同一節點的不同發布者有可能會定義不同的消息隊列長度,所以節點的全局消息隊列應該是取所有發布者隊列長度之和。

// Node "test" // 全局消息隊列長度為3 ros::Publisher pub1 = n.advertise<std_msgs::Int32>("pub1", 1); ros::Publisher pub2 = n.advertise<std_msgs::Int32>("pub2", 2); int count = 0; pub1.publish(count++); // 隊列中消息為[pub1-1] pub2.publish(count++); // 隊列中消息為[pub1-1, pub2-2] // pub1的隊列長度為1,為了儲存新的信息(pub1-3),之前的信息(pub1-1)被丟棄 pub1.publish(count++); // 隊列中消息為[pub2-2, pub1-3] pub2.publish(count++); // 隊列中消息為[pub2-2, pub1-3, pub2-4] // pub1的隊列長度為2,為了儲存新的信息(pub2-5),之前的信息(pub2-2)被丟棄 pub2.publish(count++); // 隊列中消息為[pub1-3,pub2-4,pub2-5]

訂閱者的消費隊列

訂閱者的消費隊列與發布者中的一樣,只是為了儲存消息數據。這些消息被創建訂閱者注冊的回調函數所消費,如

// 收到消息時調用的函數,std_msgs::String為消息類型 void chatterCallback(const std_msgs::String::ConstPtr& msg) {ROS_INFO("I heard: [%s]", msg->data.c_str()); } // chatter_sub為訂閱者實例,“chatter”為話題名稱,1000為話題的消息隊列長度,chatterCallback為回調函數 ros::Subscriber chatter_sub = n.subscribe("chatter", 1000, chatterCallback);

ROS在處理回調函數時,并不是消息傳來就立刻進行處理的,而是在程序調用spinOnce()和spin()時統一調用。

ros::spin()和ros::spinOnce()為消息回調處理函數。它倆通常會出現在ROS的主循環中,程序需要不斷調用ros::spin() 或 ros::spinOnce(),兩者區別在于前者調用后不會再返回,也就是你的主程序到這兒就不往下執行了,而后者在調用后還可以繼續執行之后的程序。
默認情況下,節點中的主程序(e.g. while循環中寫在ros::spinOnce()之前的執行程序)和所有回調函數都是串行的,當節點無法及時處理回調函數時,這些未被處理的回調函數就會按照先后的順序放入一個隊列,該回調隊列的長度就是定義訂閱器時的消息隊列長度了。節點會先處理時間輟最小的回調函數,然后依次處理隊列中所有的回調函數。但是,當發布器的頻率過快時,會出現未被處理的回調函數數量超過隊列長度,它會自動丟棄時間輟最長(最老的)的回調函數。下面的案例介紹了一個節點兩個訂閱者的例子:

// "chatter"話題的發布頻率為10Hz void callback1(const std_msgs::String::ConstPtr& msg) {// 延遲一秒ros::Duration(1.0).sleep();ROS_INFO("callback1 : I heard: [%s]", msg->data.c_str()); }void callback2(const std_msgs::String::ConstPtr& msg) {ROS_INFO("callback2 : I heard: [%s]", msg->data.c_str()); }int main(int argc, char **argv) {// 訂閱者sub1的消息隊列長度為3 (一個調用周期內只會處理三個消息)ros::Subscriber sub1 = n.subscribe("chatter", 3, callback1);// 訂閱者sub2的消息隊列長度為1 (一個調用周期內只會處理一個消息)ros::Subscriber sub2 = n.subscribe("chatter", 1, callback2);while (ros::ok()){ROS_INFO("======================Start of while loop=======================");ros::spinOnce();}return 0; }

上述的代碼輸出如下

在一個調用周期內,callback1和callback2方程為串行(阻塞)運行,callback1會被調用三次,callback2被調用一次 (由定義的消息隊列長度決定)。兩次調用callback2之間阻塞調用了四次callback1(次數取決與所有回調函數被放入隊列中的順序),導致其接收的數據差為40。
如果節點的不同回調方程(包括主函數中調用的方程)同時花費大量的計算時間,在單線程下很有可能造成某個回調方程被調用時所用到的數據失效。
這類問題在硬件計算平臺允許的情況下,可以引入多線程異步(非阻塞)處理回調方程來解決。

最新數據處理

在了解了發布者與訂閱者的消息隊列機制后,可以同時更改雙方消息隊列的長度為1來達到回調函數處理最新的消息數據。這樣保證發布節點的消息只有一個,訂閱節點的消息也只有一個,所以每當回調函數被調用時只能獲取到最新的數據。
這適用于一些對數據實時性要求比較高(不考慮通訊和函數調用延遲)的功能模塊。

小結

  • 節點會擁有全局的發布者消息和訂閱者消息隊列。
  • 發布者消息隊列用來緩存節點內所有發布的消息,并通過之前在節點管理器中注冊的信息發布到對應話題。
  • 訂閱者消息隊列用來緩存節點內所有訂閱的消息,并在消息處理函數(e.g. ros::spinOnce())被調用時串行調用對應的回調函數。
  • 話題模式通過消息隊列緩存消息的形式解耦了發布者與訂閱者,彼此之間不需要知道對方的設置或者執行,發布者只需要發布消息到發布隊列,而訂閱者只需要通過回調函數消費訂閱隊列中的消息。

多線程應用

上述回調函數串行調用可以通過引入多線程的方式,并發處理節點內不同的函數。
在了解具體的做法之前,下面章節先簡單介紹一下進程和線程的概念。

進程和線程

進程是對操作系統上正在運行程序的一個抽象,線程是進程中的指令執行流的最小單位,是CPU調度的基本單位。簡而言之,一個程序至少有一個進程,一個進程至少有一個線程。
進程有獨立的地址空間,線程有自己的堆棧和局部變量,但線程之間沒有單獨的地址空間,一個線程死掉就等于整個進程死掉,所以多進程的程序要比多線程的程序健壯,但在進程切換時,耗費資源較大,效率要差一些。相對進程而言,線程是一個更加接近于執行體的概念。它可以與同進程中的其他線程共享數據,但擁有自己的棧空間,擁有獨立的執行序列,對于一些要求同時進行并且又要共享某些變量的并發操作,只能用線程,不能用進程。
在ROS中可以理解為一個可運行的節點(定義了main()方程)即為一個進程,而默認的執行流程為單線程,即只有一個執行體串行執行所有定義的任務(函數)。

ROS中的多線程

ROS提供的用于處理callback的線程機制。接口包括自旋,CallbackQueue隊列處理,time callback等。因接口提供的簡單易用,下面只做簡單介紹:
ros::MultiThreadedSpinner是阻塞式的spinner(程序執行到這里不會在往下執行,無法使用在while循環中), 類似于ros::spin(), 你可以在它的構造函數中指定線程數量, 但如果不指定或者設為0, 它會根據你的CPU內核數創建線程。

ros::MultiThreadedSpinner spinner(4); // Use 4 threads spinner.spin(); // spin() will not return until the node has been shutdown

ros::AsyncSpinner不是阻塞式的,類似ros::spinOnce(),擁有start()和stop()兩個函數, start()等待在那個點上的所有回調,stop()停止回調,并且在銷毀時自動停止.

ros::AsyncSpinner spinner(4); // Use 4 threads spinner.start(); while (ros::ok()) {// Do something } ros::waitForShutdown();

ROS默認只有一個全局的回調隊列,每當調用ros::spinOnce()時統一調用在列的回調函數。當一個節點的訂閱者比較多,要處理的回調函數不在一個頻率上調用時,可以自定義消息隊列來獨自調用。ros::CallbackQueue可以設置自定義隊列,這個可使用所有訂閱、服務、定時器等。自定義的隊列不是roscpp的默認隊列,意味著ros::spin()和ros::spinOnce()不會處理這些回調,你需要單獨處理這些回調。

The CallbackQueue class has two ways of invoking the callbacks inside it: callAvailable() and callOne(). callAvailable() will take everything currently in the queue and invoke all of them. callOne() will simply invoke the oldest callback on the queue.`

ros::CallbackQueue callback_queue; ros::NodeHandle nh; ros::SubscribeOptions ops=ros::SubscribeOptions::create<std_msgs::String>("chatter",1, state_callback, ros::VoidPtr(),&callback_queue); //指定一個自定義隊列 ros::Subscriber listen_state= nh.subscribe(ops); // 必須添加,ros::SubscribeOptions自定義的隊列才能回調 ros::AsyncSpinner state_spinner(1,&callback_queue);

或者

ros::CallbackQueue callback_queue; void callbackThread() { ros::NodeHandle n; while (n.ok()) { callback_queue.callAvailable();} } ros::NodeHandle n; ros::NodeHandle nh; nh.setCallbackQueue(&callback_queue); ros::Subscriber sub = n.subscribe("chatter", 3, callback1); ros::Subscriber sub2 = nh.subscribe("chatter", 1, callback2); // 開一個線程單獨調用callback_queue中的回調函數 std::thread t1(callbackThread); while(ros::ok()) {ROS_INFO("================Start of while loop===========================");ros::Duration(1.0).sleep();ros::spinOnce(); } t1.join();

將多線程AsyncSpinner引入上述案例中,

// "chatter"話題的發布頻率為10Hz void callback1(const std_msgs::String::ConstPtr& msg) {// 延遲一秒ros::Duration(1.0).sleep();ROS_INFO("callback1 : I heard: [%s]", msg->data.c_str()); }void callback2(const std_msgs::String::ConstPtr& msg) {ROS_INFO("callback2 : I heard: [%s]", msg->data.c_str()); }int main(int argc, char **argv) {// 訂閱者sub1的消息隊列長度為3 (一個調用周期內只會處理三個消息)ros::Subscriber sub1 = n.subscribe("chatter", 3, callback1);// 訂閱者sub2的消息隊列長度為1 (一個調用周期內只會處理一個消息)ros::Subscriber sub2 = n.subscribe("chatter", 1, callback2);// 異步模式ros::AsyncSpinner spinner(2);while(ros::ok()){ROS_INFO("================Start of while loop===========================");ros::Duration(1.0).sleep();spinner.start();}return 0; }

輸出如下:

可以看到每個循環中(間隔一秒),callback1被調用了一次,callback2被調用了十次。這里while循環中的ros::Duration(1.0).sleep(),callback1和callback2三個執行任務會并發執行。

線程安全

  • 線程安全是多線程編程時的計算機程序代碼中的一個概念。在擁有共享數據的多條線程并行執行的程序中,線程安全的代碼會通過同步機制保證各個線程都可以正常且正確的執行,不會出現數據污染等意外情況。
  • 多個線程有對同一個全局變量進行寫的操作時,會出現線程安全問題。
  • 每個進程中訪問臨界資源(比如全局變量等公用資源)的那段程序(代碼)稱為臨界區(臨界資源是一次僅允許一個進程使用的共享資源,如全局變量等),也稱為臨界段。
  • ROS本身的發布者與訂閱者是線程安全的,所以在引入多線程后,不需要做額外的保護措施。如在上例中的兩個回調函數中,可以用同一個發布者發布消息。

但是如果是操作用戶自定義的一些臨界資源,需要加鎖保護。如

// 臨界資源 int global_counter = 0; // 互斥鎖保護臨界資源 std::mutex mtx; // "chatter"話題的發布頻率為10Hz void callback1(const std_msgs::String::ConstPtr& msg) {// 延遲一秒ros::Duration(1.0).sleep();ROS_INFO("callback1 : I heard: [%s]", msg->data.c_str());// 需要加鎖保護global_countermtx.lock();global_counter++;mtx.unlock(); }void callback2(const std_msgs::String::ConstPtr& msg) {global_counter++ROS_INFO("callback2 : I heard: [%s]", msg->data.c_str());// 需要加鎖保護global_countermtx.lock();global_counter++;mtx.unlock(); }int main(int argc, char **argv) {// 訂閱者sub1的消息隊列長度為3 (一個調用周期內只會處理三個消息)ros::Subscriber sub1 = n.subscribe("chatter", 3, callback1);// 訂閱者sub2的消息隊列長度為1 (一個調用周期內只會處理一個消息)ros::Subscriber sub2 = n.subscribe("chatter", 1, callback2);// 異步模式ros::AsyncSpinner spinner(2);while(ros::ok()){ROS_INFO("================Start of while loop===========================");ros::Duration(1.0).sleep();spinner.start();}return 0; }

上述的global_counter由于會被并發的兩個線程訪問,需要引入mtx(std::mutex)來保證線程安全。

線程的數量

雖然一個進程內使用多個線程理論上會提升程序性能,但是由于受到物理計算平臺(CPU)的限制,過多的線程會讓系統更加頻繁的切換所執行的線程,帶來大量的切換開銷。
常規的合理數量為:
CPU密集型(計算需求大)= CPU的核數*個數
IO密集型(文件讀寫操作) = 可以設置的大一些

相關資料

  • Callbacks and spinning - http://wiki.ros.org/roscpp/Overview/Callbacks%20and%20Spinning
  • ROS nodelet - http://wiki.ros.org/nodelet
  • 通信機制 -https://blog.csdn.net/zhi_neng_zhi_fu/article/details/100139851
  • 回調函數處理與回調隊列 - https://blog.csdn.net/Azahaxia/article/details/113934774
  • 多線程應用 - https://blog.csdn.net/Qm13416479599/article/details/90265676
  • ROS中的多線程 - https://blog.csdn.net/tobebest_lah/article/details/103050076
  • 多線程數量 - https://blog.csdn.net/eternal_yangyun/article/details/103236125

總結

以上是生活随笔為你收集整理的ROS话题模式及多线程的全部內容,希望文章能夠幫你解決所遇到的問題。

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

欧美精品三级 | 色91在线视频 | 免费看的黄网站软件 | 91女神的呻吟细腰翘臀美女 | 午夜精品福利一区二区 | 最新色站 | 一本一本久久a久久精品综合妖精 | 日韩高清在线观看 | 黄色小说网站在线 | 色资源网在线观看 | 香蕉视频免费看 | 色综合久久综合网 | 97国产大学生情侣白嫩酒店 | 91高清不卡 | 日韩美精品视频 | 成人毛片一区 | 69久久夜色精品国产69 | 狠狠干成人综合网 | 免费一级片在线 | 国产伦精品一区二区三区无广告 | 天天鲁天天干天天射 | 国产精品久久久久久麻豆一区 | 日韩激情一二三区 | 丁香电影小说免费视频观看 | 中文字幕在线播放一区二区 | 美女网站色在线观看 | 亚洲国产精品成人精品 | 免费黄色在线网站 | 日韩在线 一区二区 | 国产男女无遮挡猛进猛出在线观看 | 日韩精品久久久久久久电影竹菊 | 欧美日韩国产二区三区 | 91高清免费在线观看 | 国产人成一区二区三区影院 | 日韩精品免费一区二区三区 | 国产 精品 资源 | 亚洲视频1区2区 | 色哟哟国产精品 | 精品一区二区免费视频 | 亚洲国产精品人久久电影 | 91系列在线 | 欧美a在线看 | 中文字幕av在线播放 | 久久精品激情 | 国产成人一区二 | 高清不卡毛片 | 在线观看aa | 久久视频 | 99视频黄| 亚洲国产精品一区二区尤物区 | 91精品视频播放 | 天天操月月操 | 国产1区在线观看 | 欧美一区二区在线 | 国产精品成人免费精品自在线观看 | 一级黄色免费网站 | 五月婷婷久 | 久久久影院官网 | 久久综合狠狠综合久久狠狠色综合 | 日韩欧美在线第一页 | 亚洲日本欧美 | 久久69精品久久久久久久电影好 | 99精品国产一区二区三区不卡 | 国产成人l区 | 亚洲精品456在线播放第一页 | 狠狠狠色丁香婷婷综合久久88 | 久久亚洲影视 | 久久五月激情 | av女优中文字幕在线观看 | 成人免费亚洲 | 色婷婷国产 | 久久久久国产精品免费网站 | 综合精品在线 | 波多野结衣在线视频免费观看 | 亚洲婷婷伊人 | 日韩精品高清视频 | 欧美午夜性| 2020天天干夜夜爽 | 日日操网站| 91九色蝌蚪视频网站 | 91精品视频一区二区三区 | 欧美日韩视频免费 | 中文字幕亚洲综合久久五月天色无吗'' | 日本少妇高清做爰视频 | 国产精品一区久久久久 | 国产精品久久久久久久久久ktv | 亚洲激情中文 | 久久狠狠婷婷 | 午夜视频在线观看一区二区三区 | 手机av在线网站 | 国产欧美久久久精品影院 | 亚洲精品视频在线观看免费视频 | 九九热av | 高清国产午夜精品久久久久久 | 米奇四色影视 | 婷婷中文字幕综合 | 国产精品刺激对白麻豆99 | 国产亚洲在线视频 | 激情欧美xxxx | 亚洲精品中文字幕在线观看 | 欧美另类xxx | 日本久久电影 | 一区二区三区在线免费 | 最近高清中文字幕在线国语5 | 国产精品一区二区三区在线看 | 国产精品一区二区三区在线 | 久久久99精品免费观看 | 免费看的毛片 | 麻豆久久久久久久 | 国产成人综合图片 | 欧美性色xo影院 | 激情在线网 | 综合网五月天 | 最近中文字幕免费大全 | 久久99精品久久久久久秒播蜜臀 | 欧美日韩国产一区二区在线观看 | 99免费精品 | 在线精品观看 | 国产精品麻豆视频 | 国内综合精品午夜久久资源 | 天天精品视频 | 久久精精品视频 | 亚洲久草在线 | 欧美一级日韩免费不卡 | 亚洲国产高清视频 | 久久人91精品久久久久久不卡 | 欧美精品在线视频 | 国产精品 日本 | 青青草国产精品视频 | 又黄又刺激的视频 | 中文字幕网站视频在线 | 免费网站黄 | 中文字幕中文字幕在线中文字幕三区 | 丁香花在线视频观看免费 | 狠狠狠色丁香婷婷综合久久88 | 不卡中文字幕在线 | 91网在线观看 | 欧美精品在线观看免费 | 亚洲专区一二三 | 成人av免费 | 亚洲精品久| 中文字幕免费高 | 国内精品视频在线 | 精品久久精品 | 国产香蕉视频 | 在线看片一区 | 国产资源免费在线观看 | 国产中文 | 色欧美综合 | 狠狠干综合 | 九九免费在线视频 | 99国产精品| 色91在线视频 | 免费精品人在线二线三线 | 美女福利视频 | 亚洲每日更新 | 在线91视频 | 久久久久一区二区三区 | av中文字幕日韩 | 91看片麻豆| 91毛片在线 | 亚洲日本精品视频 | 狠狠干在线| 曰韩精品| 国产高清免费在线观看 | 中文字幕一区二区三区视频 | 99精品免费久久久久久日本 | 欧美最猛性xxxxx(亚洲精品) | 日韩二区在线 | 亚洲精品乱码久久久久久久久久 | 米奇影视7777| 国产精品一区二区免费看 | 国产精品自在线 | 国产成人一区在线 | 91成人精品观看 | 婷婷久久一区 | 91精品对白一区国产伦 | 欧美人人爱| 在线观看一区视频 | 911久久香蕉国产线看观看 | 免费国产在线视频 | 免费高清国产 | 8090yy亚洲精品久久 | 国产精品欧美久久久久无广告 | 国产精品高潮呻吟久久久久 | 国产91九色蝌蚪 | 成人在线观看资源 | 狠狠色狠狠色综合系列 | 97综合视频| 五月激情五月激情 | 丁香久久综合 | 超碰在线97国产 | 婷婷激情欧美 | 亚洲人成网站精品片在线观看 | 国产不卡在线播放 | 五月天综合激情 | 香蕉久久久久 | 亚洲精品乱码久久久久久 | 国产成人在线看 | av网站手机在线观看 | 黄色午夜 | 精品久久久久久综合日本 | 日韩欧美在线不卡 | 中文字幕在线观看播放 | 精品主播网红福利资源观看 | 色噜噜在线观看 | 亚州精品天堂中文字幕 | 亚洲欧美日韩一二三区 | 欧美小视频在线 | 97视频免费 | 欧美日韩视频在线播放 | 久久综合色一综合色88 | 色欧美成人精品a∨在线观看 | 91精品在线免费 | 国产精品毛片久久久久久 | 夜夜操综合网 | 香蕉影视app | 中文字幕在线影院 | 日本中文一区二区 | 亚洲精品久久久久中文字幕二区 | 亚洲欧美激情插 | 玖玖在线观看视频 | 久久久久国产精品免费 | 97在线影视 | a午夜电影| 久久99在线 | 欧美久久久| 久久久久国产精品厨房 | 日日夜夜天天干 | 国产99久久久国产精品 | 国产精品毛片一区二区三区 | 久久精品国产精品亚洲 | 精品国产视频在线观看 | 成在人线av | 久草网免费| 天天操天天操一操 | 日韩中文字幕电影 | 亚洲二区精品 | 成人资源在线 | 日本精品中文字幕 | 免费观看视频黄 | 视频91在线 | 中文字幕视频三区 | 成年人免费看的视频 | 免费高清在线视频一区· | 日本女人的性生活视频 | 最近中文字幕大全中文字幕免费 | 91av在线免费视频 | 97色综合| 激情综合网五月激情 | 五月天婷婷免费视频 | 日韩在线免费不卡 | 午夜私人影院久久久久 | 久久免费资源 | 国产99久久精品一区二区永久免费 | 精品久久久久久亚洲综合网站 | 日韩在线三级 | 国产精品18久久久久白浆 | 99久久99久久免费精品蜜臀 | 超级碰碰视频 | 在线观看日韩精品视频 | 精品日韩中文字幕 | 国产精品综合av一区二区国产馆 | 亚洲综合网站在线观看 | 人人爱人人舔 | 日日夜夜天天人人 | 中文字幕久久网 | 18+视频网站链接 | 精品在线视频一区二区三区 | 国产精品自产拍在线观看桃花 | 黄色成人在线网站 | 操碰av| 精品国产成人在线影院 | 久久精品站 | 美女网站视频免费都是黄 | av一级片网站| 亚洲播放一区 | 免费在线观看污网站 | 中文字幕亚洲欧美 | 中文字幕在线播放一区二区 | 天天操夜操视频 | 国产一区二区三区高清播放 | 亚洲免费av电影 | 免费视频97| 天天综合天天综合 | 最新超碰在线 | 亚洲视频在线免费看 | 亚洲永久精品在线观看 | 亚洲一级在线观看 | 中文字幕第一页在线视频 | 久久午夜鲁丝片 | 婷婷在线精品视频 | 免费情缘 | 免费在线一区二区三区 | 黄色小网站在线 | 四川bbb搡bbb爽爽视频 | 亚洲久草在线视频 | 97小视频 | av天天澡天天爽天天av | 激情久久小说 | 人交video另类hd | 婷婷丁香六月 | 国产精品久久久久久久免费观看 | 中文字幕一区二区在线观看 | 久久婷婷国产色一区二区三区 | 日韩在线免费看 | 九九有精品 | 成人 亚洲 欧美 | 欧美乱码精品一区二区 | 美女久久99| 九九热精品国产 | 国产99精品在线观看 | 亚洲欧美色婷婷 | 久久国产精品一国产精品 | 国产999视频在线观看 | 婷婷六月天综合 | 婷婷黄色片 | 在线观看中文字幕 | 91爱爱免费观看 | 玖玖视频免费在线 | 精品亚洲男同gayvideo网站 | 免费在线a| 特级西西人体444是什么意思 | 国产精品一区二区电影 | 久久精品伊人 | 波多野结衣在线视频一区 | av大片免费在线观看 | 国产在线精品国自产拍影院 | 婷婷六月天天 | 免费在线播放视频 | 丁香激情视频 | 国内精品久久久久影院优 | 欧美一区影院 | 色综合国产 | 亚洲欧洲xxxx| 久久精品在线 | 免费av在线网站 | 日本aa在线| 久久人网 | 深夜精品福利 | 国产精品电影在线 | 91大片网站| 99视频免费播放 | 久久久 精品 | 中文字幕视频播放 | 国产成人精品日本亚洲999 | 麻豆手机在线 | 免费在线成人av电影 | 96久久| 天天操天天射天天插 | 国产精品永久久久久久久久久 | 亚洲极色| 国产中文视 | 一级黄色片在线 | 亚洲欧美日本一区二区三区 | 中文字幕色综合网 | 天天色宗合 | 欧美成天堂网地址 | 91精品毛片 | 96精品高清视频在线观看软件特色 | 日韩久久久 | 天天躁日日躁狠狠躁 | 性色av香蕉一区二区 | 狠狠综合久久 | 一性一交视频 | 免费在线观看日韩视频 | 久久久精品电影 | 婷婷视频在线观看 | 日韩av电影手机在线观看 | 四虎国产精品永久在线国在线 | 久久精品视频国产 | 欧美性大战久久久久 | 黄色在线看网站 | 亚洲第一伊人 | 亚洲精品一区中文字幕乱码 | av中文字幕免费在线观看 | avwww在线观看 | 日韩欧美在线一区二区 | 久久草草热国产精品直播 | 亚洲二区精品 | 日本久久高清视频 | 麻花豆传媒mv在线观看网站 | 免费看的av片 | 国色天香第二季 | 91久久一区二区 | 国产福利精品在线观看 | 欧美性护士| 国产欧美精品一区二区三区 | 婷婷去俺也去六月色 | 婷婷综合 | 国产69久久久欧美一级 | 综合网婷婷| 黄www在线观看 | 久久久久久久久久久久久影院 | 国产男男gay做爰 | 西西人体www444 | 国产色婷婷 | 成人a级免费视频 | 婷婷成人在线 | 免费成人黄色 | 国产 日韩 欧美 在线 | 国产日韩精品一区二区在线观看播放 | 天天插天天狠 | 人人爽久久久噜噜噜电影 | 97在线看片 | 一级黄色片毛片 | 成人a级免费视频 | 91人人插 | 国产精品一区二 | 国产手机免费视频 | 免费激情在线电影 | 激情综合色综合久久综合 | 日韩久久精品一区二区三区下载 | 日韩欧美综合 | 国产精品高清在线观看 | 最近中文字幕视频完整版 | 国产高清永久免费 | 五月天,com| 亚洲va男人天堂 | 国产中文字幕三区 | 久久这里只精品 | 国产精品专区在线 | 91网免费观看| 天天操天天吃 | 午夜在线资源 | 91精品视频免费看 | 欧美伦理一区二区三区 | 久草国产精品 | 国产免费中文字幕 | 国产91九色视频 | 成年人免费av网站 | 亚洲精品ww | 欧美少妇18p | 91av免费在线观看 | av免费网页 | 国产精品激情在线观看 | 久久久久久久久福利 | 久久久久久久网 | 最新在线你懂的 | 经典三级一区 | av网站手机在线观看 | 国产精品综合久久久 | 国产精品视频999 | 国产精品第72页 | 久久久国产一区 | 91精品久久久久久综合五月天 | 91最新视频在线观看 | 久久久精品视频成人 | 成人影音在线 | 国产人成在线观看 | 日日干,天天干 | 美女视频黄色免费 | 国产精品一区二区三区四区在线观看 | 日日躁你夜夜躁你av蜜 | 国产日韩欧美网站 | 日韩av电影网站在线观看 | 天天干天天草天天爽 | 色妞色视频一区二区三区四区 | 99在线观看 | 丝袜美女视频网站 | 日b黄色片| 日韩精品黄| 人人澡av| 欧美午夜久久久 | 午夜免费电影院 | 超碰成人免费电影 | av在线激情 | 91高清视频在线 | 亚州国产精品久久久 | 日本mv大片欧洲mv大片 | 成人网色 | 成人免费观看完整版电影 | 在线观看免费中文字幕 | 国产三级久久久 | 爱爱av网站| 91网址在线观看 | 日韩精品大片 | 天天爽天天搞 | 国产淫a| 午夜资源站 | 西西www4444大胆在线 | 在线日韩亚洲 | 精品亚洲va在线va天堂资源站 | 一区二区不卡高清 | 国产大尺度视频 | 又黄又色又爽 | av在线亚洲天堂 | 久久电影色 | 欧美久久久久久久久久久久久 | 欧美另类高清 videos | 日日草天天草 | 精品国产成人在线 | 欧美最猛性xxxxx亚洲精品 | 亚洲国产999 | 白丝av在线 | 一区二区久久 | 狠狠干网址 | 久久在线影院 | 人人爱爱| 特黄一级毛片 | 亚洲 成人 欧美 | 99精品国产一区二区 | 亚州欧美视频 | 国产资源av | 永久免费毛片 | 黄色av影视| 亚洲欧美日韩国产精品一区午夜 | 中文字幕av在线不卡 | av综合在线观看 | 操久| 欧美精品在线视频 | 午夜久久美女 | 欧美,日韩| av福利第一导航 | 91久久丝袜国产露脸动漫 | 97国产在线| 中文字幕在线观看国产 | 三上悠亚在线免费 | 国产99久久九九精品 | 亚洲一级电影视频 | 国产午夜麻豆影院在线观看 | 天堂中文在线视频 | 国产在线观看你懂的 | 天天摸天天操天天舔 | 91精品色 | 免费看一级黄色 | 中文字幕在线观看免费高清电影 | 在线高清一区 | 国产99久久精品一区二区永久免费 | 欧美亚洲三级 | 国产精品五月天 | 国产精品久久精品国产 | 九九热只有这里有精品 | 在线免费观看视频一区二区三区 | 干天天 | 中文在线中文a | 久久精品欧美一区 | 中文字幕一二三区 | 国产美女精品视频 | 激情偷乱人伦小说视频在线观看 | 免费观看完整版无人区 | 成人av在线直播 | av电影不卡在线 | 国产成人精品久久久 | 波多在线视频 | 精品国产成人av在线免 | 国产麻豆精品传媒av国产下载 | 久草在线费播放视频 | 五月婷婷激情 | 成人a v视频 | 日本最大色倩网站www | 色婷婷电影 | 亚洲精品久久久久999中文字幕 | 视频一区亚洲 | 免费国产视频 | 91av中文 | 国产一级电影免费观看 | 中文字幕在线播放一区二区 | 日韩黄色网络 | 日韩在线观看视频中文字幕 | 欧美日韩一区二区三区在线免费观看 | 狠狠操.com| 日韩黄色一级电影 | 久久午夜羞羞影院 | 三级黄色理论片 | 久久久久国产a免费观看rela | 六月丁香在线观看 | 在线视频日韩一区 | 一级免费片 | 国产午夜一区 | 国产欧美日韩精品一区二区免费 | 成人午夜免费剧场 | 亚洲精品在线免费观看视频 | 亚洲永久精品在线 | 国产福利一区二区三区视频 | 国产亚洲午夜高清国产拍精品 | 精品美女在线观看 | 精品久久精品久久 | 中文区中文字幕免费看 | 91精品国自产在线 | 亚洲精品xxx| 天天干天天弄 | 日日干天天爽 | 久久a久久 | 亚洲精品久久久久久久不卡四虎 | 国产一级特黄电影 | 欧美a级片网站 | 青青河边草观看完整版高清 | 久草精品国产 | 97色涩| 欧美成人亚洲成人 | 国外调教视频网站 | 久久综合中文字幕 | 三上悠亚一区二区在线观看 | 福利二区视频 | 人人干狠狠干 | 国产黄色精品网站 | 麻豆视频在线播放 | 国产精品黄色影片导航在线观看 | 人人爽人人插 | 久久人人艹| 日本久久久亚洲精品 | 亚洲婷婷在线视频 | 精品国产乱码久久久久久1区2匹 | 国产亚洲精品久久久久久电影 | 国产91亚洲 | 国产精品免费高清 | av五月婷婷 | 日韩精品在线免费观看 | av成人资源 | 精品久久精品 | 久久国产电影院 | 四虎5151久久欧美毛片 | 国产伦精品一区二区三区… | 国产麻豆剧果冻传媒视频播放量 | 天天射狠狠干 | 欧美视频一区二 | 欧美,日韩 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久久久久久久电影 | 欧美日韩免费一区 | 国产成人在线免费观看 | 美女免费网站 | 五月开心激情 | 国产精品久久久久久久久久久久午夜片 | 九九久久在线看 | 一二三久久久 | 中文 一区二区 | 亚洲精品国产精品乱码在线观看 | 伊人天天色| 成人91在线 | 91av在线国产 | 欧美极品一区二区三区 | 日本三级久久 | 久久亚洲在线 | 久久成视频 | 国产主播大尺度精品福利免费 | 色综合天 | 日批网站免费观看 | 国产精品自产拍在线观看中文 | 国产高清黄 | 午夜av免费在线观看 | 欧美va电影| 中文字幕乱码视频 | 91完整版 | 黄色av影院| 天天爽人人爽 | 亚洲一区尤物 | 日本中文乱码卡一卡二新区 | 人人干人人艹 | 国产精品www| 久久婷婷一区二区三区 | 中文字幕在线视频一区 | 波多野结衣在线视频一区 | 欧美日韩一区二区视频在线观看 | 久久国产美女 | 色在线中文字幕 | 免费看片成年人 | 在线精品视频在线观看高清 | 亚洲每日更新 | 免费看片成年人 | 91成人在线看| 97成人免费| 国产91全国探花系列在线播放 | 在线视频一二三 | 国产高清成人在线 | 热精品| 中文字幕在线观看第三页 | 一区二区三区四区在线免费观看 | 国产xvideos免费视频播放 | 97视频播放| 国产福利网站 | 日韩午夜在线播放 | 日日弄天天弄美女bbbb | 中文在线最新版天堂 | 久久午夜精品 | 美女精品久久 | 九九九九色 | 天躁狠狠躁 | 亚洲国产欧美一区二区三区丁香婷 | 久久久精品国产一区二区电影四季 | 中文字幕在线乱 | 美女视频黄,久久 | 日韩午夜高清 | 欧美日一级片 | 亚洲国产精品久久久久 | 亚洲美女视频在线观看 | 2020天天干夜夜爽 | 国产亚洲一区二区三区 | 91九色成人蝌蚪首页 | 国产麻豆果冻传媒在线观看 | 日韩美女免费线视频 | 97超碰伊人 | 欧美亚洲一级片 | 午夜久久久久久久久久影院 | 91九色丨porny丨丰满6 | 久久色亚洲| 天堂av在线 | 欧美精品一级视频 | 人人草在线视频 | 激情婷婷在线观看 | 国产精品日韩在线观看 | 日韩高清无线码2023 | 色综合激情网 | 九九热在线视频免费观看 | 99久久精品免费视频 | 日韩精品一区二区不卡 | 国产精品成人自产拍在线观看 | 国产一卡二卡四卡国 | 玖玖精品在线 | 免费观看国产成人 | 爱干视频 | 欧美韩国在线 | 国产成人综合精品 | 欧洲亚洲国产视频 | 1024手机看片国产 | 国产精品一区在线播放 | 超碰97.com | 国产视频 亚洲视频 | 欧美一区在线看 | 国产日女人 | 国产视频99| 夜夜夜草 | 久9在线 | 国产伦精品一区二区三区… | 91视频高清完整版 | 日韩电影精品一区 | 中文字幕专区高清在线观看 | 亚洲www天堂com | 久久成人精品视频 | 一区二区观看 | 久久久国产毛片 | 永久免费的啪啪网站免费观看浪潮 | 91九色视频在线观看 | 亚洲视频在线观看免费 | 青青河边草免费直播 | av网站播放 | 国产99黄| 波多野结衣视频一区 | 日韩在线中文字幕 | 麻豆一区在线观看 | 天堂久色| 91精品国产99久久久久久红楼 | 亚洲1区 在线 | 99视频在线精品免费观看2 | 91污在线 | 日韩av在线高清 | 天天爽夜夜爽精品视频婷婷 | 国产精品国产三级国产aⅴ无密码 | 婷婷在线观看视频 | 国产女人18毛片水真多18精品 | 亚洲成av人片在线观看 | 亚洲专区路线二 | 99热最新网址 | 国产精品久久久久久久久久ktv | 日韩二区三区在线 | 欧美日韩伦理一区 | 亚洲婷婷伊人 | 国产在线不卡 | 91麻豆网 | 91在线亚洲 | 久草在在线视频 | 国产成人精品一区二区 | 国产精品人人做人人爽人人添 | 最新中文在线视频 | 在线观看中文字幕一区二区 | 国产精品99久久久久久宅男 | 欧美日韩69| 美女一区网站 | 狠狠精品 | 国产精品久久久久久久久久免费 | 午夜av一区二区三区 | 五月激情站 | 久久伦理| 免费h视频 | 2018亚洲男人天堂 | www色av| 99热在线这里只有精品 | 一区二区三区在线免费观看 | 久草在线视频免费资源观看 | 玖玖玖国产精品 | 亚洲午夜久久久久久久久 | 国产女人18毛片水真多18精品 | 黄色录像av | 久草视频播放 | 成人国产精品久久久久久亚洲 | 在线观看视频国产 | 国产69精品久久久久久久久久 | 日韩欧美高清视频在线观看 | 一区二区三区精品在线视频 | 国产va饥渴难耐女保洁员在线观看 | 久久色在线播放 | 手机av在线免费观看 | 国产高清不卡在线 | 久久精品一区二区国产 | 精品女同一区二区三区在线观看 | 日韩视频在线一区 | 成人免费在线视频观看 | 色偷偷888欧美精品久久久 | 福利一区视频 | 久久九精品 | 日韩av一区二区三区四区 | 99精品在线免费视频 | 天天操夜夜操 | www最近高清中文国语在线观看 | 丁香5月婷婷久久 | 国产精品剧情在线亚洲 | 日产av在线播放 | 亚洲视频网站在线观看 | 久久综合狠狠综合久久狠狠色综合 | www.99热精品 | 国产精品亚洲综合久久 | 国产又粗又硬又长又爽的视频 | 中文字幕av全部资源www中文字幕在线观看 | 国产日韩精品一区二区在线观看播放 | 欧美福利片在线观看 | 欧美性黑人 | 免费在线色电影 | 二区中文字幕 | 黄色av成人在线观看 | 日韩在线首页 | 在线之家免费在线观看电影 | 狠狠操精品 | 91最新在线| 狠狠干夜夜操 | 久久视频免费看 | 免费看一级 | 国产在线不卡一区 | 正在播放五月婷婷狠狠干 | 日韩高清一区二区 | 亚洲综合成人婷婷小说 | 国产一级二级在线 | 国产高清久久 | 亚洲精品国产麻豆 | 天天干天天射天天爽 | 中文字幕亚洲国产 | 国产精品久久嫩一区二区免费 | 91丨九色丨高潮丰满 | 九九热在线免费观看 | 日韩a级黄色片 | 婷婷久月| 欧美色就是色 | 亚洲精品国偷自产在线99热 | 99久久精品免费看 | 很黄很污的视频网站 | 婷婷色伊人 | av在线电影网站 | 亚洲最新av在线网址 | 视频一区亚洲 | 中文字幕丝袜一区二区 | 久草com| 精品久久久久一区二区国产 | 久久久久激情电影 | 中文字幕电影一区 | 国产69久久精品成人看 | 国产vs久久 | 国产中文在线播放 | 久久婷婷精品视频 | 日本精品一区二区三区在线播放视频 | 日韩在线高清 | 精品一区二区av | 成人免费看电影 | 色在线视频| 国产免费一区二区三区网站免费 | 97理论片| 手机在线看永久av片免费 | 国产乱视频 | 精品久久一| 五月婷婷在线综合 | 91精品久久久久久久久久久久久 | 日韩一区二区三区在线观看 | 久久久久电影 | 久久久久成人精品 | 国产成人av电影在线观看 | 亚洲精品乱码久久久久久蜜桃动漫 | 亚洲成人精品久久 | 国产成人免费在线 | 欧美日韩精品在线免费观看 | 波多野结衣视频一区二区三区 | 国产成人福利在线观看 | 国产福利资源 | 成年一级片 | 中文字幕在线免费观看 | 日日夜夜精品 | 亚洲欧美国产精品va在线观看 | 亚洲午夜精品福利 | 日韩在线观看一区二区 | 91成年视频 | 国产大片黄色 | 久久免费av | 国产成人亚洲在线观看 | 亚州av一区 | 91精品国产亚洲 | 亚洲精品福利在线 | 日本女人在线观看 | 超碰人人91 | 午夜精品一区二区三区在线视频 | 久久精品高清 | 久久人人爽av | 草久在线播放 | 日本91在线| 在线亚洲播放 | 精品嫩模福利一区二区蜜臀 | 免费看的黄色片 | 久久精品99北条麻妃 | 深爱激情av | 国产专区在线 | 日韩免费看片 | 欧美精品视 | 麻豆94tv免费版 | 日日操天天射 | 国产成人久久77777精品 | 日日夜夜操av| 天天干天天做天天爱 | 欧美a级一区二区 | 国产无限资源在线观看 | 亚洲精品乱码久久久久久写真 | 97精品国产97久久久久久免费 | 00av视频 | 久久精品一区二区三区中文字幕 | 国产成人一区二区三区在线观看 | 中文高清av| 欧美性免费 | 五月婷婷播播 | 免费视频区 | 丁香视频在线观看 | 久久在线视频在线 | 99久在线精品99re8热视频 | 日日操天天爽 | 日韩电影中文字幕 | www成人av | 欧美色插 | 亚洲电影图片小说 | 欧美午夜久久久 | 激情av综合 | 久久久久久97三级 | 91porny九色91啦中文 | www.夜夜爱 | 婷婷丁香六月天 | 久久精品永久免费 | 免费视频久久 | 欧洲亚洲精品 | 黄色软件在线观看免费 | 日本久久91 | 亚洲2019精品 | 国产精品视频app | 免费av 在线| 天天操天天射天天爽 | 日韩动漫免费观看高清完整版在线观看 | 久9在线| 一本到视频在线观看 | 看片网站黄色 | 亚洲精品视频免费在线 | 四虎国产精品免费观看视频优播 | 98精品国产自产在线观看 | 韩国精品一区二区三区六区色诱 | 91麻豆免费视频 | 天天拍天天干 | 久久草草热国产精品直播 | 久久久高清一区二区三区 | 天天草夜夜 | 91精品国产网站 | 亚洲国产wwwccc36天堂 | 久久视奸 | 亚洲精品久久久蜜桃 | 亚洲三级在线免费观看 | 免费看的黄色的网站 | 久久国产免 | 女人高潮一级片 | 麻花豆传媒mv在线观看 | www.狠狠操.com | 精品久久国产一区 | 中文字幕资源网 国产 | 国产91精品看黄网站在线观看动漫 | 免费观看91| 国产一区二区三区网站 | 日本精品久久久久影院 | 天天综合导航 | 亚洲一级久久 | 日韩欧美高清不卡 | 日韩久久一区 | 五月综合色 | 黄污视频网站大全 | 亚洲性少妇性猛交wwww乱大交 | 日韩久久久久久 | 天堂av网址 | 国产成人黄色片 | 在线观看黄色免费视频 | 91网址在线| 欧美精品中文在线免费观看 | av免费在线播放 | 久免费视频 | a级国产乱理论片在线观看 伊人宗合网 | 国产精品99免费看 | 99 精品 在线 | 天天干中文字幕 | 国产精品久99 | 成人资源网|