資料介紹
描述
Small Intro
在這個(gè)項(xiàng)目中,我 使用OpenCV和Raspberry pi設(shè)計(jì)了一個(gè)車道跟隨機(jī)器人。

Step 1 : Importing Libraries
首先我們導(dǎo)入 OpenCV、Numpy、數(shù)學(xué)和串行庫(kù)。
import cv2
import numpy as np
import math
import serial
Step 2 : Read Image from your directory
image = cv2.imread(r'C:\Users\aasai\Desktop\new1.jpeg')

Step 3 : Color Conversion
將我們的 BGR 圖像轉(zhuǎn)換為灰色。灰度圖像僅包含 [0-255] 范圍內(nèi)的值。
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

Step 4 : Image Smoothing
圖像模糊/平滑圖像平滑以減少噪點(diǎn)。它是在各種低通濾波器內(nèi)核的幫助下完成的。這里我們使用了高斯核。了解更多關(guān)于不同內(nèi)核的信息。點(diǎn)擊這里
# given input image, kernel width =5 height = 5, Gaussian kernel standard deviation
k_width = 5
k_height = 5
blurred = cv2.GaussianBlur(gray, (k_width, k_height), 0)

Step 5 : Edge Detection
Canny邊緣檢測(cè)算法是一種流行的邊緣檢測(cè)算法,用于檢測(cè)圖像中的邊緣。為了保留圖像中的高梯度值,我們選擇低閾值和高閾值。這將幫助我們保留圖像中的強(qiáng)邊緣。
# Find the edges in the image using canny detector
threshold1 = 80
threshold2 = 80
edged = cv2.Canny(blurred, threshold1, threshold2)

Step 6 : Find Lines
霍夫變換是一種特征提取方法,用于檢測(cè)圖像中的簡(jiǎn)單形狀,如圓形、線條等。在這里,您可以了解更多相關(guān)信息。
# it will return line coordinates,it will return 3darray.
lines = cv2.HoughLinesP(edged,1,np.pi/180,max_slider,minLineLength,maxLineGap)
for x in range(0, len(lines)):
for x1,y1,x2,y2 in lines[x]:
# draw line in image using cv2.line function.
cv2.line(image,(x1,y1),(x2,y2),(255,0,0),3)
theta=theta+math.atan2((y2-y1),(x2-x1))
print(theta)
About theta calculation:
atan2() 函數(shù)以弧度為單位返回值,表示 -pi 和 pi 之間的值,表示 (x, y) 點(diǎn)與正 x 軸的角度 theta。


您可以使用這行代碼獲取第一行的坐標(biāo)。
for x1,y1,x2,y2 in lines[0]:

Step 7 : Decision Making Part
現(xiàn)在,我們要設(shè)置閾值,根據(jù)閾值和θ值之間的差異,我們將向arduino發(fā)送命令以驅(qū)動(dòng)特定方向的電機(jī)。
threshold=5
if(theta>threshold):
print("Go left")
if(theta<-threshold):
print("Go right")
if(abs(theta)<threshold):
print("Go straight")
Step 8 : Integrate

Arduino Code :
Arduino將從 Raspberry Pi 串行端口接收命令。
// assign pin num
int right_pin = 12;
int left_pin = 13;
int const ENA = 10;
int const ENB = 11;
// initial command
int command = 0;
void setup()
{
pinMode(right_pin, OUTPUT);
pinMode(left_pin, OUTPUT);
pinMode(ENA, OUTPUT); // set all the motor control pins to outputs
pinMode(ENB, OUTPUT);
Serial.begin(115200);
while (!Serial);
Serial.println("Opencv Lane Detect Autonomous Robot");
}
void loop() {
if (Serial.available())
{
//int state = Serial.parseInt();
int state = Serial.read();
if (state == 4)
{
digitalWrite(left_pin, LOW);
digitalWrite(right_pin, HIGH);
digitalWrite(ENA, HIGH);
digitalWrite(ENB, HIGH);
Serial.println("Left");
}
if (state == 2)
{
digitalWrite(left_pin, LOW);
digitalWrite(right_pin, LOW);
digitalWrite(ENA, HIGH);
digitalWrite(ENB, HIGH);
Serial.println("Right");
Serial.println("Reverse");
}
if (state == 3)
{
digitalWrite(left_pin, HIGH);
digitalWrite(right_pin, LOW);
digitalWrite(ENA, HIGH);
digitalWrite(ENB, HIGH);
Serial.println("Right");
}
if (state == 1)
{
digitalWrite(left_pin, HIGH);
digitalWrite(right_pin, HIGH);
digitalWrite(ENA, HIGH);
digitalWrite(ENB, HIGH);
Serial.println("Forward");
}
if (state == 5)
{
digitalWrite(left_pin, LOW);
digitalWrite(right_pin, LOW);
digitalWrite(ENA, LOW);
digitalWrite(ENB, LOW);
Serial.println("Stop");
}
}
}

?
感謝信
感謝OpenCV Python 文檔。
Thanks閱讀這個(gè)項(xiàng)目。希望這個(gè)項(xiàng)目能給你一些關(guān)于 OpenCV Lane Follow 機(jī)器人的見解,你可以按照給定的步驟做同樣的事情。
我在沉默中努力工作,我的機(jī)器人制造噪音。

?
- DIY簡(jiǎn)單的線跟隨機(jī)器人
- 基于Arduino Nano的PID線路跟隨機(jī)器人 2次下載
- 基于PID的線跟隨機(jī)器人
- 線跟隨機(jī)器人開源硬件
- 使用TI RSLK MAX構(gòu)建聲音跟隨機(jī)器人
- 使用Pico的線跟隨機(jī)器人
- PID控制線跟隨機(jī)器人
- 人類跟隨機(jī)器人v2.0開源分享
- 如何制作Arduino人類跟隨機(jī)器人
- 帶有PID控制的線跟隨機(jī)器人
- 最簡(jiǎn)單的線跟隨機(jī)器人
- 物體跟隨機(jī)器人開源分享
- 如何使用Arduino制作跟隨機(jī)器人
- 人類跟隨機(jī)器人開源分享
- 線跟隨機(jī)器人開源項(xiàng)目
- 工業(yè)機(jī)器人與協(xié)作機(jī)器人概念不同 807次閱讀
- 一個(gè)簡(jiǎn)單的線路跟隨器機(jī)器人電路 3.2k次閱讀
- 基于ATmega16構(gòu)建的線跟隨機(jī)器人的完整電路圖 3.1k次閱讀
- 基于使用Arduino板及電機(jī)驅(qū)動(dòng)器對(duì)機(jī)器人進(jìn)行編程介紹 4.5k次閱讀
- 面對(duì)疫情 醫(yī)療機(jī)器人能幫上什么忙? 3.2k次閱讀
- 醫(yī)用機(jī)器人的定義_醫(yī)用機(jī)器人發(fā)展 4.7k次閱讀
- 醫(yī)用機(jī)器人的功能_醫(yī)用機(jī)器人分類 4.2k次閱讀
- 智能跟隨系統(tǒng)應(yīng)用領(lǐng)域和功能介紹 6.6k次閱讀
- 協(xié)作機(jī)器人的起源_為什么需要協(xié)作機(jī)器人 9.1k次閱讀
- 如何區(qū)分機(jī)器人、協(xié)作機(jī)器人和移動(dòng)機(jī)器人? 7.7k次閱讀
- 工業(yè)機(jī)器人結(jié)構(gòu)、驅(qū)動(dòng)及技術(shù)指標(biāo)詳解 3.7k次閱讀
- 基于PLC的機(jī)器人伺服運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)詳解 1.7w次閱讀
- 軟體機(jī)器人 前所未見的機(jī)器人 4.1k次閱讀
- 機(jī)器人的最佳編程語(yǔ)言是什么?機(jī)器人十大流行編程語(yǔ)言匯總 3.6w次閱讀
- 智能機(jī)器人的三大關(guān)鍵技術(shù)詳解 3.3w次閱讀
下載排行
本周
- 1矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書 Datasheet 佰祥電子
- 1.12 MB | 5次下載 | 免費(fèi)
- 2HT81696H 內(nèi)置升壓的30W立體聲D類音頻功放數(shù)據(jù)手冊(cè)
- 1.21 MB | 1次下載 | 免費(fèi)
- 3HTA6863 3W超低噪聲超低功耗單聲道D類音頻功率放大器數(shù)據(jù)手冊(cè)
- 0.87 MB | 次下載 | 免費(fèi)
- 4南芯 Southchip SC8802C 充電控制器 規(guī)格書 Datasheet 佰祥電子
- 88.16 KB | 次下載 | 免費(fèi)
- 5矽力杰 Silergy SY7065 同步升壓轉(zhuǎn)換器 規(guī)格書 Datasheet 佰祥電子
- 910.67 KB | 次下載 | 免費(fèi)
- 6矽力杰 Silergy SY7066 同步升壓轉(zhuǎn)換器 規(guī)格書 Datasheet 佰祥電子
- 989.14 KB | 次下載 | 免費(fèi)
- 7WD6208A產(chǎn)品規(guī)格書
- 631.24 KB | 次下載 | 免費(fèi)
- 8NB685 26 V,12 A,低靜態(tài)電流,大電流 同步降壓變換器數(shù)據(jù)手冊(cè)
- 1.64 MB | 次下載 | 2 積分
本月
- 1EMC PCB設(shè)計(jì)總結(jié)
- 0.33 MB | 12次下載 | 免費(fèi)
- 2PD取電芯片 ECP5702規(guī)格書
- 0.88 MB | 5次下載 | 免費(fèi)
- 3矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書 Datasheet 佰祥電子
- 1.12 MB | 5次下載 | 免費(fèi)
- 4氮化鎵GaN FET/GaN HEMT 功率驅(qū)動(dòng)電路選型表
- 0.10 MB | 3次下載 | 免費(fèi)
- 5PD取電芯片,可取5/9/12/15/20V電壓ECP5702數(shù)據(jù)手冊(cè)
- 0.88 MB | 3次下載 | 免費(fèi)
- 6SY50655 用于高輸入電壓應(yīng)用的偽固定頻率SSR反激式穩(wěn)壓器英文資料
- 1.01 MB | 3次下載 | 免費(fèi)
- 7怎么為半導(dǎo)體測(cè)試儀選擇精密放大器
- 0.65 MB | 2次下載 | 免費(fèi)
- 8SY52341 次級(jí)側(cè)同步整流英文手冊(cè)
- 0.94 MB | 2次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233095次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191469次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183360次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81606次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73832次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論