久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

ROS2第三天:從“看得懂”到“跑得起來”的完整實(shí)踐

ROS2第三天:從“看得懂”到“跑得起來”的完整實(shí)踐 學(xué)ROS2的第三天說實(shí)話我已經(jīng)有了一種被知識淹沒的感覺。前兩天還算歲月靜好小烏龜在模擬器里老老實(shí)實(shí)轉(zhuǎn)圈ros2 topic list能刷出一長串名字讓我覺得自己好像已經(jīng)入門了rviz2也能勉強(qiáng)拖出一個機(jī)器人模型。但到了第三天我開始認(rèn)真想把學(xué)到的這些零碎東西組合成一個能解決實(shí)際問題的節(jié)點(diǎn)然后發(fā)現(xiàn)自己徹底卡住了——每個命令都認(rèn)識連起來就不知道從哪下手。這個狀態(tài)我相信不是少數(shù)人。如果你正好也處在“學(xué)ROS2的第三天”這個尷尬點(diǎn)這篇筆記就是為你寫的我把我踩過的坑、試錯過程、還有最后一個能正常跑起來的示例代碼全部攤開講清楚。1. 第三天到底卡在哪從“看得懂”到“跑得起來”的坎1.1 前兩天其實(shí)只學(xué)會了“看戲”先復(fù)盤一下前兩天到底學(xué)了什么。按多數(shù)人走完的典型路線基本上就是裝好ROS2跑通小烏龜然后用命令行工具去看話題、看節(jié)點(diǎn)。ros2 node list、ros2 topic list、ros2 topic echo這些命令用得很溜你甚至能盯著/turtle1/pose的坐標(biāo)變化看一晚上感嘆這系統(tǒng)真奇妙。但說白了這只是“看戲”。你看到了話題上在傳什么數(shù)據(jù)但完全沒親手生產(chǎn)過任何數(shù)據(jù)。真正的開發(fā)是要自己寫一個節(jié)點(diǎn)往話題里發(fā)消息或者接收消息做出反應(yīng)。這個從“消費(fèi)數(shù)據(jù)”到“生產(chǎn)數(shù)據(jù)”的切換就是第三天最讓我難受的一道坎。我試著從網(wǎng)上找一個最簡單的Python示例來抄結(jié)果發(fā)現(xiàn)很多所謂“菜鳥教程”上來就是一堆我不認(rèn)識的概念rclpy、Node、Publisher、Timer。我能理解每個單詞但把它們組合起來加上一個while rclpy.ok()循環(huán)腦子就開始轉(zhuǎn)不動了。更要命的是一旦跑起來還報錯報錯信息又是大段大段的引用棧嚇得我一度懷疑自己是不是干不了這個。1.2 第三天暴露的三個典型“癥狀”我想了想第三天的迷茫其實(shí)可以歸納成三個癥狀大家對號入座一下。第一個癥狀是“命令都會架構(gòu)不會”。你知道ros2 run可以啟動節(jié)點(diǎn)但你不知道一個完整的機(jī)器人系統(tǒng)里要寫幾個節(jié)點(diǎn)、每個節(jié)點(diǎn)該干什么。第二個癥狀是“跟著教程走能通離開教程就瞎”。一篇博客讓你寫個talker你寫了也能跑但讓你自己設(shè)計一個“每隔兩秒發(fā)布一次里程計數(shù)據(jù)”的功能你就不知道怎么把定時器、消息類型、qos這些參數(shù)拼起來。第三個癥狀是“一碰硬件就崩”。很多第三天的新手和我一樣心里想的都是“我得讓真實(shí)小車動起來才對”結(jié)果一接上串口、一裝驅(qū)動各種權(quán)限錯誤、依賴沖突一下午就沒了。如果你中了兩條以上說明你還沒到上硬件的時候。我的建議是第三天老老實(shí)實(shí)留在仿真環(huán)境里先把“自己寫節(jié)點(diǎn)、自己定義消息、自己完成發(fā)布訂閱”這條鏈路跑通。真實(shí)硬件是加分項(xiàng)但前提是你已經(jīng)能熟練編寫和執(zhí)行一個功能包否則只會把ROS2學(xué)習(xí)的挫敗感提前放大十倍。1.3 我為什么勸你先別急著上硬件我知道這很難忍住。我自己也提前買了一塊ESP32計劃照著網(wǎng)上“ROS2 humble串口橋接esp32小車”的思路讓小車通過串口把速度反饋發(fā)給主機(jī)。結(jié)果我連第一步micro-ROS agent都沒跑起來。后來我才明白這條鏈路其實(shí)涉及好幾層?xùn)|西要在ESP32上生成帶micro-ROS客戶端的固件要跑一個micro-ROS agent把串口數(shù)據(jù)接到ROS2網(wǎng)絡(luò)里還要解決串口設(shè)備權(quán)限、波特率、固件刷寫工具鏈。對三天的ROS2新手來說任何一個環(huán)節(jié)出問題你都分不清到底是ROS2的問題、串口的問題、還是單片機(jī)的問題。所以當(dāng)天我做了個明智的決定關(guān)掉ESP32的燒錄工程回到純軟件的ROS2環(huán)境先把節(jié)點(diǎn)、工作區(qū)、編譯、運(yùn)行這套基本功練扎實(shí)。第三天尤其在還搞不清colcon build原理的情況下任何硬件層都會成為不必要的變量。這不是勸退是讓后面的路更順。等你能熟練寫三五個功能包之后再回頭搞micro-ROS橋接相信一天就能解決。2. 第三天的地基環(huán)境、工作區(qū)與構(gòu)建系統(tǒng)2.1 ROS2版本怎么選Humble、Jazzy還是等新發(fā)行版版本選擇是第三天必須自己先想清楚的一件事。目前最常見的是ROS2 Humble官方支持到2027年左右教程最多、社區(qū)資源最全。我一開始裝了Humble但因?yàn)槭诸^電腦正好是Ubuntu 24.04官方Humble并不直接支持折騰很久才勉強(qiáng)裝上問題還非常多。后來我干脆換成了Jazzy因?yàn)镴azzy正好對應(yīng)Ubuntu 24.04裝起來輕松不少。這里的建議很簡單先看你的Ubuntu版本再選對應(yīng)的ROS2發(fā)行版。別學(xué)我看了教程是Humble就強(qiáng)行裝結(jié)果后面各種Python依賴沖突連ros2 --version都時好時壞。從長期學(xué)習(xí)角度講選Humble做學(xué)習(xí)平臺是沒有問題的它是當(dāng)前生態(tài)最成熟的分支很多硬件驅(qū)動、第三方庫都優(yōu)先適配了它。但如果你用的是新版本Ubuntu裝Humble的痛苦遠(yuǎn)大于收益。我后來還試過Docker方案在容器里跑一個干凈的Humble環(huán)境宿主機(jī)的Ubuntu版本就無所謂了。這個方案給了一個非常干凈的實(shí)驗(yàn)環(huán)境壞了就重建容器不用擔(dān)心把系統(tǒng)搞爛。我當(dāng)時在Docker容器里跑通了ROS2 humble的小烏龜還把rviz2通過主機(jī)的顯示屏輸出出來體驗(yàn)相當(dāng)順滑。2.2 Ubuntu 24.04 安裝的坑與一鍵腳本提到安裝過程我強(qiáng)烈建議在第三天就把“怎么裝好的”這件事徹底想清楚不然以后出問題都不知道去哪修。手動裝ROS2需要先設(shè)置軟件源、添加ROS2的GPG密鑰、再安裝對應(yīng)發(fā)行版的基礎(chǔ)包最后還要裝開發(fā)工具和Python依賴。這個流程對新手來說很容易出錯尤其是網(wǎng)絡(luò)不好的時候下載中斷、源失效都可能讓安裝時長無限拉長。我試過網(wǎng)上很流行的“魚香ROS一鍵安裝”確實(shí)能省掉不少步驟它本質(zhì)上是把這些命令全部打包成一個腳本你只要選擇對應(yīng)的發(fā)行版就行。這里有一個關(guān)鍵教訓(xùn)一鍵腳本雖然快但你最好還是手動跑一遍官方文檔里的步驟至少大概知道腳本在你系統(tǒng)里改了哪些文件。我第三天寫的第一行“真正有用的代碼”其實(shí)是調(diào)試安裝問題。當(dāng)時我發(fā)現(xiàn)明明裝好了Jazzy但每次打開新終端總提示找不到ros2命令。原因特別蠢忘了把source /opt/ros/jazzy/setup.bash寫進(jìn)~/.bashrc。新手經(jīng)常在不同終端之間來回切換只有已經(jīng)source過的老終端能用ros2新終端一上來就是空的。這個問題不解決后續(xù)每一步都會荒廢。2.3 工作區(qū)結(jié)構(gòu)src/build/install/log安裝好之后第三天的另一件大事是搞清楚什么是“工作區(qū)”。我最初以為只要在一個文件夾里寫幾個.py文件就能跑后來才發(fā)現(xiàn)ROS2有一套自己的工程組織方式最外面是一個工作區(qū)目錄下面通常有src、build、install、log四個文件夾。src放我們的源碼包build放編譯中間產(chǎn)物install放最終安裝好的包和環(huán)境腳本log則是編譯日志。剛接觸這套結(jié)構(gòu)時真的頭大但類比一下就通了這就像一個大型項(xiàng)目的“工地”源碼是設(shè)計圖紙build是施工過程install是最終交付的毛坯房log是每天的施工日志。我在第三天犯過的最蠢錯誤是好幾次打開終端直接跑到install目錄下運(yùn)行一個可執(zhí)行文件然后報錯說找不到相關(guān)的庫。正確做法是在你手動source了install/setup.bash之后ros2 run會替你找到對應(yīng)的可執(zhí)行文件和依賴庫。你不需要關(guān)心這個可執(zhí)行文件到底藏在哪個子目錄。記住這個邏輯之后我寫代碼時的思路就順多了只要保證源碼在src下被正確組織編譯之后所有東西都會統(tǒng)一進(jìn)install運(yùn)行階段我只關(guān)心ros2 run的包名和節(jié)點(diǎn)名不再去手動找路徑。2.4 colcon build 的日常用法和source技巧colcon build是第三天繞不開的構(gòu)建命令它負(fù)責(zé)把你src下的包一個個編譯并把結(jié)果放到install目錄。我第一次用的時候直接一個colcon build就跑結(jié)果編譯一個包時因?yàn)槿鄙僖蕾噲箦e了整個構(gòu)建流程中斷。后來才知道如果你只是改了某一個包可以用colcon build --packages-select 包名只編譯指定包速度會快很多。這個選項(xiàng)看起來不起眼但它真的能省下大量時間尤其在你后面進(jìn)行一個幾個包的聯(lián)合開發(fā)時每次全量構(gòu)建會讓你懷疑人生。source環(huán)境腳本這里還有個坑source install/setup.bash是要在“當(dāng)前終端”生效的一旦你新開一個終端就得重新source。我一開始以為放在.bashrc里就一勞永逸了但如果你像我一樣同時維護(hù)多個工作區(qū)容易造成“包遮蔽”問題。比如工作區(qū)A里有個pkg_a工作區(qū)B里也有一個同名pkg_a兩個都寫進(jìn).bashrc最終生效的是排在后面的那個。這種問題排查起來非常隱蔽癥狀是代碼明明改了跑起來還是舊行為。后面我學(xué)乖了不在.bashrc里寫死工作區(qū)而是每次進(jìn)入具體項(xiàng)目時手動source寧可麻煩一點(diǎn)也要保證環(huán)境是確定的。2.5 Domain ID 和 Docker讓多個系統(tǒng)并存第三天如果只學(xué)一個“不那么常見但很有用”的概念我推薦花十分鐘看看Domain ID。ROS2默認(rèn)的Domain ID是0所有在同一網(wǎng)段、Domain ID相同的節(jié)點(diǎn)才能互相通信。這個設(shè)計本來是為了讓不同系統(tǒng)在同一網(wǎng)絡(luò)環(huán)境下互不干擾但新手不懂它就很容易出現(xiàn)“我這個節(jié)點(diǎn)的數(shù)據(jù)和別人為什么串了”的詭異問題。我當(dāng)時在跑小烏龜時旁邊別人教室的ROS2節(jié)點(diǎn)也通過Wi-Fi廣播了過來話題列表里多出一堆不認(rèn)識的名字我還以為自己的系統(tǒng)壞了。后面把Domain ID改成一個偏門數(shù)字世界立刻清凈了。Docker里跑ROS2也是一條值得走通的路。我試過在Ubuntu 24.04上用一個專門的ROS2容器再配合主機(jī)的顯示器做圖形界面轉(zhuǎn)發(fā)這樣無論宿主機(jī)是什么版本環(huán)境都保持干凈。但要注意Docker容器默認(rèn)使用橋接網(wǎng)絡(luò)ROS2的發(fā)現(xiàn)協(xié)議默認(rèn)使用組播在橋接網(wǎng)絡(luò)里很多時候會發(fā)現(xiàn)不了對方。解決辦法是啟動容器時用--network host讓容器共享宿主機(jī)的網(wǎng)絡(luò)棧然后在容器里的ROS_DOMAIN_ID和宿主機(jī)保持一致這樣才能正常通信。如果你的目標(biāo)是“在干凈環(huán)境里跑ROS2”Docker絕對值得在第三天花一下午研究明白它能讓你以后換電腦、換系統(tǒng)時不再重新經(jīng)歷一次安裝地獄。3. 第三天的核心概念話題、服務(wù)與動作3.1 話題ROS2里的“瀑布流”話題這個概念很多人以為懂但第三天一旦自己上手寫代碼就容易在“什么時候發(fā)消息、什么時候訂閱、什么時候銷毀節(jié)點(diǎn)”這些問題上卡住。我用一個生活化的比喻來說話題就像廣播電臺。一個節(jié)點(diǎn)在某個頻率上廣播某種類型的消息任何感興趣的節(jié)點(diǎn)都能來聽發(fā)布者和訂閱者之間不需要認(rèn)識對方。比如/cmd_vel這個標(biāo)準(zhǔn)話題就是告訴機(jī)器人“你該怎么樣了”而激光雷達(dá)節(jié)點(diǎn)則會在/scan上廣播測量數(shù)據(jù)導(dǎo)航節(jié)點(diǎn)訂閱/scan來計算避障。這里的關(guān)鍵點(diǎn)在于話題通信是異步的、單向的、持續(xù)性的。發(fā)布者發(fā)完消息就走訂閱者也在自己的線程里回調(diào)處理。新手最容易犯錯的是在回調(diào)函數(shù)里干了太多耗時的事情比如在訂閱回調(diào)里去執(zhí)行一個數(shù)據(jù)庫查詢結(jié)果整個節(jié)點(diǎn)越來越卡。第三天的正確姿勢是回調(diào)函數(shù)里只做“把數(shù)據(jù)趕緊收下來”這件事真正的復(fù)雜處理放回主循環(huán)或單獨(dú)的線程里去。我當(dāng)時寫的一個里程計訂閱節(jié)點(diǎn)就是因?yàn)橹苯釉诨卣{(diào)里做了大計算導(dǎo)致消息越積越多最后內(nèi)存瘋漲。3.2 服務(wù)簡單直白的“一呼一應(yīng)”如果說話題是廣播電臺那服務(wù)就是“打電話”??蛻舳藫苓^去說“我要做這件事”服務(wù)端響應(yīng)并返回結(jié)果一個請求對應(yīng)一個響應(yīng)整個過程同步完成。我學(xué)服務(wù)時想找一個最簡單的例子最好就是ROS2的小烏龜例子里那個/spawn服務(wù)。你調(diào)用它傳遞一個坐標(biāo)和角度它就在仿真世界里生成一只新的烏龜并返回生成烏龜?shù)拿?。這個模式非常適合那些“請求一下、等結(jié)果”的操作比如點(diǎn)亮一盞燈、打開一個夾爪或者請求一個機(jī)器人執(zhí)行一次位置歸零。第三天理解服務(wù)要特別注意一對概念srv文件長什么樣里面用---分隔請求和響應(yīng)兩部分。我記得我第一次自己定義服務(wù)類型的時候忘了在package.xml和CMakeLists.txt里注冊結(jié)果編譯通過但運(yùn)行報錯說找不到服務(wù)類型。這個坑很典型。后來我才明白ROS2里新建消息類型也好、服務(wù)類型也好除了要寫.msg或.srv文件之外還必須修改構(gòu)建配置讓構(gòu)建系統(tǒng)可以發(fā)現(xiàn)這些文件。這塊沒有捷徑把官方示例的配置抄一遍抄兩遍抄明白為止。3.3 動作給“耗時任務(wù)”專用的執(zhí)行模式動作是我在第三天最后一個弄明白的概念也是我覺得最容易被新手忽略的一塊。動作類比的場景可以是一次“外賣配送”你下單后商家確認(rèn)收到訂單中間不斷告訴你出餐進(jìn)度最后送達(dá)時告訴你完成。對應(yīng)到ROS2里動作客戶端發(fā)起一個目標(biāo)動作服務(wù)端響應(yīng)并承諾執(zhí)行在執(zhí)行過程中周期性反饋進(jìn)度任務(wù)完成后返回最終結(jié)果。導(dǎo)航任務(wù)就是最典型的動作比如“導(dǎo)航到A點(diǎn)”它需要持續(xù)執(zhí)行幾十秒中間的進(jìn)度和未來的最終結(jié)果都很重要這時候用服務(wù)就不合適因?yàn)榉?wù)同步等待會讓整個節(jié)點(diǎn)阻塞。我在學(xué)動作的時候一開始老把它和服務(wù)混在一起。后來用到的判斷標(biāo)準(zhǔn)特別簡單如果這個任務(wù)需要“持續(xù)一段時間”且有中間進(jìn)度要匯報那就用動作如果只是“閃一下”趕緊給個結(jié)果那就用服務(wù)。動作對新手而言最大的門檻是代碼結(jié)構(gòu)比話題和服務(wù)復(fù)雜一層因?yàn)樗喑觥澳繕?biāo)、反饋、結(jié)果”三種消息類型。第三天我并不建議自己動手寫一個完整的動作服務(wù)端但至少要把ros2 action list和ros2 action info這類命令用熟看明白現(xiàn)成例子里反饋是怎么回來的。3.4 怎么選一把實(shí)用的尺子如果有朋友第三天跑來問我“話題、服務(wù)、動作到底應(yīng)該學(xué)哪個、優(yōu)先學(xué)哪個”我會說話題是絕對優(yōu)先級其次是服務(wù)動作可以了解但不必深究。理由很簡單實(shí)際項(xiàng)目中七八成的ROS2節(jié)點(diǎn)間通信靠的都是話題很多工具鏈、算法包在集成時對服務(wù)的依賴度也比動作高。動作重要但通常是導(dǎo)航、機(jī)械臂這類大型應(yīng)用里才高頻出現(xiàn)等基礎(chǔ)扎實(shí)再回過頭啃就好。拿一張表來收束這個選擇邏輯通信方式方向是否同步最適合的場景話題單向、持續(xù)異步傳感器數(shù)據(jù)、速度指令、狀態(tài)廣播服務(wù)雙向、一次請求一次響應(yīng)同步指令類操作、查詢狀態(tài)動作雙向、長時間執(zhí)行異步但有反饋導(dǎo)航、機(jī)械臂運(yùn)動規(guī)劃、復(fù)雜流程這張表就是我現(xiàn)在做架構(gòu)設(shè)計時的第一直覺。每次有新人問“我該用哪個”我都是先問“它是不是持續(xù)廣播的”如果是話題閉眼選再看“需不需要立刻拿到結(jié)果”需要就服務(wù)如果是要執(zhí)行很久還要回報進(jìn)度那動作沒跑。4. 第三天實(shí)操讓小烏龜背后的代碼露出原形4.1 創(chuàng)建一個自己的功能包理論再多第三天最缺的還是“親手寫一場能跑起來的完整代碼”。我從“命令行操作小烏龜”升級到“自己寫節(jié)點(diǎn)控制小烏龜”這個跨越讓我真正理解了ROS2的開發(fā)流程。第一步是創(chuàng)建一個功能包。在src目錄下我執(zhí)行了下面的命令ros2 pkg create --build-type ament_python my_turtle_control --dependencies rclpy geometry_msgs這里用了--build-type ament_python指定這是Python包否則默認(rèn)可能會生成C包結(jié)構(gòu)。--dependencies是告訴構(gòu)建系統(tǒng)我需要依賴rclpyROS2的Python客戶端庫和geometry_msgs小烏龜速度指令里需要的消息類型。這個命令會在src下自動生成my_turtle_control目錄里面有package.xml、setup.py以及my_turtle_control子目錄真正的Python代碼就放在這個同名子目錄里。我當(dāng)時對ROS2生成的這一整套目錄結(jié)構(gòu)非常不習(xí)慣感覺比普通Python項(xiàng)目復(fù)雜。但后來發(fā)現(xiàn)它的核心邏輯其實(shí)很簡單package.xml聲明這個包叫什么、依賴什么setup.py負(fù)責(zé)讓ros2 run能找到你的節(jié)點(diǎn)。新手最容易出的問題是往包里添加了一個新的Python文件但忘了在setup.py的entry_points里注冊它結(jié)果運(yùn)行ros2 run my_turtle_control xxx時報錯說找不到xxx。每次新增一個可執(zhí)行節(jié)點(diǎn)都必須同步修改entry_points這個習(xí)慣我用了好幾個星期才養(yǎng)成。4.2 寫一個最簡單的發(fā)布者讓烏龜走正方形功能包建好之后我來寫一個最經(jīng)典的練習(xí)讓烏龜朝一個固定方向直行然后轉(zhuǎn)彎走出一個正方形。這本質(zhì)上是往/turtle1/cmd_vel話題發(fā)布geometry_msgs/Twist消息每條消息告訴烏龜“線速度多少、角速度多少”。import rclpy from rclpy.node import Node from geometry_msgs.msg import Twist class SquareDriver(Node): def __init__(self): super().__init__(square_driver) self.publisher_ self.create_publisher(Twist, /turtle1/cmd_vel, 10) self.timer self.create_timer(0.5, self.timer_callback) self.step 0 self.linear 2.0 self.angular 1.57 def timer_callback(self): msg Twist() if self.step % 4 0: msg.linear.x self.linear msg.angular.z 0.0 else: msg.linear.x 0.0 msg.angular.z self.angular self.publisher_.publish(msg) self.step 1 def main(argsNone): rclpy.init(argsargs) node SquareDriver() rclpy.spin(node) node.destroy_node() rclpy.shutdown() if __name__ __main__: main()這段代碼里最需要理解的是create_publisher的第一個參數(shù)是消息類型第二個是話題名第三個10是隊(duì)列長度。隊(duì)列長度這個概念雖然小但很關(guān)鍵它代表著如果訂閱者處理不過來ROS2會在緩存里保留多少條消息。10是常見默認(rèn)值適合大部分練習(xí)如果你做的是高頻傳感器比如雷達(dá)數(shù)據(jù)那就要根據(jù)實(shí)際情況調(diào)整。小烏龜在仿真里移動有慣性0.5秒發(fā)一次速度指令已經(jīng)足夠讓它走得很順滑。運(yùn)行前還要記住source環(huán)境和工作區(qū)source /opt/ros/jazzy/setup.bash source ~/ros2_ws/install/setup.bash ros2 run my_turtle_control square_driver如果一切正常你會看到小烏龜開始一格一格往前走、轉(zhuǎn)彎、再往前走走出一個近似正方形。這時候你再用一個終端執(zhí)行ros2 topic echo /turtle1/cmd_vel就能看到自己發(fā)布的那些速度數(shù)據(jù)源源不斷流出來。那一刻的成就感比看多少文檔都強(qiáng)。4.3 寫一個訂閱者把小烏龜?shù)奈蛔舜虺鰜戆l(fā)布者跑通了下一件事是寫一個訂閱者去監(jiān)聽小烏龜?shù)奈恢抿?yàn)證整個閉環(huán)。訂閱者的核心是創(chuàng)建一個訂閱對象然后寫一個回調(diào)函數(shù)一旦有新消息到達(dá)這個函數(shù)就會被自動調(diào)用。import rclpy from rclpy.node import Node from turtlesim.msg import Pose class PosePrinter(Node): def __init__(self): super().__init__(pose_printer) self.subscription self.create_subscription( Pose, /turtle1/pose, self.pose_callback, 10) self.subscription def pose_callback(self, msg): self.get_logger().info( fx{msg.x:.2f}, y{msg.y:.2f}, theta{msg.theta:.2f}) def main(argsNone): rclpy.init(argsargs) node PosePrinter() rclpy.spin(node) node.destroy_node() rclpy.shutdown() if __name__ __main__: main()這個訂閱者的回調(diào)函數(shù)只是打印坐標(biāo)所以不會造成性能壓力。但你別小看這個模式它是一切數(shù)據(jù)流應(yīng)用的起點(diǎn)。以后你要做激光雷達(dá)的slam建圖本質(zhì)上就是寫一個訂閱/scan的節(jié)點(diǎn)把雷達(dá)數(shù)據(jù)交給建圖算法要做八叉樹地圖導(dǎo)航也是在各個話題之間接管道。三天的學(xué)習(xí)能寫出發(fā)布者和訂閱者已經(jīng)完成了最核心的一步。4.4 打開rviz2第一次用可視化工具檢查系統(tǒng)在命令行里echo話題數(shù)據(jù)已經(jīng)能滿足“看數(shù)據(jù)流”但第三天我還想更直觀一點(diǎn)所以把rviz2打開了。rviz2是ROS2官方的3D可視化工具能顯示機(jī)器人模型、激光點(diǎn)云、地圖、路徑這些東西。學(xué)它最大的意義在于你以后做slam、導(dǎo)航、機(jī)械臂仿真時調(diào)節(jié)和觀察都離不開它。我第一次用rviz2的時候界面的左側(cè)面板顯示的是“Displays”列表右側(cè)是3D視圖頂部是一排工具欄。如果發(fā)現(xiàn)畫面里什么都看不到不要去懷疑系統(tǒng)壞了先檢查左下角全局選項(xiàng)里的“Fixed Frame”設(shè)置。Fixed Frame相當(dāng)于整個可視化世界的坐標(biāo)系錨點(diǎn)如果你把Fixed Frame設(shè)成map但當(dāng)前系統(tǒng)里根本沒有map坐標(biāo)系場景就會是空的。我在搞機(jī)械臂仿真時就經(jīng)常因?yàn)镕ixed Frame設(shè)錯而看不到模型最后發(fā)現(xiàn)是panda_link0和world搞混了。4.5 串口橋接的真實(shí)難度micro-ROS只是入口我知道很多人第三天真正想做的事情是把ROS2和真實(shí)硬件接起來尤其是看到“ROS2 humble串口橋接esp32小車”這種關(guān)鍵詞就走不動路。我也一樣。但歷經(jīng)一下午的折騰我要誠實(shí)地告訴你這條路對新手來說暫緩一下更明智。它牽扯的micro-ROS Agent并不是一個特別難的應(yīng)用難點(diǎn)藏在它靠后的環(huán)節(jié)上你需要先給ESP32生成固件這個固件要內(nèi)置micro-ROS客戶端的配置然后你在電腦上啟動micro-ROS Agent監(jiān)聽串口最后你還要保證ROS2端的話題消息類型和單片機(jī)端完全一致任何一方不匹配數(shù)據(jù)都靜默丟失。后來我把這套流程拆開看意識到它實(shí)際上等于同時學(xué)習(xí)三樣?xùn)|西ROS2的消息機(jī)制、單片機(jī)的串口編程、以及micro-ROS中間件的配置。任何一個地方不熟你都無法判斷問題是出在哪一層的。所以我那天最終選擇回到純軟件世界先確保能熟練寫一個自定義消息再談橋接硬件。這個決定幫我省下了大量無效的排查時間也讓我在后面真正做小車時幾乎一晚上就把橋接跑通了。5. 避坑實(shí)錄我第三天踩過的六個典型問題5.1 找不到包、找不到節(jié)點(diǎn)命令與環(huán)境變量第三天最常遇到的報錯就是“Package xxx not found”或者“Executable xxx not found”。這個問題的第一可能性就是你沒source當(dāng)前工作區(qū)的install/setup.bash。另一個可能性是你剛用colcon build編譯過但編譯失敗了而你誤以為成功了。我自己就出現(xiàn)過編譯輸出了一大堆警告但我沒看直接運(yùn)行結(jié)果找不到節(jié)點(diǎn)回頭仔細(xì)看日志才發(fā)現(xiàn)是某個依賴的Python模塊拼寫錯了。所以遇到包找不到第一個動作永遠(yuǎn)是檢查環(huán)境腳本有沒有source第二個動作是重跑一次colcon build并認(rèn)真讀最后幾行輸出。5.2 QoS不匹配數(shù)據(jù)就在眼前但你就是收不到ROS2的QoSQuality of Service是一個對新手非常不友好的概念。它控制消息在傳輸中的可靠性、時效性和緩存策略。默認(rèn)情況下發(fā)布者和訂閱者都采用“可靠傳輸?shù)试S一定延遲”的配置所以大多數(shù)練習(xí)都能零配置互通。但一旦你開始訂閱真實(shí)傳感器的數(shù)據(jù)比如激光雷達(dá)很多雷達(dá)驅(qū)動的發(fā)布者用的是“盡力而為”策略也就是為了追求速度寧可丟包也不重傳。這時候如果你用默認(rèn)的可靠策略去訂閱就會一直收不到數(shù)據(jù)。判斷方法是如果話題存在、有節(jié)點(diǎn)在發(fā)消息但你的節(jié)點(diǎn)就是訂閱不到八成就是QoS不匹配。命令行里可以用ros2 topic info /話題名 --verbose查看發(fā)布者和訂閱者的QoS配置是否一致。我當(dāng)時做雷達(dá)數(shù)據(jù)訂閱時在這個問題上卡了一個多小時最后把create_subscription里的QoS策略改成qos_profile_sensor_data立刻就好了。5.3 日志刷屏與節(jié)點(diǎn)卡頓第三個問題相對隱蔽當(dāng)你的訂閱回調(diào)里干了太多事情節(jié)點(diǎn)會越來越慢日志瘋狂刷屏最后就像死機(jī)了一樣。本質(zhì)原因是ROS2的默認(rèn)回調(diào)是串行處理的一個回調(diào)沒跑完下一個回調(diào)只能排隊(duì)如果回調(diào)執(zhí)行時間太長消息越積越多系統(tǒng)延遲越來越高。解決辦法有幾個方向一是讓回調(diào)只負(fù)責(zé)把數(shù)據(jù)存到隊(duì)列或變量里二是用多線程執(zhí)行器讓不同訂閱者并行回調(diào)三是降低發(fā)布頻率。新手階段最簡單有效的是第一種。5.4 /dev/ttyUSB0 權(quán)限問題如果你第三天實(shí)在沒忍住要碰串口那你一定會遇到Permission denied。這個問題的根源是Linux串口設(shè)備默認(rèn)只有dialout用戶組能訪問而普通用戶不在這個組里。我記得第一次遇到時直接sudo chmod 777 /dev/ttyUSB0能跑通但非常臟換個USB口又要重新設(shè)置一遍。正確做法是把當(dāng)前用戶加入組sudo usermod -aG dialout $USER添加之后重新登錄一次之后所有串口設(shè)備就都有權(quán)限了。注意這個組名在不同發(fā)行版里可能略有差異但dialout是最常見的。5.5 “零拷貝”話題知道有這回事就行我在第三天還搜到了“ROS2零拷貝”這類高級主題差點(diǎn)點(diǎn)進(jìn)去。后來看完幾個介紹才明白零拷貝是一種性能優(yōu)化方案目的是減少消息在進(jìn)程間傳遞時的內(nèi)存復(fù)制次數(shù)主要用在雷達(dá)、攝像頭這類高頻大數(shù)據(jù)場景。對普通學(xué)習(xí)項(xiàng)目來說默認(rèn)的消息傳遞開銷完全可以接受完全不需要細(xì)化到這種程度。我給新手的建議是第三天的你知道有這么個方向就行別在這上面花時間它屬于等你真正做高性能傳感器處理時再回頭的課題。5.6 依賴地獄找不到Python模塊到底為什么最后一個是依賴問題。我跑很多網(wǎng)上教程時代碼看起來很簡單但一運(yùn)行就報ModuleNotFoundError: No module named xxx。新手很容易以為是自己代碼寫錯了其實(shí)多半是忘了安裝那個Python庫。ROS2環(huán)境本身有很多依賴但不會把所有第三方庫都替你裝好。遇到缺模塊最簡單的辦法就是問一下大語言模型或搜索引擎看這個庫應(yīng)該用什么命令裝裝完再重試。比如做機(jī)械臂仿真你可能要pip install不少運(yùn)動規(guī)劃相關(guān)的Python包做激光雷達(dá)處理可能還需要裝點(diǎn)云處理庫。這些都不是ROS2環(huán)境的問題是項(xiàng)目環(huán)境的問題。6. 第三天結(jié)束后的心得與下一步這一天過完之后我最大的體會是ROS2學(xué)習(xí)的前三天真正的分水嶺不是“你會用多少命令”而是“你能不能自己寫一個包并在系統(tǒng)里跑起來”。如果你今天熬到了這一步后面學(xué)服務(wù)、學(xué)動作、學(xué)導(dǎo)航其實(shí)都是在同一個土壤上加磚。最需要避免的心態(tài)是覺得“三天了還不會做小車”說明自己不適合。幾乎所有搞機(jī)器人的人都會告訴你那很正常這個領(lǐng)域光是把術(shù)語體系理清楚就需要反復(fù)進(jìn)出好幾次。我建議第四天做兩件事第一是把發(fā)布者和訂閱者這兩個節(jié)點(diǎn)分別擴(kuò)展一下試著自定義一個簡單的.msg消息類型在小烏龜?shù)幕A(chǔ)上加一點(diǎn)自己的邏輯第二是回頭把colcon build --packages-select、ros2 topic info、ros2 node info這組命令練到肌肉記憶它們會貫穿你整個ROS2生涯。你可以把“兩周之內(nèi)讓ESP32小車通過micro-ROS橋接跑起來”當(dāng)作一個真正的階段目標(biāo)但請確保在那之前你能不靠教程、直接在自己創(chuàng)建的功能包里完成一次標(biāo)準(zhǔn)的發(fā)布訂閱閉環(huán)。過了這一關(guān)第四天你就已經(jīng)不再是那個只會敲命令的觀眾了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
中文熟女五十乱码在线| 久久超碰久| 一牛影视成人片免费| 99热导航| 乱伦系列一区二区| 亚洲精品少妇| 人人澡人人弄| 丁香五月性爱| 欧美真人抽搐一进一出gif| 亚洲色婷婷久久91| 人妻激情视频| 精品无码产区一区二| 国产天天骚| 国产在线综合网| 欧美特大黄一级片片免费| 视频黄站| 97一本大道亚洲一区| 亚洲超碰AV| 欧美亚洲韩国视频十五区| 日本福利二区视频| 欧美夜夜草视频| 国产超碰97| 91九九九逼| 久干9操| 亚洲中文字幕久久无码精品| 嗯嗯嗯啊啊啊在线免费观看| 性做久久久久久久| 激情视屏国产乱伦强奸| 思思热er精品视频| 国产 热久久久久国产精品| 美女操逼A A| 97超级色碰碰| 精品中文日韩字幕视频| 99久久综合| 性色中出| 午夜精品久久久久久久男人的天堂| 成人一道本免费视频| 一区二区三区视频| 中文字幕AV中出| 欧美大香蕉97| 加勒比东京热五月天天堂网| 欧亚第一综合网| 日韩美脚一区二区网站| 亚洲综合113页| 黄污污污污| 国产精品香蕉热久久新品| 中文一区在线视频| 精品无码久久久久久国产浪潮| 免费男人的天堂| 加勒比人妻综合| 中文字幕精品三级久久久| 久久久久9久久久久| 国产熟女乱论| 欧亚第一综合网| 日本一天色道久久久精品视频| 女人的久久久| 91 亚洲情侣偷拍 久久| 欧美一区二区观看在线| 丁香五月天激情网站| 无码人妻精品一区二区中文| 日韩啊V| 国产99精品一区二区三区免费| 精品人妻一区二区三区日产乱码| 一级性爱视频免费在线| 亚洲av综合色区无码一| 亚洲老熟妇xxx| caopeng97人妻| 无码人妻系列少妇| 欧美日综合| 无码九九九九| 久久精品店| 久久久久久久伊人精品| av绯色| 天堂无码精品国产久| 无遮挡h肉动漫在线观看| 婷婷色色五月| 青青草日逼视频| 欧美 综合 亚洲| 国产伦精品| 五月天玖玖资源站| 熟妇艹鸡八| 女生久久网| 人妻一区视频| 成人熟女视频一区二区三区| 激情四射五月天| 欧美人妻少妇| 久久一区二区高清免费| 中文字幕丝袜人妻| 天久久久噜噜噜久久国产精品爽爽 | 日本欧美国内在线| 可以免费观看的AV| 欧洲Au麻豆| 天天综合站| 乱操乱伦AV| 超踫中文字幕| 精品一级毛片在线观看| 无码操逼网| 67914亚洲精品| 欧洲色综合| 欧美Aⅴ| 乱伦系列一区二区| 高潮9999外国| 亚洲最大的综合性av| 屌妞视频久久久久久久久久久久| 国产女大学生AV| 大香蕉视频一二三区| 久久草草欧美精品| 性欧美91| 久久久婷| 蜜臀99久| 亚洲精品一区中文字幕乱码| 中文字幕成人乱码熟女精品国50| 综合激情五月丁香| 91无码人妻精品一区二区三区蜜桃 | 欧美东京热精品A∨| 日韩 成人 有码| 国产综合色精品在线观看| 日韩无码专区| 欧美激情欧美精品| 国产精品国产亚洲区艳妇糸列| 99免费视频| 91强在线播放| 人人摸人人摸人人干| 91处女视频在线观看| 84YTCOM性无码| 性站| 色综合大香蕉| 尤物一级在线免费观看| 黄色av播放免不| 国产69精品久久久久99尤物| 欧美日韩不卡传媒| 久久性爱视频| 国产黄色av大片网站| 超碰偷拍| 嗯嗯啊啊操死我| 中英熟女操女| 久操在97| 操逼1区| KK色在线影院| 欧美午夜精品久久久久久3D| 国产品精品自在在线午夜免费 | 成人一二三区| 国产精品久久久久绯色| 成人日韩3| 韩日巨乳美女免费视频在线观看| 秋霞免费AV| 99操逼| yazhousetuoumei| 亚洲乱伦图片视频| 男人的天堂视频精品乱在线| 夜夜狼人妻| 久久黄色视频一区二区三区| 精品制服美女中文一区二区三区| 国内精品999| A 天堂| 色臀aV| 少妇毛片久久| 午夜电影在线观看无码专区| 久久久97| 青草地一本线一区二区三区| 91女优在线观看| 久久三| 91精品国产91熟女| 极品久久久久久久久久久久久久| 麻豆久久久一区二区| 日韩精品三区四区| 国产强奸超碰AV| AV乱伦专区| 天天操熟妇| 嗯嗯嗯嗯啊啊啊好紧好大| 天天做天天爱| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 亚洲第91页 | 欧美少妇内射| 蜜桃中文字日产乱幕4区| 欧美人人曰人人操人人射射| 99re视频在线播放青草| 一本色道久久综合熟妇| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 2021国产成人精品久久| 丰满人妻一区二区三区在线| 亚洲少妇中文字幕网址| 国产又猛又粗又爽又黄| 亚洲色天| 欧美92| 久极品在线观看| 自偷自拍的亚洲视频| 亚洲精品一区二区精华| 密乳视频在线| 日本一区二区三区四区五区六区七区八区九区| 亚洲色天堂九9| 超碰综合色| 无码99| 91狠狠综合久久久久久| 丁香五月天堂| av一区二区三区 中文| 久久中文字幕一区不卡| 桃花色综合影院| 色婷婷婷五月天激情四射| 99热这里是精品| 综合操逼| 人妻日日干| 国产乱伦亚洲| 97精品熟女少妇一区| 日本精品一级二级三级| 超碰97人妻| 欧美超碰在线| 青草伊人网| 欧美亚洲清纯| 亚洲在线综合| 国产成人五月天丁香花| 日韩欧美女求操每天更新| 四季av一区二区凹凸精品小说| 肉丝无码中文高清| 一区二区三区四区在线不卡| 亚洲美女高潮喷水视频| 日本一二三免费久久| 日本精品加勒比海一区| 精品人妻一区二区免费蜜桃视频| 久久春色| 国产亚洲99久久精品熟| 成人av影院在线观看| 丁香六月激情| 亚洲欧美日韩精品久久久一区二区| 国产女乱淫真高清免费视频| 精品久热| 欧美少妇性乱| 国产精品白丝AV| 欧美亚州综合网图片| 亭亭在线资源| 玖玖爱在线视频免费观看| 思思热在线视频免费| 国产强奸乱伦xd| 能在线播放的国产三级| 亚洲成av人片色午夜乱码| 天天综合精品| 91在线色| 欧美性爱第1 页| 国产亚洲深夜激情| 禁片 高清 在线观看视频网站| 亚洲美欧999| 丝袜美女诱惑 91 视频| 国产一区在线播放| 黄色网址在线免费观看| 久久不卡一区二区| 夜夜做夜夜爽精品视频| 欧美日韩中文视频播放| 91在线视频观看国产| 啊视频在线| 蜜桃视频精品一区二区| 天天综合网入口~91| 91精品人妻五十路| A级在线视频| 国产www色在线观看| 另类在线| 插入粉嫩少妇视频| 成人羞羞视频国产| 人人考人人摸人人干| 国产精品91一样| 91男同| 熟妇乱伦一区二区| 婷婷六月色开| 中文字幕免费看| 91精品人| 狠狠躁AV| 精品免费囯产一区二区三区| 免费超碰97在线观看| 又大又白奶子| 日韩欧美女求操每天更新| 亚洲综合另类小说色区亚洲成av人片在www | 久热精品在线| 18禁精品网站在线看| 激情小说激情视频| 国产欧美精选激情视频| 五月激情啪啪| 蜜桃臀AV在线| 福利在线观看一区二区| 久草毛片| 蜜桃久久久久久久| 夜夜嗨一区二区三区直播内容| 999久久久免费精品国产牛牛| 围产精品一区二区三区视频播放| 国内操逼视频二区| 高清一区AV无码| 精品一久久久| 久久av一级av少妇av高潮| 国产有码一区| 国内精品久久人妻性色av| 啊啊啊啊啊啊啊国| 无码国产精品96久久久久孕妇| 岛国精品视频在线观看| 国产精品69久久久久孕妇欧美| 亚洲精品人妻在线| 999 久久久| 人人艹亚洲| 2026国产精品视频| 成人5码视频| 国产噜噜噜噜噜久久久久久久久| 91动漫操逼视频| 超碰这里有精品| 免费操逼视频下载| 强乱老妇中文字幕| 六月丁香网| 色噜噜狠狠色综无码久久合欧美| 校园春色 男人天堂 | 国产精品96| 99无码| site:sinbotex.com| 色婷婷五月天| 九九精品无码专区免费| 精品熟女一区=区三区| 高清国产无码av| 五月婷婷色| 麻豆成人AV| 超碰色综合| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 亚洲精品 欧美精品| 51久久夜色精品国产麻豆| 91撸色网 玖玖网 欧美| 国产久久久久久久久一区二区| 好涩综合| 亚洲AV高潮| 国产51色综合久久免费| 国产自偷| 大香蕉在线86| 亚洲乱码尤物193YW| 日本道人妻久久久在线不卡色视频| www色色com| 久久97超碰| 欧美精品 - 91爱爱| 国产亚洲中文不卡二区| 精品999999| 欧美一区二区三区成人性生活| 精品性爱无码在线播放| 亚洲国产成人精品999| 亚洲青青草| 久久色激情一区二区三区| 无码天天操| 人妻81p| 老司机福利社视频在线观看| 欧美中文字幕一区| 色99视频| 亚州AV无码国产精品| 中文字幕在线免费观看 | 黄色大片视频在线免费看| 欧美在线视频观看一二三四区高清| 成片免费播放| 亚洲av综合色| 中国大陆国产高清AⅤ毛片| 干B网| 国产日韩欧美| 国产一级久久久| 午夜男女爽爽爽在线视频| 成人五月天丁香激情综合| 国产熟码AV| 人人妻人人色| 久久久啊啊| 2024人人操人人摸| 国产精品免费日韩| 欧美精品99久久久**| 在线a亚洲视频播放在线| 国产97色在线 | 亚洲| 亚洲中文电影| 黄呦呦在线| 欧美 中文字幕 一区| 久久婷婷五月| 欧美精品第3页| 男男H黄动漫啪啪无遮挡网站| 美日韩男女操屄视频| 日夜精品| 69一区二区三区 | 一本一道vs波多野结衣| 搞中出久久| 超碰97人人cao| av九九| 久久肏大逼| 国产 无码 一区二区| 肏逼福利网站| 91色色网站| 超碰97丝袜| 91欧美经典| 日韩有码中文字幕女同性恋| 欧美天天干| 99精品九九九九九九| 国产精品一区在线播放| 亚洲精品电影| 欧美碰碰综合色| 色九久| 99热欧美| 成人黄页| 五月婷婷青青草娱乐伊人| 天天综合欧美综合| 亚洲十八禁止| 少妇久久久免费| 熟女熟妇一区二区三区视频| 91成人精品| 奶水 人妻 哺乳 在线| 亚洲一区二区三区婷婷| 欧美狠狠干| 综合伊人网12色| 内射老妇BBWX0C0CK| 岛国激情视频在线观看| 国产一级不卡在线观看| 狼人久草| 热久久九九热| 美女性91| 熟妇xxxxx性春色| 人人人人插| 国产成人自拍视频在线| 精品人妻1237| 久久人体一区二区| 伊人操| 一本色道综合久久欧美| 中文字幕123| 青青草在线视频播放器| 中国少妇啪啪视频| 无遮挡一级毛片视频免费的| 97在线精品| 小草精彩毛片| 91插B网站| 91熟女视频| 精品国产丝袜一区二区三区乱码| 69人妻精品一区二区绯色| 大香蕉AV丝袜| 色777999综合| 亚洲图片日本AⅤ欧美在线| 国产小u女在线观看| 91色碰| 风骚少妇视频中文字幕| 老熟女91| 亚洲国产激情国产av| 欧美老妇综合网| 另类老少妇| 午夜福利1区2区3区| 欧美日韩99| 中文字幕超碰CAO| 国内毛片四区| 在免费jIzzjIzz在线视频| 91爱综合| 97在线播放| 日韩无码三级影院| 人妻无码后入| 国产精品国产精品国产| 五月激情小说| 偷拍亚洲情色| 探花激情视频| 后入合集| 第一高清av中文字幕| 国产丝袜美腿美女麻豆| 亚洲欧美一区二区网址| 色婷婷丁香五月| 欧美日本不卡| 欧美强奸乱能| 亚洲涩涩| 乱欲一区二区| 97精品97久久| 国产aⅴ无码片毛片一级网站| 欧美天堂日韩三级国产传媒| 极品国产内射| 天天肏美女| 中文字幕制服诱惑| 国产成人亚洲精品自产在线| 97久久超碰日韩精品| 国产亚州高清国产拍精| 大香蕉日亚洲日本亚大| 加勒比在线视频一区二区三区 | 97欧美日韩| 国产 码在线成人网站| 91劲爆| av无码精品久久久久| 性色av一区二区| 欧美呦呦性爱| 人妻人人澡人人爽人人| 日韩色| 欧美91久久久久| 国产成人免费观看在线视频| 国内外毛片在线观看| 久久精品国产亚洲AV成人直播| 九九九九免费视频| 大香蕉AV在线| 免费观看日本操逼视频| 97大色网| 老司机老司机午夜影院| 玖色av| 欧美日韩国产在线| 牛牛操视频逼| 国产诱惑| 国产精品交换一区二区| 蜜臀久久99精品久久久电影| 亚洲欧美setu| 五月激情在线| 国产成人无码a| 欧美色图在线视频少妇| 一级黄色影片| 人妻干天天| 日本黄色天堂| 欧美激情总合网| 日本高清视频xxxx| 素人伊尹大香蕉免费下载视频| 国产成人无码久久精品| 夜草网站| 色97国产69香蕉| 蜜臀久久99精品久久综合| 日韩免费福利在线观看| 一区二区三区四区五区久久久久久| 亚洲色五月| www.色吧5.com| 亚洲影视第一页| 大香蕉伊人亚洲| 超碰成人最新最好看| 懂色Av一区二区三区| 色老汉色| 久久HD| 爱妃国产亚洲视频中文字幕| 大干人妻| 熟妇女人妻呻吟久久AV| 色色五月天激情| 少妇厨房愉情理伦片bd在线观看| 91大香蕉伊人| 激情人妻另类| 韩日男人的天堂| 欧美中出1| 无码 黑人一区二区三区| 久久久啊啊啊| 9 9无尺码天堂网| 欧美熟妇乱码在线一区| 激情五月综合| 1024人妻熟女一区二区三区| 18禁在线视频| 亚洲开心网| 精品人妻一区二区三区蜜桃视频| 久久人妇| 97青娱乐超碰久久| 久久久久骚| 久久伊人大香蕉| 极品尤物自安慰| 国产精品4p在线观看| 国内一级精品| 欧美人妖内射| 超碰社区97| 久操影视| 久久偷偷色综合蜜桃| 五月婷婷hd| 欧美九九99久久精品| 女优免费一区二区永久| 亚洲操逼网| 欧美人妻一区| 久久久成人国产精品无码| 交换娇妻呻吟声不停中文字幕| 综合97| 亚洲久9| 欧美色图第一页| 奶水 人妻 哺乳 在线| 亚洲欧美天| 亚洲精品97久久中文字幕| 久久久久久久久久久久欧美日| 偷拍超碰| 91nbbbbbb| 精品中文一区二区| 啊啊啊啊啊舒服| 中文字幕无码不卡啪啪| 久久↗↗| 麻豆91熟妇人妻中文字幕茄子| 亚洲 欧美 日本 国内 首页| 精人妻一区二区三区| 91色婷婷综合久久中文字幕二区| 亚洲高清欧美总合| 人妻夜夜爽天天爽三区麻豆AV网站| 中文字幕视频在线观看| 超碰免费97| 性久久久| 手机看片1025| 国产精品麻豆成人AV艾秋| 野狼激情网| 国产AV天美| daxiangjiao你懂的| 97资源站久久| 91熟女在线| 无码人妻精品一区二区三区99不卡| 久久久久久久久久va| 黄在线| 天天色播| 日韩人妻网站| 精品二区三四区五电影| 美女黄网| 一级aaaaa欧美中文字幕录像片| 日韩欧美一级特黄大片| 天天爱天天操| 九九热视频这里只有精品| 亚洲999综合| 妇女一区二区三区| 国产99精品一区二区三区免费| 爱av免费| 亚洲国成人情色好看电影| 亚洲熟妇综合久久久久久| 91制服丝袜中文字幕| 在线观看不卡一区二区三区| 欧美日韩岛国大片在线观看| 亚洲情色1区| 亚洲在线A| 欧美一二三级精品在线| 久久伊人大香蕉| 男人 天堂 日 亚洲| 国产三级资源在线观看| 日韩有码免费视频| 可乐操亚洲蜜911| 男人天堂电影院| 国模不卡| 青青草亚洲一区| 老鸭窝成人| 免费福利视频中文字幕| 91美女丝袜诱惑视频| 色色综合97| 2020久久免费视频| 青娱乐日韩无码| 97干天天| 2017av无码免费无线播| www99热| 亚洲精品不卡一二三区| 中文字幕国产在线天堂| 国产成人无码久久精品| 婷婷香网站| 国产精品人妻无码久久久老鸭窝| 成人AV在线电影| 91无码人妻| 99久久久无码精品国产人| www.狠狠干.coom | 亚州乱码中文字幕综合久久久| 超碰在线免费一区二区三区| 天天日B夜夜干B时时操B| 97超碰热线| 欧美精品三区| 欧美夜夜狠| 天堂网亚洲区手机版| 国产熟女免费观看久久| 91老熟女老女人国产老太| 9国产超碰| juliaann精品熟女一区| 白丝一区| 久久色一区| 国产精品精品系列在线观看| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 综合97亚洲| 人人操人人插人www| 亚洲欧美另类少妇精品| 夜夜操美女| 91嫩草欧美| 岛国激情视频在线观看| 国产日韩人人| 黄片com.| 欧美瑟综合| 欧美日韩成人在线| 麻豆天美一区二区| 日本女厕偷拍| 国产毛片在线| 啊啊啊在线看| 色五月婷婷五月天| 免费成人自拍视频在线| 欧美香蕉视xxx| 国产一区二区三区久久久精品| 骚熟女吞| 桃花色涩综合影院| 东北熟女91| 亚洲限制级在线| 涩涩涩综合| 九九超碰综合网| 免费观看欧美日韩操逼视频| 免费a v| 品亲网欧美品亲网| 国产精品国产拍高清AV| 亚洲天堂男人天堂网| 自拍盗摄一区| 国产精品一级片在线看| 九九九国产| 一区二区首页| 人人干人人搞人人摸| 清纯唯美综合| 久久偷拍人| 日韩性爱网址| 国产婷婷综合在线观看| 久久噜| 亚洲色偷偷色噜噜狠狠99网| 收看日本人日bb| 天天综合,91入口| 污到发麻的视频 国产| 93人人操人人| 久久久久久久97| 久久综合av| 日本天天吊| 日韩成人精品视频自拍| 99人妻| 九99久久| 色欲人妻一区二区在线| 综合激情五月丁香| 久久久久久电影| 久 久无码人妻AV| 少妇专区一二三四五| 亚洲婷婷五月天| 特级毛片特黄久久免费看| 午夜在线播放| 男人的天堂日韩| 高树玛利亚无码流出| 人人透人人操| 91午夜无码| 久久久久亚洲Av无码专区老牛影视| 97国产伦理| 午夜欧美J进J出白浆流出久久久| 婷婷综合网站| 国产三区免费在线观看| 亚洲天堂在线怕怕视频| 精品亚洲天堂| 精品人妻15区| 亚洲 中文 欧美 日韩 在线| 激情终合网| 久久久久久性爱片| julia高潮后不停追击中出| 国产精品久久久久中文字幕| 波多野42部激情无码喷潮| 日本加勒比无码专区| 久草毛片| 福利天天都操| nuu12国产麻豆精品| 欧美影音在线| 亚洲成人色情五月天丁香花| 天天干天天日天天射黄色大片| 五月丁香成人网| 熟女人妻一区二区三区| 看一级特黄a大一片| 人人操人人操人人人操| 五月天久久综合网| 成人AV超碰免费在线| av毛片aaaaa免费看| 91五十路| 久久大| 中文字幕三四区| 97亚洲欧美| 9118禁| 97在线视频观看| 欧美一区二区男人天堂| 免费AV中文网在线观看| 久草加勒比一区在线| 久久久久久久97| 插入逼91| 国产精品视频自拍在线| a一区二区三区乱码在线| 大香蕉视频一二三区| 樱花蜜乳av| 黄色网址在线免费观看| 国产人妻天天干精品| 国产伦精品一区二区三区在线观| 中文字幕成人| 欧美色偷拍 | 久久精品28| 97天天日| 国产黄色视频久久| 91在线视频观看国产| 性爱乱伦网址| 亚洲.欧美.丝袜.中文.综合| 国产蜜臀精品一区免费尤物| 一及黄久一点| 超碰日韩美妻| 中文字幕人妻丝袜乱一区三区| 人人操人人摸超碰| 黄色AV免费| 久草免费福利在线播放| 一区二区娱乐网站| 久久天天性久久伊人| 69精品人人人人| 人人操人人精品影片| 2017天天拍大香蕉| 人人艹亚洲| 国产亚洲色婷婷久久99精品91| 999日韩中文精品观看视频。| 久久夜嗨| 中文字幕一区二区三区四五区| 天天综合网网欲色| 乱论91| 在线观看一卡二卡| 色阁阁AV综合网| 久久国产乱子伦精品免费女,网站| 伊人网免费视频| 精品亚洲国产成人AV制服丝袜 | 青青青国产手线观看视频2| 国产91精品福利在线| 欧美亚洲日韩人妻在线观看| 99蜜桃臀亚洲成人在线观看| 久久久亚洲精品中文字幕人妻| 中日韩免费看男女操逼大全| 欧美成人黄网色网站| 骚乳在线| 欧美丝袜中文字幕07在线| 岛国片在线播放| 激情丁香五月| 欧美天天在线| 高清国产精品无码| 亚洲不卡AV在线| 日韩精品影视| 成人无遮挡毛片免费看| 婷婷亚洲综合| 天天综合网合集91| 亚洲欧洲日本精品中文a∨| 色情五月综合婷婷| 亚洲色图 综合| 日韩 国产 欧美自拍| 国产超碰在线| 亚洲美腿丝袜香蕉影视欧美成人| 国产av激情无码久久天堂| 天天日天天操心| 偷拍亚洲情色| 日本高清_区二区三区| 91嫩草欧美| 天天干人人看综合| 91黑丝在线播放| 四季av一区二区凹凸精品小说| 免费1级a做爰片观看| 一区久久久二区| 青青在线视频日韩欧美| 在线不卡视频| 色97欧美| 成人黑料社久久| 无卡一区=区| 一区二区三区 日韩欧美| 99色婷婷中文字幕乱色| 极品销魂美女一区二区| 97综合在线观看| 91综合网站| 99精彩视频| 九九九九九九综合| 91超碰人人操| 亚洲男人天堂网站| 一起草AV| 九九草| 91 在线亚洲| 97色97干| 97爱欧美| 亚洲天天做日日做天天谢日日| 九久9热| 亚洲在线网站| 中文字幕少妇色| 性饥渴少妇av无码毛片| 97超碰亚洲| 国产探花精品在线| 99国产精品自在自在| 操比国产| 夜夜嗨一区二区三区直播内容| 99色综合| 天天综合97| 国产超碰在线一区| 人人操人人搞人人草| 美国三级日本三级久久99| 亚洲高清无码AAA久久久精品| 欧美手机在线综合| 丁香六月婷婷久久综合| 免费a v| 麻豆一区在线| 日韩人妻一区二区精品| 九九热精品| 激情文学 国产一二三aV| 亚洲成人性爱网站在线播放| 欧美日韩青操| 五月丁香成人网| 欧美乱伦专区| www. 男人天堂成人在线| 操逼日韩无码| www国产无码| jiujiujiujingpin| 国产精品大香蕉| 日韩强奸av| 好爽要喷了| 日韩性色b| 能在线播放的国产三级| 超碰97男女| 日本一天色道久久久精品视频| 亚洲码专区| 久久久999| 美女让帅哥通她小鸡鸡| 人妻激情另类| 国产AV久久野战精品| 三四中文字幕| 亚洲欧美精品久| 中文字幕精品一区二区精品| 一类av片在线看| 久久久555| 福利在线视频一区二区| 午夜人妻精品综合在线| 天天操天天射天天日| 成人青青草原伊人| 超碰地址97| 国产精品一二三免费网站| xxxx网站亚洲精品| 九九九精品| 日本高清一本二本免费不卡| 日日干夜夜操视频h| 超碰在97| 久久9 9 9精品| 五月天玖玖资源站| 日韩三A大片在线观看| 欧美成人精品一区| 97se综合| 99综合自拍| 国产一区二区三区中文字幕| 久久av成人无码免费| PMv在线观看| 凌辱美少妇久久aV| 少妇蹲下买菜露大唇0| 麻豆精品A片免费观看| 伊人AAA| 日韩性爱播放| 福利伊人玖玖国产| 青娱乐二区免费| 九七超碰| www.男人的天堂| 超碰色大香蕉| 天天大干大香蕉| 嗯嗯啊好大| 欧美精品第四五页中文字幕在线观看| 亚洲天堂,男人| 大香蕉五月天婷婷| 日韩AV一起草| 欧美黑人精品一区二区| 国产曰批免费观看久久久| A级国产欧美激情在线| 久久精品—区二区三区内射| 992大香蕉| 极品美女嘿咻| 4tube欧美女厕所| 青青青草原| 亚洲脚交| 丰满欧美放荡少妇在线| 91碰碰| 久久是精品| 中文字幕欧洲有码| 欧美 日韩第一性色| 情色五月天就去干| 加勒比色99999| 男人天堂毛片| sewuyueav| 国产乱子伦久久精品综合一区二区三| 东北女人高潮视频| 久久久久久综合久久伊人蜜月| 九九九九精品视频| 九久精品| 国产强奸乱伦无码视频| 一区二区三区免费视频入口| 草草电影院| 亚洲国产av中文字幕久久| 波多野结衣一级视频| 亚洲国产精品9999在线观看| av天堂精品久久| 亚洲天堂7777| 综合久久婷婷| 色噜噜国产在线| 东北老女人的激情视频| 一本久久精品中文字| 天天干1区2区在线| 色色97爱| 久久丁香久草综合网| 人人艹亚洲| 国产精品三级视频网站 | 一级毛片电影免费看| 三级精品三级在线观看| 国产精品一区午夜福利| 国产做?爰片久久毛片?片美国| 99热这里只有精品8| 亭亭丁香激情| 国产和美国毛片| 久操免费观看| 老司机深夜18禁污污网站| 久操视频资源站公开| 天天爱天天韩国日本牛牛牛牛| 少妇国产不卡| 九一性生活免费视频| v91av| 午夜无遮挡男女啪啪视频| 久久美女福利是上海美女| 国产伦精品免编号公布| 麻豆国产成人精品| 美女t无毒不卡不卡| 欧美亚洲国产91在线| 欧美精品自慰系列寂寞少妇| 青青草密桃在线播放| 欧美日韩人妻婷婷一区| 性91| 国产精品美女在线一区| 这里有精品| 日韩不卡网操逼中文字幕日韩| 中文字幕乱妇免费视频| 操B视频日韩无码| 丁香九月婷婷| 91老熟女老女人国产老太| 91岛国动作片| 中国一区二区亚洲人妻| 宅男91视频在线播放| 超碰 欧美| 亚洲 自拍偷拍 欧美| 好吊妞转入那个网| 少妇精品久久久八区九区| 日语五十路和六十路亚洲国产精品| 国产精品宅男免费| 成人女人国产| 综合夜夜| 婷婷操逼| 九九综合网| 欧美日韩性爱电影在线| 亚码激情| 999久久久久久久久| 亚洲精品三区在线观看| 日本在线不卡123| 日韩本不卡视频在线观看| 亚洲天堂中文字| 大香蕉综合| 久久精品熟妇丰满人妻99| 亚洲精品中文字幕一区在线视频| 麻豆天美制片厂网站视频| 人人操人人肉久久精品| 亚洲国产无码精品首页久久久| 色香在线| 高潮毛片无遮挡高清免费| 色哟哟国产精品免费网址| 天天久久| 东京热免费视频| 蜜桃网熟妇| 亚洲日韩国产欧美综合v| 国产免费久久精品99re韩国| 一个色导综合| 亚洲美欧999| 天天射天天操天天干天天吃2018| 东京热亚洲一区二区| 亚洲情色 自拍| 免费观看啪视频| 欧洲自拍第一页| 5278欧美一区二区三区| 屁股久久久久久久久| 操操逼操操逼操操逼逼| 少妇精品久久久| 亚洲中文一区二区三区| 91强在线播放| 欧美大香蕉专区网| 九九九九九九九| 欧美性爱伊人| 熟妇女伦乱视频视频| 国产伦精品一区二区三区在线观 | 女人爽到高潮潮喷18禁网站 | 激情久久久| 欧美姓爱综合网| 精品妇女一区二区三区| 国产精品久久| 艾草av| 亚洲免费在线探花| 久久噜| 亚洲综合九九| 日本精品五区| 大香蕉色网| 欧美日韩国产高清在线一二三区 | 9久热这里只有精品| 天天色综合图片| 午夜国产综合视频在线观看| 欧美熟女妇同| 国产一区二区av综合| 熟女少妇一区二区三区| 97中文超碰| 亚洲图片日本AⅤ欧美在线| 免费97视频| 天天综合色| 亚洲 小说 欧美 激情 另类| 国产人妻一区二区三区欧美毛片| 国产亚洲精品美女久久久m| 91青青| 欧美天天综| 丰满人妻一区二区三区大胸懂色 | GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 久久9精品视频| 久久国产乱子伦精品免费女人| 爱丝福利| 久久9精品视频| 亚洲少妇综合在线播放| 91色宗合| 天天舔天天日天天射| 深爱五月婷婷| 欧美一区二区福利在线| 加勒比色99999| 日韩三级在线观看mp4| 国产成人自拍视频在线| 人人么人人操| 色哟哟精品1精品2| 一牛影视久久久一区二区三区| 免费伦费视频在线观看| 777超碰| 日韩综合97P| 大香蕉在线视频15| 91丨熟女丨丰满熟女| 97超碰人人操人人操| 超碰综合97在线| 后入人妻一区| 久9热| 亚洲中文字幕久久人妻| 欧美在线天堂| 男女性扦B| 爱欲AV| 激情综合五月天| 日本性爱少妇| 在线观看无码三级少妇| 97免费在线观看| 快播久久人人aV| 久草综合视频| 国产精品久久久视频| 欧美黄色大香蕉一区二区| www.亚洲黄色| 亚洲全色网| 欧美男人的天堂| 亚洲丝袜99| 欧美日动态视频| 色鬼在线综合| 亚欧精品久久久久久久久久久| 亚洲黄网在哪免费看| 免费啪啪av| 国产主播福利| 亚洲国产精品无码AV久久| 九九热只有精品| 青青青草伊人精品| 成熟熟女国产精品一区二区| 欧美爆操91| 久久大香蕉手机高清| 日产狠狠干| 久久香蕉网| 强奸xx国产| 韩国一级婬片A片AAAAA| 国产欧美岛国精品一区| 熟妇xxxxx性春色| 人妻二区| 国产男女边吃边摸视频网站| 人妻精品视频一区二区三区| 91网站18禁| 亚洲人妻久久| 97精品视频| 亚洲天堂久久久久久粉红视频| 久九九九九九九九热| 日本不卡中文| 欧美九九九| 欧美亚洲手机在线| 精品久久97| 亚洲天堂男| 欧美AB在线| 亚洲av青草久久一区二区| 超碰97丝袜| 久久人妻| 久久久久久99AV无码免费网站| 玖玖爱在线视频免费观看| 亚洲精品国语在线播放| 亚洲无码偷拍| 国产在线视频二区| 亚洲成人性| 无码av永久免费专区网站| 国产黄色 A 片免费看| 亚洲中文字母在线播放| 久久艹逼视频| 97日视频| 99久在线精品99re8a| 精品国产国产AV| 啊啊啊久久久视频|