资料介绍
描述
Small Intro
在这个项目中,我 使用OpenCV和Raspberry pi设计了一个车道跟随机器人。
Step 1 : Importing Libraries
首先我们导入 OpenCV、Numpy、数学和串行库。
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 图像转换为灰色。灰度图像仅包含 [0-255] 范围内的值。
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
Step 4 : Image Smoothing
图像模糊/平滑图像平滑以减少噪点。它是在各种低通滤波器内核的帮助下完成的。这里我们使用了高斯核。了解更多关于不同内核的信息。点击这里
# 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边缘检测算法是一种流行的边缘检测算法,用于检测图像中的边缘。为了保留图像中的高梯度值,我们选择低阈值和高阈值。这将帮助我们保留图像中的强边缘。
# Find the edges in the image using canny detector
threshold1 = 80
threshold2 = 80
edged = cv2.Canny(blurred, threshold1, threshold2)
Step 6 : Find Lines
霍夫变换是一种特征提取方法,用于检测图像中的简单形状,如圆形、线条等。在这里,您可以了解更多相关信息。
# 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() 函数以弧度为单位返回值,表示 -pi 和 pi 之间的值,表示 (x, y) 点与正 x 轴的角度 theta。
您可以使用这行代码获取第一行的坐标。
for x1,y1,x2,y2 in lines[0]:
Step 7 : Decision Making Part
现在,我们要设置阈值,根据阈值和θ值之间的差异,我们将向arduino发送命令以驱动特定方向的电机。
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
阅读这个项目。希望这个项目能给你一些关于 OpenCV Lane Follow 机器人的见解,你可以按照给定的步骤做同样的事情。
我在沉默中努力工作,我的机器人制造噪音。
- DIY简单的线跟随机器人
- 基于Arduino Nano的PID线路跟随机器人 2次下载
- 基于PID的线跟随机器人
- 线跟随机器人开源硬件
- 使用TI RSLK MAX构建声音跟随机器人
- 使用Pico的线跟随机器人
- PID控制线跟随机器人
- 人类跟随机器人v2.0开源分享
- 如何制作Arduino人类跟随机器人
- 带有PID控制的线跟随机器人
- 最简单的线跟随机器人
- 物体跟随机器人开源分享
- 如何使用Arduino制作跟随机器人
- 人类跟随机器人开源分享
- 线跟随机器人开源项目
- 一个简单的线路跟随器机器人电路 1812次阅读
- 基于ATmega16构建的线跟随机器人的完整电路图 1789次阅读
- 基于使用Arduino板及电机驱动器对机器人进行编程介绍 3660次阅读
- 面对疫情 医疗机器人能帮上什么忙? 2126次阅读
- 工业机器人编程入门_工业机器人的编程要求 9571次阅读
- 医用机器人的定义_医用机器人发展 3122次阅读
- 医用机器人的功能_医用机器人分类 2227次阅读
- 智能跟随系统应用领域和功能介绍 5317次阅读
- 协作机器人的起源_为什么需要协作机器人 8127次阅读
- 如何区分机器人、协作机器人和移动机器人? 6828次阅读
- 工业机器人结构、驱动及技术指标详解 3051次阅读
- 基于PLC的机器人伺服运动控制系统设计详解 1.5w次阅读
- 软体机器人 前所未见的机器人 3692次阅读
- 机器人的最佳编程语言是什么?机器人十大流行编程语言汇总 3.4w次阅读
- 智能机器人的三大关键技术详解 3.2w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多