在线观看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學(xué)習(xí)筆記之ROS基本概念

jf_78858299 ? 來源:Joes機(jī)器人 ? 作者:Joes機(jī)器人 ? 2023-05-19 17:11 ? 次閱讀

ROS的概念分為三個層次:文件系統(tǒng)層、計算圖層、社區(qū)層,這些層次以及概念將會在接下來的章節(jié)介紹。

除了這三個層次的概念,ROS同樣定義兩個names類型,包資源名稱和圖形資源名稱。

1、ROS文件系統(tǒng)層次

文件系統(tǒng)層概念主要指在硬盤里能看到的ROS目錄和文件, 例如:

  • Packages : Packages是在ROS中整理及組織軟體的主要單元。一個Packages包含節(jié)點(ROS runtime processes)、ROS程式庫(ROS-dependent library)、數(shù)據(jù)集(datasets)、配置文件(configuration files)??等等。Packages是您在ROS中能建立及分享的最小單元。
  • Metapackages : Metapackages 是一組具體的服務(wù)相關(guān)的功能包。大部分的metpackages 只作為轉(zhuǎn)換rosbuild Stacks的向后兼容的備選。
  • Package Manifests : Manifests (package.xml) 描述一個package的元信息,包括了package的名字,版本,功能簡述,證書信息,依賴關(guān)系,以及一些其他的被export的package所有的信息。關(guān)于package.xml 的文件說明,參考REP-0127.
  • Repositories : 代碼倉庫是使用VCS版本控制系統(tǒng)的軟件包集合,軟件包利用版本控制維持同一版本,它能使用catkin自動發(fā)布工具bloom進(jìn)行發(fā)布。這些代碼倉庫常通過映射來進(jìn)行轉(zhuǎn)換 rosbuild Stacks.倉庫可以是只有一個軟件包。
  • Message (msg) types : 存儲在my_package/msg/MyMessageType.msg的Message文件,主要定義了ROS系統(tǒng)的messages傳輸?shù)臄?shù)據(jù)結(jié)構(gòu)。
  • Service (srv) types : 存儲在 my_package/srv/MyServiceType.srv的服務(wù)services文件,定義了ROS的服務(wù)通信時的請求(request )和響應(yīng)(response )相關(guān)的數(shù)據(jù)結(jié)構(gòu)。

2、ROS計算圖層次

  • 計算圖*是ROS在點對點網(wǎng)絡(luò)里整合并處理數(shù)據(jù)的過程。基本計算圖概念是 節(jié)點 , 主機(jī) , 參數(shù)服務(wù)器 , 消息 , 服務(wù) , 話題 , 和 數(shù)據(jù)包 ,它們通過不同的方式提供數(shù)據(jù)給圖層。

這些概念是在ros_comm庫里實現(xiàn)的:

  • Nodes : 節(jié)點主要執(zhí)行計算處理 。ROS被設(shè)計為細(xì)粒度的模塊化的系統(tǒng);一個機(jī)器人控制系統(tǒng)通常有很多節(jié)點組成 。例如,一個節(jié)點控制激光測距儀,一個節(jié)點控制輪電機(jī),一個節(jié)點執(zhí)行定位,一個節(jié)點執(zhí)行路徑規(guī)劃,一個節(jié)點提供系統(tǒng)圖形界面,等等。一個ROS節(jié)點通過ROS客戶端庫 client library編寫,例如 roscpp 或rospy
  • Master : ROS Master 為計算圖的其余部分提供名稱注冊和查找。沒有 Master,節(jié)點將無法找到彼此、交換消息或調(diào)用服務(wù)。
  • Parameter Server : 參數(shù)服務(wù)器允許將數(shù)據(jù)按密鑰存儲在一個中央位置。它目前是 Master 的一部分。
  • Messages : 節(jié)點之間通過傳遞消息進(jìn)行通信。消息只是一種數(shù)據(jù)結(jié)構(gòu),包括類型化字段。支持標(biāo)準(zhǔn)基本類型(整數(shù)、浮點數(shù)、布爾值等),以及基本類型數(shù)組。消息可以包括任意嵌套的結(jié)構(gòu)和數(shù)組(很像 C 結(jié)構(gòu))。
  • Topics : 消息通過具有發(fā)布/訂閱語義的傳輸系統(tǒng)進(jìn)行路由。節(jié)點通過將消息發(fā)布到給定主題來發(fā)送消息。主題是用于標(biāo)識消息內(nèi)容的名稱。對某種數(shù)據(jù)感興趣的節(jié)點將訂閱適當(dāng)?shù)闹黝}。一個主題可能有多個并發(fā)發(fā)布者和訂閱者,一個節(jié)點可能發(fā)布和/或訂閱多個主題。通常,發(fā)布者和訂閱者并不知道彼此的存在。這個想法是將信息的生產(chǎn)與其消費分離。從邏輯上講,可以將主題視為強(qiáng)類型消息總線。每條總線都有一個名稱,任何人都可以連接到總線來發(fā)送或接收消息,只要它們是正確的類型。
  • Services : 發(fā)布/訂閱模型是一種非常靈活的通信范式,但其多對多、單向傳輸不適用于請求/回復(fù)交互,而這在分布式系統(tǒng)中通常是必需的。請求/回復(fù)是通過服務(wù)完成的,服務(wù)由一對消息結(jié)構(gòu)定義:一個用于請求,一個用于回復(fù)。提供節(jié)點以某個名稱提供服務(wù),客戶端通過發(fā)送請求消息并等待回復(fù)來使用該服務(wù)。ROS 客戶端庫通常將這種交互呈現(xiàn)給程序員,就好像它是一個遠(yuǎn)程過程調(diào)用。
  • Bags : Bags 是一種用于保存和回放 ROS 消息數(shù)據(jù)的格式。袋子是存儲數(shù)據(jù)(例如傳感器數(shù)據(jù))的重要機(jī)制,這些數(shù)據(jù)可能難以收集,但卻是開發(fā)和測試算法所必需的。
    ROS Master 在 ROS 計算圖中充當(dāng)名稱服務(wù)。它存儲 ROS 節(jié)點的主題和服務(wù)注冊信息。節(jié)點與 Master 通信以報告其注冊信息。當(dāng)這些節(jié)點與 Master 通信時,它們可以接收有關(guān)其他注冊節(jié)點的信息并進(jìn)行適當(dāng)?shù)倪B接。當(dāng)這個注冊信息發(fā)生變化時,Master 也會對這些節(jié)點進(jìn)行回調(diào),這允許節(jié)點在新節(jié)點運行時動態(tài)創(chuàng)建連接。
    節(jié)點直接連接到其他節(jié)點;Master 只提供查找信息,很像 DNS 服務(wù)器。訂閱主題的節(jié)點將從發(fā)布該主題的節(jié)點請求連接,并將通過商定的連接協(xié)議建立該連接。ROS 中最常用的協(xié)議稱為 TCPROS,它使用標(biāo)準(zhǔn)的 TCP/IP 套接字。
    這種架構(gòu)允許解耦操作,其中名稱是構(gòu)建更大和更復(fù)雜系統(tǒng)的主要手段。名稱在 ROS 中具有非常重要的作用:節(jié)點、主題、服務(wù)和參數(shù)都有名稱。每個 ROS 客戶端庫都支持名稱的命令行重映射,這意味著可以在運行時重新配置已編譯的程序以在不同的計算圖拓?fù)渲羞\行。
    例如,要控制 Hokuyo 激光測距儀,我們可以啟動 hokuyo_node 驅(qū)動程序,它與激光通信并在掃描主題上發(fā)布 sensor_msgs/LaserScan 消息。為了處理這些數(shù)據(jù),我們可能會使用laser_filters 編寫一個節(jié)點來訂閱關(guān)于掃描主題的消息。訂閱后,我們的過濾器會自動開始接收來自激光的消息。
    注意兩側(cè)是如何解耦的。hokuyo_node 節(jié)點所做的只是發(fā)布掃描,不知道是否有人訂閱。過濾器所做的只是訂閱掃描,而不知道是否有人發(fā)布它們。這兩個節(jié)點可以按任意順序啟動、終止和重新啟動,而不會引發(fā)任何錯誤情況。
    稍后我們可能會為我們的機(jī)器人添加另一個激光器,因此我們需要重新配置我們的系統(tǒng)。我們需要做的就是重新映射使用的名稱。當(dāng)我們開始我們的第一個 hokuyo_node 時,我們可以告訴它重新映射 scan 到 base_scan,并對我們的過濾器節(jié)點做同樣的事情。現(xiàn)在,這兩個節(jié)點都將使用 base_scan 主題進(jìn)行通信,而不會聽到關(guān)于 scan 主題的消息。然后我們可以為新的激光測距儀啟動另一個 hokuyo_node。

圖片

3、ROS 交流社區(qū)

ROS 社區(qū)級概念是 ROS 資源,使不同的社區(qū)能夠交換軟件和知識。這些資源包括:

  • Distributions : ROS 發(fā)行版是您可以安裝的版本化堆棧的集合。發(fā)行版與 Linux 發(fā)行版扮演著類似的角色:它們使安裝一組軟件變得更加容易,并且它們還可以在一組軟件中保持一致的版本。
  • Repositories :ROS 依賴于代碼存儲庫的聯(lián)合網(wǎng)絡(luò),不同的機(jī)構(gòu)可以在其中開發(fā)和發(fā)布自己的機(jī)器人軟件組件。
  • The ROS Wiki : ROS 社區(qū) Wiki 是記錄有關(guān) ROS 信息的主要論壇。任何人都可以注冊一個帳戶并貢獻(xiàn)自己的文檔、提供更正或更新、編寫教程等等。
  • Bug Ticket System :有關(guān)文件票的信息,請參閱票證。
  • Mailing Lists : ros-users 郵件列表是有關(guān) ROS 新更新的主要溝通渠道,也是詢問有關(guān) ROS 軟件問題的論壇。
  • ROS Answers : 用于回答您的 ROS 相關(guān)問題的問答網(wǎng)站。
  • Blog : 柳葉車庫博客提供定期更新,包括照片和視頻

4、名稱

4.1、圖資源名稱

圖資源名稱提供分層命名結(jié)構(gòu),用于 ROS 計算圖中的所有資源,例如節(jié)點、參數(shù)、主題和服務(wù)。這些名稱在 ROS 中非常強(qiáng)大,并且對于 ROS 中如何組成更大、更復(fù)雜的系統(tǒng)至關(guān)重要,因此了解這些名稱的工作原理以及如何操作它們至關(guān)重要。

在我們進(jìn)一步描述名稱之前,這里有一些示例名稱:

  • / (全局命名空間)
  • /foo
  • /stanford/robot/name
  • /wg/node1
    圖資源名稱是ROS中提供封裝的重要機(jī)制。每個資源都定義在一個命名空間中,它可以與許多其他資源共享。通常,資源可以在其命名空間內(nèi)創(chuàng)建資源,并且它們可以訪問在其自己的命名空間內(nèi)或之上的資源。可以在不同命名空間中的資源之間建立連接,但這通常由兩個命名空間上方的集成代碼完成。這種封裝隔離了系統(tǒng)的不同部分,以免意外獲取錯誤命名的資源或全局劫持名稱。
    名稱是相對解析的,因此資源不需要知道它們在哪個命名空間中。這簡化了編程,因為可以編寫一起工作的節(jié)點,就好像它們都在頂級命名空間中一樣。當(dāng)這些節(jié)點被集成到一個更大的系統(tǒng)中時,它們可以被下推到一個定義它們代碼集合的命名空間中。例如,可以將一個斯坦福演示和一個 Willow Garage 演示合并到一個帶有 stanford 和 wg 子圖的新演示中。如果兩個演示都有一個名為“camera”的節(jié)點,它們就不會發(fā)生沖突。需要對整個圖形可見的工具(例如圖形可視化)以及參數(shù)(例如 demo_name)可以由頂級節(jié)點創(chuàng)建。

4.1.1、有效名稱

有效名稱具有以下特征:

1.第一個字符是字母字符 ([a-z|A-Z])、波浪號 (~) 或正斜杠 (/)

2.后續(xù)字符可以是字母數(shù)字 ([0-9|a-z|A-Z])、下劃線 (_) 或正斜杠 (/)

例外:基本名稱(如下所述)中不能包含正斜杠 (/) 或波浪號 (~)。

4.1.2、解決

ROS中有四種類型的圖資源名稱:base、relative、global和private,它們的語法如下:

  • base
  • relative/name
  • /global/name
  • private/name
    默認(rèn)情況下,解析是相對于節(jié)點的命名空間完成的。例如,節(jié)點 /wg/node1 具有命名空間 /wg,因此名稱 node2 將解析為 /wg/node2。
    沒有命名空間限定符的名稱是基本名稱。基名實際上是相對名的一個子類,具有相同的解析規(guī)則。基本名稱最常用于初始化節(jié)點名稱。
    以“/”開頭的名稱是全局的——它們被認(rèn)為是完全解析的。應(yīng)盡可能避免使用全局名稱,因為它們限制了代碼的可移植性。
    以“
    ”開頭的名稱是私有的。它們將節(jié)點的名稱轉(zhuǎn)換為命名空間。例如,命名空間 /wg/ 中的 node1 具有私有命名空間 /wg/node1。私有名稱可用于通過參數(shù)服務(wù)器將參數(shù)傳遞到特定節(jié)點。

以下是一些名稱解析示例:

Node Relative (default) Global Private
/node1 bar->/bar /bar->/bar ~bar->/node1/bar
/wg/node2 bar->/wg/bar /bar->/bar ~bar->/wg/node2/bar
/wg/node3 foo/bar->/wg/foo/bar /foo/bar->/foo/bar ~foo/bar->/wg/node3/foo/bar

4.1.3、重新映射

在命令行啟動節(jié)點時,可以重新映射 ROS 節(jié)點中的任何名稱。有關(guān)此功能的更多信息,請參閱重新映射參數(shù)。

4.2、包資源名稱

包資源名稱在具有文件系統(tǒng)級概念的 ROS 中使用,以簡化引用磁盤上文件和數(shù)據(jù)類型的過程。包資源名稱非常簡單:它們只是資源所在的包的名稱加上資源的名稱。例如,名稱“std_msgs/String”指的是“std_msgs”包中的“String”消息類型。

可以使用包資源名稱引用的一些與 ROS 相關(guān)的文件包括:

  • Message (msg) types
  • Service (srv) types
  • Node types
    包資源名稱與文件路徑非常相似,只是它們要短得多。這是因為 ROS 能夠在磁盤上定位包并對它們的內(nèi)容做出額外的假設(shè)。例如,消息描述始終存儲在 msg 子目錄中并具有 .msg 擴(kuò)展名,因此 std_msgs/String 是 path/to/std_msgs/msg/String.msg 的簡寫。同樣,Node 類型 foo/bar 相當(dāng)于在 Package foo 中搜索具有可執(zhí)行權(quán)限的名為 bar 的文件。

4.2.1、有效名稱

包資源名稱具有嚴(yán)格的命名規(guī)則,因為它們經(jīng)常用于自動生成的代碼中。因此,一個 ROS 包不能有除下劃線以外的特殊字符,它們必須以字母字符開頭。有效名稱具有以下特征:

1.第一個字符是字母字符 ([a-z|A-Z])

2.后續(xù)字符可以是字母數(shù)字 ([0-9|a-z|A-Z])、下劃線 (_) 或正斜杠 (/)

3.最多有一個正斜杠 ('/')。

4.3、 代碼接口

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

    關(guān)注

    2

    文章

    452

    瀏覽量

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

    關(guān)注

    1

    文章

    283

    瀏覽量

    17479
收藏 人收藏

    評論

    相關(guān)推薦

    ROS基本概念和系統(tǒng)架構(gòu) ROS的安裝和簡單測試

    前言:一直都覺得ROS很神秘,到底是個操作系統(tǒng),僅憑稱呼就讓我望而卻步了。但ROS和自動駕駛仿真有著千絲萬縷的聯(lián)系,作為仿真軟件和智駕算法的數(shù)據(jù)橋梁,ROS是個繞不開的話題,所以還是得硬著頭皮啃一啃。然后用大白話講給你聽,最好再
    的頭像 發(fā)表于 11-15 12:42 ?7849次閱讀
    <b class='flag-5'>ROS</b>的<b class='flag-5'>基本概念</b>和系統(tǒng)架構(gòu) <b class='flag-5'>ROS</b>的安裝和簡單測試

    超詳細(xì) ROS安裝教程

    :華碩筆記本 + Windows 10 + Ubuntu 16.04 雙系統(tǒng)Ubuntu 硬盤大小: 100G內(nèi)存: 8G顯卡: 也不是用來打dota, 所以隨便啦啦啦~\(≧▽≦)/~啦啦啦Ros版本
    發(fā)表于 05-16 19:35

    什么是ROS?如何學(xué)習(xí)ROS

    什么是ROS?如何學(xué)習(xí)ROS
    發(fā)表于 11-11 07:21

    什么是ROSROS產(chǎn)生、發(fā)展和壯大的原因和意義

    機(jī)器人操作系統(tǒng)(ROS)入門(嵌入式系統(tǒng)應(yīng)用開發(fā))一、ROS 基本問題1. 什么是 ROS2. ROS 產(chǎn)生、發(fā)展和壯大的原因和意義二、安裝 ROS
    發(fā)表于 12-17 06:08

    怎么入門ROS

    你是不是還在迷茫怎么入門ROS?是不是想找平臺和大家一起交流?不論你是準(zhǔn)備用ROS做導(dǎo)航定位算法、計算機(jī)視覺、運動控制,還是可視化仿真,都可以從這里找到不錯的資源,快進(jìn)來一起一起學(xué)習(xí)吧!最后,非常感謝原作者小白機(jī)械師整理的
    發(fā)表于 02-24 07:31

    搭建ARM+ROS的硬件載體ROS的移植及測試方法

      1. 準(zhǔn)備工作  經(jīng)過前面的環(huán)境搭建,HDG2L-IoT評估套件已經(jīng)能穩(wěn)定地運行Ubuntu+docker環(huán)境,當(dāng)前需要下載運行ROS鏡像即可。  本文參考ROS官方文檔《Getting
    發(fā)表于 03-09 13:55

    ROS 學(xué)習(xí)筆記五:對Arduino環(huán)境刮目相看

    ROS 學(xué)習(xí)筆記五:對Arduino環(huán)境刮目相看
    發(fā)表于 11-29 09:51 ?2次下載
    <b class='flag-5'>ROS</b> <b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b><b class='flag-5'>之</b>五:對Arduino環(huán)境刮目相看

    ROS學(xué)習(xí)筆記七:ROSSerial初試

    起來得心應(yīng)手的還是MCU,所以如何將MCU控制的硬件和ROS系統(tǒng)相連,可以基于ROS的信息交互機(jī)制實現(xiàn)控制和反饋,是學(xué)習(xí)ROS、基于ROS
    發(fā)表于 12-07 14:51 ?9次下載
    <b class='flag-5'>ROS</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b><b class='flag-5'>之</b>七:ROSSerial初試

    ROS基本介紹

    近來找到的實習(xí)主要是做智能車控制,用到的也就是ROS機(jī)器人操作系統(tǒng),ROS需要運行在一個操作系統(tǒng)上,這個操作系統(tǒng)常用的就是Linux,而公司用的就是Ubuntu,所以Ubuntu-ROS組合就是實習(xí)的主要
    的頭像 發(fā)表于 05-19 17:07 ?7827次閱讀
    <b class='flag-5'>ROS</b>基本介紹

    ROS1的通信架構(gòu)的基礎(chǔ)通信方式及相關(guān)概念

    ROS的通信架構(gòu)是ROS的靈魂所在,它包括數(shù)據(jù)處理,進(jìn)程運行,消息傳遞等** 。這篇文章主要介紹ROS1的通信架構(gòu)的基礎(chǔ)通信方式和相關(guān)概念,因為RO
    的頭像 發(fā)表于 05-19 17:23 ?3921次閱讀
    <b class='flag-5'>ROS</b>1的通信架構(gòu)的基礎(chǔ)通信方式及相關(guān)<b class='flag-5'>概念</b>

    ROS操作系統(tǒng)學(xué)習(xí)筆記3

    摘要:這篇文章主要介紹ROS常用工具、ROSPY和ROSCPP常用模塊,完全看完三篇文章,可以說ROS就基本入門,可以自己動手做實驗了。 **ROS常用工具** ROS工具
    的頭像 發(fā)表于 05-19 17:37 ?1184次閱讀
    <b class='flag-5'>ROS</b>操作系統(tǒng)<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>3

    ROS操作系統(tǒng)學(xué)習(xí)筆記4

    摘要:這篇文章主要介紹ROS常用工具、ROSPY和ROSCPP常用模塊,完全看完三篇文章,可以說ROS就基本入門,可以自己動手做實驗了。 **ROS常用工具** ROS工具
    的頭像 發(fā)表于 05-19 17:37 ?829次閱讀

    實現(xiàn)ARM+ROS(機(jī)器人操作系統(tǒng))運行ROS

    如何低成本搭建ARM+ROS的硬件載體?上文展示ROS部署前的籌備工作及步驟分解,本文將為大家演示ROS的移植及測試方法。
    的頭像 發(fā)表于 10-10 18:15 ?1430次閱讀
    實現(xiàn)ARM+<b class='flag-5'>ROS</b>(機(jī)器人操作系統(tǒng))<b class='flag-5'>之</b>運行<b class='flag-5'>ROS</b>!

    Unity與ROS鏈接介紹

    對于ROS而言,其最常用的就是Topic話題以及Service兩個了。之前我們在了解Unity Robotics Hub時候就了解到基本的Unity和ROS的通訊,下面我們來詳細(xì)介紹一下Unity
    的頭像 發(fā)表于 11-17 17:22 ?1304次閱讀
    Unity與<b class='flag-5'>ROS</b>鏈接介紹

    ros基本概念是什么

    基本概念ROS是一個用于在不同進(jìn)程間匿名的發(fā)布、訂閱、傳遞信息的中間件。 ROS2系統(tǒng)的核心部分是ROS網(wǎng)絡(luò)(ROS Graph)。
    的頭像 發(fā)表于 11-27 11:21 ?2114次閱讀
    主站蜘蛛池模板: 狠狠色噜噜狠狠狠狠色综合久 | 四虎影视免费观看 | 亚洲第一网站 | 亚洲 欧洲 日产 韩国在线 | 午夜嘿咻| 国产精品久久久久久免费播放 | 天天摸夜夜添狠狠添2018 | 亚洲国产美女精品久久 | 久久国产成人精品国产成人亚洲 | 亚洲欧洲色天使日韩精品 | 四虎永久精品免费网址大全 | 91福利国产在线观看网站 | 天天操天天摸天天碰 | 5g国产精品影院天天5g天天爽 | 欧美午夜性刺激在线观看免费 | 久久久久久免费播放一级毛片 | 国产精品久久久久久久久免费观看 | 激情网站网址 | 人人射人人插 | 欧美黄色三级视频 | 国产在线视频资源 | 丁香婷婷久久 | 丁香花的视频免费观看 | 一级毛片免费全部播放完整 | 国产国拍亚洲精品mv在线观看 | 视频在线观看免费网址 | 丁香婷婷在线视频 | 色婷婷成人网 | brazzers在线| 免费视频不卡 | 末发育女一区二区三区 | www.黄黄黄| 日本人爽p大片免费看 | 天天拍拍天天爽免费视频 | 欧美激情在线 | 天堂在线视频网站 | 在线午夜影院 | 教官的好爽好深h片段 | 国产高清成人mv在线观看 | 色色就色色| 欧美女同在线 |