免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

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
返回資訊列表
日韩无码成人电影| 翔田千里aV中文字幕| 亚洲热热视频| 五月婷婷五月天在线| 人人操操| 日韩性视频| 五月永久激情| 色婷婷五月天中文字幕| 秋霞AV淫| 狠干综合| 操b视频在线观看一区二区| 操骚货在线| 噜噜网免费视频| 亚洲精品乱码久久久久久综合| 韩国19 主播内部福利vip免费播放| 亚洲成人综合在线| 九九亚洲| 天天干天天操天天拍| 深爱五月日韩| 五月丁香六月婷婷手机无线| 婷婷中文字幕版| 日韩另类| 综合色播| 伊人久久五月天| 熟妇天天综合| 91在线看片| 婷婷成人基地| 精品亚洲国产成AV人片传媒| 中字幕视频在线永久在线观看免费| 五月丁香啪啪激情| 日韩成人无码人妻| 久99久视频| 国产裸舞表演WWWW| 免费观看的婷婷五月视频在线| 99热国产这里只有| 天干天天干天天天天天| 五月天欧美 另类小说| 国产激情久久久| 丁香五婷| 在线中文字幕av| 婷婷九色| 亚洲中文字幕av| 啪啪黄页网| 婷婷性爱综合| 久Se视频在线观看| 精品婷婷| 狠狠色丁婷婷日日,伊人激情综合网| 六月婷婷激情| 丁香六月婷婷开心| 欧美亚洲婷婷五月| 九九免费视频| 91久久九久久九久久九久久九久久| 天天干天天射色综合| 丁香色播五月天| 美女婷婷六月色| 天天做天天视天天谢| 超碰免费在线| 色视五月天婷婷| 激情五月伊人婷婷| 色婷婷丁香五月综合| 99久久精品网| 婷婷五月激情图片| 五月丁香婷婷成人网| 超碰99久久| 激情五月天啪啪| 五月丁香花激情综合网| 《诡秘之主》在线观看| 五月丁香亚洲五月| 操骚货在线| 色综合五月天| 五月天偷拍| 国产69久久久欧美黑人A片| 欧美大片| 99色日本| 亚洲精品乱码久久久久99| 成人久久天天x资源站| sewuyuejiqingwang| 美国天天日天天操| 婷婷五月天综合AV| 亚洲色婷婷| 久久AV无码精品人妻系列试探| 色色五月婷婷网| 91精选国| 久久久激情| 六月婷婷视频| 天天色天天日天天舔| 日本在线视频www色| 色婷婷久久综合中文久久一本| 欧美精品999| 香蕉久久国产AV一区二区| 成人无码精品1区2区3区免费看 | 婷婷丁香五月天小说| 婷婷激情欧美| 激情久久肏屄视频| 久久综合26p| 婷色视频| 婷婷丁香第一页| 婷婷六月色播| 九九色色| 激情色情五月天| 五月婷在线影院| 激情五月天在线观看色婷婷| 五月天婷婷综合免费| 色狠狠999综合| 99在线免费视频| 国产欧美大香蕉一区| 久热中文字幕| 综合九九| 中文字幕日产A片在线看| 久久婷鲁| 天天在线久久综合| 五月婷色色| 日韩黄色影院| 另类色网| 大香蕉久艹| 国产精品久久久久久妇女6080| 婷婷五月丁香四射| 丁香五月婷婷呀| 日日噜噜夜夜狠狠久久丁香五月| 69凹凸成人综合网| 亚洲中文无码成人| 狠狠久久婷五月| 色综合久久之分久久| 99九九在线精品热动漫| 99er热精品视频| 天天爽天天爽| 中文精品在| 日韩成人精品一区久久久久| 色色a| 欧美色色色色色色色色| 婷婷五月天激情AV影院| 六月丁香网| 4399欧美另类视频| 色播五月婷婷五月| 婷婷涩五月天综合| 婷婷激情图片| 九九热九九| 日本五月天一页| 五月天综合网| 激情五月天在线观看婷婷| 天天日天天爽夜夜爽| 国产精自产拍久久久久久蜜| 色情综合网| 美女五月狠狠| 亚洲另类AV| 天天插天天干天天舔| 色九月| 毛片新网地| 99热这里只有免费精品| H亚洲| ji'qing'luan'ren'lun| 人妻丰满精品一区二区A片| 日韩在线视频网站| 91AV婷婷| 91丨九色丨大屁股| 九九成人视频| 六月丁香啪啪啪| 久99综合婷婷| 亚洲啪啪啪啪| 欧美99| 五月综合丁香婷婷| 538任你爽| 99激情视频| 五月天色欧美| 99热精品在线观看| 97婷婷丁香| 综合久久五月天| 丁香六月天婷婷色| 色婷婷www| 碰超亚洲| 五月天久久婷婷| 啪啪操网| 97碰人人操| 一级黄色操B| 另类五月激情| 超碰资源在线| 开心五月深爱五月| 美女要搞搞天天搞搞搞网站| 色综合99无码| 天天日夜夜曹| 亚洲九区| 婷婷久久五月| 五月综合色| 亚洲五月丁香综合网| 色色色色色色色色综合网| AV成人在线播放| 五月婷婷九| 综合五月丁香97| 九月婷婷激情| 亚洲精品乱码久久久久久按摩观| 婷婷五月花| 26UUU在线观看| 色情婷婷久久五月天| 婷婷香五月天| 色综合夜夜| 91碰碰碰| 日韩视频99| 大香蕉 伊人夜| 五月天婷综合| 亚洲色色在线| 96色婷婷| 大香蕉啪啪啪| 婷婷五月色网| 久青操| 日本精品99网站| 综合色图区| 色99色| 日日操日日射| 日韩超碰在线| 国产又色又爽又黄又免费| 人妻在线中文字幕久久| 国产综合81p| 狠狠综合| 国产精品色婷婷AV综合色色| 99热在线播放| 另类亚洲电影| 激情综合五月| 久久机热/这里只有精品| 久操大| 国色天香成人网| 26uuu欧美激情另类| 五月天之色情综合网| 国产亚洲99久久精品| 六月米奇色综合| 91精品国产色猫| 五月丁香六月香香蕉| 五月人人丁香婷婷五月人人丁香| 2015WWW永久免费观看播放| 中文字幕黄色片| 玖玖九九99| 五月丁香六月激情在线| 五月丁色AV| 亚洲天堂制| 粉嫩av懂色av蜜臀av熟妇| 五月丁香婷色| 成人在线网址| 免费啪啪啪网站| 91久久久久久久久18| 情婷婷五月天| www.99热国产| 在线不卡视频| 狠狠情色| 国产免费av网站| 五月天综合色| 欧美日本黄色| 色色A| 丁香激惜男女| 色情五月综合婷婷| 性热视频99精品| 亚洲精品V天堂中文字幕| 亚洲色图五月丁香| 538在线精品| 激情五月无码| 天天日天天狠狠操| 99精品在线播放| 热久久精品视频网站| 激情综合区| 婷婷日本在线| 色逼综合网| 欧美25p| 日本五月婷婷| 丁香涩涩爱| 狠狠色性| 五月丁六月香av| 久久免费9| 人妻操日日| 鲁鲁色五月| 岛国av网站| 九九人人精品| 色久影院| 久久精品9| 99亚洲视频| 激情综合网激情五月欧美| 午夜大香蕉| 成人短视频在线免费观看| 伊人丁香五月天丁香在线婷| www.色五月| 婷婷91| 五月天婷婷基地| 激情婷婷五月| 色99视频| 久久精品63| 六月丁香婷婷爱| 99久久国产宗和精品1上映| 操一操干一干| 日本婷婷五月天| www.精品99| 六月天婷婷| 人妻精品一区二区三区| 五月激情综合网| 狠狠色综合精品视频在线| 婷婷五月六月丁香综合| 99九九精品| 情婷婷五月天| 婷婷五月草| AAAA网站| 色5月婷婷色| 亚洲天堂啪啪| 色色色色色色色色网站| 99久re热视频精品98| 色综合99| 无码成人AAAAA毛片AI换脸| 欧美性猛交XXXX乱大交极品| 婷婷五月丁香青青草在线| 影音先锋男人女人| 97久操| 怡红院91a√| 777久久久| 99热999| 亚洲AV成人无码电影| 综合网色综合| 91狠狠色| 九九视频热| Va另类视频| 九九99热精品| 99热99| 色综合大香蕉| 99热这里只有精品亚洲| 色日本网| 婷婷五月天黄色| 激情五月天影院| 色婷婷在线视频| 精品国产一区二区三区四区阿崩 | 久久久99精品免费观看| 成人精品网站在线观看| 九九色色网| WWW五月婷婷| 激情五月综合免费| 亚洲色热| 中文字幕在线免费看线人| 国产真实乱对白精彩| 色色五月综合| 天天日夜夜高潮| 五月婷婷丁香色播网| 色香欲综合| 亚洲不卡| 亚洲黄色操逼| 亚洲成人一区| 99爱在线| 五月丁香婷婷中文| 操逼棍操逼| 日本天堂免费99| 九九热免费视频| 五月丁香激情综合网官网| 欧美综合五月丁香六月婷| 六月丁香五月婷婷首页| 天天干电影| 99re这里| 玖玖婷婷视频| 99只有这里是精品| 九九精品热| 99婷五月| 婷婷五月天激情四射五月天激情| 色欲一二三| 国产在这里只有精品| 婷婷五月天亚洲综合网| 婷婷五月天视| 五月婷婷,狠狠操| 中文字幕人成乱码在线观看| 99爱99操| 亚洲欧美999| 人妻少妇色综合| 香蕉久久五月| 五月丁香拍拍激情综合| 成人亚洲精品| 色婷婷久久视屏| 五月丁香va| 亚洲综合一区二区| 亚洲九九99精品视频在线播放| 婷婷在线综合| 久久99久久久久久久噜噜| 777久久综合视频| 天天肏在线观看| 99视频免费播放| 婷婷五月深情丁香深爱日韩| 激情综合色图| 国产婷婷五月| 狠狠干思思热| 日本啪啪视频HD| 成人短视频在线| 五月色丁香视频精品| 99精品网| 成人片在线播放| 这里只有精品免费视频| 99欧美热| 99热这里只有精品一| 玖玖色综合| 麻豆精品| 天天干天天日天天操| 国产内射婷婷| 美女主播野战视步页| 激情小说视频图片| 九九久久五月天综合伊人| 欧美这里只有精品| www综合久久| 久久久久久丁香五月| 色色色综合网| 色五月丁香五月五月婷婷| 情色婷婷五月天| 婷婷五月天毛片| 六月婷婷九月丁香亚洲综合| 亚洲精品第一国产综合亚AV| 激情五月天婷婷视频| 国产亚洲精品久久久久久郑州| 成人丁香五月| 99久热| 色婷婷五月综合| 超碰91在线| 一区视频网站| 日韩啪啪网| 97操在线视频| 99热这里只有精品8| 午夜成人AV在线| 色五月天丁香| 天天综合久久| 国产99久久久国产精品免费看 | 玖玖色综合色| 婷婷十月激情综合网| 婷婷日韩| 天天舔天天摸| 久久激情网| 综合99久久天天综合| 五月天综合| 日本视频欧美观看免费| 色五月激情综合网| 人人人人人人人人人草| 色婷婷精品视频| 久久丁香五月天| 色婷婷a| 91丨九色丨首页| 大香蕉久久伊人婷婷五月丁香| 无遮挡国产高潮视频免费观看 | 五月婷婷开心网| 91亚洲免费片| 开心久久爱五月天| site:feetmall.com| 色色cOm| 色婷婷久久| 久久婷婷成人视频| 欧美精品在线观看| 色色色色综合| 欧美99热| 五月丁香黄色视频| 4399亚洲视频| www色五月| 99热综合网| 国产成人精品一区二区三区视频| se婷97| 99久精品| 人色五月天婷婷| www,99热| 亚洲第一第二网站| 99色热综合| 97干在线观看| 久久这里面只有精品视频| 激情亚洲色图片丁香综合| 六月婷婷在线| 99re这里只有| 2015在线中文字幕| 91久久婷婷| 日日想日日夜日日操| 成年人看Va免费视频| 婷婷激情性爱| 9久久狠狠的| 日韩无码性爱| 激情综合五月激情XXXX| 深爱激情丁香五月| 激情婷婷丁香五月天| 在线观看国产高清视频免费网站| 六月丁香成人| 六月婷婷五月丁香首页| 97色色色| 大地9中文在线观看免费高清| 激情婷婷五月在线合集| 六月丁香婷婷综合色播| 婷婷六久久| av电影在线播放| av国产精品偷| 99热综合在线观看| 狠狠干综合| 超碰免费人| 五月天婷婷香蕉狠狠超碰综合| 五月丁香六月婷婷免费| 五月综合激情| 久久久久久久久18久久| 色欲婷婷夜夜| 99热丁香| 伊综合蕉| 狠狠干2007| 99热日| 久久性爱网| 大香蕉久久伊人婷婷五月丁香| 丁香六月婷婷姐网| 激情小说五月天| 色婷婷久久7777| 天天玩天天摸| 久久99精品久久久久久三级| 婷婷久久色五月婷婷久久久| 欧美美女国产日韩一区二区久| 婷婷 丁香 精品| 丰满少妇猛烈A片免费看观看| 91超碰在线播放| 九九爱激情| 色婷婷五月天| 色五月婷婷在线| 人妻激情网| www.夜夜夜| 亚洲99热| 亚洲小电影在线观看黄999| 激情性五月天免费小说视频| 国产偷人爽久久久久久老妇APP | 五月丁香五月婷婷| 国产午夜精品AV一区二区麻豆| 色五月首页| 能看的av| 91综合色噜噜| 婷婷丁香五月亚洲免费| 日本一级黄色片。| 天天噜天天爱| 五月婷婷五月天| 五月婷婷黄色| 狠狠色97| 日韩色五月| 婷婷五月天小说网| 午夜微拍福利| 天天干com| 青草视频在线播放| 久久久色婷婷五月天| 综合激情五月丁香| 99热最新精品| 激情小说视频图片网| 日韩专区五月天婷婷丁香| 亚洲视频在线观看99| 五月丁香 啪啪| 操人久久| 九色PORNY自拍成人精彩视频| 激情六月天婷婷| 色噜婷婷| 九九九九这里只有精品| 91干99| 五月五婷婷| 20253AV| 只有久久精品免费| 久久99大| 另类五月激情| 91jiuseshunv| 婷婷五月天综合久久| 丁香五月停停基地| 色域五月婷婷丁香| 色婷久久| 日本婷婷| 色综合天天网| 99久久婷婷精品视频| 99色热综合| 日韩久久成人| 天天综合中文| av在线免费网站| 五月停停色色丁香| 欧美在线视频99| 婷婷色五月天在线观看| 欧美婷婷五月无砖| 爱爱网址9| 九九视频在线免费视频| 色五月综合97| 久超超碰| 丁香五月1页| 极品人妻VIDEOSSS人妻| 玖操97| 99热香港| 丁香婷婷色九月| 在线中文字幕视频| 五月天社区| 99成人无码| 91美女啪啪| 人人草人人爱| 丁香午月AV中文字幕| 亚洲妇女熟BBW| 丁香色五月婷婷91桃色| 玖玖婷婷五月| 丁香六月婷婷综合| 婷婷五月天在婷| 亚洲爱婷婷| 日本一级黄色电影| 深爱开心激情网| 日韩AV中文字幕在线| 五月 成人 婷婷| 激情五月天在线观看色婷婷| 色综合视频在线| www.久久综合| 色小说婷婷五月天天天| 丁香六月激情综合网| 高清不卡一区| 五月天激情Av| 亭亭色网| 久久99国产综合精品免费| av性爱网站| 九九AV在线| 国产精品美女久久久久AV超清| 九九99一区| 97在线精品视频| 成人无码精品1区2区3区免费看| 亚洲色情网站| 婷婷五月大| 国产暴力强伦轩1区二区小说| 日韩AV大全| 丁香婷婷五月激情| 五月婷婷天天| 五月丁香啪啪| 狠狠色九月| www.夜夜操| www,av好吊操| 色色色777| 色综啪啪| www五月| 欧美Va日本Va| 99久久国产成人精品| 日韩无码性爱| 国产精品久久久久久久久久免费 | 99久久国产宗和精品1上映| 99爱在线精品视频免费观看| 丁香五月激情宗合网| 日笨久久网| 99精品在线播放| 色色色网站| 噜色精品| 久久99久久99精品免观看粉| 亚洲综合碰| 丁香六月婷婷综合| 婷婷色五月开心五月| 开心五月深爱五月婷| 久久久ww| 欧美啪啪五月天| 蜜臀AV在线观看| 成人 视频免费观看网站| 色五月色综合| 色婷婷WWW| 亚洲秘 无码一区二区三区妃光/1| 性做爰1一7伦| 综合五月婷婷| 99热综合色图| 九九在线这里只有精品视频| 五丁香激情综合| 夜夜 操无码| 91美女啪啪| 国产毛片精品一区二区色欲黄A片| 99无码超碰| 亚洲天天综合| 丁香五月六月欧美| 婷婷爱综合| 五月婷婷另类| 日韩 中文 欧美| 国产精品黑丝| 激情六月婷婷啪啪| 大学生高潮无套内谢视频| 综合网色| 天堂久久婷婷| 五月丁香中文| 五月丁香六月综合激情无码软件亮点 | 蜜臀99久久精品久久久久| 无人区码一码二码三码医生系列| 色啪网| 婷婷色影院| 偷拍91九色| 丁香桃色网| 五月天五月天激情网| 九九视频精品在线免费| 深爱五月婷婷开心中文字幕| 五月丁香婷婷爱激情综合网| 亚洲天堂爱爱| 色99在线观看| 国产.亚洲.欧洲视频在线| www.com在线操视频免费观看| 99国产在线精品视频| 日韩啪啪网| 六月丁香久久| 色播播五月天| 激情六月婷婷| 亚洲精品久久久久久久久久吃药 | 亚洲国产精品VA在线看黑人| www激情五月天| 婷婷开心久久| 五月天六月婷| 亚洲天堂aaa| 天天干狠狠| 丁香六月无码播放| 五月婷婷m| 天天爽夜夜爽| 丁香六月亭亭久久综合| 婷婷五月天激情电影小说| 99re这里只有精品视频了| 亚洲五月色| 嫩草乱码一区三区四区| 99综合网| 中文字幕在线免费| 亚洲超碰在线| 99热精品在线观看| 国产黄大片在线观看画质优化| 99在线精品免费视频| 超碰在线观看三级片| 婷色影院| 99热在线看| 日熟女| 91性高潮久久久久久久久| 99久久综合网| 99热热九九| www.热99热| 五月激情六月婷婷| 五月婷婷成人| 久久五月婷| 天天干天天干天天干| 国产精品18久久久| 亚洲色图五月丁香五月婷婷| 国产激情在线| 99热这里只有精品26| 午夜精品777| VfJxEwPH| 色婷婷狠狠18禁| 色色婷婷五月| www.97视频| 99热99| www.五月婷婷| 精品99爱免费视频在线观看| 天天做天天爱综合| 国产综合色婷婷精品久久| 色情五月综合婷婷| 色色色五月天婷婷| 中文字幕AV网址| 激情五月天婷婷免费观看| 怡红院精品视频久久久久久久久| 五月婷婷之综合激情| 91久久九久久九久久九久久九久久| 婷婷亚洲影院| 第四色在线观看| 婷婷丁香社区| 天天肏屄夜夜爽| 国产日韩亚洲欧美在线观看| 熟女激情网| 国产精品第一国产精品| 久操大屁股女人av| 五月丁香激情综合啪| 久久机热思思热| 秋霞A V毛片| 99精品国产乱码久久久人妻| 综合久久综合五月天婷婷| 日本三级中国三级99| 亚洲色五月天是什么| 人人操av| 99热| 久久免费操| 天天干,噜噜色,狠狠色| 婷婷成人五月天成人文学| 日本狠狠干| 大香婷婷| 婷婷五月丁香婷婷| 丁香六月激情| 日韩av在线播放综合网| 91操网| 婷婷五月天激情综合网| 激情五月天婷婷丁香| 午夜在线成人网站免费观看| 亚洲色色色色色色色色色| 久久思思热视频| 婷婷中文字幕| 伊人色五月| 五月婷婷就去色| 中文字幕av在线| 五月丁香综合色婷婷| 蜜臀丁香黄色婷婷五月天| 丁香六月婷婷姐网| 天天弄天天操| 丁香色成人| 五月丁香婷婷成人综合网| 丁香五月天色婷婷| 停停综合色色| 婷婷五月天成人影片| 婷婷久草| 五月婷婷丁香啪啪| 五月天激情社区| 精品色色| 91人人爽狠狠狠| 六月丁香五月天| 粉嫩AV久久一区二区三区| 色播播婷婷| 草逼大片| 国产真实乱对白精彩| 婷婷久久综合久| 人人操av| 天天综合色99| 激情网开心网| 被强行糟蹋的女人A片| 九九热视频99| 深爱五月激情| yw国产AV| 婷婷深爱五月天在线| 婷婷开心激情| www.99热在线观看| 色婷婷五月天在线观看| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 久久99最新| 翔田千里 50岁 无码| 国产欧美大香蕉一区| 狠狠干青青草| 99激情视频| 天天性视频| 另类精品视频在线观看| 久久久99日本大片| 九九热思思| 九月色婷婷综合亚洲| 丁香婷婷五月天色播| 婷婷五月激情中文字幕| 99精品热视频| 五月激情综合网| 99热99美国在线观看| 色综合色| 色射7856五月天激情四射| 婷婷综合五月天亚洲综合| 婷婷五月丁香青青草在线| 99热日| 国产成人精品一区二三区熟女在线| 丁香五月花婷婷开心| 大香蕉五月丁香| 五月天婷婷免费| 91凹凸在线| 五月婷久久草| 日韩操逼大片| 涩综合网| 丁香五月天啪啪| 啊v视频在线观看| av人人干| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 六月激情网| 51XX嘿嘿午夜无码| 五月天婷婷在线观看| 五月丁香婷色| 伊人在线视频| 色噜噜夜夜夜综合网| 一区二区乱码视频| 久久伊人婷婷| 这里只有精品免费| 99这里精品| 97碰碰碰免费公开在线视频| 色五月婷婷久久大| 亚洲第一成人AV| 亚洲色色香蕉| 9久久久| www,com,五月色色| 六月婷婷综合| 激情五月综合亚洲另类| 丁香婷婷六月激情| 青青久久五月| 五月天婷婷丁香| 激情文学第四色婷婷丁香五月| 翔田千里 50岁 无码| 91九色精品熟女内射| 久久激情视频| 国产精品色色色色| 97碰 在线视频观看| 六月丁香五月天| 99九九在线观看免费| 五月天激情亚洲| 婷婷5月开心6月| 色综合色香蕉网| 五月婷婷色激情| A在线观看| 人人摸人人搞| 亚洲人妻一区二区| AV网址大全在| 色人久久| 丁香五月婷婷色五月| 丁香婷婷综合影院| 五月丁香色综合| 五月天激日本色情在线| 亚洲成人AV高清字幕| 26uuu亚洲| 丁香婷婷啪啪| 久久99热网| 免费不卡狠操美女视频网| 五月丁香啪啪啪综合网| 婷婷导航| 久久久久久久久人妻| 九九99精品视频| 久久性爱视频| 五月天色婷婷激情| 成人做爰A片免费看网站找不到了| 尤物一区二区| 日日干夜夜干| 五月婷婷视频啪啪美女| 高清av在线国产| 六月丁香啪啪| 久久婷婷婷婷伊人| 色婷婷9| 99精品偷自拍| 九九干视频| 欧洲亚洲免费视频9| 91干网| 丁香五月天啪啪| 六月丁香影院| 91chinese在线| 婷婷情色五月| 中文字幕永久在线| cc精品国产性传播| 97人人操人人干| 国产精品A片在线| 天天激情站| 五月天婷婷人妻| 日本欧美在线| 五月婷中文娱乐综合| 亚洲第一第二网站| 五月丁香六月综合基地| 入口五月婷婷六月香| 久久婷婷六月综合综合| 婷婷五月激情综合| 激情六月天| 五月丁香六月婷精品视频| 97色97干| 大香蕉久久青青| 婷婷综合激情| 夜丁香综合| 丁香五月天天日| 亚洲色图81p| 色色欧美色色色| 激情五月天色网站| 色亚洲欧洲| 亚洲天堂亚洲色色色| 久久狠狠干| 久草九一| 午夜少妇在线观看视频| 夜色综合网| 五月网在线| www.久久五月天.com| 日本啪啪天堂| 丁香97综合| 天天揷综合网| 婷婷亚洲色| 久热 91| 五月丁香六月婷婷操操操| 美女婷婷六月色| 婷婷五月天激情四射| 久久亚洲无码| 大香蕉丁香婷婷| 国产成人精品一区二三区熟女在线| 自拍偷窥99热| 成人丁香五月| 久久久精品人妻录| 亚洲第一色网站| 色婷婷综合网| 色婷婷888| 操操熟女| 婷婷五月天渟渟| 96精品成人无码A片观看金桔 | 99久久.www| www.久操| 丁香婷婷五月份| 天堂无码人妻精品AV一区| 91丨九色丨国产打屁股| 91久久九久久九久久九久久九久久| 激情网婷婷婷| 五月丁香六月欧美| 色99亚洲| 2050人人操免费工开爱| 婷婷五月香蕉| 婷婷在线综合| 99亚洲精美视频在线观看| 综合九九久久| 欲色人妻| 伦乱人妻| 五月婷久久综合| 玖玖爱伊人网| 久久久婷婷五月天| 国产精品久久久爽爽爽麻豆色哟哟 | 深爱五月最新网址| 2020久久婷婷五月| 丁香五月视频在线观看| 狠狠操天天操综合| 亚洲欧美婷婷五月色综合| 天天干天天干天天操| 婷婷丁香五另类网站| 九九AV在线| 五月丁香婷婷在线| 亭亭色色五月天| 超碰超碰在线| 九九99在线免费在线观看视频| 九九热最新| 九九热最新| 91九色中文字幕女在线观看| 婷婷性福五月天| 99色在线观看视频| 综合网啪| 噜噜干日本| 六月激情婷婷| www.激情| 欧美日本免费一道免费视频| 激情内射人妻1区2区3区| 久久婷婷午夜| 182无码| 天堂久久大香蕉| 97日在线视频| 五月天丁香综合| 99色在线视频观看| 激情综合播播| 婷婷播播五月天| 深爱激情av| 天天狠狠夜夜狠狠2023| 97色欧美| 丁香啪啪| 欧美性猛交 XXXX 乱大交| 日本精品人妻无码77777| 久综合4| 久久久香港| 成人精品人妻| 97人妻碰碰中文无码久热丝袜| 再次出发二| 伊人网色婷婷五月天| 五月婷婷第四色| 五月停停999| 九九免费视频| 亚洲深喉aV| 日本天堂网站99| 大香蕉婷婷久久| 色五月天激情| 精品无码人妻一区| 激情欧美五月丁香| 99热精品99| 激情色色| 婷婷的五月天另类视频| 激情综合在线播放| 玖玖爱资源站| 日操| 久热网在线视频| 久色大| 婷婷综合网| 色五月 婷婷, 大香蕉| 五月丁香色色| 九九热超碰| 色.五月综合网| 九九99热| 激情另类综合| 99久久99热这里只有精品| 五月丁香五月综合欧美| 五月丁香六月婷婷网| 爱99干99| 强伦轩人妻一区二区电影| 五月婷婷久久激情| 99re思思热久久| 九九免费视频| 97操碰在线97| 在线99热| 五月天激情社区| 五月天丁香综合| 日韩一级一片内射视频4K| 第四色网婷婷| 五月婷婷综合激情| 婷婷五月天天爽| 丁香五月婷婷啪啪| www.99久久久久99| 婷婷五月天受日本法律保护| 可似看的AV| 五月婷在线| 丁香综合久久| 婷婷六月丁香久| 色婷婷五月天久久| 少妇被下春药玩弄A片| 日本久久极品| 激情综合女人网五月播播| 色五月综合在线| 人人摸人人| 亚洲成Av人片乱码色第1集| 色愛综合网| 激情综合网五月天| 亚洲亚洲人成综合网络| 啪啪六月婷婷| www狠狠| 九九黄色网| 一级性感毛片| 婷婷五月天亚洲天堂| 91视频五月丁香| 色欲色欲久久宗合网| 久久99婷婷| 五月天婷婷激情小说电影| 国外亚洲成AV人片在线观看| 久久久五月天婷婷成人网| 色久在| 免费观看亚洲AV片| 九月停停| 婷婷五月天亚洲天堂| 久久婷婷亚洲| 1024久婷| 九九热思思热| 亚洲超碰在线| 丁香五婷| 五月婷婷福利| 婷婷99| 丁香婷婷性爱| 色色网站免费| 亚洲午夜成人av电影网| 五月丁欧美| 99九九在线视频| 色欲一二三| 桃色五月婷婷| 亚洲视频a| 激情综合九月| 欧美123区免| AV天堂婷婷五月天| 日欧一片内射VA在线影院| 五月丁香免费视频| 女人被男人吃奶到高潮| 99玖玖视频| 丁香五月激情澎湃一区| 精品一区二区三区四区五区六区| 99热在线精品播放| 激情综合一| 免费观看日韩成人av| 91操操操| 亚洲婷婷五月天| 婷婷五月激情欧美| 五月婷婷色| 亚洲精品成人片在线播| 精品人妻久久久久久久| 最近中文字幕2019视频1| 在线视频色五月| 婷婷五月天黄色| 色噜噜狠狠色综合网| 欧美va欧美va差| 波多野结衣不卡AV| 99色一| AA片在线观看视频在线播放| 精品无码色| 五月丁香激情综合网| 亚洲永久四色| 99操| 99啪视频在线观看| 欧美色爱五月天| 久9草在线观看视频| 九九热在这里只有精品| 国产精产国品一二三在观看| 五月激情综合婷婷| 99热91| 91热er| 国产肥白大熟妇BBBB视频| www.25五月婷婷| 丁香五月天激情| 国产99热在线看| 国产亚洲在线观看| 五月天激情在线视频| 激情av| 天天色爽| 亚洲天堂婷婷丁香| 丁香五月狠狠综合欧美| 色爽干| 丁香六月无码| 超碰一区二区| 婷婷六月综合激情| 久热伊人91| 久久婷婷综合五月趴| 丁香五月天激情四射网| 国产精品久久久海的味道| 国产毛片精品一区二区色欲黄A片| 人妻内射视频| 伦乱美欧| 五月天激情婷婷| 婷婷天天综合| www.9色色色| 玖玖热视频| 色综合中文色综合网| a在线观看| 五月丁香手机在线| 亚洲爆乳无码精品AAA片蜜桃| 丁香色啪综合| 九月丁香婷婷基地| 亚洲激情婷婷| 九九九九综合| 色色性爱视频| 日韩按摩二区| 中文字幕高清av| 久久五月天综合| 大香蕉九操| 婷婷五月丁香五月| 涩涩网五月天| 色五月,婷婷大香蕉| 色综合久久44| 色婷婷五月开心六月综合| 日本少妇裸体做爰高潮片| 狠狠狠夜夜夜| 色色色五月婷| 久久婷婷影院| 五月 丁香 欧美| 婷婷福利影院| 五月婷激情影院| 991精品在线视频| 婷婷综合五月| 九九热经典视频在线观看| 综合九九日本| 久久资源网五月婷| 五月婷婷天天色| 内射人妻视频国内| 欧美丁香婷婷五月天| 天天肏视频| 九九性视频| 五月色色激情网| 国产激情视频在线观看| 97热这里只有精品| 人人人操97| 91黄址| 黄色国久久| 青青草五月天| 亚洲五月天第一综合干| 极品嫩草| 色色99| 色婷五月| 亚洲第一成人无码A片| 精品国产一区二区三区四区阿崩| 五月丁香六月婷婷在线| 色婷婷WWW| 久久五月热| 日本人妻A片成人免费看片| 五月丁香狠狠地噜噜噜噜| 五月综合丁香婷婷| 色色99| 99热这里只有精品8| 色情·com| 青青艹b| AA丁香综合激情| 99综合| 我爱宗和色| 五月婷婷成人| 乱精品一区字幕二区| 天天肏在线观看| 色婷婷六月综合| 99玖玖免费视频| 国产毛片操B| 深爱激情丁香| 四月婷婷丁香| 五月婷婷丁香啪啪| 五月丁香婷婷婷激情爱爱| 国产真实乱了老女人视频| 97五月天| 天天成人丁香美女AV| 99re热精品在线视频| 卡视频1区2区| 激情综合亚洲| 六月丁香色色| 色99热| 日日夜夜狠狠婷婷色| 一本九九色| 91打屁股免费看| 97自拍视频在线| 99爱在线免费视频| 婷婷激情综合无月| 色婷婷亚洲| 丁香色影院| 色综啪啪网| 丁香五月婷婷影院| 开心激情婷婷| 五月丁香色婷婷综合| 婷婷99| 久婷婷色| 91丁香婷婷综合久久欧美| 国产全是老熟女太爽了| 国产97色在线| 91成人性爱视频| 狠狠干 狠狠操| 激情综合啪啪啪| 99爽视频| 婷婷五月无码| 色婷婷AV久久| 国产真实乱了老女人视频|