版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
任務(wù)一話題通信機(jī)制基礎(chǔ)概述01任務(wù)二使用話題通信機(jī)制實(shí)現(xiàn)節(jié)點(diǎn)通信02任務(wù)三使用話題通信機(jī)制控制小海龜移動(dòng)03146任務(wù)一
話題通信機(jī)制基礎(chǔ)概述1471.?掌握話題通信機(jī)制的原理和特點(diǎn)2.?了解話題通信機(jī)制的消息類型3.?了解話題通信機(jī)制在機(jī)器人系統(tǒng)中的應(yīng)用任務(wù)目標(biāo)148一、話題通信機(jī)制的原理和特點(diǎn)項(xiàng)目二任務(wù)三已經(jīng)初步介紹了話題通信機(jī)制的基本原理。話題通信機(jī)制定義了一種發(fā)布/訂閱模式,在這種模式下,一個(gè)節(jié)點(diǎn)可以作為消息的發(fā)布者,將數(shù)據(jù)發(fā)布到特定的話題上;而其他節(jié)點(diǎn)可以作為訂閱者,通過訂閱相應(yīng)的話題來接收發(fā)布者發(fā)送的消息?;A(chǔ)知識(shí)149150在發(fā)布/訂閱模式中,發(fā)布者和訂閱者之間通過話題傳遞消息,發(fā)布者節(jié)點(diǎn)負(fù)責(zé)將消息發(fā)布到話題上,而無須了解訂閱該話題的節(jié)點(diǎn)的存在。這使發(fā)布者與訂閱者之間解耦(一種計(jì)算機(jī)科學(xué)中的設(shè)計(jì)原則,指的是減少模塊、組件或系統(tǒng)之間的依賴性,使它們能夠獨(dú)立地進(jìn)行修改、擴(kuò)展或替換,而不會(huì)對(duì)其他部分產(chǎn)生過多的影響),并允許節(jié)點(diǎn)之間進(jìn)行松散耦合的通信。由于話題通信機(jī)制為異步通信,因此對(duì)節(jié)點(diǎn)的啟動(dòng)順序沒有嚴(yán)格的要求。節(jié)點(diǎn)可以按照不同的順序啟動(dòng),而不會(huì)影響消息的傳遞。發(fā)布者和訂閱者之間的通信不需要實(shí)時(shí)連接,消息可以在發(fā)布時(shí)被緩存,直到訂閱者準(zhǔn)備好接收它們,這為節(jié)點(diǎn)之間的數(shù)據(jù)交流提供了靈活性和可靠性。二、話題通信機(jī)制的消息類型話題通信可以支持多種消息類型,包括字符串型、整型、浮點(diǎn)型、數(shù)組型等以及這些類型組合而成的結(jié)構(gòu)體,且ROS允許用戶創(chuàng)建自定義的消息類型。ROS提供了標(biāo)準(zhǔn)消息(std_msgs)以及常用消息類型(包括geometry_msgs、sensor_msgs、nav_msgs等),用戶可以直接調(diào)用這些消息,ROS的消息類型見下表。151152ROS的消息類型153ROS的消息類型三、話題通信機(jī)制在機(jī)器人系統(tǒng)中的應(yīng)用話題通信機(jī)制在機(jī)器人系統(tǒng)中有廣泛的應(yīng)用。例如,在自主移動(dòng)機(jī)器人系統(tǒng)中,攝像頭、激光雷達(dá)等感知節(jié)點(diǎn)將感知到的環(huán)境數(shù)據(jù)發(fā)布到相應(yīng)的話題上,導(dǎo)航節(jié)點(diǎn)通過訂閱這些話題,獲取環(huán)境數(shù)據(jù)并進(jìn)行路徑規(guī)劃、避障等操作。又如,在機(jī)器人控制系統(tǒng)中,機(jī)器人控制節(jié)點(diǎn)可以通過發(fā)布控制命令的話題,向執(zhí)行器節(jié)點(diǎn)發(fā)送控制指令,實(shí)現(xiàn)機(jī)器人的運(yùn)動(dòng)控制、姿態(tài)調(diào)整等功能。此外,多個(gè)機(jī)器人之間可以通過話題通信實(shí)現(xiàn)協(xié)作與協(xié)調(diào)。154任務(wù)二
使用話題通信機(jī)制實(shí)現(xiàn)節(jié)點(diǎn)通信1551.?掌握節(jié)點(diǎn)發(fā)布話題函數(shù)的用途和使用方法2.?掌握節(jié)點(diǎn)訂閱話題函數(shù)的用途和使用方法3.?能創(chuàng)建節(jié)點(diǎn)文件和節(jié)點(diǎn)程序并編寫相應(yīng)的代碼,實(shí)現(xiàn)節(jié)點(diǎn)話題通信任務(wù)目標(biāo)156一、節(jié)點(diǎn)發(fā)布話題函數(shù)節(jié)點(diǎn)發(fā)布話題的方法非常簡(jiǎn)單,只需使用rospy.publisher()函數(shù)即可創(chuàng)建一個(gè)發(fā)布者?;A(chǔ)知識(shí)157創(chuàng)建發(fā)布者發(fā)布者創(chuàng)建完成后,使用publish()函數(shù)即可發(fā)布消息到話題中,代碼如圖所示。需要注意的是,發(fā)布的消息類型需要與創(chuàng)建發(fā)布者時(shí)的消息類型一致。創(chuàng)建發(fā)布者“pub”指定的消息類型為字符串型,則使用publish()函數(shù)時(shí)也要用字符串型數(shù)據(jù)。158發(fā)布消息到話題二、節(jié)點(diǎn)訂閱話題函數(shù)訂閱話題時(shí)需要使用rospy.subscriber()函數(shù)創(chuàng)建一個(gè)訂閱者,由于接收到消息后需要處理消息,所以訂閱者應(yīng)有一個(gè)回調(diào)函數(shù)(可以作為參數(shù)傳遞的函數(shù)),當(dāng)訂閱者接收到話題的數(shù)據(jù)時(shí),會(huì)調(diào)用一次回調(diào)函數(shù)對(duì)數(shù)據(jù)進(jìn)行處理。159創(chuàng)建訂閱者當(dāng)指定的話題中輸入消息時(shí),將會(huì)調(diào)用回調(diào)函數(shù)。示例中回調(diào)函數(shù)的作用是獲取消息并將消息輸出到終端中,代碼如圖所示。160回調(diào)函數(shù)rospy.loginfo()函數(shù)可以將括號(hào)內(nèi)的消息作為日志消息輸出,也可以輸出到終端中,訂閱者接收到消息后,可以在終端中查看消息。String類型的消息數(shù)據(jù)在data屬性中,所以若要獲取String類型的消息數(shù)據(jù),需要讀取回調(diào)函數(shù)形參的data屬性,即data.data。161任務(wù)三
使用話題通信機(jī)制控制小海龜移動(dòng)1621.?掌握話題消息類型和數(shù)據(jù)結(jié)構(gòu)的查看方法2.?掌握話題消息數(shù)據(jù)的賦值方法3.?能使用話題通信機(jī)制控制小海龜移動(dòng)任務(wù)目標(biāo)163一、話題消息類型和數(shù)據(jù)結(jié)構(gòu)的查看在編寫的節(jié)點(diǎn)與其他節(jié)點(diǎn)進(jìn)行話題通信前,需要明確話題的名稱以及話題的消息類型。以小海龜為例,小海龜節(jié)點(diǎn)訂閱“/turtle1/cmd_vel”話題,并根據(jù)話題中的速度指令進(jìn)行移動(dòng),可以通過rostopicinfo命令查看該話題的具體消息,命令如下(執(zhí)行命令前需要啟動(dòng)turtlesim_node節(jié)點(diǎn)):$rostopicinfo/turtle1/cmd_vel基礎(chǔ)知識(shí)164運(yùn)行后可以得到以下消息:Type:geometry_msgs/TwistPublishers:NoneSubscribers:*/turtlesim(http://ubuntu:35923/)由以上信息可知,話題“/turtle1/cmd_vel”的消息類型為geometry_msgs/Twist,使用rosmsgshow命令可以查看這個(gè)消息的具體數(shù)據(jù)結(jié)構(gòu),具體命令如下:$rosmsgshowgeometry_msgs/Twist165運(yùn)行后可以得到以下消息:geometry_msgs/Vector3linearfloat64xfloat64yfloat64z
geometry_msgs/Vector3angularfloat64xfloat64yfloat64z166geometry_msgs/Twist消息類型包含兩個(gè)geometry_msgs/Vector3類型的變量:一個(gè)是linear(線速度),另一個(gè)是angular(角速度)。每個(gè)變量都包含三個(gè)?oat64類型的變量,分別是x、y和z,表示在X、Y和Z軸上的線速度以及圍繞X、Y和Z軸旋轉(zhuǎn)的角速度大小。167二、話題消息數(shù)據(jù)的賦值geometry_msgs/Twist是ROS提供的常用消息類型之一,可通過在Python中使用fromgeometry_msgs.msgimportTwist代碼來調(diào)用。創(chuàng)建話題發(fā)布者時(shí),可以使用該消息類型來指定發(fā)布的消息格式,代碼如圖所示。168調(diào)用geometry_msgs/Twist消息類型并指定發(fā)布的消息格式不同的消息類型具有不同的結(jié)構(gòu),可以使用rosmsgshow命令查看消息的數(shù)據(jù)結(jié)構(gòu),并據(jù)此填寫消息終端的數(shù)據(jù)。如圖所示是創(chuàng)建一個(gè)geometry_msgs/Twist類型的變量并對(duì)其賦值的示例,本例中小海龜以2.0m/s的線速度沿X軸移動(dòng),并以2.0rad/s的角速度繞Z軸旋轉(zhuǎn),在窗口中畫圓。169創(chuàng)建變量并為變量賦值完成geometry_msgs/Twist類型的變量賦值后,使用publish()函數(shù)即可將變量的值發(fā)布到話題中,控制小海龜移動(dòng),代碼如圖所示。170將數(shù)據(jù)發(fā)布到話題任務(wù)一服務(wù)通信機(jī)制基礎(chǔ)概述01任務(wù)二創(chuàng)建并編譯自定義服務(wù)數(shù)據(jù)02任務(wù)三使用服務(wù)通信機(jī)制實(shí)現(xiàn)節(jié)點(diǎn)通信03171任務(wù)一
服務(wù)通信機(jī)制基礎(chǔ)概述1721.?掌握服務(wù)通信機(jī)制的原理和特點(diǎn)2.?了解服務(wù)數(shù)據(jù)的類型3.?了解服務(wù)通信機(jī)制在機(jī)器人系統(tǒng)中的應(yīng)用任務(wù)目標(biāo)173一、服務(wù)通信機(jī)制的原理和特點(diǎn)服務(wù)通信機(jī)制采用請(qǐng)求—響應(yīng)模型,其中一個(gè)節(jié)點(diǎn)充當(dāng)服務(wù)的提供者,稱為服務(wù)服務(wù)器,而另一個(gè)節(jié)點(diǎn)則充當(dāng)服務(wù)的請(qǐng)求者,稱為服務(wù)客戶端。服務(wù)服務(wù)器負(fù)責(zé)接收和處理來自服務(wù)客戶端的請(qǐng)求消息。它執(zhí)行特定的任務(wù)或提供特定的功能,并根據(jù)收到的請(qǐng)求消息生成相應(yīng)的響應(yīng)消息,以回應(yīng)服務(wù)客戶端的需求?;A(chǔ)知識(shí)174175服務(wù)客戶端向服務(wù)服務(wù)器發(fā)送請(qǐng)求消息,并等待服務(wù)服務(wù)器的響應(yīng)消息,以獲取特定的服務(wù)或執(zhí)行特定的操作。它通過發(fā)送請(qǐng)求與服務(wù)服務(wù)器進(jìn)行交互,并根據(jù)收到的響應(yīng)消息做出相應(yīng)的處理,以滿足自己的需求。一般來說,服務(wù)通信的流程包括以下步驟:服務(wù)服務(wù)器啟動(dòng)并等待服務(wù)客戶端的請(qǐng)求;服務(wù)客戶端發(fā)送請(qǐng)求消息到指定的服務(wù)服務(wù)器;服務(wù)服務(wù)器接收到請(qǐng)求消息后進(jìn)行處理并生成相應(yīng)的響應(yīng)消息;服務(wù)服務(wù)器將響應(yīng)消息發(fā)送給服務(wù)客戶端;服務(wù)客戶端接收并處理服務(wù)服務(wù)器的響應(yīng)消息。176與話題通信機(jī)制不同,服務(wù)通信機(jī)制是一種同步通信方式。服務(wù)客戶端發(fā)送請(qǐng)求消息后會(huì)等待服務(wù)服務(wù)器的響應(yīng),這種請(qǐng)求和響應(yīng)是一對(duì)一的關(guān)系。服務(wù)客戶端可以等待響應(yīng),也可以設(shè)置超時(shí)時(shí)間來處理無響應(yīng)的情況。在程序中使用服務(wù)通信機(jī)制可以得知節(jié)點(diǎn)發(fā)出的數(shù)據(jù)是否被目標(biāo)節(jié)點(diǎn)接收到,從而保證一些復(fù)雜的任務(wù)能夠正確進(jìn)行。通常情況下,話題通信機(jī)制中的消息側(cè)重于狀態(tài)信息(位姿、傳感器數(shù)據(jù)、速度等),而服務(wù)通信機(jī)制中的消息側(cè)重于操作(設(shè)定參數(shù)、設(shè)定模式、創(chuàng)建、清除等)。二、服務(wù)數(shù)據(jù)的類型在ROS中使用服務(wù)通信機(jī)制時(shí),需要定義特定的服務(wù)數(shù)據(jù)類型。服務(wù)數(shù)據(jù)類型定義了服務(wù)請(qǐng)求消息和服務(wù)響應(yīng)消息的結(jié)構(gòu)和內(nèi)容:服務(wù)請(qǐng)求消息是由服務(wù)客戶端發(fā)送給服務(wù)服務(wù)器的消息,它描述了服務(wù)客戶端希望服務(wù)服務(wù)器執(zhí)行的特定任務(wù)或提供的服務(wù);服務(wù)響應(yīng)消息是服務(wù)服務(wù)器對(duì)服務(wù)請(qǐng)求消息的回應(yīng),它包含了服務(wù)服務(wù)器執(zhí)行任務(wù)后產(chǎn)生的結(jié)果或提供的服務(wù)。服務(wù)請(qǐng)求消息和服務(wù)響應(yīng)消息的結(jié)構(gòu)和內(nèi)容均應(yīng)根據(jù)具體的應(yīng)用場(chǎng)景而定,可以包含不同的字段和數(shù)據(jù)類型。177178在ROS中,可以使用服務(wù)描述文件(后綴為“.srv”)來自定義服務(wù)數(shù)據(jù),服務(wù)描述文件通常放置在功能包的srv文件夾中。服務(wù)數(shù)據(jù)由請(qǐng)求和響應(yīng)兩個(gè)數(shù)據(jù)域組成,請(qǐng)求和響應(yīng)可以包含不同數(shù)量的字段,并且可以指定不同的數(shù)據(jù)類型,這些字段之間用“---”進(jìn)行分隔,如圖所示。在下圖中,服務(wù)請(qǐng)求由兩個(gè)整數(shù)字段“a”和“b”組成,而服務(wù)響應(yīng)由一個(gè)整數(shù)字段“sum”組成。通過定義服務(wù)數(shù)據(jù),可以明確規(guī)定服務(wù)的輸入和輸出格式,以便在節(jié)點(diǎn)間進(jìn)行準(zhǔn)確的請(qǐng)求和響應(yīng)。179服務(wù)數(shù)據(jù)的結(jié)構(gòu)三、服務(wù)通信機(jī)制在機(jī)器人系統(tǒng)中的應(yīng)用服務(wù)通信機(jī)制在機(jī)器人控制、感知數(shù)據(jù)處理、數(shù)據(jù)查詢與管理、分布式任務(wù)協(xié)作、系統(tǒng)狀態(tài)檢測(cè)與管理等方面都有實(shí)際使用場(chǎng)景。以感知數(shù)據(jù)處理為例,服務(wù)服務(wù)器可以接收來自服務(wù)客戶端的感知數(shù)據(jù),如圖像或激光掃描數(shù)據(jù),服務(wù)服務(wù)器會(huì)對(duì)接收到的數(shù)據(jù)進(jìn)行分析和處理,并生成響應(yīng)消息以提供處理結(jié)果。180相比于話題通信機(jī)制,服務(wù)通信機(jī)制更適用于需要明確請(qǐng)求和響應(yīng)的場(chǎng)景、需要傳遞參數(shù)和獲取結(jié)果的操作以及需要數(shù)據(jù)交互和函數(shù)調(diào)用的任務(wù)。此外,服務(wù)通信機(jī)制具有同步操作和阻塞等待的能力,能夠確保順序性和依賴關(guān)系,更適合需要同步操作和結(jié)果等待的場(chǎng)景。181任務(wù)二
創(chuàng)建并編譯自定義服務(wù)數(shù)據(jù)1821.?掌握自定義服務(wù)數(shù)據(jù)的創(chuàng)建方法2.?掌握自定義服務(wù)數(shù)據(jù)的編譯方法3.?能創(chuàng)建并編譯自定義服務(wù)數(shù)據(jù)任務(wù)目標(biāo)183一、自定義服務(wù)數(shù)據(jù)的創(chuàng)建在使用服務(wù)通信機(jī)制之前,應(yīng)對(duì)程序需要的服務(wù)數(shù)據(jù)進(jìn)行定義。服務(wù)數(shù)據(jù)通常會(huì)被定義在功能包的srv文件夾中,服務(wù)數(shù)據(jù)文件的后綴為“.srv”,名稱可以根據(jù)需求確定,服務(wù)數(shù)據(jù)文件如圖所示?;A(chǔ)知識(shí)184服務(wù)數(shù)據(jù)文件服務(wù)數(shù)據(jù)的請(qǐng)求和響應(yīng)應(yīng)與希望實(shí)現(xiàn)的程序功能相對(duì)應(yīng)。例如,若客戶端節(jié)點(diǎn)發(fā)送兩個(gè)整數(shù)到服務(wù)器端,希望得到這兩個(gè)整數(shù)的累加值,則服務(wù)數(shù)據(jù)中的請(qǐng)求為兩個(gè)整數(shù),響應(yīng)為一個(gè)整數(shù)。將以下內(nèi)容添加到服務(wù)數(shù)據(jù)文件中并保存,即可完成服務(wù)數(shù)據(jù)的創(chuàng)建。int64aint64b---int64sum服務(wù)數(shù)據(jù)文件通過定義請(qǐng)求消息和響應(yīng)消息的結(jié)構(gòu)、數(shù)據(jù)類型和字段,確保響應(yīng)能夠按照預(yù)期進(jìn)行。185二、自定義服務(wù)數(shù)據(jù)的編譯由于需要在程序中調(diào)用自定義的服務(wù)數(shù)據(jù),所以需要將服務(wù)數(shù)據(jù)的依賴添加到功能包清單中,并將服務(wù)數(shù)據(jù)添加到編譯選項(xiàng)文件中。打開功能包中的package.xml文件,添加以下兩行內(nèi)容:<build_export_depend>message_generation</build_export_depend>#服務(wù)數(shù)據(jù)生成器<exec_depend>message_runtime</exec_depend>186打開功能包中的CMakeLists.txt文件,添加以下內(nèi)容:187添加完成后,編譯功能包時(shí)系統(tǒng)將自動(dòng)根據(jù)創(chuàng)建的服務(wù)數(shù)據(jù)文件生成對(duì)應(yīng)的頭文件(包含代碼聲明的文件,用于在源代碼文件中引入函數(shù)、類、變量等聲明。頭文件通常以“.h”或“.hpp”為擴(kuò)展名,并通過#include指令在源代碼中引入),這些文件存放在工作空間的devel/include目錄下,如圖所示。188系統(tǒng)生成的頭文件任務(wù)三
使用服務(wù)通信機(jī)制實(shí)現(xiàn)節(jié)點(diǎn)通信1891.?掌握服務(wù)器節(jié)點(diǎn)程序相關(guān)函數(shù)2.?掌握客戶端節(jié)點(diǎn)程序相關(guān)函數(shù)3.?能使用服務(wù)通信機(jī)制實(shí)現(xiàn)節(jié)點(diǎn)通信任務(wù)目標(biāo)190一、服務(wù)器節(jié)點(diǎn)程序若要在程序中使用曾定義過的服務(wù)數(shù)據(jù),需要在程序的開頭添加代碼,用于從頭文件中導(dǎo)入服務(wù)數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)輪胎硫化機(jī)市場(chǎng)現(xiàn)狀調(diào)研及投資發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025-2030年中國(guó)融合通信(UC)行業(yè)發(fā)展現(xiàn)狀規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)菱鎂礦市場(chǎng)未來發(fā)展?fàn)顩r及投資規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)花生休閑食品行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及前景趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)船舶租賃市場(chǎng)運(yùn)行現(xiàn)狀發(fā)展規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)紅茶市場(chǎng)未來發(fā)展趨勢(shì)及前景調(diào)研分析報(bào)告
- 2025-2030年中國(guó)粗雜糧產(chǎn)業(yè)運(yùn)營(yíng)趨勢(shì)及發(fā)展策略分析報(bào)告
- 2025-2030年中國(guó)矯形器械行業(yè)市場(chǎng)發(fā)展規(guī)模及前景趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)電解鋁行業(yè)十三五規(guī)劃及發(fā)展策略分析報(bào)告
- 2025-2030年中國(guó)電熱線行業(yè)發(fā)展動(dòng)態(tài)及投資規(guī)劃研究報(bào)告
- 替格瑞洛藥物作用機(jī)制、不良反應(yīng)機(jī)制、與氯吡格雷區(qū)別和合理使用
- 河北省大學(xué)生調(diào)研河北社會(huì)調(diào)查活動(dòng)項(xiàng)目申請(qǐng)書
- GB/T 20920-2007電子水平儀
- 如何提高教師的課程領(lǐng)導(dǎo)力
- 企業(yè)人員組織結(jié)構(gòu)圖
- 日本疾病診斷分組(DPC)定額支付方式課件
- 兩段焙燒除砷技術(shù)簡(jiǎn)介 - 文字版(1)(2)課件
- 實(shí)習(xí)證明模板免費(fèi)下載【8篇】
- 復(fù)旦大學(xué)用經(jīng)濟(jì)學(xué)智慧解讀中國(guó)課件03用大歷史觀看中國(guó)社會(huì)轉(zhuǎn)型
- 案件受理登記表模版
- 最新焊接工藝評(píng)定表格
評(píng)論
0/150
提交評(píng)論