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

ARTICLE DETAIL

資訊詳情

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

??倒I(yè)相機接入FAST-LIVO2:MVS SDK封裝與時間戳同步實踐

海康工業(yè)相機接入FAST-LIVO2:MVS SDK封裝與時間戳同步實踐 做多傳感器融合尤其是跑FAST-LIVO2這種對數(shù)據(jù)質(zhì)量要求比較高的方案時最難受的一環(huán)往往不是算法本身而是手里的相機、IMU、激光雷達湊不齊一套能對齊時間戳的數(shù)據(jù)源。我手頭正好有一臺??倒I(yè)相機MV系列的千兆網(wǎng)面陣相機SDK用的是MVS系統(tǒng)是Ubuntu 20.04加ROS Noetic。前后花了兩個晚上把相機接入FAST-LIVO2中間踩了不少坑尤其是MVS SDK的ROS封裝、時間戳同步、catkin_make編譯這一串單拎任何一個出來都很容易卡人。這篇就把整套流程手把手過一遍把我實際驗證過的方案、踩過的坑、以及最后錄包跑通的細節(jié)都寫清楚給準備把??迪鄼C塞進FAST-LIVO2的朋友做個參考。1. 項目背景與整體思路拆解1.1 需求從哪來FAST-LIVO2對視覺輸入的硬性要求FAST-LIVO2本質(zhì)上是一個緊耦合的激光雷達、慣性測量單元和視覺融合里程計系統(tǒng)它依賴三個數(shù)據(jù)源來自激光雷達的點云、來自IMU的高頻加速度和角速度以及一個或兩個相機的圖像流。三個數(shù)據(jù)源里激光雷達和IMU的驅(qū)動相對成熟裝好就能出數(shù)據(jù)但相機這一塊經(jīng)常是短板。FAST-LIVO2的視覺前端用的是光流法和特征點提取它要求相機圖像具有穩(wěn)定的幀率、合理的曝光、以及盡量干凈的時間戳。換句話說相機不能一會兒10幀一會兒30幀畫面也不能因為自動曝光來回跳變否則特征跟蹤會抖得很厲害。這個要求直接淘汰了一批“直連UVC攝像頭”的簡易方案比如普通USB攝像頭它們不僅曝光不穩(wěn)定時間戳精度也差很多還帶自動白平衡和自動增益在SLAM運行中非常頭疼。工業(yè)相機就不一樣??颠@類相機在SDK層面提供了完整的參數(shù)控制接口曝光、增益、白平衡、像素格式、幀率都可以手動鎖定而且通過千兆網(wǎng)接口傳輸數(shù)據(jù)的確定性和穩(wěn)定性比USB攝像頭高很多。這就是為什么要折騰??迪鄼C接FAST-LIVO2的根本原因不是閑得慌而是視覺前端的質(zhì)量直接決定整個里程計能不能跑穩(wěn)。1.2 為什么不用現(xiàn)成ROS驅(qū)動而要自己寫MVS SDK封裝很多朋友第一反應(yīng)是去GitHub搜“hikrobot ros”能找到一些第三方寫的??迪鄼CROS驅(qū)動但實測下來問題不少。第一這些驅(qū)動很多年沒人維護了接口版本跟新出的MVS SDK不兼容編譯就報錯。第二它們對相機的參數(shù)暴露不夠完整有些連曝光時間都沒法設(shè)更別提像素格式選擇。第三也是最重要的它們的時間戳處理方式很隨意很多直接用ROS時間戳的回調(diào)時間但沒有考慮SDK內(nèi)部取流的延遲導致圖像時間戳與IMU時間戳的偏差忽大忽小。與其在別人寫得不完整的驅(qū)動上打補丁不如直接用MVS SDK自己封裝一個ROS節(jié)點。??倒俜教峁┑腗VS SDK是C/C接口文檔齊全功能完整封裝的難度并沒有想象中那么大。核心要做的事情就是把SDK的取流回調(diào)里的圖像數(shù)據(jù)轉(zhuǎn)成ROS的sensor_msgs/Image消息然后發(fā)布出去。這個過程聽起來簡單但涉及設(shè)備枚舉、參數(shù)設(shè)置、圖像格式轉(zhuǎn)換、時間戳賦值、以及編譯鏈接這一整套流程任何一個環(huán)節(jié)沒搞對都會卡住。我選擇這條路的另一個原因是可控性。自己封裝的節(jié)點所有參數(shù)都暴露在ROS的dynamic_reconfigure或者launch文件里想改分辨率、幀率、曝光都可以隨時調(diào)整不需要每次改代碼重新編譯。后續(xù)如果要換相機型號也只需要在SDK初始化部分做小改動就行。2. 環(huán)境準備與MVS SDK安裝2.1 軟硬件環(huán)境清單先說環(huán)境這部分直接影響后面的編譯和運行。我用的配置如下相機??礛V-CA013-20GC130萬像素千兆網(wǎng)面陣相機全局曝光鏡頭8mm定焦手動光圈C接口系統(tǒng)Ubuntu 20.04.6 LTSROS版本NoeticMVS SDK版本MVS-2.1.2_x86_64_20231123新版本建議從??倒倬W(wǎng)下載Linux版本其他依賴OpenCV 4.2.0ROS Noetic自帶、PCLFAST-LIVO2依賴、Eigen 3.3相機型號不是重點??档腗V系列千兆網(wǎng)相機在SDK層面基本是同一套接口只是像素格式、分辨率上限不同。我這里的代碼和配置對大多數(shù)MV系列面陣相機都適用包括MV-CA系列、MV-CE系列等等。系統(tǒng)上需要先裝好ROS Noetic本體這個不多說裝好以后確認一下cv_bridge和image_transport都在。因為FAST-LIVO2本身還依賴PCL和Eigen等庫如果之前跑過別的SLAM大概率已經(jīng)裝了。沒裝的話一個命令補上sudo apt install ros-noetic-cv-bridge ros-noetic-image-transport ros-noetic-camera-calibration sudo apt install libeigen3-dev libpcl-dev2.2 安裝MVS SDK并驗證相機連通性海康官網(wǎng)下載Linux版MVS SDK下載下來是一個tar.gz壓縮包。解壓后按照官方文檔安裝核心步驟是運行里面的setup腳本tar -zxvf MVS-2.1.2_x86_64_20231123.tar.gz cd MVS-2.1.2_x86_64_20231123 sudo ./setup.sh安裝完成后SDK默認會安裝在/opt/MVS目錄。這個路徑后面編譯的時候要用到建議記一下。在/opt/MVS/bin目錄下有一個MVS.sh或MVS路徑下的啟動腳本可以打開官方的MVS客戶端軟件插上網(wǎng)線連好相機正常的話能在軟件里看到設(shè)備并實時預(yù)覽畫面。連不上的話先排查兩件事一是網(wǎng)絡(luò)接口是否配置了正確的IP網(wǎng)段??礕igE相機默認IP一般是192.168.1.x或者通過DHCP獲取把自己電腦的網(wǎng)口IP改到同網(wǎng)段二是看防火墻有沒有擋住SDK與相機的通信Ubuntu下如果開了ufw需要放行相機通信端口。我遇到過一次設(shè)備枚舉不到的情況最后發(fā)現(xiàn)是網(wǎng)線插到了不常用的網(wǎng)口而SDK枚舉時選錯了網(wǎng)絡(luò)接口。在MVS軟件里可以手動指定網(wǎng)卡這個問題就解決了。2.3 確認相機能力邊界幀率、像素格式與觸發(fā)方式在動手寫代碼之前先用MVS客戶端軟件把相機的能力摸清楚這一步能避免后續(xù)開發(fā)中反復(fù)踩“這個參數(shù)不支持”的坑。需要關(guān)注三個點第一個是像素格式。FAST-LIVO2的視覺前端用的是灰度圖像做特征提取所以相機輸出灰度圖就行也就是Mono8格式。??迪鄼C默認可能輸出Bayer格式的彩色圖如果相機輸出的是Mono8直接用如果相機本身是彩色相機輸出的是BayerRG8之類的格式需要經(jīng)過SDK的像素轉(zhuǎn)換接口轉(zhuǎn)成RGB8再到cv::Mat里轉(zhuǎn)成灰度。我在代碼里統(tǒng)一做了轉(zhuǎn)換不管相機的原始格式是什么最終發(fā)布出去的圖像統(tǒng)一用mono8。第二個是幀率上限。130萬像素的相機在Mono8格式下最高能到60幀左右但實際跑FAST-LIVO2不需要那么高20到30幀足夠。幀率太高反而把CPU和帶寬浪費在傳輸上而且時間戳同步的抖動也會更明顯。我在后面參數(shù)配置里鎖定了30幀實測在720P分辨率下很穩(wěn)定。第三個是觸發(fā)方式。FAST-LIVO2只需要連續(xù)采集不需要外部硬觸發(fā)和IMU或雷達同步所以相機設(shè)置為SDK內(nèi)部自由運行模式即可。如果后續(xù)你真要做硬件級別的同步比如用同一路PPS脈沖觸發(fā)射頻和相機那需要相機支持外觸發(fā)接口并且SDK里要把觸發(fā)模式改為外部觸發(fā)。但常規(guī)跑FAST-LIVO2數(shù)據(jù)集錄制階段用軟件時間戳就夠了觸發(fā)模式保持連續(xù)采集。3. 封裝MVS SDK為ROS節(jié)點3.1 節(jié)點整體設(shè)計框架封裝的核心思路是在一個ROS節(jié)點里完成三件事初始化相機并配置參數(shù)、后臺線程持續(xù)取流并發(fā)布圖像話題、接收ROS參數(shù)服務(wù)器動態(tài)配置。整體架構(gòu)不復(fù)雜但要把流程理順。節(jié)點發(fā)布的話題是/cam0/color類型為sensor_msgs/Image后續(xù)FAST-LIVO2配置里直接把視覺話題指到這個topic即可。為了調(diào)試方便我還額外發(fā)布了一個/cam0/compressed的壓縮話題用rqt_image_view實時查看畫面否則圖像數(shù)據(jù)帶寬太大會導致實時預(yù)覽卡頓。相機初始化流程分為下面幾個關(guān)鍵步驟枚舉設(shè)備獲取設(shè)備數(shù)量創(chuàng)建設(shè)備句柄選擇第一個在線設(shè)備打開設(shè)備設(shè)置像素格式、分辨率、曝光時間、幀率注冊圖像回調(diào)或使用主動取流線程開始取流節(jié)點退出時停止取流并銷毀句柄在代碼組織上我單獨寫了一個HikCamera類把SDK相關(guān)調(diào)用全部封裝在里面ROS節(jié)點的回調(diào)函數(shù)只負責把拿到的圖像數(shù)據(jù)轉(zhuǎn)成ROS消息并發(fā)布。這樣模塊劃分清晰后續(xù)如果要移植到其他相機平臺只要替換這個類就行。3.2 核心取流代碼實現(xiàn)下面這段代碼是封裝的核心部分我把SDK初始化、取流回調(diào)、圖像轉(zhuǎn)換這三個關(guān)鍵環(huán)節(jié)拆開講解。首先是初始化和取流相關(guān)代碼#include MvCameraControl.h #include ros/ros.h #include sensor_msgs/Image.h #include cv_bridge/cv_bridge.h #include opencv2/opencv.hpp class HikCamera { public: HikCamera() : handle_(nullptr), is_grabbing_(false) {} bool init(int width, int height, float fps, float exposure, int pixel_format) { // 枚舉設(shè)備 MV_CC_DEVICE_INFO_LIST device_list; memset(device_list, 0, sizeof(device_list)); int ret MV_CC_EnumDevices(MV_GIGE_DEVICE | MV_USB_DEVICE, device_list); if (ret ! MV_OK || device_list.nDeviceNum 0) { ROS_ERROR(No Hik camera found); return false; } // 創(chuàng)建設(shè)備句柄 ret MV_CC_CreateHandle(handle_, device_list.pDeviceInfo[0]); if (ret ! MV_OK) { ROS_ERROR(Create handle failed, ret 0x%x, ret); return false; } // 打開設(shè)備 ret MV_CC_OpenDevice(handle_); if (ret ! MV_OK) { ROS_ERROR(Open device failed, ret 0x%x, ret); return false; } // 設(shè)置傳輸類型、像素格式、分辨率、幀率、曝光 MV_CC_SetEnumValue(handle_, PixelFormat, pixel_format); MV_CC_SetIntValue(handle_, Width, width); MV_CC_SetIntValue(handle_, Height, height); MV_CC_SetFloatValue(handle_, FrameRate, fps); MV_CC_SetEnumValue(handle_, ExposureAuto, 0); // 關(guān)閉自動曝光 MV_CC_SetFloatValue(handle_, ExposureTime, exposure); return true; } bool start_grabbing(ros::Publisher pub) { if (handle_ nullptr) return false; user_param_ pub; is_grabbing_ true; // 注冊取流回調(diào) int ret MV_CC_RegisterImageCallBackEx(handle_, image_callback, this); if (ret ! MV_OK) { ROS_ERROR(Register callback failed, ret 0x%x, ret); return false; } ret MV_CC_StartGrabbing(handle_); return ret MV_OK; } void stop() { if (handle_) { MV_CC_StopGrabbing(handle_); MV_CC_CloseDevice(handle_); MV_CC_DestroyHandle(handle_); handle_ nullptr; } } private: static void __stdcall image_callback(unsigned char* data, MV_FRAME_OUT_INFO_EX* frame_info, void* user) { HikCamera* cam static_castHikCamera*(user); ros::Publisher* pub static_castros::Publisher*(cam-user_param_); // 轉(zhuǎn)成cv::Mat cv::Mat raw_image(frame_info-nHeight, frame_info-nWidth, CV_8UC1, data); cv::Mat gray_image; if (frame_info-enPixelType PixelType_Gvsp_Mono8) { gray_image raw_image.clone(); } else if (frame_info-enPixelType PixelType_Gvsp_BayerRG8) { cv::Mat bayer(frame_info-nHeight, frame_info-nWidth, CV_8UC1, data); cv::cvtColor(bayer, gray_image, cv::COLOR_BayerRG2GRAY); } else { cv::Mat color_image(frame_info-nHeight, frame_info-nWidth, CV_8UC3, data); cv::cvtColor(color_image, gray_image, cv::COLOR_RGB2GRAY); } sensor_msgs::ImagePtr msg cv_bridge::CvImage( std_msgs::Header(), sensor_msgs::image_encodings::MONO8, gray_image ).toImageMsg(); msg-header.stamp ros::Time::now(); msg-header.frame_id camera; pub-publish(msg); } void* handle_; bool is_grabbing_; void* user_param_; };取流接口我用的是MV_CC_RegisterImageCallBackEx也就是注冊回調(diào)方式。SDK內(nèi)部會在圖像數(shù)據(jù)到達時自動調(diào)用回調(diào)函數(shù)這在多數(shù)場景下比主動輪詢MV_CC_GetImageBuffer更高效也不容易丟幀?;卣{(diào)函數(shù)里我直接把圖像數(shù)據(jù)映射成cv::Mat再通過cv_bridge轉(zhuǎn)成ROS的Image消息發(fā)布。要注意的是MV_FRAME_OUT_INFO_EX結(jié)構(gòu)體里包含了圖像的長寬和像素格式信息每次回調(diào)都要用這個結(jié)構(gòu)體的字段來構(gòu)造cv::Mat不能事先用固定尺寸否則相機如果中途被改了分辨率程序會直接崩潰。3.3 圖像參數(shù)與話題配置把參數(shù)暴露給launch文件相機參數(shù)全部放到launch文件里管理這樣每次調(diào)整不需要重新編譯。我用的是ROS的rosparam加上dynamic_reconfigure的思路但為了簡化直接在一個launch文件里寫死參數(shù)并加載到參數(shù)服務(wù)器。下面是我用的launch文件launch node namehik_camera_node pkghik_camera_ros typehik_camera_node outputscreen param namecamera_name valuemv_camera / param nameimage_width value1280 / param nameimage_height value800 / param namefps value30 / param nameexposure_time value4000 / param namepixel_format valuemono8 / param nameframe_id valuecamera / param namecamera_topic value/cam0/color / /node /launch像素格式參數(shù)我用了字符串mono8或bayer代碼里再根據(jù)這個字符串決定設(shè)置哪個枚舉值。直接寫數(shù)字雖然簡單但可讀性太差以后自己都看不懂。曝光時間參數(shù)曝光時間我設(shè)成了4000微秒也就是4毫秒。這個值在室內(nèi)燈光環(huán)境下表現(xiàn)不錯如果搬到室外強光環(huán)境需要把這個參數(shù)調(diào)小到1000微秒左右否則畫面會過曝。FAST-LIVO2的視覺前端對過曝很敏感一旦圖像高光區(qū)域過多特征點會大量失效。建議在實際運行環(huán)境里先用rqt_image_view預(yù)覽畫面調(diào)節(jié)到畫面亮度合適的曝光值再開始跑算法。分辨率方面1280x800是兼顧分辨率和帶寬的選擇。分辨率太低特征點不夠用分辨率太高占用帶寬太大而且FAST-LIVO2內(nèi)部還會做金字塔采樣過高的分辨率并不會帶來明顯精度提升。我對比過1280x800和1920x1200兩種分辨率在同一個場景下跑FAST-LIVO2的結(jié)果軌跡精度基本沒有差別但CPU占用率差了不少。3.4 相機內(nèi)參標定不標定直接跑就是撞運氣接FAST-LIVO2之前一定要先標定相機內(nèi)參和畸變系數(shù)。這件事太重要了我一開始偷懶用了廠家出廠的內(nèi)參文件結(jié)果跑FAST-LIVO2的時候初始化階段頻繁失敗定位軌跡也一直漂后來重新標定后整個系統(tǒng)立馬穩(wěn)定下來。??迪鄼C出廠時確實會附帶一份內(nèi)參文件但那個是在出廠試驗臺上的標定結(jié)果跟實際使用中的鏡頭安裝狀態(tài)、光圈位置都有關(guān)系。尤其是鏡頭的光圈和聚焦環(huán)如果動過內(nèi)參就會有偏差。FAST-LIVO2對相機內(nèi)參非常敏感因為視覺殘差的構(gòu)建依賴反投影模型內(nèi)參差一點視覺和激光的融合就會出現(xiàn)系統(tǒng)性偏差。標定的做法是安裝camera_calibration工具sudo apt install ros-noetic-camera-calibration然后準備一張棋盤格標定板我用的是一張A3紙打印的8x6棋盤格格子邊長35mm。啟動標定界面后手持標定板在畫面里從不同角度、不同距離、不同位置移動讓標定程序采集20到30張有效幀然后點擊Calibrate生成標定結(jié)果。這個過程大概五分鐘就能完成比想象中簡單。標定出來的內(nèi)參和畸變系數(shù)分別用于FAST-LIVO2的視覺配置文件和相機去畸變處理。我選擇在相機驅(qū)動節(jié)點中直接把圖像去畸變后再發(fā)布好處是FAST-LIVO2的代碼里就少一步處理配置也更簡單。代價是去畸變會裁剪掉圖像邊緣部分視野會略微變窄。對于FAST-LIVO2這種融合方案來說視野窄一點可以接受換來的是配置和調(diào)試的便利性。4. catkin_make編譯要點與依賴處理4.1 創(chuàng)建ROS包并配置CMakeLists.txt新建一個catkin工作空間的包假設(shè)工作空間叫catkin_ws包名是hik_camera_rosmkdir -p ~/catkin_ws/src cd ~/catkin_ws/src catkin_create_pkg hik_camera_ros roscpp sensor_msgs cv_bridge image_transportcatkin_create_pkg生成的CMakeLists.txt模板已經(jīng)幫你處理好了catkin包依賴的基礎(chǔ)配置但MVS SDK的頭文件和庫目錄需要手動添加。這一步是很多新手卡住的地方因為模板不會自動包含/opt/MVS下的接口。下面是我實際使用的CMakeLists.txt關(guān)鍵部分cmake_minimum_required(VERSION 3.0.2) project(hik_camera_ros) find_package(catkin REQUIRED COMPONENTS roscpp sensor_msgs cv_bridge image_transport ) find_package(OpenCV REQUIRED) # MVS SDK 頭文件和庫路徑 include_directories( include ${catkin_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS} /opt/MVS/include ) link_directories( /opt/MVS/lib/x86_64 ) add_executable(hik_camera_node src/hik_camera_node.cpp) target_link_libraries(hik_camera_node ${catkin_LIBRARIES} ${OpenCV_LIBRARIES} MvCameraControl )這里最關(guān)鍵的是兩行include_directories里的/opt/MVS/include以及l(fā)ink_directories里的/opt/MVS/lib/x86_64。MVS SDK的動態(tài)庫叫l(wèi)ibMvCameraControl.so在target_link_libraries里直接寫名字即可。4.2 編譯時常見問題OpenCV版本沖突與庫路徑缺失我實際編譯中遇到的最頭大的問題就是OpenCV版本沖突。Ubuntu 20.04自帶的OpenCV是4.2.0ROS Noetic的cv_bridge也是基于4.2.0編譯的但如果之前手工編譯過OpenCV 4.5以上版本并且沒有卸掉CMake在find_package(OpenCV)的時候可能找到的是手工安裝的版本導致鏈接時出現(xiàn)一堆符號錯誤。解決辦法是在CMakeLists.txt里明確指定OpenCV的路徑set(OpenCV_DIR /usr/lib/x86_64-linux-gnu/cmake/opencv4) find_package(OpenCV REQUIRED)這樣強制CMake使用系統(tǒng)ROS自帶的OpenCV版本避開手工裝的版本。如果確實需要更高版本的OpenCV那就要連cv_bridge一起重新編譯工作量會大很多不建議在跑FAST-LIVO2的場景下折騰。另一個常見問題是MVS SDK庫路徑寫錯。MVS SDK在不同架構(gòu)下庫目錄不同x86_64系統(tǒng)是lib/x86_64ARM平臺是lib/aarch64。如果復(fù)制了別人的工程忘了改路徑會直接報找不到libMvCameraControl.so。但如果你確認路徑?jīng)]問題還是找不到可以編譯后運行前用ldd檢查一下依賴ldd devel/lib/hik_camera_ros/hik_camera_node | grep MvCamera如果顯示找不到libMvCameraControl.so需要在bashrc里加上庫路徑export LD_LIBRARY_PATH/opt/MVS/lib/x86_64:$LD_LIBRARY_PATH4.3 catkin_make編譯順序問題先編依賴還是先編相機驅(qū)動如果工作空間里同時放了FAST-LIVO2的源碼和相機驅(qū)動包注意catkin_make的編譯順序。catkin會自動根據(jù)package.xml里的依賴關(guān)系決定編譯順序但有時因為之前編譯產(chǎn)生的build緩存會出現(xiàn)循環(huán)依賴或依賴找不到的問題。我建議先只編譯相機驅(qū)動包本身cd ~/catkin_ws catkin_make --pkg hik_camera_ros編譯通過后再編譯整個工作空間這樣如果出現(xiàn)問題能清楚地知道是相機驅(qū)動的問題還是FAST-LIVO2本身的問題。FAST-LIVO2的主包依賴一些輔助庫比如livox_ros_driver、ikdTree、faster_lio等這些包的編譯順序如果亂了會非常頭疼。跑catkin_make的時候最好用并行編譯但也不要無腦加-j因為內(nèi)存不夠時編譯會崩。我一般用catkin_make -j4四線程在大多數(shù)機器上比較穩(wěn)妥如果機器內(nèi)存大、核多可以提高到-j8。我實測在編譯過程中由于MVS SDK的頭文件比較大預(yù)處理器會吃掉不少內(nèi)存并行數(shù)過高時出現(xiàn)過因為內(nèi)存不足導致編譯進程被殺的情況。5. 時間戳同步從數(shù)據(jù)源到FAST-LIVO2的精度要求5.1 為什么時間戳是大事三個傳感器各自亂報時間會怎樣FAST-LIVO2在融合激光雷達、IMU和相機數(shù)據(jù)時核心假設(shè)是這三個傳感器的時間戳描述的是物理世界中同一時刻的狀態(tài)。如果時間戳對不齊相當于把三個不同時刻的快照硬當成同一時刻來求解結(jié)果必然發(fā)散。FAST-LIVO2內(nèi)部有嚴格的傳感器時間對齊邏輯IMU消息和激光雷達消息根據(jù)它們帶的時間戳插值對齊相機圖像則用來提供視覺殘差。如果圖像的時間戳比真實采集時刻偏大或偏小幾十毫秒視覺殘差會對應(yīng)到錯誤的IMU狀態(tài)上造成定位誤差累積嚴重的時候直接初始化失敗。實際經(jīng)驗是對于FAST-LIVO2這種方案圖像時間戳誤差在5毫秒以內(nèi)一般能正常工作超過10毫秒系統(tǒng)性能明顯下降超過30毫秒基本跑不起來。所以時間戳同步不是錦上添花是剛需。5.2 打時間戳的兩種方式對比回調(diào)時刻還是SDK時間戳在封裝相機驅(qū)動時給圖像消息打時間戳有兩種做法我在開發(fā)中都試過效果差別很大。第一種方式是在SDK圖像回調(diào)函數(shù)里直接調(diào)用ros::Time::now()。這種方式簡單粗暴代碼就一行。缺點是回調(diào)函數(shù)被調(diào)用的時刻跟相機真正曝光完成的時刻之間有一段延遲。延遲來自兩個地方一是圖像數(shù)據(jù)從相機傳到主機需要時間千兆網(wǎng)傳輸一小幀圖像大概1到2毫秒二是SDK內(nèi)部對圖像數(shù)據(jù)的處理和回調(diào)觸發(fā)也需要時間這個時間不定可能1毫秒也可能5毫秒。所以回調(diào)時刻打出來的時間戳比真實曝光完成時刻普遍偏大幾毫秒。第二種方式是利用SDK的幀信息。在MV_FRAME_OUT_INFO_EX結(jié)構(gòu)體里有兩個時間戳字段一個是設(shè)備內(nèi)的時間戳另一個是主機收到幀時的系統(tǒng)時間戳。??档腉igE相機支持IEEE 1588協(xié)議如果設(shè)備和主機之間實現(xiàn)了1588時鐘同步SDK返回的設(shè)備時間戳可以轉(zhuǎn)換為主機系統(tǒng)時間精度很高。但問題是很多網(wǎng)卡和相機的1588實現(xiàn)并不完整配置起來折騰而且對普通使用場景來說有點大材小用。我實際采用的策略是補償式的回調(diào)時間戳。首先在相機參數(shù)里把曝光時間設(shè)置成固定值比如4毫秒然后通過SDK提供的stFrameInfo.hostTimeStamp字段記錄主機收到數(shù)據(jù)的時刻再根據(jù)曝光時間估算圖像曝光中點與回調(diào)時刻之間的延遲最后在ros::Time::now()的基礎(chǔ)上減去這個延遲。雖然這個補償值不可能絕對精確但能把時間戳誤差控制在幾毫秒內(nèi)對FAST-LIVO2來說已經(jīng)足夠。專門說一下為什么不要用設(shè)備內(nèi)的時間戳直接做映射。設(shè)備內(nèi)時間戳對應(yīng)的是曝光開始的時刻但它的參考時鐘是相機自身的晶振與主機的系統(tǒng)時鐘有偏差。除非做IEEE 1588級別的時鐘同步否則這個偏差是不確定的直接拿來用反而更糟。我在實驗里看到過設(shè)備時間戳與主機時間相差幾十毫秒的情況如果直接用肯定掛。5.3 時間戳補償?shù)木唧w實現(xiàn)代碼層面我修改了回調(diào)函數(shù)里的時間戳賦值邏輯auto host_time ros::Time::now(); // 補償曝光中點與回調(diào)觸發(fā)時刻之間的延遲 // 取流回調(diào)晚于曝光完成大約延遲 transmission_delay sdk_callback_delay // 曝光中點約在曝光開始后 exposure_time/2 微秒曝光完成后還有傳輸和回調(diào)延遲 double exposure_seconds exposure_time_us_ / 1e6; double total_delay exposure_seconds / 2.0 kTransmissionAndCallbackDelay; msg-header.stamp host_time - ros::Duration(total_delay);其中kTransmissionAndCallbackDelay是我根據(jù)實測標定的一個常數(shù)用的是相機朝向一個高頻LED閃爍光源同時用示波器測量真實曝光時刻和ROS消息時間差的方法實際測量出來這個值大概在3到6毫秒之間我取了4.5毫秒。這個值跟相機分辨率、網(wǎng)絡(luò)環(huán)境有關(guān)系如果你換了環(huán)境或者在戶外跑建議重新測一下。不重測也沒關(guān)系只要FAST-LIVO2能初始化并穩(wěn)定運行偏差允許范圍之內(nèi)就不會有大問題。5.4 錄制數(shù)據(jù)包與驗證時間戳對齊效果相機驅(qū)動寫好后需要用數(shù)據(jù)包方式驗證時間戳對齊效果。把三個傳感器一起錄制然后分析bag里的話題時間分布。錄制命令rosbag record /cam0/color /livox/lidar /imu/data錄完后回放數(shù)據(jù)包用以下方式檢查對齊效果。首先用rostopic hz檢查各話題的實際發(fā)布頻率rostopic hz /cam0/color rostopic hz /imu/data rostopic hz /livox/lidar只要頻率基本穩(wěn)定說明數(shù)據(jù)流本身沒問題。然后看時間戳的連續(xù)性我習慣把bag的話題時間戳導出來做個簡單的可視化。rostopic echo太啰嗦直接用Python腳本處理bag打印每個話題的時間間隔import rosbag bag rosbag.Bag(test.bag) for topic, msg, t in bag.read_messages(topics[/cam0/color]): print(msg.header.stamp.to_sec())相鄰圖像幀的時間戳間隔如果基本等于幀率的倒數(shù)比如30幀對應(yīng)約33.3毫秒說明時間戳連續(xù)穩(wěn)定。如果出現(xiàn)忽大忽小的跳動就要檢查是不是相機幀率本身不穩(wěn)或者回調(diào)里時間戳打的時機有問題。還有一個重要驗證在rqt里同時顯示IMU數(shù)據(jù)頻率曲線和圖像頻率曲線看它們在時間軸上是否有錯位感。雖然這個驗證方式比較主觀但能在錄包階段提前發(fā)現(xiàn)明顯的問題避免后面跑FAST-LIVO2時才炸。6. 常見問題與排查技巧實錄6.1 編譯期問題速查編譯期問題主要集中在MVS SDK和ROS環(huán)境的銜接上我整理了一個速查表問題現(xiàn)象可能原因解決辦法找不到MvCameraControl.hinclude路徑未添加在CMakeLists.txt中添加/opt/MVS/include找不到libMvCameraControl.so鏈接路徑未指定添加/opt/MVS/lib/x86_64并target_link_libraries加MvCameraControlOpenCV符號沖突手工安裝了一版OpenCV在CMakeLists.txt指定OpenCV_DIR為系統(tǒng)路徑cv_bridge編譯錯誤ROS版本與代碼不匹配確認是Noetic不要嘗試在Melodic上直接編catkin_make過程中內(nèi)存被殺并行編譯數(shù)過高降低-j參數(shù)我使用-j46.2 運行期問題速查運行期問題更多一個個說。第一個是設(shè)備枚舉不到。除了前面說的網(wǎng)卡和IP問題還要注意MVS SDK的權(quán)限設(shè)置。SDK安裝后會創(chuàng)建一個用戶組要把當前用戶加入這個組否則在非root用戶下調(diào)用設(shè)備枚舉接口可能失敗。運行命令sudo usermod -a -G mvs $USER這里mvs是SDK安裝時創(chuàng)建的用戶組名不同版本可能不一樣。加完后要重新登錄或者執(zhí)行newgrp mvs。第二個問題是啟動節(jié)點后取流成功但rqt_image_view畫面是花的。這個大概率是像素格式設(shè)置和cv_bridge編碼不一致造成的。我遇到過BayerRG8的圖像在OpenCV里直接用CV_8UC3來解析結(jié)果畫面顏色完全亂掉。解決方法是根據(jù)SDK返回的幀信息里的enPixelType字段來做轉(zhuǎn)換不要盲目假設(shè)輸入格式。代碼里我用了PixelType_Gvsp_Mono8、PixelType_Gvsp_BayerRG8等幾個分支來分別處理這樣無論相機輸出什么格式都不會花屏。第三個問題是幀率不達標。相機標稱30幀實際跑只有15幀。排查思路是先用官方MVS客戶端軟件試試同樣參數(shù)下能不能到30幀如果能說明網(wǎng)絡(luò)沒問題問題出在驅(qū)動代碼上可能是我在回調(diào)里做了太多圖像處理拖慢了取流線程。解決辦法是把圖像格式轉(zhuǎn)換和發(fā)布邏輯放到一個獨立線程取流回調(diào)里只做拷貝操作用隊列傳遞圖像數(shù)據(jù)。我這里為了簡單沒有加線程池但實際測試下來在回調(diào)里做cv::cvtColor和clone操作不會導致丟幀所以沒做進一步優(yōu)化。如果你的機器性能比較弱建議把格式轉(zhuǎn)換放到獨立線程。6.3 關(guān)于熱搜詞“??稻€掃相機能不能輸入行程”的提醒搜到這個話題說明有不少人把線掃相機和FAST-LIVO2聯(lián)想在一起。這里直接說結(jié)論??稻€掃相機不能直接作為FAST-LIVO2的視覺輸入。線掃相機的工作原理是每次只采集一行像素要得到完整的二維圖像必須依賴被測物體做相對的勻速運動或者配合外部編碼器觸發(fā)逐行采樣再在后期拼接成完整圖。它天生是為連續(xù)運動的產(chǎn)線檢測場景設(shè)計的而不是像面陣相機那樣一幀一幀地曝光出完整的二維畫面。FAST-LIVO2的視覺前端拿到的是sensor_msgs/Image類型的一幀圖像本質(zhì)上是一張二維矩陣線掃相機拿不出這個格式的數(shù)據(jù)。如果項目已經(jīng)買了線掃相機想用來跑FAST-LIVO2那基本沒戲。要么換面陣相機要么用額外的運動平臺和編碼器數(shù)據(jù)把線掃輸出重建為二維圖像但那樣的話數(shù)據(jù)率、曝光方式、圖像畸變模型全都變了已經(jīng)不是FAST-LIVO2能干的事。選型階段就老老實實選全局曝光的面陣工業(yè)相機這個方向才是對的。7. 實操經(jīng)驗與最后的幾點建議整套流程走下來我的感受是??迪鄼C接FAST-LIVO2這件事技術(shù)難度并不高但細節(jié)非常多每一個環(huán)節(jié)都有那么兩三個坑等著你。最花時間的往往不是寫代碼本身而是排查那些看起來毫無頭緒的問題比如網(wǎng)卡沒選對、SDK庫路徑漏了、OpenCV版本沖突、時間戳偏差超限。如果讓我重新做一次我會在動手前先把所有環(huán)境細節(jié)確認清楚網(wǎng)口單獨一個、IP網(wǎng)段固定、MVS SDK版本統(tǒng)一、OpenCV路徑明確、相機參數(shù)先用官方軟件調(diào)好。這些準備工作做足了后面的開發(fā)會順暢很多。最后分享一個我個人驗證過的經(jīng)驗錄數(shù)據(jù)集的時候先花幾分鐘用rqt看一圈圖像和IMU數(shù)據(jù)確認曝光正常、幀率穩(wěn)定、時間戳分布均勻再正式開始錄。返工的成本遠遠大于多花的這幾分鐘。還有就是建議在相機驅(qū)動節(jié)點里把圖像話題同時發(fā)布raw和compressed兩個版本raw給FAST-LIVO2用compressed給自己調(diào)試用。即使不在線預(yù)覽跑算法的時候用compressed話題來看畫面能大幅降低CPU占用也能避免搶帶寬影響相機數(shù)據(jù)流。這個小習慣幫我省了很多麻煩算是這套流程里最實用的一個技巧了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久久无码精品人妻二区 | 亚洲婷婷丁香在线| 亚洲国产精品久久久久婷婷老年| 囯产精品久久久久久久久久梁医生 | 国产最新小视频在线播放下载 | 久久久蜜桃臀无码视频| 一区| 日本色色的视频| 青青草无码视频| 日韩人妻大香蕉| 精品一级毛片在线观看| 日日日日做夜夜夜夜做无码97| 亚欧性爱ab| 一区二区播放| 人人爱夜夜爱| 亚洲色堂免费视频| 国产精品久久久久久高清无码免费看 | 国产五码丝袜屁眼| 青青草久草AV| 亚洲九九爱| 六月婷婷五月丁香| 欧美不卡五十路| 国产高清不卡视频| 亚洲第一成人影院色播| 久久亚洲国产成人| 9ⅰ久久久天天| 啊啊啊在线观看免费视频| 人妻激情另类| 性在久久久久久| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 骚熟女AV网| 天堂精品在线| 啪啪综合网| 久久无码一区二区二三区性色| 91亚洲网站| 人妻 制服 日韩 中文 在线| 丝袜美腿操av| 色原狠狠天天天| 国内外毛片在线观看| 日韩不卡一二三四| 亚洲操操操无码| 国产精品另类一区大香蕉| 热久久无毒不卡| 欧美天堂亚洲电影院一区在线播放| 国模精品娜娜一二三区| 秋霞成人一级在线观看| 欧美激情视频一区二区| 大香蕉日亚洲日本亚大| juliaann欧美丝袜办公室| 精品亚洲俞拍视频一区| 亚洲色香| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 欧美十八禁导航成人| 国产欧美在线观看免费观看| 久久精品久久久久久久久| 91综合在线| 天天干夜夜肏| 亚洲精品国产av天美传媒| 久久鲁夜| 免费99精品国产自在在线| 亚洲最大无码中文字幕网站| www.yeyecao| 亚洲AV成人无码一二三久久 | 超踫中文字幕| 欧美性,亚州色| 天天干,夜夜爽| 91亚洲不卡一区| 丁香五月成人| 免费的av网| 中文字幕综合人妻| 久草新免费| 青木玲在线不卡| 97精品人妻一二三四| 91天天综合日韩欧美| 插插综合网天天影视网| 欧美性爱日韩性爱| 91足交| 中文字幕五月婷婷免费| 无码伊人久久大杳蕉中文无码| 色综合天天| 夜夜高潮夜夜爽高清视频一| 另类图片五月天| 超碰91在线| 黄色AAAAA欧美| 欧美黄色大片在线观看| 校园春色五月天| aV中文麻| 亚洲欧美成人在线| a男人的天堂| 美女啊啊啊啊pc| 久久99国产综合精品女同| 亚州中文字幕超碰97| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 日本欧美中文字幕| 日产欧美电影一区二区三区| 你懂得91| 亚洲黄a三级三级三级看三级| 欧美日韩1234| 一区二区三区在线资源| 久久中久文96| www.av在线观看| 国产亚洲99久久精品| 色婷婷基地| 亚洲精品国产av天美传媒| 亚洲天堂2020| 日本人妻A片成人免费看片| 超碰 另类 欧美| 亚洲鸥美色图| 一区二区影院| 亚洲色吧网| 熟女高潮精品一区二区| 大香网伊人久久综合| 噜噜噜久久亚洲精品色情| 午夜精品久久99蜜桃的功能章节| 激情四射五月天| 少妇激情AV| 911av网站免费观看| 91丝袜在线观看视频在线观看| 一起草视频在线| 日本一级黄色电影| 鸥美精品一区二区久久婷婷| 一二视频神马久久传媒| 在线观看成人性爱免费小视频| 三男一女不戴套的A片| 日韩无码三级影院| 九色PORNY9l原创自拍| 久久久久中出| 丝袜视频网国产90| 国产精品嫩草影院午夜两性 | 黄片com.| 五月天黄色av| 久久久久久中文字幕中文字幕最新| 久久婷婷综合国际产色怕| 91在线视频免费播放| 乱码人妻一区二区三区| 久久精品国产亚洲妲己影视| 欧洲天天在线| 啊啊嗯嗯好爽| 青青草成人视频在线观看二区 | 色呦呦呦在线观看视频| 日天天九九天堂666| 精品国产无码中文| 欧美78| 国产操操日韩三级黄| 金典av| 伊人久久大香线蕉无码| 97人人夜| 91干熟女| 精品人妻一区二区三区日产| 禁十八久久| 日逼视频日本| 久久精品国产Aⅴ| 欧洲小说色图视频另类| 不卡免费av在线播放| 久热这里只有精品9| 偷拍 亚洲| 欧美亚洲另类在线蜜桃| 亚洲精品人体| 欧美人妻另类在线| 亚洲天堂色图| 自拍鲍鱼一区在线高清观看免费| 日韩在线观看三级电影| 欧美色日| 九月丁香婷婷| a在线观看| 操国产高清| 99热8| 加勒比无码一区二区三区| 久久免费99精品久久久久久| 九九英色视频| 国产精品久久久久无码Av网曝门| 自拍视频大全亚洲专媒视频/一区二区三区 | 亚洲av无码国产精品字幕| 青青伊人久久| h在线看免费版在线看| 久久国产AⅤ| 中文熟女五十乱码在线| 自拍欧美| 欧美精品人妻视频| 99热国产| 日韩中文字幕视频在线观看| 操操逼操操逼操操逼逼| 亚洲欧美色图| 日本精品一级二级三级| 亚洲欧美清纯| 在线播放欧洲免费av| 婷婷精品国产一区二区三区日韩| 超碰亚洲欧美日韩无| 久久精品国产亚洲AV片多多 | 欧美精品精品一区二区| 免费视频观看60秒| 美女91| yazhouzaixian| 最新精品久久蜜桃| 亚洲大胆人体av| 极品粉嫩一区二区| 神马午夜久久久| 高清不卡一二三区视频......| 怡红院一区二区熟女人妻| 成年人三级黄色片视频| 人人看黄色视频| 97视频在线播放| 欧美性爱一区二区三区| 国产精品久久久777| 亚洲欧美一区二区三区在钱蜜桃| 91黑丝在线播放| 久久久久久亚洲中文| 天美精品原创av片国产| 亚洲精品97久久| 亚洲欧美成人网站AAA| 91青青| 一本色道久久综合亚洲二区三区| 日韩人妻无码不卡网站| 美日韩男女操屄视频| 男女啪啪网站免费视频| 中文字幕精品一区欧美| 日本三级A片网站com| 91看黄片| 色婷婷九月| 亚洲成人免费在线| 黄色网址久久精品欧美喷水| 天天综合91在线| 色情成人五月天| 国产精品爱欲| 人妻人人做人人澡人人爽欧美一区| 亚洲爽图| 无码操逼视频一下| 一级特级aaaa毛片免费观看| 五月丁香六月婷| www.色操逼| 69精品在线| 婷婷色香| 日本性一区| 欧美性暴力猛交| 91久久久亚洲| 亚洲日本韩国在线| 国产一区二区啪啪视频| 一区二区三区男女操逼黄色小电影| 91九色丨国产丨爆乳| 欧美日韩大陆黑人少妇99| 性爱欧美五月| 久久伊人影院| japan日本高清乱xxxx| 激情五月天色色| 男人天堂站| 成人十八禁日韩欧美一二三| 麻豆天美在线| 久久精品国产AV一区二区三区| 色五天伊人| 超碰人妻在线| 台湾大香蕉99热| 中日韩久久久免费看| 中欧人妻丝袜中文字幕| 免费看黄视频亚洲网站| 97视频观看| 久热大香蕉网站| 69精品| 午夜爽爽爽在线观看永久入口姬片| 9999免费精彩视频| 丝袜美女诱惑 91 视频| 中文字幕熟女人妻丝袜| 91亚洲网| 激情五月天丁香社区| 99999精品视频| 亚洲少妇激情一区二区三区| 国产精品成久久久久午夜午夜| 亚洲最大成人a毛毛片| 欧洲综合视频| 色97干| 日日碰狠狠添天天爽超| 久久人妻无码毛片A片麻豆| 亚洲色电影在线| 国产精品女久久久久av爽| 人人人人人人少妇| 日韩99999| 亚洲中文字母在线播放| 精品网站99999| 日韩免费一级性爱视频| 欧美久久九九| 夜夜嗨老熟女AV一区二区三区| 91综合色噜噜| 小草精彩毛片| 97超碰色色| 婷婷五月天成人| 中文字幕诱惑制服人妻丝袜美丝袜美| 久久久久免费看少妇A片特黄| 欧美日日夜夜| 久久人妻| 欧美国产成人在线| 日韩熟女乱伦中出| 欧美精品亚洲精品日韩传电影| 久操com| 韩国女主播青草在线| CCYY草草影院地址入口| 欧美性爱一区二区三区四区 | 在线观看国产黄色| 在线小说视频一区| 久久久久国产精品片区无码直播| 久久99干一本高清| 国内毛片无码一级毛片| 欧美韩日精品99综合| 精品v日韩欧美国产| 欧美激情久| 国产东北女人在线视频| 少妇专区一二三四五| 囯戸精品高潮呻吟旡码| 婷婷精品国产一区二区三区日韩| 国产熟女完整版中字 | 精品黄色电影| 九九成人精品| 黑人嘿嘿嘿超爽免费视频| 青青操视频在线| 久草免费在线一区二区| 草久在线| 嗯嗯嗯嗯啊啊啊好紧好大| 日韩三级伦理中文字幕| 色偷偷色偷偷欧美日韩| 黄色性爱网网| 亚洲不卡三级手机播放| 久久偷拍人| 色婷婷视频| 国产人妻久久精品一区二区三区| 亚洲情色婷婷五月天| 免费精品无码一级毛片牛牛影视 | site:sinbotex.com| 日本不卡三级网在线播放| 日本人妻伦在线中文字幕| 伊人操操| 嗯嗯啊中文字幕| 国产91福利小视频在线观看| 99re99在线视频| 69AV女优男人的天堂| 密乳AV免费观看| 亚洲,欧美,综合网| 人妻精品4K4K4K4K4| 最近2019中文字幕国语免费版| 欧美色图20P| 日本三级日本三级三级人妇四虎| 永久免费发布性爱网| 亚洲男人在线观看天堂| 人人操人人射人人干| 五月激情天| 日韩熟女乱伦中出| 日日爱99| 淫淫综合网| 久操在97| 亚洲天堂另类小说男人| 999岛国大片| 91福利网在线观看| 奶水 人妻 哺乳 在线| 97看操| 青青操青娱乐| 可以免费观看的av| 国产区性爱在线视频秋霞豆| 国产精品久久久久久久电影渣男| 色淫网站优优视频| 国产中午字一暮区| 夜夜福利| 欧美色日本| 鲁鲁色综合网| 90后性网国产欧美| 天堂无码精品国产久| 大香蕉欧美| 亚洲交性| 久久风骚城市人| 蜜桃色院一区久久| 四虎视频在线观看| 99操| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 小少妇| 国产日韩欧美三级片| 国产一区二区a毛片| 国产 日韩,欧美 自拍| 国产激情在线| 四虎884| 美女91av| 国产精品乱码久久久久久久| 老司机久久| 亚洲美欧999| 亚洲天堂中文字幕无码男同| 婷婷情色综合网| 成人婷婷丁香| 国产精品久久久亚洲一区| 婷婷五月天伊人| 欧美很很操视频| A片 AV一级在线播放观看免费 | 内射白嫩美女| 国产精品一区人妻精品阁在线| 五月天婷婷基地| 丁香五月AV| 伊人久久国产免费观看视频| 中文字幕在线观看网页| 成人在线视频一区| 97在线青| 在线天堂资源亚洲| 国产女大学生AV| 亚洲无线观看久久| 无码国产Av| 91爆操视频| 一区二区三区精品视频| 夜夜嗨一区二区| 黄页18禁| 日韩天天本| 很狠操| 亚洲a色| 黑人娇小av在线播放 | 少妇99成人麻豆| 美女高潮视频91| 天天干天天日天天射黄色片| 久草老司机| JuliaAnnXXX888| 麻豆久久一区二区三区| 久久综合国产精品国产| 天天精品| 97午夜剧场日韩| juliaann丝袜大战黑鬼| 久久久久久久久久久精| 欧美色亚洲| 岛国黄| 亚洲第一综合| 人妻超碰青青草98| 亚洲色图欧美一区二区不卡| 久久免费精品视频免一| 色妺妺在线视频| 91l欧美在线| 校园春色 亚洲| 2017av无码免费无线播| 婷婷丁香成人| 久久神马影院| 久久区| 亚洲精品啪视频| 东京热男人的天堂网| 91国产大片| 日本二区不卡| 岛国色情视频在线观看| 久久,精品一二三| 97精品视频网站| 九热久| 亚洲国产精品无码AV在线| 九九在线视频| 色亚洲欧美| 性爱Av免费| 亚洲情色电影网| 天天综合网合集91| 八戒午夜福利理论片| 丁香激情五月| 亚洲校园激情| 欧美一级久久久久久久大片动画| 久久的网站啊啊啊啊啊| 97超碰日韩| 999岛国大片| 老熟妇一区二区三区啪啪| 一区二区三区视频| 狠狠干综合| 日本黄色天堂| 欧美操逼熟女| 成人天天爽| 欧美精品成人在线播放| 粉嫩AV一区夜夜嗨| 久久久久久99AV无码免费网站| 久久五月婷| 久久久九九| 无码天天操| 啊啊啊快操我视频| 一级日本牲交大片好爽在线看| 亚洲色图久久成人| 久久久97| 嗯阿好爽好紧| 日韩免费三级黄片电影| 成人综合视频久久| 黄色免费网| 久九干| 天天影视色香欲综合网小说| 天天弄欧美| 另类亚洲一区二区三区| 爱欲AV| 日韩熟女乱伦中出| 欧美影音在线| 亚洲天堂无码| 极品少妇久久久| 尹人大香蕉视频在线| 美女啊啊啊啊啊| 国产欧美第五页| 另类图片综合| 青青草日本中文字幕| 岛国在线免费视频| 2020中文字幕在线| 97人妻色| 在线人成亚洲视频免费观看| 国产亚洲日本| 91精品国产麻豆国产自产在| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 日本人妻中文字幕 | 久久性爱精品一区| 中文字幕在线第二页| 大香蕉久久| 色欲天天综合久久久无码网中文| 加勒比综合九九99视频在线播放| 综合久久六月久久婷婷| 性欧美999| 免费的av网| 伊人五月天激情| 东北女人高潮视频| 精品免费国产二区三区 | 国产又长又大又粗的视频| 超碰免费人人| 中文人妻av高清一区| 九九九九九九九| 国产欧美日韩在线观看麻豆传媒公司| 日B操| 黄站在线免费观看| 男人天堂站| 国产精品蜜乳AV| 97在线观看| 91国产伊人大香蕉| 蜜伊人色综合97| 欧美一级专区免费大片| 国产suv精品一区二区四区999| 草草影院最新网址| 97鸡把在线视频| 欧美日韩黄色片一区二区三区四区人与兽做爱| 人人妻人人爽 97人人看碰人免费公开视频| 污污污8888| 激情五月丁香五月| 精品国产91av一区二区三区| 欧美亚洲丝袜人妻制服中文99| 久久超碰97中文字幕| 国产精品久久久鸭无码的功能| 中文字幕一二三| 99国产精品自在自在| 欧美性猛交美女自慰91| 欧美日韩岛国大片在线观看| 性饥渴少妇av无码毛片| 亚洲无码日韩电影| 加勒比综合a∨| 第二页中文字幕| 大香蕉520| 加勒比在线视频一区二区三区| 成人精品无码| 精品999999| 青草伊人网| 色眯眯av| 超碰午夜| 日韩操呦呦影院在线观看| 91在线美女| 五月婷婷综合网| 亚洲精品国产精品乱码不99| 一牛影视成人片免费| 国产精品com| 欧美精品庄| 欧美日韩小说| 极品出轨视频网站| 免费精品AB| 9ⅰ久久久天天| 久久超碰av在线| 欧洲精品人妻| 亚洲成人色情五月天丁香花| 精品一久久久| 欧洲亚洲天堂精品| 躁躁日曰躁2020| 加勒比AV天堂| 日本久久综合| 欧美久久人妻少妇一区二区| 91丝袜在线视频| 91/欧美| 狠狠图片青青草| 色婷婷婷五月天激情四射| 好爽,再快点啊哈嗯嗯嗯嗯| 91女网站| 精品176精品2| 青青草色插素人| 97在线无精品| 日本三级韩国三级美三级91| 加勒比人妻综合| 加勒比五月天| 九九九九九精品十六| 97se综合| 成人性交免费视屏| 乱性AV| 99久久久无码精品国产人| 亚洲国产精品有声| 免费在线观看AV无码网站| 超碰成人免费| 性欧美体内射精| 欧美一级专区免费大片 | 国产粉嫩出水在线播放| 性爱综合网| 人人操天天爽| 中出人妻中文字幕91在线| 97色香蕉| 国产精品久久久久久照片| 久久一级无码精品毛片6| 日韩人妻少妇 一区二区三区| 欧美少妇大量自拍视频在线观看| 天天日天天操VV| 少妇精品| 成人精品一区二区91毛片不卡| 在线观看国产黄色| 4141514逼喷水三级片| 美熟女逼导航AV操逼| 好吊色综合| 精品久久久高清无码| 久久婷婷亚洲| 亚州色国| 麻豆久久一区二区三区| 亚洲图片欧洲图片aⅴ| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 成人av在线播放| 欧美黄片视频在线观看免费| 天天综合网91入口| 校园激情狠狠四射| 人妻一区视频| 打av高清| 色逼综合| 啊v视频在线观看| 人妻熟女一区二区三区在线| 色淫网站优优视频| 欧美日韩国产高清在线一二三区 | 密臀成人视频久久久| 色在线综合| 亚洲人妻一区二区三区| 久草成人影片| 黄色AAAAAAAAAAA大片| 国产久久久9999| 中文字幕人妻丝袜乱一区三区| 无码国产Av| 超碰性爱97| 欧美 亚洲 在线| JULIA一区二区三区在线播放| 亚州春色| 亚洲激情综合另类男同| 99国产天美| 国产精品久久久久久久久久久久| 亚洲AV无码国产成人| 婷婷五月天无码 | 中文字幕制服欧美久久一区| 人妻少妇精品| 人妻久久久久久久久久久久久久久| 欧美骚少妇| 国产啊v在线免费播放| 亚州色站 日韩电影| 精品人妻av区天天看片| 日韩人妻精品久久久久| 97色综合中文网| 九九Av| 蜜臀网 一区| 深夜操逼网| 97亚洲欧美| 国产超碰国产97| 91亚洲网| 乱理日韩中文| 国产精品女生av| 久久熟女久| 精品一啪| 麻豆熟妇乱妇熟色A片在线看| 91小视频| 精品免费囯产一区二区三区| 99热精品在线观看| 91色宗合| 中美日韩毛片| 中国国产精品一区视频| 91美女視頻| 亚洲各类熟们中文字幕| 精品人妻久久久| 国产后入精品| 欧美一区二区三区互相| 九九九九九九九九九五码| 日本女优在线视频福利| 97操综合| 亚洲精品819| 日本一区二区三区午夜观看| 精品久久艹| 丁香九月激情| 欧美不卡在线一区二区| 青草视频人妻在线观看| 激情五月天婷婷| 大JI巴好深好爽又大又粗视频| 绯色AV粉色AV蜜臀AV| 精品久久久高清无码| 啊啊啊男女| 国产伊人自拍| 乱伦Av网| 久久一区二区三区四区五区| 97色妞| 久久婷婷视频| 欧美福利视频啊啊啊啊| 久久人妻少妇| 久久最新免费视频23| 草草影院日本第一页| 久区视频| 欧美精品久久| 天天综合色电影| 国产AV激情无码久久无码 | 男女啪啪啪18禁网站| 超碰97欧美日韩| 毛片视频白嫩| 色官网在线| 亚洲春色欧美激情自拍| 日本久久久久久久久久| 久久神马影院| 久久乐| 国产综合网站在线播放 | 伊人五月天| 国产高清无码一区三区二区| 校园春色AV天堂| 97丝袜亚洲在线播放| 麻豆天美国美国产AV| 国产精品无套内谢| 18禁止看精品中文字幕| 国产午夜精品一区二区三区牛牛| 久久爱超碰网| 夜夜夜久久| 欧美最大综合网| 99久久婷婷国产综合精品草原| 亲子敌伦对白在线播放| 国模91| 亚洲免费日韩在线一区二区| 欧美激情五月天| 蜜乳AV一区二区三区四| 一级AV性爱| 青青草久草| 97伊人超碰| 超碰精品人妻狠狠干| 欧美人妻色| 免费看污网站| 天天色综合图片| 久久99视频| 欧美v亚洲v日韩v最新在线二区| 日本熟女免费視颖| 91被操| 久久在线观看免费视频| 屁股久久久久久久久久| 欧美激情在线观看视频| 人妻夜爽夜夜爽| 清纯唯美综合亚洲| 久久久久久中文| 久久久久幕乱码| 97射欧美| 日日躁狠狠躁天天躁精品| 91美女視頻| 日韩熟女视频二区| 欧美日日人人天天| 欧美综合色综合| 日本在线15p| 91久热| 中文字幕福利视频一区二区三区在线观看| 午夜精品久久久久久久| 操老熟女AV| 久热网| 欧美中日韩XXXX| 老熟女综合| 激情文学88| 日韩熟女操逼| 欧美一级久久久久久久大片动画| 日韩精品人妻一| 亚洲乱码国产乱码精网站| 多乙久久久久久| 另类成人首页一区| 日本熟妇精品九九| 偷拍亚洲情色| 花花AV导航| 青草成人免费视频一com| 狠狠婷婷亚洲中文综合久久| 三级日本一区二区三区| 日韩人妻制服丝袜av| 日韩乱伦视频| 天天日天天插| 欧美激情 日韩精品| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 国产黄色av大片网站| 日韩性爱1级片视频| 韩国成人精品久久久免费看| 国产超碰人人操| 日韩精品99999| 美女大乳久久久久久久女人18| 国产亚洲日本| 麻豆视频一区二区| 国产最新小视频在线播放下载 | 久操精品网| 九九久久久九九| 日本不卡一区二区三区| 天天网综合| 日韩国产欧美伦理在线| 国产激情久久| 国内操逼视频二区| 91 偷| 亚洲密乳AV| www久久99| 绑缚麻绳人妻寝取完整版| 欧美色图99| 成人免费视瓶| 91色婷婷综合久久中文字幕二区| 综合久欧洲| 999色欧美中文字幕| 一级成人性爱| 天天干美少妇一区| 日韩精品电影| 久久国产AⅤ| av大香蕉| 99热99re6国产在线播放| 欧美精品成人一区二区在线观看 | 国产 日韩 欧美 人妻 熟女 中文| 久久久∴| 日本孕妇一区二区视频操逼免费看 | 骚乳在线| 欧美春色| 91精品伊人久久久大香线蕉91| 三级片大波波| 一二三区精品视频| 欧美日韩岛国大片在线观看| 人妻 欧美 中文| 欧美91精品国产自产| 亚洲一区中文字幕一区| 国产白丝在线| 天堂69亚洲精品中文字| 九九在线精品| 九九九只有精品| 久久直播国产| 激情欧美日韩女同久久| 日韩欧美日韩| 日韩有码免费视频| 韩日欧亚a级| 成人性爱全视频观看| 欧美中文狠| 亚洲AV成人无码一二三久久| 国产原创精品| av网站在线看| 久久综合乱子伦国产免费| 久久精品无码一区二区三区| 久久男女激情视频网站| 夜夜免费视频| 美国aaaaa一级黄片| 天美欧美国产| 一类无码操逼视频| 欧美日动态视频| 中文字幕奈奈美被公侵犯| 99国产精品久久久久久久成人热| 亚洲无码 国产无码| 99热超碰| 日韩免费中文字幕视频| 久久av网| 在线岛| 亚洲色悠悠久久88| 国产精品一级特黄aaa大片在线观看| 精品人妻一区二区乱码一区二区| 色在线综合| 午夜毛片高清免费不卡| 精品一区二区综合熟妇| AV在线播放网址| 日本 欧美 国产一区| 久久久精品,3| 亚洲,欧美,春色,另类| 日本一区二区中文字幕久久| 亚洲熟女综合| 久久91精品国产9丨久久分亭 | 国产啊v在线免费播放| 亚洲精品1区| 亚洲av淫乱| 精品人妻一区二区三区四区| 韩国久久97| 久久丁香久草综合网| 亚洲一二三| 国产精品久久久三级无码| 人妻娇喘 激情视频| 色香阁在线| 一区二区三区亚洲| 久草电影网| 亚洲AV无码天美传媒一区| 日韩精品在线放| 偷拍色图| 亚洲 欧美 91| 日韩精品人妻一| 欧美色图20P| 欧美色图天堂网m| 日韩国产在线观看av| 易易A毛视频| 九九热视频这里只有精品| 新婚人妻扶着粗大强行坐下| 黄页| 亚洲黄色网址| 五月综合色| 精品人体无圣光凹凸| 夜夜夜夜久久久久| 激情欧美日韩女同久久| 精品少妇一区二区三区在线视频| 国产在线综合网| 蜜桃臀AV在线| 色诱中文字幕| 丁香五月电影| 国产精品亚洲天堂网址| 少妇天堂| 东北操逼| 日本97久久久精品| 五月香婷婷| 在线一道啪| 欧美综合网| 啊啊啊 在线| 九九国产热| 成人AV素股で擦久久| 中文字幕亚洲在线一区| 激情抓乳插进去啪啪啪日韩 | 青草一区二区| 亚洲在钱| 91丝袜在线视频| 丝袜性亚洲| 中文字幕在线24| 色香色欲天天综合网天天来吧| 久久久精品中文字幕爱豆| 久久高潮妇女视频| 欧美色图自拍| 中文字幕伊人| 久久一二三四不卡 | 1024亚洲中文字幕久在线看片你懂的| 国产九九九九九九九九| 婷婷丁香九月| 五月天婷婷在线看| 亚洲欧洲激情卡通另类文学四射小说网站 | 南澳成人一级片在线播放| 狠狠2050在线观看| 少妇500双飞99| 九九九午夜| 视频二区美腿丝袜制服人妻欧美| 成人三级片无码| 强奸乱伦中文字幕AV| 国产日韩色综合| 欧美综合国产精品久久丁香| 搡老女人老熟女91| 国产精品操| 丰满少妇一区二区三区免费看| 亚州五月| 天美av在线| 91日产桃蜜| 99精品九九九九九九| 久久国产精品视频| 91狠狠狠| 久热伊人| 凹凸精品熟女在线观看| 亚洲高清自拍| 国产精品爆乳懂色蜜乳| 天天射夜夜操| 无码动漫av中文字幕| 欧美 精品国产制服第一页| 2025年A片视频精品| 高清国产无码av| 国产成人 综合亚洲 天堂| 91人精品妻入口| 在线播放一级无码视频| 天天综合网日韩7799| 欧美性巨大╳╳╳╳╳高跟鞋| 午夜福利免费福利视频| 五月丁香社区婷婷日韩欧美精品影院| 欧美激情中文字幕另类小说| 五月丁香社区婷婷日韩欧美精品影院 | 精品 码产区一区二-1080P高清在线www-B029AV | 97超碰亚洲| 东京热大香焦| 午夜噜噜噜| 97超碰护士| 嫩草美女久久| 激情综合网五月婷婷五月天| 综合色色婷婷| 男人的天堂亚洲| 躁躁日曰躁2020| 超碰在线1234区| 久久9精品| 69XX一中文字幕人妻91| 亚州免费啪啪视频| 欧美在线播放aaaa| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 中文字幕一区二区无码成人| 97在线观看| 噜噜噜在线视频| 91chinese在线| 操我啊啊啊啊啊| 国桃视频产巨乳精品一区二区在线| 久久九九精品一区二区| 人人操人人肉久久精品| 无码直播久久久| 一区二区三区欧美激情| 97精品一二区| 色香综合天天影视综合| 五十路三区在线| 欧美一级国产一级| 激情综合五| 超碰天天操你比| 天堂成人网| 国产精品美女在线一区| 少妇久久久久久久久| 亚洲免费看片| 欧美久久婷| 欧美人妻一区二区| 亚洲无码视频免费在线观看网址! J?P?NESEHD熟女熟妇伦 | 天天操夜夜操| 免费看A片毛毛片在线播| 麻豆久久久一区二区| 国产精品久久久999| 91综合网站| 日韩乱伦视频| 一区二区三区蜜桃成人撸久久东京热 | 国产精品福利资源在线尤物| 91强奸乱轮| 国产亚洲色婷婷99精品91| 欧洲精品二区| 熟女精品va中文字幕| 日韩内射视频| 一区二区三区一亚洲中文字幕、综合区灬 | 国产亚洲福利第一页丝袜| 久久精品三级影视| 伊蕉97蜜桃97狠狠综合干| 久久久久九九九| 操一区| 人妻少妇久久| 中文字幕一区二区三区高清| 婷婷三区| 不卡在线观看视频| 99九九精品| 蜜臀va69| 午夜福利视频在线一区| 熟女一区二区三区| 1000部熟女视频在线观看| www.色五月| 日韩AV噜噜噜一区二区三区四区| 人妻 丝袜美腿 中文字幕| 91精品人妻一区二区三区蜜桃臀| 夜夜爽夜夜操| 五月天婷婷色| 女人香蕉久久毛毛片精品| 成人网站 免费观看| 另类视频在线| 国产欧美日韩一区二区三区| 日韩国产十八禁| 精品国产三级av韩国在线| 91丨国产丨白浆| 精品91日日夜夜超清资源| 9 9精品一区二区三区| 日韩久射综合| 欧洲色| 精品久久久久综合无码| 五月婷在线| 91 丝袜在线播放| 夜夜爽爽爽| 超碰97色| 国产精品久久久久久夜夜夜| 青娱乐淫乱1314| 久久亚洲不卡一区二区三区| 91精品人妻偷情| 熟女自慰久久久| 另类小说综合网| 久草精品一区| wwwcaobibi| 天天干人人乐| 大鸡巴久久久| 日本高清免费一本视频在线观看| 久久超碰、| 2020中文在线一区二区三区| 91AV天美在线视频| 中文字幕av亚洲在线| 91美女精品| 国产馆极品诱惑| 日韩 国产 欧美自拍| 欧美一区二区成人一卡| 黄色小视频日本txt| 9久9久9久9久视频网站| 蜜臀av一区二区三区免费观看| 亲子敌伦对白在线播放| 91中文精品日韩欧美在线| 国产精品蜜乳AV| 97碰碰色| 国产精品 午夜福利| 日韩欧美一级特黄大片| 91美女视频直播| 97视频在线免费看| 女人被男人桶爽视频网站| 精品超碰色| 97 亚洲 日韩 欧美 在线| 天天操人人操狠狠插| 日韩有码回春沙龙第一页| 国产女人高潮视频| 国产一区自拍欧美日韩| 久久9免费视频| 美女露胸露屁股| 久操网线| 天天综合网91| 美熟女逼导航AV操逼| 日韩三级一区 | 最新欧洲欧美日本激情网站| 超碰天天操| 风骚少妇视频中文字幕| 五月激情影院| 艹精品| 超碰九区| 99re在线精品78| www老逼91| 色一色综合网| 国产高清亚洲日韩一区| 美女骚尻视频| 日韩中文字幕熟妇人妻 | 人妻一区久久二区三区色播| 国产男人又猛又粗又爽| 久久永久无码人妻视频| 天天干1区2区在线| 后入人妻一区| 五月天激情小说| 欧美日韩国产中文精品字幕自在自线| 亚州综合色| 99热这里只有精品1| 国产小炒后入式| 18一区二区三区| 九九性视频| 亚洲1区2区三区高清中文字幕| 97爱爱| 日韩91网站| 亚洲色图第一页| 天天天天天天天天综合| 女色视频社区| 亚洲色综合| 人人射人人操人人摸| ji熟女.com| 国产精品点击进入在线影院高清 | 97色婷| 亚洲色图日韩精品| 岛国在线免费视频| 亲子敌伦对白在线播放| 精品国产乱码久久久影院| 国产第二页| 国产亚洲色婷婷99精品91| 九九热免费国产视频婷婷伊人五月 | 精品人妻一区二区免费蜜桃视频| 天天爽入口| 欧美极品少妇| 亚洲涩图欧美| 欧美最大综合网| 超碰日韩美妻| 东京热熟女亚洲视频网站| 韩国三级三级BD在线| 伊人五月天青青草婷婷| 欧美.亚洲.另类.丝袜.制服.诱惑| 99热最新| 亚洲九九夜夜| www.99色| 91无码中出人妻视频| 99色综合| 伊人网av| 欧美日韩国产传媒在线精品| 综合色图,成人综合网| 夜夜操狠狠操| 野狼激情网| 中文字暮97| 一区二区久久天天干狠狠| 亚州色图第三区| 国模限制级电影| 久久色一区| 欧美 综合| 97在线无精品| 亚洲在钱| 久久久久女教师免费一区| 久久久久白虎| 亚洲欧美色图片| 欧美日韩国产一区二区小黄片大全| 一级性爱视频免费在线|