99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜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
返回資訊列表
狠狠色激情综合| 久久99网站| 天天做天天爱天天爽| 欧美丁香五月97色| 狠色色狠网| 色婷婷综合亚洲| 久久AAAA片一区二区| 日日夜夜爽| 五月天色综合| 九九热婷婷| 97精品人人A片免费看| 99热8| 人妻久久做| 99精品久久久久久久久| 日韩熟女啪啪视频| 99精品在线下载| 亚洲成人在线综合| 丁香五月婷婷欧美激情-中文天堂最新版在线观看 | 五月丁香久久综合91| www.色婷婷.com| 九九99视频精品| 538任你爽视频不一样的| 99精品偷自拍| 亚洲欧洲中文日韩久久AV乱码| 五月天丁香成人| A久网| 99色啊| 99热精品观看| 综合视频久久| 色碰碰视频| 日韩欧美婷婷丁| JAPANRCEP老熟妇乱子伦视频| 色激情综合| 成人 九九九九| 伊人91| 97超碰人人操| 五月婷婷啪| 五月花婷婷| 亚洲色综合性| 五月婷婷在线视频观看| WWW.桔色成人.COM| 色婷久久| 天天爱天天操| 国产精产国品一二三在观看| 激情五月黄色| 人人操91色| 国产视频婷婷| 色久综合| 五月丁香婷婷基地| 欧美人妻一区二区| 激情五月婷婷| 色噜噜狠狠狠狠色综合久欧美| 无遮挡国产高潮视频免费观看 | 丁香六月婷婷久久综合| 五月丁香婷婷在线综合蜜桃| www.日韩艹| 成人婷婷深爱综合网| 国产伦亲子伦亲子视频观看| 丁香五月婷婷国产在线| 亚洲啪啪网| 日本一级一片免费视频| 五月天激情偷拍| 色婷婷av在线观看| 久久久久久丁香五月| 免费观看的AV| www.久久99热地址发布| 色九月婷婷| 亚洲精品又粗又大又爽A片| 色婷婷综合网| 五月天狠狠色| 亚洲va综合va国产va中文| 天天爽天天| 亚洲精品久久久久久久久久吃药| 婷婷丁香六月天激情四射网| 91在线日| 五月天婷婷永久免费视频| 人人操A| 天天五月情| 亚洲情欲| 国产成人+综合亚洲+天堂| 亚洲久热| 大香蕉婷婷丁香| 激情久久久| 秋霞午夜理论| 国产精品色色| 97涩婷婷婷婷基地| 激情网战码亚洲A| 色9色| 六月丁香激情婷婷| 开心深爱激情网| 国产露脸150部国语对白| 色综合99无码| 伊人天天色| 中文乱子伦视频| 婷婷六月啪啪| 九9九9无码| 亚洲中文字幕AV| 久久久er热| 开心五月网| 激情丁香五月天| 婷婷五月丁香基| 日本人人干| 99热免费网站| 久久激情五月天| 男人的天堂婷婷色五月| 五月婷婷丁香啪啪| 丁香五月色色| 丁香久久九九99| 五月份婷婷| 狠狠色婷婷六月激情网| 99成人| 日本人妻操| www久久99com| 精品人人操| 久久久国产精品黄毛片| 日韩人妻无码一区二区| 91黄址| 婷婷五月色播天| 99在线观看精品视频| 毛片九九九九九九九九18| 久久精品63| 天天操天天日天天爽| 亚洲成人网站在线观看| 手机旧版看人妻1025| 色五月色五天色情网| 婷婷五月天激情小说| 色色色色色色色色色色色色色色,网站| 婷婷五月综合在线| 91ncom.色| 影音先锋男人AV资源站| 夜夜做夜夜愛| 国产乱轮一区二区三区| 色婷婷丁香五月色综合网| 天天干天天干天天操| 日韩婷久| 激情五月天婷婷在线网址发给我| 婷婷五月精品中文| 色婷婷五月天视频网站| 欧美天堂久久| www.色9| 亚洲激情97五月天| 精品一区二区三区三区| 思思精品视频| 久久色五月天| AV在线免费播放| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 中文字幕不卡+婷婷五月| 色444综合网| 思思热在线视频99| 开心婷婷五月综合| 六月丁香综合| 久久刺激网| 99九九视频| 亚洲欧美日韩另类| 激情久久丁香| 伍月婷婷免费视频| 天堂伊人干| 五月丁香六月激情综合啪啪| 99热在线极品极品| 婷婷五月婷婷| 激情五月天丁香| 色综合久久综合中文综合网| 欧美性爱五月天| 激情丁香婷婷五月天| 99啪啪| 色五月婷婷久久| 日本片日本片祼观看网站在线看中文版网页在线看| 天天做天天要天天爱| 亚洲综合99| www久久99com| 青青草99re| 亚洲熟妇AV综合网五月丁香伊人| 色色亚洲视频| 久久九九视频网站| 在线观看视频1区| 成人视频婷婷| 激情图片亚洲| 亚洲视频在线网| 网站免费一站二站| Av狠狠色丁香婷| 三男玩一女三A片| 六月天六月婷| 色播婷婷大香蕉| 玖玖色资源站| 亚洲久艹| 婷婷爱五月| 婷婷丁香基地在线| 午夜成人AV在线| 久久精彩视频| 色五月婷婷基地| 国产操碰| 成人无码中文| 五月激情在线| WWW99热| 婷婷偷拍网| 激情丁香图片| 国产伦理精品高清在线观看网站一区二区 | 99亚洲视频| 九九激情网| AV片一区在线观看| 婷色五月| 五月婷婷在线免费| 五月丁香天天| 色婷婷中文在线| 婷婷久久综合| 99re免费精品视频| 天天天操天天天日| 欧美色骚婷婷五月天 | 日本啪啪网| 激情又色又爽又黄的A片| 99久久大片| 亚洲综合1024| 五月丁香婷婷激情影院欧美| 五月丁香六月激情网站| 婷婷五月影院| 亚洲成人免费在线| 91九色欧美| www.日日日.com| 色婷婷情片| 欧美日本韩国亚洲| 婷婷丁香久久| 久久ab| 日日爽日日| 六月丁香五月激情亚洲AV| 激情五月综合久久| 久久精品噜噜噜成人A∨色欲| 久久久97| 婷婷综合五月天| 开心激情站| 五月天激情图| 六月色国内综合| 国产VA播放| 色色丁香五月| 成人短视频在线免费观看| 色.五月综合网| 久久小视频| 欧美性爱一区| 婷婷色网站| h亚洲| 五月天亚洲综合网| 久久WW| 五月天婷婷爱| 5五月综合网亚洲| 婷婷五月天成人网站| 久久99热免费| 五月婷婷成人w| 无遮挡国产高潮视频免费观看 | 大陆肏屄视频| 日日日天天干| 天天操天天操天天操天天操天天操| 色高清无码视频| WWW五月婷婷| 九九精品在线视频观看| 色五月丁香总合网| 天天艹天天色| 日韩在线五月天婷婷| 青青草视频福利| 天天摸日日舔狠狠添婷婷婷| 久久久久人妻中文| 天天日,天天插| 五月激情偷拍| 91热在线| 色五月激情网| 欧美五月婷婷综合| 五月丁香色色网| 成人色图情色成人网 www.5b5b5bcom 五月天| 九九综合久久| 99超级碰碰| 91肏| 色婷婷影视| 午夜不卡久久精品无码免费 | 婷婷五月天综合色| 狠狠综合网| 天天干,天天日| 99ri国产在线| 免费视频WWW在线观看网站| 亚洲精品久久久久久久久久飞鱼| 婷婷久久欧美| 五月丁香六月婷综合成人综合 | 婷婷五月天天aV| 九九精品热| 日本爆乳片手机在线播放| 日日干日日| 最新久久网址| 少妇大叫太大太粗太爽了A片| 九九色情网站| 啪啪六月婷婷| 五月天婷婷丁香蜜桃91| 特级西西4444www无码| 六月丁香综合| 日韩黄色中文字幕| 99热在线观看精品| 思思热热久久| 99热日韩| 婷婷五月天成人视频| 五月婷婷色色网址| WWW夜夜| 天天日天天干天天插天天射| 99热最新网址| 六月婷婷日| 亚洲啪啪啪啪| 天天插天天插天天插天天插| 天天插天天插| 97色色婷婷五月天| 天天天天爽爽天干| 婷婷俺去也| 久久久久久99日本| 人妻久久做| 婷婷五月色网| 五月天社区| 国产黄色av| www.xtbsty.cn.com蜜乳AV| 欧美丁香六月激情视频| 九九热这里只有精品6| 五六月婷婷久久| 五月大香蕉| 99视频只有这里精品| 色婷婷香蕉| 色婷婷呢狠禁久禁| 99rewww| 91精品久久久久、久五月天| 先锋影音男人的天堂AV| 激情综合网五月天天| 婷婷色五月激情强奸四射| 欧美成人AAA片一区国产精品 | se99视频| 5月丁香综合图区| 婷婷性爱影院| 婷婷涩涩五月天| 国产乱子轮XXX农村| 偷拍91九色| 九九热在线观看视频网站| 婷婷四色五月| 婷久久| 性爱视频99| 夜夜嗨一区二区三区直播内容| 性一交一乱一交A片久久四色| 99久热这里只有精品| 久久久天堂国产精品女人| 婷婷射丁香| 婷婷五月天高清无码| 99在线精品免费视频| 99啪啪视频| 26UUU精品一区二区| 狠狠插.com| 激情深爱婷婷网| ww久久| 色婷婷丁香社综合| 色婷婷精品视频| 葵花AV在线| 99色一| 国产午夜精品一区二区三区四区| 亚洲色情激情丁香五月| 日日影院 | 狠狠五月激情在线| 国产偷人爽久久久久久老妇APP | 天天爽人人综合免费7799| 色五月婷婷基地| 五月婷婷在线观看黄| 偷拍99在线视频观看| 婷婷五月天美女视频| 91男同视频| www天天干| 成人无码髙潮喷水A片| 99这里有精品久久97| 色婷婷综合久久久久| 67194中文字幕| 国产精品国产| 99精品激情| 九九热这里| 久热这里只有国产| 国产av一区二区三区| 日本噜噜色网| 激情婷婷22月间| 激情五月天激情小说| 超碰在线观看caop| 性爱网五月天| 久久五月丁香综合17C| 性做爰A片免费视频A片直播| 99这里只有精品|v| 五月婷婷久久综合| 色噜噜丁香| 五月激情五月婷婷五月天在线| 久久六月综合| 五月婷激情| 天堂婷婷五月色| 天堂呦 呦百度搜索-百度搜索| 99免费视频网| 日本精品在线噜噜噜| 欧美交换配乱吟粗大25P| 另类国产综合| 国产在线黄色| 亚洲丁香五冃97色| 婷婷射图| 久久性爱视频久久性爱视频| 激情九月综合| 日韩av高清| 超碰99久久| 99久久a线观| 久久婷婷六月综合国际| 婷婷六月色开| 丁香五月激情鲁| 99热综合在线| 玖玖婷婷免费| 天天爱天天做天天操| 26uuu亚洲欧美另类| 丁香五月天堂网AV| 女人高潮内射99精品| 丁香六月婷婷综合啪啪| 五月丁香婷婷网网网网| 国产性爱色| 色婷婷久久| 啪到高潮激情丁香五月| 丁香六月天婷婷在线| 日本色超碰| 天天噜噜| 久久99热这里只频精品6学生| 天天草天天舔| 亚洲网视屏| 婷婷丁香成人色综合| 久久久91| 色99色| 五月丁花色综合网| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 深爱五月日韩| 激情伍月 欧美| 99热99精品| 丁香五月天AV在线| 五月综合激情婷婷六月色窝| 色婷婷影视| 丁香六月色婷婷| 99re热| WWW色色色COm| 九九中文字幕九| 人妻内射一区二区在线视频| 天天干天天操天天拍| 无套内射极品大美女| 五月天久久婷婷婷| 深爱丁香网| 六月丁香色色| 亚洲天堂啪啪| 欧美图片丁香五月天| www.99.色| 亚洲精品又粗又大又爽A片| www.精品99| 色综合久久五月天| 五月的色婷婷高潮| 99看片| www夜夜操comwww| 九九视频这里只有精品在线播放| 丁香五月天在线观看视频| 九月av| 国产黄色av| yw国产AV| 丁香五月www| 九九久久玖玖爱| 婷婷五月丁香五月基地| 婷色天堂| 丁香婷婷老司机久操| 99精品视频播放| 亚洲春色奇米影视| 1024人妻无码中文字幕| 九九热内射| 色爱爱综合网| 国产操肏网站| www99精品| 婷婷丁香激情综合色情| 九九热AV| 久草五月天电影网| 五月天堂在线| 久热免费| 四色永久成人网站| 五月综合激情网| 五月天色色色| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 91精品久久久久、久五月天| 国产精品久久..4399| Av九九| 婷婷丁香久久| 欧美久久一级内射wwwwww.| 江苏少妇性BBB搡BBB爽爽爽| 六月丁香开心婷婷欧美| 色五月激情| 婷婷五月激情综合| 婷婷五月天视频小说| 天天天天天天天操| www.婷婷.com| 中文字幕日产A片在线看| 9久热精品在线视频| 国产99久| 五月伊人网| 五月丁香 六月婷婷a| 99久久成人| 五月婷婷之婷婷| 免费婷婷| 色噜噜丁香| 欧美WW在线网| 色婷丁香五月| 五月激情婷婷丁香天堂| 丁香五月成人社区| 天堂呦 呦百度搜索-百度搜索| 另类丁香综合| 99综合色色色| 日本色狠狠| 国产激情久久久| 久久久天堂国产精品女人| 午夜激情久久| 26uuu淫色| 亚洲色情网站| 99久久九九| 91精品久| 六月伊人婷婷| 99ri在线观看视频| 色九九中文字幕| 色色丁香婷婷综合| 婷婷五月天亚洲丁香| 99精品久久久久久久婷婷| 9国产在线视频| 日本久久爽| 天天 青草 丝袜制服 在线| 婷婷五月综激情| 亚洲欧美在线观看| 五月天社区| 99热这里只有精品最新地址获取| 可以看的av| 毛v一区二区视频| 激情五月图| 热久精品| 日本成人内射| 中文不卡一二三区| 26uuu最新地址| 色99www.| 婷婷五亚洲| 99亚洲视频| 黄色一极大片| 婷婷五月花西瓜| 国产精品久久久久久久久久| 久久伊人大香蕉| 婷婷五月丁香五月综合网| 亚洲无AV在线中文字幕| 婷婷丁香69精华| 五月丁香在线| 日本久久极品| 伊人五月成人| 久久全意婷婷| 久久综合天天综合| 久久综合久色欧美综合狠狠| 丁香五月天人体| 综合色99| 色五月综合| 激情五月天视频| 97超碰色| www.99热视频| 性爱七区| 六月丁香啪啪啪| 五月色婷丁香| 九热视频| 综合激情专区| 91久久精品无码一区二区三区| 亚洲激情六月| 丁香五月成人av| 99久久天堂婷婷| 99思思热只有在这里看| 久草婷| 在线可以看的av网址| 桃色成人网| 开心日韩丁香婷婷五月| 日日干四虎| 丁香五月激情综合网激情五月| 激情丁香五月婷婷| 久久AAAA片一区二区| 1024操逼视频| 少妇人妻人伦A片| 深爱激情五月婷婷| www超碰| 99热婷婷| 婷久看人爽| 少妇被下春药玩弄A片| 狠狠色性| 五月婷婷天天| 在线观看av网站| 9久久婷婷国产综合精品性色| 婷婷操超碰| www.久久久.com| 婷婷操逼| 在线18av | 丁香婷婷久久综合在线| www久久久久久| 丁香激情五月天| 色五月琪琪| 五月色综合| 思思精品久久艹| 大香蕉伊然在亚洲90| www,超碰| 开心激情色婷婷五月天| 久草婷| 久久伦乱| 色综合xx| 国产资源在线视频| 99ri视频| 一起草性爱不卡视频| 99在线免费视频| 色婷婷狠狠| 五月婷网站| 五月婷婷综合久久| 亚洲日韩成人三级av| 色婷婷视频在线| 国产9色在线/日韩| 五月天色色无码| 日日爽夜夜爽| 丁香五月成人论坛| 密乳Va| 成人做爰A片免费看视频| 色婷婷狠狠干芒果TV| 99精品视频偷拍| 精品无码久久久久久久久| 婷婷丁香小说| 激情五月综合免费| 久久丁香婷婷五月| 中文字幕精品无码一区二区| 影音先锋91| 六月丁香婷婷天堂| 亚洲综合1024| 久久青草国| 色色无码| 九九婷婷综合| 婷婷综合色五月天| 亚洲视频在线观看99| 欧美性交一区二区三区| 成人无码髙潮喷水A片| 日日爽夜夜爽| 丁香婷婷综合激情五月色| 超碰九色| 激情五月天啪啪| 丁香五月婷中字在线| 久草五月天| 五月丁香六月婷婷亚洲综合| 五月综合激情图片| 婷婷导航| 婷婷丁香花五月天| 99热精品超碰| 婷婷干| 97色在线| 久久这里有精品| 日本天堂免费99| 色六月视频| 秋霞三级影视资源| 99热国产精品| 激情综合99| 一级韩国产精品毛| 久久九九激情五月天 | 操人91| 五月丁香久久综合| 狠狠99| www.国产色| 五月开心激情网| 情婷婷五月天在线| 婷婷,五月天,丁香,第一| 啪啪激情综合| 97在线/亚洲| 四月婷婷五月丁香| 久久99久久久| 亚洲xx网| 婷婷射图五月天| 大香蕉九九操| 久久久久久久久久久97| 大香蕉人人人| 性爱五月丁香| www.jiujiujiu| 久久久婷婷五月亚洲97号色| 99色在线观看视频| 99超级碰碰| 久久五月天色婷婷| 久草五月婷婷| 国产色色在线| 亚洲avjiujiur91| 袁子仪视频观看| 狠色狠色狠狠色综合网| 成人小说 五月天 婷婷| 日韩AAA| 激情宗合网激情五月天| www激情五月天| 逼里香不卡| 日日杆天天| 激情五月婷黄版| 激情六月婷婷| 九九这里只有精品| 丰满老熟妇BBBBB搡BBB| 婷五月天影院| 热久69| 婷婷五月天久久| 五月开心婷婷中文字幕| 91视屏在线观看com.wwwvv| 视频这里只有精品16| 五月丁香婷婷啪啪综合网| 婷婷五月伦理网站| 色欲久久久久久综合网综合网| 国産精品| 成AV人片一区二区三区久久| 九九草草逼| 婷婷综合在线视频| 超碰精品在线| 五月婷婷久久网| 婷婷色色婷婷| 五月丁香激情综合| 色婷婷小视频| 久久婷婷激情| 亚洲男人的天堂婷婷色五月| 可以直接看的av| 99色综合| 狠狠狠狠狠狠草| 婷婷免费无马| 无码婷婷五月天| 天天插天天干| 亚洲亚洲人成综合网络| 丁香五月大香蕉AV| mmm1717.6dbm人人爱人人操| 99色亚洲| 婷婷五月天网| 91pornav在线| 插插插色综合网| 网站免费一站二站| 狠狠操狠狠| 九九性爱网| 激情五月综合六月丁香婷婷狠狠干| 99re这里| 北京熟妇搡BBBB搡BBBB| 日韩精品超碰在线观看| 99热精品综合| 色五月六月| 亚洲第二AV| 五月天六月天| 99精品久久久久久久婷婷| 亚洲国产精品成人午夜| 91九色在线| 色欲色香综合网| 丁香五月成人| 色综合色五月| 色婷婷久久综合久色综| 精品国产AV色一区二区深夜久久| 天堂久久精品| 五月叮香啪| 欧美日韩精品人妻狠狠躁免费视频| 婷婷五月色影视先锋| 狠狠色无码| 开心激情网五月天| 91视频五月丁香| 开心五月综合| 河北真实伦对白精彩脏话 | 99免费在线| 五月天婷婷综合色| 影音先锋xfplay资源男人网| 婷婷射丁香| 国产a视频| 九色色| 四LLL少妇BBBB槡BBBB| 色香蕉影院| A1片久久久| 啪啪五月综合| 成年人看Va免费视频| 精品国产乱码久久久久久免费| 开心五月婷婷激情| www.91操| 欧美色色色色色| 亚洲视频另类| 天天爽天天做| 依人大香蕉在钱1| 第四色婷婷色五月| 亚洲妇女熟BBW| 久久在这里有精品| 噜噜在线| 婷婷五月天视频小说| 婷婷成人五月天| 蜜桃婷婷五月| 五月婷婷综合网| 99这里只有免费的小视频在线观看| 色五月在线播放| 激情综合五月| www.婷婷六月天| 99色色热| 内射爽无广熟女亚洲| 五月婷婷开心爱| 国产精品扒开腿做爽爽爽A片唱戏| 99久热这里有精品| 五月婷视频| 综合五月亭亭9| 亚洲电影在线观看| 婷婷五月天色综合| 碰人人97| 97干在线播放| 色噜噜婷婷| 国产 码在线成人网站| 五月天亚洲最大成人| 国产露脸150部国语对白| 99爱免费在线视频| 色综合久久8| 性综合网| 人妻AV在线| 狠狠操天天干| AAA亚洲AV| 一区二区aV电影免费看| 激情五月天啪啪| 伊人久久婷婷| 三十熟女| 五月婷婷在线免费| 天天色天天射天天日| 99re8这里只有精品99re8热视频| 99色看这里只有精品| 5月丁香美女影院| 这里只有精品无码| 婷婷五月深情丁香深爱日韩| 欧美性猛交XXXX乱大交极品| 五月天色社区| 五月丁香狠狠爱| 双性美人被调教到喷水A片| 激情五月亚洲| 五月婷啪| se色婷婷视频| 另类精品视频在线观看| 天天做天天爱天天爽在| bukadeavzaixian| 狠狠狠狠狠狠狠狠| 五月天激情开心网| 最新色色五月天| 国产又爽又猛又粗的视频A片| 婷婷五月丁香基地| 亭亭玉立国色天香| 婷婷狠狠爱| 精品乱码久久久久| 综合久久六月| 只有精品视频在线观看| 1024久婷| 激情婷婷| 超碰99热精品| 欧洲高清免费久久| 亚洲黄色影视| 国产三级在线播放| 久久久97| 熟女网站久久| 婷婷六月色播| 99热99成人| 五月天色站| 国产精品第一国产精品| 九九色大香蕉| 99爱视频免费看| 色性综合| 三级毛片7979| 日本在线观看99| 爱射综合| 国产免费AV在线| 狠狠色噜噜色狠狠狠综合久久成人波 | 丁香五月色网| 五月六月激情| 操笔无码| 99ri在线观看视频| 日日噜噜久久婷婷五月天| 性做久久久久久久免费看| WWW99热| 婷婷五月情天| 五月在在观看| 性韩日色婷婷五月天激情啪啪XXX| 久热9热| 丁香五月天大香蕉啪啪| 婷婷久久网| 成人av在线电影| 日本五月婷婷| 岛国av电影网站| 亚洲综合色网站| 人人操99| 91欧美日韩综合| 超碰高清在线| 9热久久在线| www.lchjjc.com| 中文字幕日产A片在线看| www狠狠| 五月丁香久久久久| 五月精品| 五月天桃色深爱网| www五月天com| 另类综合婷婷五月天欧美视频| 激情久久天天| 五月丁香激情综合网官网| 丁香五月婷婷婷婷欧美综合| 97人人射| 五月五婷婷网| 怕怕視頻| 亚州激情网| 色婷婷内射| 26uuu淫色| 色必久悠悠影院| 亚洲第一色色色色| 激情五月婷婷欧美极品| 色色色视频免费无码| 激情综合五月激情| 三区激情四射av| 狠狠另类视频| 色色色.com| 五月花亭亭| 日屌日日操日日色| 亚洲这里只有精品| 欧美性色视频| 九色91国产| 丁香五月影院| 国产精品国产成人国产三级| 欧美顶级少妇做爰HD| 大香蕉综合视频在线| 婷婷丁香无码专区| 超碰成人影视| 91人人操人人看| 99热这里都是精品| 激情五月天丁香| 色9色| 99热色在线精品| 色狠狠婷婷| 狠狠久久婷五月| 午夜色婷婷| 精品成人在线| 色九综合| 九九热a| 五丁香激情综合| 五月婷婷网站| 天天操夜夜操| 婷婷五月天av| 亚洲精品一二三| 超碰色天堂| 九九亚洲视频| 激情五月色综合国产精品| 久久这里有精品视频| 久久婷网| 国产精品国产成人国产三级| 五月丁香 狠狠爱| 久久婷婷综合基地| www.99热视频在线观看| 夜夜操激情| 超碰在线视屏| 99视频这里有精品| 99热热热国产超碰| 五月激情六月| 久久金品黃色| 色噜噜综合网| www.玖玖婷婷在线| 99re在线视频精品,这里只有精品18,| 精品99网站| 五月丁香六月婷| 亚洲日韩一页精品发布| 伊人大香蕉综合在线| 亚洲五月天色| 婷婷涩涩五月天| 夜夜谢天天干| 丁香五月天亚洲综合| 99久久婷婷国产综合精品青桔 | 色色激情五月| 少妇人妻人伦A片| 欧美色图天堂网色| 婷婷五月天日日日干干干| 色你久久| 67久久| 五月丁香色婷婷婷基地| 色情婷婷五月天| 少妇性按摩无码中文A片| 东京热免费视频网站| www.婷婷五月天啪啪| 天堂中文国产| 天天婬色综合| 日本人妻丁香婷婷久久寝取熟女五月| 99热思思| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 狠狠色精品综合| 天天干 夜夜爽| 99碰碰中文| 九九操综合网| 亚洲色网络| 色蜜婷婷| 激情五月天www| 囯产精品久久欠久久久久久九大| 热99在线精品| 天天射色五月天| 香蕉AV福利精品导航| 中文字幕在线免费| 六月婷婷五月天| chaopengdaxiangjiao| 五月丁香六月在线欧美| 国产免费一区二区三区三州老师F1F1.CC| 免看黄大片AA | 91丨熟女丨首页| 91久热| 国产av基地| 五月婷婷在线免费| 日本色色视频| 99福利视频| 久久久国产精品黄毛片| 天天开心婷婷丁香五月| 亚洲精品亚洲人成人网| 97碰碰在线观看视频| 六月婷婷久久| 影音先锋男人av资源站| 色高清无码视频| 99精品在线| 色频玖玖五月天| 丁香六月五月天| 亚洲天堂热| 综合久久9| 综激情网| 色婷久久| 婷婷色网| 五月天伊人| 综合丁香婷婷五月天| 五月天色丁香| 久久亚洲A| 五月丁香六月婷综合成人综合| 久热99| 国产激情综合五月久久| 去干网av| 五月天激情小说网| 五月色婷婷影视在线电影| 蜜桃人妻无码AV天堂三区| 中文人妻主播久久| 欧美激情性做爰免费视频| 九月婷婷综合八月丁香在线观看| 日本久久99| 亚洲色情激情丁香五月| 婷婷色色亚洲| 九九色综合视频| 五月花激情网| 4399亚洲视频| 第四色婷婷日本| www.婷婷| 99re这里只有精品在线观看| 99ri6在线视频| 婷婷六月综合激情| 五月丁香激情婷婷| 丁香六月欧美| 五月天综合区| 丁香婷婷久久五月天| 婷婷六月天激情| 99在线资源| 久久性爱视频网站| 婷婷综合成人五月天| 思思热99er| 激情九九六月激情免费视频| 国产亚洲99久久精品| 色色国产| 久久久久er热| 99久久99九九九99九他书对| a网站免费观看| 久久久精品人妻录| 六月丁香六月婷婷欧美| 99热思思| 色偷偷狠狠| 久久丁香五月| 国产精品18久久久| 91wwmm导航| 久激情网| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 色女人久久| 亚洲第一色色色| av人人操| 亚洲五月天婷婷| 26uuu欧美激情另类| 99久久玖玖| 狠狠色综合网| 热99AV网站| www.婷婷| 国模狼狼| 开心激情五月天网| 天天射夜夜骑| 久久99久久99精品免视看婷| 国产性av| AAA久久| A久网| 丁香婷婷六月婷婷六月婷婷六月婷婷| 久久综合五月天激情小说网站| 任你搞网站| 五月丁香婷中文字幕 | 伊人久久婷婷五月天激情四射| 六月丁香婷婷大香蕉| 婷婷五月天视频| 色五月丁香五月| 五月天婷婷在线观看精品男人| www:99热视频| 少妇2做爰HD韩国电影| 玖玖午夜视频| 久久久精久人妻| 色噜噜狠狠色综合无码久久欧美| 精品自拍99| 国产精品美女久久久久AV超清| 五月天激情网站| 99这里只有精品在线观看| 武则天精品久久| 涩涩激情五月婷婷| 丁香五月成人| 超碰人人操人人干| 婷婷五月天欧美| 激情小说五月天中文字幕| 日本婷久久| 9999热精品| 人妻第九页| www.婷婷| 色综合com| 99热只有| 色狠狠综合入口| 色色丁香五月婷婷| 99这里只有精品视频免费| 欧美天天搞| 九九久久腿| 日本人人超碰| 久久人妻精品| 99热精品无码| 4399在线日本A片| 久热只有精品| 婷婷丁香色情五月天| Jh7Uf088VHafNm| 热99视频精品| 人妻久久久久久久久妻久久久久久久久| 五月天社区婷婷丁香社区| 久久99免费视频网站| 中文字幕无线久必| 亚洲中文字幕在线观看| 五月丁香在线| 丁香六月情| 丁香成人五月天| 97碰超级人人看| 超碰97干| 六月婷婷av| 玖玖色综合网| 五月激情综合网| 亚洲av网站| 久热综合| 色综合久久久久| 五月天激情亚洲| 无码任你操| 成功精品影院| 久久ww| 欧美黑人巨大性生话| 丰满老熟妇BBBBB搡BBB| 天天做天天爽| 久久99国产综合精品免费| 婷婷激情五月| 精品婷婷五月视| 丁香婷婷免费| 激情综合五月.....| 夜夜天天久久婷婷| 69五月天视频| 婷婷五月天亚洲综合网| 都市激情小说婷婷| 日夜夜久久| 色亚洲激情| 五月天丁香婷婷社区| 久久女人天堂| 色综合色色色| 五月激情综合网| 99丁香婷婷综合网| 性爱技巧五月| 亚洲婷婷丁香五月| 国产成人AV在线播放| 天天摸天天肏| 亚洲在线激情婷婷五月| 99热这里有精品24| 五月开心深爱激情网| 五月天六月婷婷| ww久久| 丁香五月电影| 九九色婷婷五月天| 亚洲AV永久无码影院黑人| 激情爱爱网站超大免费| 婷婷综合久久| 26uuu国产精品| 五月天综合激情网| 五月天婷婷网站888| 久久人人看| 综合五月激情| 影音先锋一区| 久久五月丁香激情综合| 亚洲五月色| 丁香五月综合婷婷| 乱精品一区字幕二区| 成片免费观看大全| 五月丁香久久综合| 丁香五月激情月| 激情五月婷| 狠狠色丁香| 大香久久伊人网| 五六月婷婷| 五月伊人婷婷| 怡红院视频| 丁香五月 性爱| 97色干| 91久久婷婷人人澡草| 亚洲综合色色| 色五月丁香五| 91碰| 婷婷五月噜噜| 99这里只有精品|v| 丁香婷婷五月综合欧美另类| www色色com| 天堂草在线看www| 开心激情婷婷| 99啪在线视频| 五月激情婷婷开心五月| 色噜噜狠噜噜视频| 亚洲熟妇AV乱码在线观看| 久久婷婷夜| 另类小说婷婷色| 热九九精品| 亚洲成人av在线观看| 六月五月丁香五月欧美| 99热国产免费| 又大又粗九一在线| 大香蕉五月天| 婷婷天天婷婷天天澡| 桃色五月天| 婷婷五月天奸女| 五月丁查人人| 中文字幕精品无码一区二区| 亚洲不卡| 色婷婷小说网| 九九爱激情| 欧美日韩AAAAA| 欧美大香蕉视频| 9l视频自拍九色9l黑人| 亚洲在线激情婷婷五月| 99久久久免费| 4399欧美另类视频| 这里只有精品视频在线看| 欧美日韩91| 大香网伊人久久综合| 天天做天天爱| 琪琪狠狠干| 极品人妻videosss人妻| 五月天婷婷小说| 99日本在线| 99色热视频在线| 狠狠色噜噜色狠狠狠综合色 | 婷婷五月中文字幕国产| 99热99在线| 久久XX| 在线看片av| 99热日| 天天艹夜夜艹| 玖玖玖婷婷婷| 色色COm| 亞洲自怕| 激情五月,深深爱五月| 国产又爽又猛又粗的视频A片| 色综合色婷婷色伊人| 99这里只有精品|v| 高清视频一区| 久久9视频| 婷婷免费无马| 久久伦乱| 成人五月天丁香婷| 五月天婷婷綜合院| 亚洲综合一区二区| www.色五月| 五月婷婷日| 色欲久久久久久综合网综合网| 小泽玛利亚视频一区二区| 综合网亚洲| 色综合香蕉| 色五月成人| 91超级碰在线视频| 日本操碰碰| 亚洲精品99| 欧美性爱五月天| 色亭亭五月天网扯| av中文字幕免费观看|