欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

基于樹莓派與OpenCV的車道保持小車:從硬件搭建到PID控制全解析

基于樹莓派與OpenCV的車道保持小車:從硬件搭建到PID控制全解析 1. 項(xiàng)目緣起從遙控車到“自動(dòng)駕駛”的探索幾年前我偶然在車庫角落里翻出一臺(tái)老舊的遙控車看著它落滿灰塵的輪胎一個(gè)念頭冒了出來能不能讓它自己跑起來不是簡單的預(yù)設(shè)路線而是像真正的汽車一樣識(shí)別道路、保持車道。這個(gè)想法就是“424 Lane Keeping Car”項(xiàng)目的起點(diǎn)。它本質(zhì)上是一個(gè)基于樹莓派和計(jì)算機(jī)視覺的自動(dòng)駕駛小車原型核心任務(wù)是讓小車在模擬的“車道”內(nèi)自主行駛不跑偏、不撞墻。聽起來像是高級玩具但背后涉及到的圖像處理、實(shí)時(shí)控制、嵌入式系統(tǒng)集成正是當(dāng)前智能駕駛領(lǐng)域最基礎(chǔ)也最核心的技術(shù)縮影。你可能在很多視頻里見過類似的項(xiàng)目但大多數(shù)要么是“玩具級”的演示要么代碼復(fù)雜得讓人望而卻步。我做這個(gè)項(xiàng)目的初衷就是想拆掉那層神秘的面紗用最通俗的語言和可復(fù)現(xiàn)的步驟講清楚一個(gè)車道保持系統(tǒng)到底是怎么從零到一搭建起來的。整個(gè)過程就像在教一個(gè)剛拿到駕照的朋友如何把車開直——你需要教會(huì)它“眼睛”攝像頭去看路“大腦”樹莓派去理解路最后“手腳”電機(jī)去執(zhí)行轉(zhuǎn)向和加速。這個(gè)項(xiàng)目非常適合對嵌入式開發(fā)、Python編程或者計(jì)算機(jī)視覺感興趣的朋友無論你是想?yún)⒓涌苿?chuàng)比賽的學(xué)生還是希望動(dòng)手實(shí)踐AIoT的開發(fā)者甚至是單純好奇自動(dòng)駕駛原理的愛好者都能從中找到樂趣和收獲。接下來我會(huì)把整個(gè)構(gòu)建過程掰開揉碎從硬件選型、環(huán)境搭建到最核心的車道線檢測算法、PID控制邏輯再到最后的調(diào)試優(yōu)化一步步帶你走完。你會(huì)發(fā)現(xiàn)實(shí)現(xiàn)一個(gè)基礎(chǔ)的“自動(dòng)駕駛”功能并沒有想象中那么遙不可及。2. 硬件清單與平臺(tái)搭建給小車一副好“身板”工欲善其事必先利其器。一個(gè)穩(wěn)定的硬件平臺(tái)是所有軟件算法得以流暢運(yùn)行的基礎(chǔ)。對于我們的車道保持小車來說硬件可以粗略分為“感知”、“決策”、“執(zhí)行”三個(gè)部分。2.1 核心“大腦”樹莓派的選擇與考量樹莓派是這個(gè)項(xiàng)目的絕對核心它負(fù)責(zé)運(yùn)行所有的圖像處理和控制算法。市面上樹莓派型號(hào)眾多如何選擇樹莓派 3B這是性價(jià)比極高的入門選擇。它擁有四核CPU和1GB內(nèi)存運(yùn)行輕量級的OpenCV和Python控制腳本完全足夠。其GPIO引腳豐富足以連接電機(jī)驅(qū)動(dòng)、攝像頭等外設(shè)。如果你的項(xiàng)目預(yù)算有限或者初次嘗試3B是穩(wěn)妥的起點(diǎn)。樹莓派 4B如果你追求更流暢的圖像處理體驗(yàn)和未來的擴(kuò)展性比如想嘗試更復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型那么4B是更好的選擇。其更強(qiáng)的CPU和GPU性能以及可選2GB、4GB或8GB的內(nèi)存能讓圖像處理幀率更高系統(tǒng)響應(yīng)更迅速。我最終選擇了4B 4GB版本為后續(xù)可能的算法升級留有余地。注意無論選擇哪款都強(qiáng)烈建議配備一個(gè)質(zhì)量可靠的散熱片和風(fēng)扇。因?yàn)閳D像處理是計(jì)算密集型任務(wù)CPU長時(shí)間高負(fù)荷運(yùn)行會(huì)產(chǎn)生大量熱量過熱會(huì)導(dǎo)致樹莓派降頻進(jìn)而引起圖像處理卡頓、控制指令延遲小車就會(huì)變得“反應(yīng)遲鈍”。2.2 “眼睛”與“手腳”關(guān)鍵外設(shè)選型攝像頭這是小車的“眼睛”其質(zhì)量直接決定了“看”得清不清。我推薦使用樹莓派官方攝像頭模塊Raspberry Pi Camera Module 2或更新版本。它通過CSI接口直接與樹莓派連接延遲極低驅(qū)動(dòng)完善是計(jì)算機(jī)視覺項(xiàng)目的首選。普通USB攝像頭雖然也能用但通常幀率和延遲不如CSI攝像頭在快速移動(dòng)的小車上可能會(huì)引入不必要的運(yùn)動(dòng)模糊。電機(jī)與驅(qū)動(dòng)小車的“手腳”。我選用了一臺(tái)常見的四輪驅(qū)動(dòng)RC車底盤它自帶兩個(gè)直流電機(jī)分別控制左右輪差速轉(zhuǎn)向和一個(gè)舵機(jī)控制前輪轉(zhuǎn)向。對于電機(jī)驅(qū)動(dòng)L298N或TB6612FNG驅(qū)動(dòng)模塊是經(jīng)典選擇。TB6612FNG效率更高、發(fā)熱更小我更喜歡用它。舵機(jī)則直接連接到樹莓派的GPIO引腳由PWM信號(hào)控制。電源這是一個(gè)容易忽視但至關(guān)重要的部分。樹莓派和電機(jī)需要分開供電絕對不要用一個(gè)電源同時(shí)給樹莓派和電機(jī)供電。電機(jī)啟動(dòng)和轉(zhuǎn)向時(shí)會(huì)產(chǎn)生巨大的電流波動(dòng)和電壓跌落這會(huì)直接導(dǎo)致樹莓派重啟或損壞。我的方案是使用一塊大容量如10000mAh的5V移動(dòng)電源給樹莓派單獨(dú)供電使用另一組7.4V的航模鋰電池通過電機(jī)驅(qū)動(dòng)板給電機(jī)和舵機(jī)供電。兩地完全隔離互不干擾。2.3 基礎(chǔ)軟件環(huán)境搭建讓樹莓派“活”起來硬件連接好后我們需要給樹莓派安裝操作系統(tǒng)和基礎(chǔ)環(huán)境。安裝系統(tǒng)使用 Raspberry Pi Imager 工具將 Raspberry Pi OS原 Raspbian的 Lite 版本無桌面環(huán)境更節(jié)省資源燒錄到 microSD 卡中。在燒錄前Imager 工具可以讓你預(yù)先配置Wi-Fi、開啟SSH、設(shè)置用戶名密碼這樣裝好系統(tǒng)插上電樹莓派就能自動(dòng)聯(lián)網(wǎng)無需連接顯示器和鍵盤。首次登錄與更新通過SSH如使用 PuTTY 或終端連接到樹莓派。第一件事就是更新系統(tǒng)sudo apt update sudo apt full-upgrade -y sudo reboot安裝Python與必要工具Raspberry Pi OS 通常自帶 Python 3。我們還需要安裝一些開發(fā)工具和Python包管理工具sudo apt install -y python3-pip python3-dev python3-venv libatlas-base-dev這里我強(qiáng)烈建議為項(xiàng)目創(chuàng)建一個(gè)獨(dú)立的 Python 虛擬環(huán)境避免包版本沖突python3 -m venv lane_env source lane_env/bin/activate看到命令行提示符前面出現(xiàn)(lane_env)就說明你已經(jīng)在這個(gè)虛擬環(huán)境里了。3. OpenCV的安裝車道線檢測的“視覺引擎”O(jiān)penCVOpen Source Computer Vision Library是我們實(shí)現(xiàn)車道線檢測的基石。在樹莓派上安裝OpenCV有一定挑戰(zhàn)因?yàn)橹苯訌?pip 安裝的預(yù)編譯版本可能不包含某些優(yōu)化或與樹莓派硬件不完全兼容。最可靠的方式是從源碼編譯。3.1 編譯安裝OpenCV耐心換取最佳性能這個(gè)過程比較耗時(shí)可能需要數(shù)小時(shí)但能確保獲得針對樹莓派ARM架構(gòu)優(yōu)化的版本。安裝編譯依賴這是一長串但必需的包。sudo apt install -y build-essential cmake pkg-config sudo apt install -y libjpeg-dev libtiff5-dev libjasper-dev libpng-dev sudo apt install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev sudo apt install -y libxvidcore-dev libx264-dev sudo apt install -y libfontconfig1-dev libcairo2-dev sudo apt install -y libgdk-pixbuf2.0-dev libpango1.0-dev sudo apt install -y libgtk2.0-dev libgtk-3-dev sudo apt install -y libatlas-base-dev gfortran sudo apt install -y libhdf5-dev libhdf5-serial-dev libhdf5-103 sudo apt install -y libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5下載OpenCV源碼我們安裝OpenCV 4.x版本。cd ~ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.3.zip wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.3.zip unzip opencv.zip unzip opencv_contrib.zip mv opencv-4.5.3 opencv mv opencv_contrib-4.5.3 opencv_contrib配置與編譯進(jìn)入解壓后的 opencv 目錄創(chuàng)建并進(jìn)入 build 目錄使用 cmake 進(jìn)行配置。關(guān)鍵是要指定我們使用 Python 3并且安裝路徑在我們當(dāng)前的虛擬環(huán)境中。cd ~/opencv mkdir build cd build cmake -D CMAKE_BUILD_TYPERELEASE \ -D CMAKE_INSTALL_PREFIX/usr/local \ -D OPENCV_EXTRA_MODULES_PATH~/opencv_contrib/modules \ -D ENABLE_NEONON \ -D ENABLE_VFPV3ON \ -D BUILD_TESTSOFF \ -D OPENCV_ENABLE_NONFREEON \ -D INSTALL_PYTHON_EXAMPLESOFF \ -D BUILD_EXAMPLESOFF \ -D PYTHON3_EXECUTABLE$(which python3) \ -D PYTHON3_INCLUDE_DIR$(python3 -c from distutils.sysconfig import get_python_inc; print(get_python_inc())) \ -D PYTHON3_PACKAGES_PATH$(python3 -c from distutils.sysconfig import get_python_lib; print(get_python_lib())) \ ..配置完成后開始編譯。使用-j4參數(shù)可以讓 make 使用4個(gè)線程并行編譯加快速度具體線程數(shù)可根據(jù)你的樹莓派型號(hào)調(diào)整4B可以用-j4。make -j4編譯過程非常漫長可以去喝杯咖啡。完成后安裝sudo make install sudo ldconfig驗(yàn)證安裝編譯安裝完成后在你的虛擬環(huán)境中啟動(dòng) Python嘗試導(dǎo)入 cv2 并查看版本。python3 -c import cv2; print(cv2.__version__)如果成功打印出版本號(hào)如4.5.3那么恭喜你最艱難的一步已經(jīng)完成了。3.2 安裝其他Python依賴車道保持項(xiàng)目還需要一些其他庫pip install numpy picamera2 gpiozeronumpyOpenCV 的親密伙伴用于高效的數(shù)組計(jì)算。picamera2這是控制樹莓派官方攝像頭的新版庫比舊的picamera更強(qiáng)大和易用。gpiozero一個(gè)非常友好的樹莓派GPIO控制庫用它來控制電機(jī)和舵機(jī)比直接操作引腳簡單得多。4. 車道線檢測算法核心教小車“看懂”路硬件和平臺(tái)就緒后我們進(jìn)入最核心的軟件部分如何從攝像頭畫面中提取出車道線并計(jì)算出小車應(yīng)該如何轉(zhuǎn)向。4.1 圖像預(yù)處理從彩色到可處理的“輪廓”攝像頭捕捉到的是彩色的BGR圖像OpenCV默認(rèn)格式。我們首先需要對其進(jìn)行一系列處理突出車道線特征過濾掉無關(guān)信息。圖像裁剪與尺寸調(diào)整我們只關(guān)心車子前方的路面區(qū)域圖像上半部分的天空、樹木等都是干擾。因此首先定義一個(gè)“感興趣區(qū)域”ROI只保留圖像下方的一部分。同時(shí)將圖像縮放到一個(gè)固定的較小尺寸如320x240可以大幅減少后續(xù)計(jì)算量提高處理速度。def preprocess_image(image): height, width image.shape[:2] # 定義ROI通常取圖像下半部分例如從高度的一半開始 roi_top int(height * 0.5) roi_bottom height roi_left 0 roi_right width roi image[roi_top:roi_bottom, roi_left:roi_right] # 調(diào)整尺寸 resized cv2.resize(roi, (320, 240)) return resized色彩空間轉(zhuǎn)換與閾值化車道線尤其是白線、黃線在特定顏色通道下對比度更高。將圖像從BGR轉(zhuǎn)換到HSV色彩空間更容易通過顏色范圍來提取車道線。def extract_lane_color(image): hsv cv2.cvtColor(image, cv2.COLOR_BGR2HSV) # 定義白色和黃色的HSV范圍這些值需要根據(jù)實(shí)際光照環(huán)境微調(diào) # 白色范圍色相(H)不重要低飽和度(S)高亮度(V) lower_white np.array([0, 0, 200]) upper_white np.array([180, 30, 255]) # 黃色范圍 lower_yellow np.array([20, 100, 100]) upper_yellow np.array([30, 255, 255]) mask_white cv2.inRange(hsv, lower_white, upper_white) mask_yellow cv2.inRange(hsv, lower_yellow, upper_yellow) # 合并白色和黃色的掩碼 color_mask cv2.bitwise_or(mask_white, mask_yellow) return color_mask這一步我們得到了一個(gè)二值圖像掩碼其中白色像素點(diǎn)代表可能是車道線的區(qū)域?;叶然c邊緣檢測除了顏色車道線通常有明顯的邊緣。我們也可以使用Canny邊緣檢測來捕捉這些特征。def extract_lane_edges(image): gray cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 高斯模糊減少噪聲 blurred cv2.GaussianBlur(gray, (5, 5), 0) # Canny邊緣檢測 edges cv2.Canny(blurred, 50, 150) return edges融合特征將顏色掩碼和邊緣檢測結(jié)果結(jié)合起來得到更魯棒的車道線特征圖。def get_combined_binary(color_mask, edges): combined_binary np.zeros_like(edges) combined_binary[(color_mask 255) | (edges 255)] 255 return combined_binary4.2 透視變換將“歪斜”的路面“擺正”攝像頭拍攝的路面圖像是透視效果遠(yuǎn)處的車道線會(huì)匯聚。為了更容易地計(jì)算車道線的位置和曲率我們需要進(jìn)行透視變換將圖像轉(zhuǎn)換為“鳥瞰圖”視角這樣車道線就近乎平行了。定義源點(diǎn)和目標(biāo)點(diǎn)首先需要在原始圖像中手動(dòng)標(biāo)定一個(gè)梯形的區(qū)域?qū)?yīng)路面并定義它變換后在一個(gè)矩形中的位置。def perspective_transform(image): height, width image.shape[:2] # 源點(diǎn) (在原始圖像中定義一個(gè)梯形區(qū)域) src np.float32([ [width * 0.15, height * 0.7], # 左下 [width * 0.85, height * 0.7], # 右下 [width * 0.95, height * 0.9], # 右上 [width * 0.05, height * 0.9] # 左上 ]) # 目標(biāo)點(diǎn) (變換后矩形的位置) dst np.float32([ [width * 0.25, 0], # 左上 [width * 0.75, 0], # 右上 [width * 0.75, height], # 右下 [width * 0.25, height] # 左下 ]) M cv2.getPerspectiveTransform(src, dst) Minv cv2.getPerspectiveTransform(dst, src) # 逆變換矩陣后續(xù)將結(jié)果畫回原圖時(shí)用 warped cv2.warpPerspective(image, M, (width, height)) return warped, M, Minv這個(gè)步驟的參數(shù)src和dst需要根據(jù)你的攝像頭安裝高度和角度進(jìn)行仔細(xì)調(diào)整。一個(gè)技巧是先將小車放在車道中央拍攝一張圖片用畫圖工具標(biāo)出路面梯形的四個(gè)角點(diǎn)記錄其坐標(biāo)。4.3 車道線定位與中心計(jì)算找到“回家的路”得到鳥瞰二值圖后我們需要定位左右車道線并計(jì)算出車道中心線進(jìn)而得到小車相對于車道中心的偏移量?;瑒?dòng)窗口搜索這是最直觀的方法。在圖像底部靠近小車的位置取一個(gè)窗口統(tǒng)計(jì)窗口內(nèi)白色像素點(diǎn)的水平分布。峰值位置就可能是車道線的起點(diǎn)。然后以此窗口為中心在上一行再開一個(gè)窗口進(jìn)行搜索如此向上迭代就像用一個(gè)個(gè)窗口“爬”上車道線。def find_lane_pixels(binary_warped): # 取圖像下半部分做直方圖找到左右車道線的基點(diǎn) histogram np.sum(binary_warped[binary_warped.shape[0]//2:,:], axis0) midpoint np.int(histogram.shape[0]//2) leftx_base np.argmax(histogram[:midpoint]) rightx_base np.argmax(histogram[midpoint:]) midpoint # 滑動(dòng)窗口參數(shù) nwindows 9 window_height np.int(binary_warped.shape[0]//nwindows) margin 100 # 窗口左右寬度 minpix 50 # 窗口內(nèi)像素?cái)?shù)閾值少于這個(gè)數(shù)則重新定位窗口 # 識(shí)別所有非零像素的x和y位置 nonzero binary_warped.nonzero() nonzeroy np.array(nonzero[0]) nonzerox np.array(nonzero[1]) leftx_current leftx_base rightx_current rightx_base left_lane_inds [] right_lane_inds [] for window in range(nwindows): # 識(shí)別窗口邊界 win_y_low binary_warped.shape[0] - (window1)*window_height win_y_high binary_warped.shape[0] - window*window_height win_xleft_low leftx_current - margin win_xleft_high leftx_current margin win_xright_low rightx_current - margin win_xright_high rightx_current margin # 識(shí)別窗口內(nèi)的非零像素 good_left_inds ((nonzeroy win_y_low) (nonzeroy win_y_high) (nonzerox win_xleft_low) (nonzerox win_xleft_high)).nonzero()[0] good_right_inds ((nonzeroy win_y_low) (nonzeroy win_y_high) (nonzerox win_xright_low) (nonzerox win_xright_high)).nonzero()[0] left_lane_inds.append(good_left_inds) right_lane_inds.append(good_right_inds) # 如果找到的像素點(diǎn)足夠多則更新下一個(gè)窗口的中心位置 if len(good_left_inds) minpix: leftx_current np.int(np.mean(nonzerox[good_left_inds])) if len(good_right_inds) minpix: rightx_current np.int(np.mean(nonzerox[good_right_inds])) # 合并索引數(shù)組 left_lane_inds np.concatenate(left_lane_inds) right_lane_inds np.concatenate(right_lane_inds) # 提取左右車道線像素位置 leftx nonzerox[left_lane_inds] lefty nonzeroy[left_lane_inds] rightx nonzerox[right_lane_inds] righty nonzeroy[right_lane_inds] return leftx, lefty, rightx, righty擬合曲線與計(jì)算中心找到左右車道線的像素點(diǎn)后我們用二次多項(xiàng)式來擬合它們得到兩條曲線。車道中心線就是左右曲線中間的那條線。小車當(dāng)前的橫向偏移量就是圖像中心點(diǎn)與車道中心線在圖像底部位置的差值以像素為單位。def fit_polynomial_and_calc_offset(binary_warped, leftx, lefty, rightx, righty): # 用二次多項(xiàng)式擬合左右車道線 left_fit np.polyfit(lefty, leftx, 2) right_fit np.polyfit(righty, rightx, 2) # 生成y值從圖像底部到頂部 ploty np.linspace(0, binary_warped.shape[0]-1, binary_warped.shape[0]) # 計(jì)算擬合的x值 left_fitx left_fit[0]*ploty**2 left_fit[1]*ploty left_fit[2] right_fitx right_fit[0]*ploty**2 right_fit[1]*ploty right_fit[2] # 計(jì)算車道中心線在底部的x坐標(biāo) y_eval binary_warped.shape[0] - 1 left_x_eval left_fit[0]*y_eval**2 left_fit[1]*y_eval left_fit[2] right_x_eval right_fit[0]*y_eval**2 right_fit[1]*y_eval right_fit[2] lane_center_x (left_x_eval right_x_eval) / 2 # 計(jì)算偏移量圖像中心與車道中心的差值 image_center_x binary_warped.shape[1] / 2 offset_pixels lane_center_x - image_center_x # 將像素偏移量轉(zhuǎn)換為實(shí)際距離米需要知道攝像頭的標(biāo)定參數(shù)或進(jìn)行估算 # 這里假設(shè)一個(gè)轉(zhuǎn)換系數(shù)例如xm_per_pix 3.7/700 (美國車道寬約3.7米在圖像中占700像素) xm_per_pix 3.7 / 700 offset_meters offset_pixels * xm_per_pix return left_fit, right_fit, ploty, left_fitx, right_fitx, offset_meters這個(gè)偏移量offset_meters就是后續(xù)控制小車轉(zhuǎn)向的核心輸入。正數(shù)表示小車偏左需要向右轉(zhuǎn)負(fù)數(shù)表示偏右需要向左轉(zhuǎn)。5. 控制策略PID控制器——小車的“駕駛本能”知道了偏移量如何轉(zhuǎn)換成舵機(jī)的轉(zhuǎn)向角度呢這就需要引入控制理論中經(jīng)典的比例-積分-微分控制器即PID控制器。你可以把它想象成一個(gè)經(jīng)驗(yàn)豐富的老司機(jī)他看到車偏左了比例P不僅會(huì)立刻向右打方向還會(huì)根據(jù)偏離的速度微分D和過去一段時(shí)間累積的偏差積分I來調(diào)整打方向的幅度和速度讓回正過程既快速又平穩(wěn)不會(huì)過度擺動(dòng)。5.1 PID控制器原理與參數(shù)整定PID控制器的輸出公式為輸出 Kp * 誤差 Ki * 積分(誤差) Kd * 微分(誤差)在我們的場景中誤差就是計(jì)算出的橫向偏移量offset_meters。輸出是舵機(jī)的PWM占空比或角度值。Kp (比例系數(shù))決定了對當(dāng)前誤差的反應(yīng)強(qiáng)度。Kp越大糾正得越快但過大容易引起振蕩小車在車道內(nèi)左右畫龍。Ki (積分系數(shù))用來消除靜態(tài)誤差。如果小車因?yàn)槁访鎯A斜等原因存在一個(gè)固定的偏向力積分項(xiàng)可以累積這個(gè)誤差最終輸出一個(gè)固定的糾正量來抵消它。但Ki過大會(huì)導(dǎo)致系統(tǒng)反應(yīng)遲鈍或超調(diào)。Kd (微分系數(shù))預(yù)測未來的誤差趨勢。如果誤差正在快速減小車正在快速回正微分項(xiàng)會(huì)減小控制輸出防止“矯枉過正”起到阻尼作用讓系統(tǒng)更穩(wěn)定。參數(shù)整定“三步法”先調(diào)Kp將Ki和Kd設(shè)為0。逐漸增大Kp直到小車能對偏移做出明顯反應(yīng)開始回正。此時(shí)通常會(huì)觀察到小車在中心線附近來回振蕩。再調(diào)Kd加入Kd從較小的值開始增加。Kd的作用是抑制振蕩。你會(huì)發(fā)現(xiàn)隨著Kd增加小車的擺動(dòng)幅度會(huì)減小回正過程變得更平滑。找到一個(gè)能有效抑制振蕩但又不過度阻尼的值。最后調(diào)Ki如果小車始終無法精確停在中心線上存在穩(wěn)態(tài)誤差再引入Ki。從非常小的值開始觀察穩(wěn)態(tài)誤差是否被消除。Ki通常需要很小否則容易引入新的不穩(wěn)定。這是一個(gè)需要耐心反復(fù)試驗(yàn)的過程。我的初始參數(shù)僅供參考你的小車和賽道可能完全不同大約是Kp10.0, Ki0.01, Kd0.5。5.2 Python實(shí)現(xiàn)簡單的PID控制器我們可以用Python實(shí)現(xiàn)一個(gè)離散化的PID控制器類class PIDController: def __init__(self, Kp, Ki, Kd): self.Kp Kp self.Ki Ki self.Kd Kd self.previous_error 0 self.integral 0 self.dt 0.1 # 假設(shè)控制周期是0.1秒需要根據(jù)實(shí)際循環(huán)頻率調(diào)整 def compute(self, error): # 比例項(xiàng) proportional self.Kp * error # 積分項(xiàng) self.integral error * self.dt integral self.Ki * self.integral # 微分項(xiàng) derivative self.Kd * (error - self.previous_error) / self.dt self.previous_error error # 總輸出 output proportional integral derivative return output在主循環(huán)中我們每處理完一幀圖像計(jì)算出偏移量error就調(diào)用pid.compute(error)得到一個(gè)控制量steering_output。然后根據(jù)這個(gè)輸出值映射到舵機(jī)的角度上例如輸出范圍是-1到1對應(yīng)舵機(jī)左滿舵到右滿舵。6. 系統(tǒng)集成與主循環(huán)讓所有部分協(xié)同工作現(xiàn)在我們需要把圖像采集、處理、控制和執(zhí)行串聯(lián)起來形成一個(gè)完整的實(shí)時(shí)閉環(huán)系統(tǒng)。6.1 硬件控制與初始化使用gpiozero庫可以非常方便地控制舵機(jī)和電機(jī)。from gpiozero import Servo, Robot from gpiozero.pins.pigpio import PiGPIOFactory # 使用pigpio后端以獲得更穩(wěn)定的PWM # 使用pigpio工廠需要先運(yùn)行 sudo pigpiod 命令啟動(dòng)守護(hù)進(jìn)程 factory PiGPIOFactory() # 初始化舵機(jī)假設(shè)接在GPIO17引腳。min_pulse_width和max_pulse_width可能需要根據(jù)你的舵機(jī)調(diào)整 steering_servo Servo(17, pin_factoryfactory, min_pulse_width0.5/1000, max_pulse_width2.5/1000) # 初始化電機(jī)驅(qū)動(dòng)假設(shè)左右電機(jī)分別接在(27,22)和(23,24)引腳 # Robot類默認(rèn)使用L298N的接線方式具體請參考gpiozero文檔 car Robot(left(27, 22), right(23, 24), pin_factoryfactory) # 設(shè)置一個(gè)基礎(chǔ)速度 base_speed 0.5 # 范圍通常在-1全速后退到1全速前進(jìn)之間6.2 主程序循環(huán)架構(gòu)主循環(huán)的架構(gòu)決定了系統(tǒng)的實(shí)時(shí)性和穩(wěn)定性。一個(gè)典型的設(shè)計(jì)如下import cv2 from picamera2 import Picamera2 import time # 初始化PID控制器和硬件 pid PIDController(Kp10.0, Ki0.01, Kd0.5) # ... 初始化舵機(jī)和電機(jī) ... # 初始化攝像頭 picam2 Picamera2() # 配置預(yù)覽格式和尺寸 preview_config picam2.create_preview_configuration(main{size: (640, 480)}) picam2.configure(preview_config) picam2.start() # 主循環(huán) try: while True: start_time time.time() # 1. 捕獲圖像 image picam2.capture_array() # OpenCV使用BGR格式Picamera2默認(rèn)可能是RGB需要轉(zhuǎn)換 if image.shape[2] 3: # 如果是RGB image cv2.cvtColor(image, cv2.COLOR_RGB2BGR) # 2. 圖像預(yù)處理 processed_img preprocess_image(image) color_mask extract_lane_color(processed_img) edges extract_lane_edges(processed_img) combined_binary get_combined_binary(color_mask, edges) # 3. 透視變換 binary_warped, M, Minv perspective_transform(combined_binary) # 4. 檢測車道線并計(jì)算偏移 leftx, lefty, rightx, righty find_lane_pixels(binary_warped) if len(leftx) 100 and len(rightx) 100: # 確保檢測到足夠的點(diǎn) left_fit, right_fit, ploty, left_fitx, right_fitx, offset fit_polynomial_and_calc_offset(binary_warped, leftx, lefty, rightx, righty) # 5. PID計(jì)算轉(zhuǎn)向量 steering_output pid.compute(offset) # 將輸出限制在[-1, 1]之間并映射到舵機(jī)角度 steering_output max(-1, min(1, steering_output)) steering_angle steering_output * 0.3 # 假設(shè)最大轉(zhuǎn)向角為±0.3具體值需校準(zhǔn) steering_servo.value steering_angle # 6. 控制電機(jī)速度可以加入簡單的速度控制例如彎道減速 current_speed base_speed # 如果轉(zhuǎn)彎幅度大可以適當(dāng)減速 if abs(steering_output) 0.5: current_speed base_speed * 0.7 car.forward(current_speed) # 可選7. 可視化將檢測結(jié)果畫回原圖便于調(diào)試 # ... 可視化代碼 ... # cv2.imshow(Lane Detection, visualization) else: # 如果沒有檢測到車道線執(zhí)行安全操作例如減速或停車 print(Lane lost! Stopping.) car.stop() # 可以嘗試小幅擺動(dòng)舵機(jī)或后退來重新尋找車道 # 控制循環(huán)頻率 processing_time time.time() - start_time # 目標(biāo)幀率例如10Hz target_dt 0.1 if processing_time target_dt: time.sleep(target_dt - processing_time) # 按q退出 if cv2.waitKey(1) 0xFF ord(q): break except KeyboardInterrupt: print(Program stopped by user) finally: # 清理工作 car.stop() steering_servo.value None # 釋放舵機(jī) picam2.stop() cv2.destroyAllWindows()7. 調(diào)試、優(yōu)化與避坑指南理論是美好的現(xiàn)實(shí)是骨感的。將代碼跑起來后你一定會(huì)遇到各種各樣的問題。下面分享一些我踩過的坑和調(diào)試技巧。7.1 車道線檢測不穩(wěn)定怎么辦問題車道線時(shí)隱時(shí)現(xiàn)或者被陰影、路面紋理干擾。解決調(diào)整HSV閾值這是最常見的調(diào)試點(diǎn)。在不同光照條件下強(qiáng)光、陰天、室內(nèi)燈光拍攝車道圖片用OpenCV的cv2.createTrackbar創(chuàng)建一個(gè)滑動(dòng)條程序?qū)崟r(shí)調(diào)整HSV的上下限觀察顏色掩碼的效果找到最穩(wěn)定的范圍。融合更多特征不要只依賴顏色。結(jié)合邊緣檢測Canny和灰度閾值能更好地應(yīng)對光照變化。也可以嘗試在灰度圖上使用自適應(yīng)閾值cv2.adaptiveThreshold。濾波與形態(tài)學(xué)操作對二值圖像進(jìn)行開運(yùn)算先腐蝕后膨脹可以去除小的噪聲點(diǎn)閉運(yùn)算先膨脹后腐蝕可以連接斷開的車道線片段。kernel np.ones((5,5), np.uint8) cleaned_binary cv2.morphologyEx(combined_binary, cv2.MORPH_CLOSE, kernel)利用歷史信息如果某一幀檢測效果很差可以暫時(shí)使用上一幀的擬合結(jié)果或者對多幀的擬合參數(shù)進(jìn)行平滑濾波如移動(dòng)平均避免控制指令突變。7.2 小車控制振蕩或跑偏問題小車在車道內(nèi)“畫龍”或者始終偏向一側(cè)。解決仔細(xì)整定PID參數(shù)回到第5節(jié)耐心地、一次只調(diào)整一個(gè)參數(shù)。用手機(jī)錄制小車運(yùn)行視頻事后分析其軌跡是反應(yīng)太慢加大Kp還是阻尼不夠加大Kd還是有固定偏差引入Ki。檢查偏移量計(jì)算是否正確在可視化圖像上把計(jì)算出的車道中心線和圖像中心線畫出來確認(rèn)偏移量的正負(fù)和大小是否符合直觀感受。檢查從像素到實(shí)際米數(shù)的轉(zhuǎn)換系數(shù)是否合理。校準(zhǔn)舵機(jī)中位確保當(dāng)steering_servo.value 0時(shí)小車的輪子確實(shí)是筆直向前的??赡苄枰锢碚{(diào)整舵機(jī)臂或代碼偏移。檢查控制周期確保主循環(huán)的處理頻率相對穩(wěn)定。如果一幀處理快一幀處理慢會(huì)導(dǎo)致PID控制器的dt不穩(wěn)定引入擾動(dòng)??梢怨潭看窝h(huán)的睡眠時(shí)間。7.3 性能優(yōu)化讓小車跑得更流暢樹莓派的算力有限優(yōu)化代碼至關(guān)重要。降低圖像分辨率這是提升幀率最有效的方法。從640x480降到320x240處理速度可能提升3-4倍而對車道檢測的精度影響可能很小。優(yōu)化ROI盡可能縮小感興趣區(qū)域只處理必要的部分。簡化算法在光線條件好的簡單賽道上或許可以跳過透視變換直接在原始圖像中搜索車道線底部起點(diǎn)然后用簡單的直線擬合。這能省去大量計(jì)算。使用硬件加速確保OpenCV編譯時(shí)開啟了NEON和VFPV3優(yōu)化我們之前的CMake命令已包含。對于樹莓派4可以嘗試使用OpenCV的Tengine或OpenVINO后端進(jìn)行推理如果后續(xù)使用神經(jīng)網(wǎng)絡(luò)。代碼層面避免在循環(huán)中重復(fù)創(chuàng)建大數(shù)組使用np.zeros_like預(yù)分配內(nèi)存。將一些常量計(jì)算移到循環(huán)外。7.4 環(huán)境與光照的挑戰(zhàn)這是車道保持項(xiàng)目最大的變數(shù)。應(yīng)對光照變化考慮實(shí)現(xiàn)一個(gè)簡單的自動(dòng)白平衡或曝光調(diào)整?;蛘呤褂酶敯舻奶卣鞅热畿嚨谰€的邊緣特征它對光照變化相對不敏感。處理陰影陰影會(huì)嚴(yán)重干擾基于顏色的檢測??梢試L試在灰度域或使用歸一化的顏色空間如HSV中的V通道進(jìn)行處理。賽道設(shè)計(jì)初期測試使用高對比度的賽道如黑色電工膠帶在淺色地板上貼出車道能極大降低算法難度讓你先專注于控制邏輯的調(diào)試。這個(gè)項(xiàng)目從一堆零件到一輛能自主循跡的小車整個(gè)過程充滿了挑戰(zhàn)和樂趣。每一次調(diào)試成功看到小車穩(wěn)穩(wěn)地行駛在車道中央那種成就感是無可替代的。它不僅僅是一個(gè)玩具更是一個(gè)理解感知、決策、控制閉環(huán)的絕佳實(shí)踐平臺(tái)。你可以在此基礎(chǔ)上繼續(xù)擴(kuò)展比如加入交通標(biāo)志識(shí)別、動(dòng)態(tài)避障、多車協(xié)同等功能。希望這份超詳細(xì)的指南能幫你少走彎路順利啟動(dòng)你的“424號(hào)”自動(dòng)駕駛之旅。記住最關(guān)鍵的一步永遠(yuǎn)是動(dòng)手去做。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
狠狠干2007| 婷婷五月婷婷| 9.1综合网| 337p大胆噜噜噜噜噜91Av| http://www.lingjunshare.com/| 超碰在线人人| 人妻Av在线| www色婷婷| 久久婷婷五月天蜜桃| 无码一区二区三区四区五区| AV成人在线播放| 成 人片 黄 色 大 片| 婷婷射图| 播四月婷婷六月丁香| 黄色激情网站在线观看| 国色天香伊人狠狠色| 狠狠爱成人综合网| 婷婷的99视频网站| 色丁香婷婷| 亚洲超级碰| 亚洲AV综合在线观看| www久| 丁香六月婷婷综合| 成人免费高清在线播放| 天天爽天天爽夜夜爽| 国产午夜精品一区二区三区四区| 精品网站:999WWW| 欧美在线视频99| 欧美性生交XXXXX无码小说| 中文字幕按摩做爰| 伊人婷婷大香蕉| 天天干天天射色综合| 青青草深爱激情网| 久热这里只有精品在线观看 | 操逼视频网址| 欧美色综合天天久久综合精品| 欧美色色色色色| 九九激情网| 99福利导航| 99精品手机在线视频| 天天色情站| 丁香啪啪| 大香蕉网站,大香蕉综合| 五月综合无码| 婷婷五月草| 亚洲 无码 中文字幕 中出| 激情五月天综合网站网站网站| 成人电影在线免费试看| 久草九九| 中文字幕人妻AV| 欧美槡BBBB槡BBB少妇| 性一交一乱一交A片久久四色| 久久精品9| 91九色中文字幕女在线观看| 最新色色五月天| 色婷婷激情| 亚洲午夜一区二区| 国产9色在线/日韩| 99亚洲天堂| 99re久久| 五月激情婷婷播播网| 亚洲 精品 综合 精品| 日本不卡中文字幕| 六月丁香av| 99热色婷婷| wwww.色婷婷| 婷婷五月综合网激情| 青青草大香| JAPANRCEP老熟妇乱子伦视频| 99热精品无码| 婷婷深爱五月| 中国丰满熟女A片免费观| 国产成人精品一区二三区熟女在线 | 亚洲热久久| 六月久久狠狠| 蜘蛛女侠2003满天星免费观看| 99免费在线| 日日夜夜小色哥| 亚州日本欧州韩美高青高潮一| 久久99久久99精品免观看粉| 中文字幕黄色片| 99九九玖玖| 九月色婷婷综合| 日本天堂免费99| 亚洲天堂大香蕉| 97精品在线| 99热老网站| 成人av中文字幕| 另类激情综合| www.激情五月天.com| 婷五月丁香俺| 99re热精品在线视频| 丁香五月天网站| 91狠狠色丁香婷婷综合久久| 99久久国产成人精品| 噜噜噜噜噜日本视频| 五月在线婷色| WWW.开心五月天.COM| 激情www.98com| 丁香五月激情鲁| 99久久综合| 五月天婷婷乱论小说| WWW.婷婷| 91se在线视频| 丁香五月婷婷基地| 爆乳熟妇一区二区三区四区| 超碰免费人人肏| 久久久婷婷色五月资源网| 潮汕成人AV片在线| 啪啪99| 九月婷婷综合| www 五月天 com| 开心五月激情婷婷| 97人妻碰碰碰久久香蕉| 欧美日韩成人在线| 啪啪91| 乱精品一区字幕二区| www.9操| 色五月五月婷婷| 120分钟婬片免费看| www.天天干| 五月日韩中文字幕| 日韩高清久久| 久久亚洲A| 天天干天天操天天干天天操天天干天天操| 夜夜操天天爽| 性欧美日本| 狠狠色成人影片| 无人区码一码二码三码医生系列| 99视频日韩| 秋霞日本免费毛片A片| 久久精品91视频| 五月综合亚洲色| 天天撸夜夜爽| 夜夜爱伊人| 99只有精品| WWW嗯嗯啊啊啊啊| 99日在线观看视频| 丁香婷婷黄网站| 激情涩涩网| 五月婷AV| 99久久婷| 欧州婷婷五月天综合| 日本黄色精品| 九九视频这里是精品五月| 99免费视频在线观看爱| 这里只有精品视频| 国产欧洲欧洲精品久久| 色婷婷在线电影| 国内久久亭亭| 99热精品网| 这里只有精品在线视频精品| 五月天六月婷婷电影| 久久久99免费视频| 99精品国产乱码久久久人妻| 久久99大全| 开心六月丁香五月婷婷| 五月婷婷激情久久| 91性高潮久久久久久久久| 久久婷婷免费| 91精品人妻少妇无码影院| 婷婷五月丁香亚洲| 国产午夜伦鲁鲁| 色欧美日| 天天摸天天舔天天爽| 婷婷丁香激情综合色情| 色玖玖综合网| 色狠狠色综合久久久绯色aⅴ影视| 1区2区视频| 丁香婷婷精品视频| 五月丁香在线观看| 久热免费视频| AV成人在线播放| 五月开心六月婷婷在线播放网站| 深爱激清网| 色婷婷香蕉| 日本WwW色偷偷丁香花久久久京东热| 久久五月天色婷婷| 天天成人综合视频| 色5月婷婷色| 丰满少妇猛烈A片免费看观看| 色婷婷瘦婷婷日韩| 色婷婷色五月色丁香| 狠狠操天天干| 99∨VTV| 婷婷之玖玖| 激情文学久久| 婷婷六月天激情| 9+1视频网址| 久久婷婷青青| 久久婷婷视频| 婷婷五月天成人网站| 99啪啪| 五月激情丁香啪啪| 九玖视频这里只有精品| 天天干夜夜谢| 亚洲国产精品VA在线看黑人| 人妻综合网| 婷婷射图五月天| 99久久激情视频| 在线看AV| 97碰人人操| 97丁香花五月天激情小说| 亚洲天天| 国产黄色在线观看| 91超碰在线观看| 99热精品免费在线观看| 婷婷色色网| 超碰在线综合| 播五月丁香六月| 久久99热这里只频精品6学生| 激情淫乱男女| 婷婷五月天人妻| 五月丁香婷婷基地| 99啪在线| 97色色色视频| 丁香五月天婷婷激情| 麻豆精品| 五月色欧洲| 91丨九色丨白浆秘| 激情碰碰碰| 狠狠做五月婷婷| 天天色图| www.com色播五月天| 五月激情婷婷六月丁香| 亚洲AV网址| 另类在线| 五月天色色色色色| 久久婷婷色五月| 色色五月婷| 色综合久久88色综合天天看| 26uuu最新地址| 成熟妇人A片免费看网站 | 天天综合激情| 日本九九九九| 91久久综合亚洲噜噜成人在线 | 久久作爱| 亚洲一级AV在线免费播放| 深爱激情网噜噜色| 久久综合五月天| 色女人久久| 欧美性生交XXXXX无码小说| 任你日视频| 欧美色性色好| 99热在线中文字幕| 伊人婷婷色激情丁香| www.久久| www.狠狠操.co m| 大香蕉久久久| 激情久久久| 啪啪婷婷五月天激情| 韩国97天堂| 日本不卡高字幕在线2019| 99热这里只有精品55| 91狠狠色色丁香婷婷综合久久| 丁香五月婷婷在线视频| 五月天综合婷婷| 襙比视频| 色五月丁香伊人五月| 五月停停丁香| 亚洲热视频在线| 久久久精品色| A1片久久久| 狠狠干狠狠干| 91一起操| www.狠狠| 九九热这里只有精品9| 国外亚洲成AV人片在线观看| 久久性爱99国产| 中字幕视频在线永久在线观看免费| 欧美交换配乱吟粗大25P| 成人一级片| 成年人丁香五月| 精品自拍97| 色婷婷在线视频综合| 狠狠操狠狠| 99ri在线观看视频| 激情综合无码| 热久久91| 热九九精品| 性生活视频98791| 九九亚洲| 日本大逼91| 激情六月婷| 婷婷在线五月综合| 天天射综合网夜夜操| 精品香蕉99久久久久网站| 就99这里只有精品| 夜夜撸日日操| 激情九九六月激情免费视频| 五月丁香六月婷婷激情网| 免费超碰在线| 五月丁香六月综合激情| 97色图片中文字幕视频在线观看| 五月婷婷开心网| 丁香六月婷婷社区| 99re6久热只有精品6在线直播| 久热在线观看视频9| 深爱开心激情网| 最近中文字幕大全免费版在线| 天天综合激情| 午夜天堂一区人妻| 丁香五月婷婷88在线| 久久精品99国产精品日本| 激情99。| 少妇性BBB搡BBB爽爽爽视頻| 99色热视频| 精品人妻午夜一区二区三区四区| 丁香五月在线观看综合| 天天干天天日蜜臀av| 久久66精品| 婷婷综合婷婷| 久久亚洲A| 中文字幕在线免费观看视频| 综合99在线| 婷婷激情四射| 天天做天天要天天爽| 夜夜嗨一区二区三区直播内容 | 人妻精品一区二区三区| 99色日本| 欧洲不卡视频| www.激情五月天。com| 在线另类视频| 九九人人操| 青草五月天| 色婷婷婷av| 五月天激情.com| 激情五月综合| 欧美成人精品一区二区| 久9热插入| 天天插天天插天天插天天插 | 欧洲色色| 久久久8| 俺去也综合| 欧美色色色| 超碰精品在线| 79色色免费| 丁香六月综合| 好吊丝aV| 亚洲va久久久噜噜噜久久天堂| 久热视频这里只有精品| 超碰五月婷婷五月天| 婷婷五月天播播| www.97干视频| 一级性爱视频| 激情网第九色| 情欲禁地| 久久五月天激情| 超碰猛烈的性猛交| 色色A| 天天草天天爱| 5Www色5夜| 天天爽免费视频| 五月丁香婷婷激情影院欧美| 色婷婷狠狠| 安息电影在线观看完整版| 亚洲综合网在线| 99性爱视频网站| 99综合熟女| 99久在线精品99re8热| 婷婷丁香五月天色播网站| 1024操逼| 亚洲男女激情| 婷婷五月天丁香久久| 婷婷五月天视频| www99精品| 99碰碰| 五月天激情网页| 97婷婷丁香五月天激情图片| 亚洲色啪| 九九亚洲小视频| 91九色无码内射| 五月丁香婷中文| 99高级会所久久| 97婷婷五月丁香| 久久婷网| 免费精品66| 婷婷狠狠青青| 综合久色五月| 熟女人妻一区二区三区免费看| 狠狠香婷婷五月| 五月天精品| 亚洲综合网区| 91热久88| 欧美六月| 成人网丁香五月| 五月天丁香色色| 天天狠狠色综合| 久久五月天免费网站| 色五月婷婷在线观看| 99超碰在线观看| 狠狠综合网| 色情五月天小说| www.色婷婷| 日本在线噜噜| 大香蕉五月婷婷| 久久精品99| 天天碰天天插天天操| 色开心五月婷婷丁香HD| 亚洲天堂久久| 色大综合| 色播婷婷五月天| 99精品久久| 婷婷丁香五月天中文字幕| 五月丁香视频色色| 午夜一区| 六月婷婷五月天| 久婷五月| 超碰人人操人人9| 日本天天综合| 伊人五月综合网| 99综合| 26uuu精品国产| 九九亚洲综合| 五月天天丁香婷婷| 超碰人妻在线| 色五月在线视频观看| 色婷久久| 色色色色色日韩午夜激情 | 国产精品国产| 色婷婷五月综合在线| 97色在线观看视频| 懂色av粉嫩av蜜臀av| 97性视频| 丁香五月婷婷天| 天天射美女| 色六月 婷婷| www九九| 五月婷婷丁香色吧网| www九九免费视频| 激情婷婷久久| 伊人久久五月天| 婷婷色五月丁香六月欧美啪| 国内精品免费一区二区2009| www.五月天婷婷| 久久ab| 国产看真人毛片爱做A片| 九九热在线精品视频| 99热国产国产| 伊人网碰碰| 婷婷五月天小说| 亚洲婷婷五月天| www,色中色| 超碰chaompinm| 亚洲成人丁香花| 激情五月丁香婷婷| 五月丁香在线| 开心五月婷| 狠狠干综合| 久超免费视频| 国产精品久久久久久亚洲毛片| 99久久玖玖| 亚洲天天免费| 91色婷婷综合久久中文字幕二区| 丁香五月天社区婷婷| 91久久久久久久久18| 能看的AV| 天天免费日日夜夜夜夜| 国产激情综合五月| 91视频一起草| 99资源人人| 综合色色婷婷| 欧美性爱特黄一级aaaassss| 五月天色图| 婷婷五月天丁香久久| 国产又黄又爽又色的免费| 五月激情网站| 五月激情综合美女久久| 颜射 精品性爱av| 综合久久婷婷| 欧美天天搞| 色插人人| 99re6在线视频精品免费| 九九这里是免费的视频5| 色性五月天| 玖玖伦理电影| 久久综合中文| 激情文学 综合 九月| 成人国产网站在线免费看| 99精品视频在线观看| 99在线免费视频| 最新高清无码专区| 碰碰碰97国产| 99热99| 亚洲AV第二区国产精品| 大香蕉九九| 色色是色N一| 亚洲激情高潮| 天天狠狠干| 五月丁香成人网| 97干网站| 国产一级片色色| 伊人天堂婷婷| 97操碰视频| 天天日,天天射,天天插| 韩国久久少妇视屏| 99热这里| 99噜噜噜在线播放| 超碰中文字幕在线| 五月丁香啪啪网| 九九视频这里是精品五月| 亚洲成人电影aaaa| 五月激情小说| 黑人糟蹋人妻HD中文字幕| 91麻豆国产三级精品福利在线观看 | 日韩高清成人| 婷婷五月开心中文字幕色| 婷婷综合六月| se99视频| av电影在线播放| 97在线视频人妻九色| 色久婷婷网| 丁香五月婷婷激情蜜桃| 久久视频这里99| www.五月天色色.com| 婷婷五月激情五月丁香五月| 五月丁香婷婷激情爱爱| 天堂久久久久天堂网| 欧类av怡春院| 日本欧美成人片AAAA| 超碰九色| 成人片在线播放| 丁香色婷婷| AV在线资源| 国产免费一区二区三州老师F1F1| 五月天社区婷婷丁香社区| 色色日本| 五月婷婷之综合激情| av中文网站| 婷婷五月天亚洲图片| 久久996re热这里只有精品无码| 综合亚洲五月天| 99视频这里只有免费精品| 91久久久久久| 久99| 天天色月| 久久色在线视频| 五月丁香久久激情综合| 色九九九综合| 热久91| 男人的天堂av俄罗斯热| 丁香五月婷婷影院| 国产亚洲av片| 9久久久| 99热 在线播放| 婷婷色情五月| 99ri在线播放| 久久婷婷色综合| 97人妻碰碰碰久久香蕉| 91超碰在线播放| 99欧州偷拍视频| 色一情一乱一乱一区91| 99色婷婷| 色之综合网| 色色影院aaaav| 欧美激情丁香五月天久久婷婷一区| 99re这里只有精品国产99| 思思久ren热| 亚洲avjiujiur91| 色五月丁香一区在线| 日日干日日s| 色综合性视频| 这里只有精彩亚洲视频推荐| 婷婷五月激情天| 婷婷五月天无码| 激情第四色| 九九婷婷综合| 日韩九九| 五月综合视频| 成人无码免费一区二区中文| 色婷婷五月天偷拍| 9久热| 国产熟妇乱子伦hd| 性爱111111| 久久五月天激情婷婷| 69人妻人人澡人人爽久久| 综合色影| 欧美日本VA| www.99热视频在线观看| 久久66精品| 久久视频在线| 国产激情在线| av色色国产| 性做久久久久久久免费看| 黄色片久久| 久久成人亚洲欧美电影| 99视频在线啪| 色五月天堂| 九九视频免费| 久色五月婷婷综合| 午夜不卡久久精品无码免费| 天天综合社区| 人妻AV在线观看| 亚洲无码性爱| 丁香香蕉婷婷| 我爱婷婷五月天综合88| 婷婷五月天伊人网在线观看视频| 亚洲va日| 俺去也在线官网| 五月天,激情四射,婷婷频道| 人妻aV在线| 天干夜夜操| 成人免费120分钟啪啪| 婷婷伊人欧美| 骚五月婷婷| 欧美色图45678| 五月天婷婷六月| 2025天天操| 夜夜天天天天天干天天爽| 五月激情五月婷婷五月天在线| 天天色天天日| 天天色色天天| 国产乱子轮XXX农村| 99精品综合在线| 97干在线播放| 狠狠夜夜五月丁香| 婷婷五月天干干| 婷婷内射视频在线| 操人无码| 九色激情| 久婷| 夜夜操夜夜姧| 婷婷性福五月天| wwwss在线观看| 亚洲精品无人区| 免费看片在线观看| 久久精彩免费视频精彩免费视频| 九六五月天婷婷| 色五月av| 九九在线视频| 婷婷丁香大香蕉| 婷婷五月激情图片| 丁香五月综合在线| 天天日天天舔| 九九热精品| 99久热在线精品99re6热| 日本久热| 九九婷婷五月天影视| 99视频| 99精品免费视频| 开心激情综合| 五月婷无码| 大香蕉啪啪| www.五月婷婷久久.com| 婷婷六月综合基地| 中文字幕无码人妻少妇免费视频| 色欲色香,www,com| 欧美在线视频99| 狠狠色丁香久久婷婷综合五月| 婷婷五月综合网| 大地9中文在线观看免费高清| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 99热这里只有精| 国产九月婷婷| 色五月色五天色情网| 99riAV国产精品视频| 天天综合网~91| 色色婷婷五月| 色婷婷五月天| 五月开心激情| 超碰人人色| 婷婷激情视频| 噜啊噜在线| 激情5月婷婷| 五月婷婷丁香六月在线| 人人干人人操人人摸人人做| 蜘蛛女免费观看完整版高清电影| 色综合天堂| 4399高清无码视频| 青青草原伊人网| 久久99精品久久久| 欧美亚洲成人在线| 婷婷综合一二三| 婷婷五月天你懂的| 伊人狠狠色婷婷综合丁香一区| 色吊丝99| 色久一| 婷婷激情啪啪| 久久婷婷综合国产| 国产精品操| 久久精典| 播五月婷婷开心| 五月伊人综合| 极品人妻videosss人妻| 五月婷婷福利| 亚洲va在线∨a天堂va欧美va| 九九热视| 五月婷婷丁香啪啪| 超碰人人草| 丁香五月激情啪啪| 五月天激情网图片| 97久久久久久久久久久| 偷拍99在线视频观看| 色婷婷色综合| 亚洲综合在线播放| 五月丁香久人妻中文| 久热这里这里有精品| 深爱激情九九五月天 | 99久久99九九九99九他书对| 人人操AV| 亚洲宗合激情| 超碰AV在线| 五月婷婷激情日本| 五月丁香婷在线| 深爱激情综合| 91人操人人人操人| 天天爽日日爽夜夜爽| 婷婷五月天成人网| 亚欧州精品视频| 久久久久思思热| 激情六月天| 黄色三级日本| 狠狠的日| H亚洲| 久久与婷婷| 激情五月天色网站| 99色免费| 激情久久综合网| 丁香六月婷婷久久综合| 91精品久久久久久久| 狠狠草狠狠草| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 夜夜骑操AV| 91热99| 五月婷婷九九久久| 丁香五月中文字幕久色| 亚洲乱码日产精品BD| 激情色五月天| 欧美激情丁香五月天久久婷婷一区| 天天肏视频| 亚洲AV无码影院| 亚洲夜夜操| 日本欧美成人片AAAA| 亚洲性受XXXX五月丁香| 日本啪啪网| 久久精品99久久久久久久久| 国精产品一区二区三区| 99国产精品久久久久久久久久久| 婷婷天堂综合| 任你操精品免费| 色色丁香五月天社区| 亚洲五月天婷婷综合| 俺也去色| 丁香五月天欧洲在线| 大香蕉久久久久| 色五月大| 99热免费在线| 日本在线观看aaa 99| 天天干天天操天天上| 婷婷五月在线视频| 综合亚洲色色| 九月丁香婷婷| 久操无码| 99九九99九九九视频精彩| www五月天com| 亚洲欧美一区二区三区爱爱动图| 丁香五月婷婷啪啪视频| 激情丁香五月激情婷婷| 99在线精品视频| 99视频这里只有免费精品| 99黄色性生活| 亚洲综合视频在线| 五月丁香久| 大香蕉狼人久久| 人人摸人人| 自拍视频在线观看9| 婷婷色5月激情网| 亚洲六月综合激情久久下卡| 九九久久99精品免费观看www| 爽天天天天天天天| 欧洲区自拍| 婷婷五月激情天| 曰本aaaaaa丈片| 这里只有精品9| 区欧美日韩成人| 日日操,天天操| 狠狠婷婷色| 天天久久综合| 偷拍丁香九月激情| site:ornaments52.com| 综合色五月亭亭| 99re热久久| ..真实国产乱子伦对白在线_欧| 国产Va视频| 777精品久无码人妻蜜桃| 久久性爱视频免费| 99热精品在线| 婷婷六月丁香1| 色婷婷基地 | 五月天婷婷青青| 久久9热好| 五月丁香六月婷婷玖玖| 天天久综合网永久入口18| 九九色院| 无码 色| 激情综合网址| 91要啪| 女婷久久| 五月丁香啪| 天天操天天爱天天日| 天天色视频| 看黄的网站18禁| 激情av| 亚洲激情高潮| 韩日另类| 亚洲色综久久五月| 一区二区你懂的| 五月叮香啪| 婷婷九月在线| 五月色婷婷影院| 五月丁香综合激情| www.色婷婷.com| 激情com| 人人爱人人草| 99碰网站| 色婷婷丁香五月| 做爱夜夜干天天操| 国产毛片欧美毛片久久久| 精品无码人妻一区| 婷婷影院A成人| 婷婷综合爱| 九九中文字幕九| 91人操人人人操人| 97av在线视频| 99九九久久| 天天日夜夜草进麻麻的子宫| 五月婷婷伊| 激情丁香五月天图片| 日韩淑女人妻luan伦激情精品一区二| 97性视频| 丁香六月开心| 成人免费120分钟啪啪| 色婷婷激情视频| 丁香五月 无码| 99色色| 成人午夜无码视频| 激情综合五月丁香| 天天操天天谢| 超级97碰碰| 欧美日本黄色| 婷五月天天| 久久97久久99久久综合欧美| 天天爽天天干天天| www,超碰| 91欧美| 五月丁香六月婷婷不卡免费无码| 国产女18毛片多18精品| 饮料下药迷倒漂亮女同事强干| 五月丁香啪啪综合| 五月丁香六月激情综合| 亚洲精品小视频| 丁香五月天社区婷婷| 精品99在线| 婷婷五月激情四月综合| 免费观看全黄做爰的视频| 狠狠干五月丁香综合网| 色婷婷天堂| 婷婷激情六月| 五月天婷婷色小说| 91oumei| 91欧美日韩综合| 色黑鬼导航| 91av成人| 五月天婷婷操逼视频| 99综合视频在线| www免费在线视频| 激情六月色| 淫视馆aV二区一区| 国产精产国品一二三在观看| 丁香色五月婷婷| 色婷婷888| 思思热在线视频精品| 色情综合网| 精品久久久久成人码免费动漫| 91人人爽久久涩噜噜噜| AV在线免费播放| 色婷婷小说| WWW.婷婷| 99热在线观看免费中文| 中文字幕无码AV| 丁香婷婷情色五月天| 丁香五月激情宗合网| 天天色天天操天天射| 深爱婷婷网| 97成人丁香婷婷| a性生活久久无| 9久热在线视频精品| 热久久思思热思思| 日韩美一级毛卡片| 99热.com| 天天日夜夜爽。| 五月丁香六月激情综合| 国产亚洲精品久久久久久郑州| 综合久久人妻| 超碰人妻在线| WWW.亚洲无码| 97精品在线| 五月丁综合在线观看| 草草影院爱爱| 久久怡红院| 亚洲热综合| 天天做天天爱天天摸| 九色1区视频在线| 开心五月婷婷激情| 不卡影院午夜理论片| 女操碰| 亚洲乱码日产精品BD| 色婷婷五月天在线观看| 日本本土色网第一区| av人人操| 这里只有精彩视频| 99热这里只有免费精品| 99视频内射三四| www.99色在线| 日本99久久| 欧洲免费视频色| 五月丁香另类图片| 伊人香大香蕉视频| 五月丁香综合啪啪| 99热精地址| 91操人| 性爱技巧五月| 婷婷五月丁香基地| 丁香婷婷色五月| 五月天婷婷黄色视频| 涩玖玖免费视频| 五月婷婷久久综合| 五月天久久91| 久色成人| 色色色婷| 九九XX视频| 丁香五月成人| 天天狠狠干| 六月激情婷婷色| 玖玖五月丁香| 欧美三级巜人妻互换| 97久久精品| 99九九久久| 91丁香婷婷综合久久欧美| 人妻内射视频| 精品久久久人妻| 欧美色色色色色色色色色色影视| 丁香 亚洲 久久| 97在线观视频免费观看| 爱久综合| A久网| 丁香五月婷婷亚洲色图| 十区AV| 国产AV一区二区三区日韩| 久久色婷婷| 激情五月四色| wwW天天干| 吊色AV男人的天堂| www.丁香六月婷婷久久天堂影院.con| www色婷婷| 男人的天堂五月丁香| 色五月婷婷天天干| 五月婷免费视频| 99燥99日| 99精在线| 色香欲综合| 提提热五月天婷婷| 9999热在线免费观看| 激情网 久久| 亚洲五月天婷婷| 日婷婷| 另类小说婷婷色| 五月五婷婷网| 男人天堂 久久| 色日本颜射| 欧美丁香婷婷五月| 综合网亚洲| 婷婷五月天激情视频| 色婷婷网| 久久久久久18| 色色色色欧美| 79精品视频在线观看,| 五月欧美丁香在线观看| 另类综合国产| se99高清无码| 中文字幕AV网址| 欧美,日韩成人在线| 欧美成人精品A片免费一区99| 伊人婷婷大香蕉| 这里有精品99| 久久综合首页| 神马久久五月天| 中文字幕日产A片在线看| 综合色色网| 婷婷五月天色播| 东北婷婷五月天| 99热国品免费| 91人人澡人人爽人人看| 欧美婷婷色五月网| 无遮羞AV| 天天爽天天| 成人国产综合| 丁香五月成人网| 五月丁香久久丝袜啪啪| 九九免费视频在线| 久久久18| 91视频五月丁香| 久久婷婷电影| 久久久一级AAA| 九色婷婷| 激情五月天色色| 五月天天天天天天天天天天天天天天天婷婷婷| 互月天综合| 激情综合网,婷婷| 色五月激情综合网| 中文字幕,综合,91| 丁香六月青青草| 色就色94欧美setu| 51精品国自产在线| 久热9| 亚洲五月婷婷| 超碰99久久| 亚洲操B| 五月网在线| 天天日天天做天天操| 99re在线观看视频| 婷婷丁香五月天综合AV| 涩综合网| 婷婷久久影院| 亚洲AV永久无码影院黑人| 久久婷婷五月综合网| 成人午夜天| 欧美成人精品A片免费一区99| 亚洲国产精品VA在线看黑人| 激情五月综合网最新| 在线视频激情网站| 亚洲天堂色色| 激情五月天无人视频在线| 国色天香伊人狠狠色| 五月丁花色综合网| 日本狠狠爽| www.夜夜操.con| 涩综合在线 | 精品一二三区久久AAA片| 久热这里只有精品6| 九九香蕉网| 婷婷99中文字幕| 日韩在线一级| 欧洲色色| 日本狠狠干| 五月天综合视频| 99re思思热久久| 五月丁香欧美综合| 亚洲色综合性| 天天舔天天摸天天透| 婷婷开心激情综合五月天| 极品 少妇 内射| 激情的五月| 婷婷五月天色综合翘| 99热无码精品| 久久国产性爱A V| 26UUU成人网| 亚洲国产精品五月天| 99色色热| www.99热日韩.com| 99久久99视频只有精品| 99热99ai| www.婷婷网| 婷婷激情五月天网站| 99热日韩这里只有精品| 丁香五月AV在线| 激情五月天婷婷免费观看| Se.婷婷五月天| 26uuu.| 99热在线免费观看精品| 人色五月天婷婷| 99热99热在线观看| 天天爽天天弄| 激情黄色五月天| 国产精品色一哟哟| 俺去也在线官网| 久久婷婷五月综合啪| 狠狠激情五月天| 欧美va在线| 婷婷五月六| 97色啪| 67194成I人在线观看线路1| 日韩成人无码人妻| 狠狠草狠狠草| 97人人干| 强壮的公次次弄得我高潮A片日本 | 搡BBBB搡BBB搡18| 天天揷综合网| 99丁香五月| 五月色婷丁香| 黄久久久| 久久婷丁香五月| 色人久久| 色五月婷婷狠狠撸| 婷婷五月天成人动漫| \\五月天婷婷激情| 91小黄书网址在线观看| 色婷视频| 操骚货在线| 色综合大香蕉| 热99这就是精品视频| 日韩999| 麻豆AV一区二区三区| 99色在线视频| 这里只有精品免费| 精品一二三区久久AAA片| 色婷婷丁香花五月天| 狠狠爱五月婷婷综合六月| 秋霞网在线免费基地五月婷婷丁香| 99久在线精品99re5热视频| 97视频91| 掩去也综合五月视频| 五月 丁香 欧美| 久久综合天天综合| 激情综合网五月激情| 国产婷婷综合| 久久99网站| 久久99久久99久久99人受| XX色综合| 人操91在线| 91精品又长又大又粗又爽又猛| 色域五月婷婷丁香| 97色干| 九九视频这里是精品五月| 日韩六十路91性交电影| 91wwmm导航| 无码色| 超碰人人射| 色色婷婷丁香| 综合色图婷婷| 婷婷九月在线| 亚洲综合色婷婷| 99热这里只有精品国产免费| 五月天婷婷青青草| 丁香五月欧美| 91超级碰| 精品夜夜澡人妻无码AV| 大鸡巴伊人网| 综合五月丁香六月婷婷| 亚洲永久免费| 色播丁香五月婷婷操:屄| 26UUU精品一区二区Com| 五月婷婷之婷婷| 国产欧美第五十五页| 九九九九中文字幕| 免费观看全黄做爰的视频| 色五月AV| 丁香婷婷六月激情| 77799热| 66久久视频在线| 婷婷色色综合激情| 人人干AV| 精品成人无码A片观看香草视频| 伊人狠狠综合| 操操操操操电影网| 五月天激情综合10p| 婷婷五月天激情基地| 六月色播| 操骚货在线| 亚洲色夜| 欧美激情VA永久在线播放| 99热国产免费| 99亚洲天堂| 7777国产盗摄农村女人| 日本A片一区| 色射7856五月天激情四射| 97婷婷丁香五月天激情图片| 色婷婷777狠狠| 成人在线日韩| 欧美乱码国产一级A片| 亚洲综合网 665566| 五月丁香激情五月天| 丁香五月天在线直播观看| 九九热这里只有精品一| 久久激情网| 久久只有18视频| 国产伦亲子伦亲子视频观看| 黄网在线免费| 91se在线观看| 久久这里只精品66| 色综合久久天天综合网 | 五月天激情婷婷| 在线亚洲综合| 99久久综合网| 26uuu国产色| 五月婷婷激情综合网| 9+1视频网址| 天天草女人| 久久婷婷五| 综合久| 五月天精品综合| 亚洲永久免费| 青草视频在线观看视频| 六月色婷婷综合影视| 国产片天天爽夜夜爽| 毛片毛片毛片毛片| 99热免费精品| 国产操B| 久久久大香蕉| A A色色| 噜一噜在线| 少妇2做爰HD韩国电影| 久人操| 色婷婷六月综合| 另类图片五月天| 亚洲V国产V欧美V久久久久久| 亚洲无码11| 婷婷激情区| 99久在线精品| 五月丁香久久激情综合| 免费观看全黄做爰的视频| 人妻第九页| 91丨九色丨熟女丰满| 婷婷成人小说综合| 日日爽日日| 激情AV中文| 色婷婷在线视频久| 九九九热精品| 精品九九婷婷| 色婷婷丁香AV综合| 亚州操操| 久热天堂| 99色一| 八戒青柠影视剧在线观看| 色色丁香婷婷五月天| 99精品久久| 久久婷婷五月综合色丁香| 九色综合网| WWW.天天日| 婷婷淫淫狠狠六月| 丁香五月婷婷av影院| 久久五月天综合视频网站| 99视频在线观看网址| 丰满人妻妇伦又伦精品国产| 国産精品| 精品人妻在线| 六月丁香五月婷婷| xxxx五月天色色| 五月天玖玖狠狠色色| 午夜不卡久久精品无码免费| 91avse| 亚洲色频| 亚洲传媒在线观看| 亚洲婷婷婷| 欧美 日韩 人妻 高清 中文| aa久久| 婷婷丁香五月亚洲17cao| 丁香五月婷婷影视先锋| 夜夜噜夜夜奇| 色偷偷综合| 亚洲综合激情五月久久| 91超级碰| 色综合久久天天综合网| 欧美日韩成人免费在线| 自拍视频在线观看9| 人人草人| 五月婷久草| 玖玖热视频| 97碰 在线视频观看| 丁香色综合| 丁香五月Av| 色婷婷瘦婷婷日韩| 精品99只有。| 亚洲色婷婷五月天| 色婷婷偷拍| 国产无套精品一区二区|