当前位置: 首页 > news >正文

大型门户网站建设方案搭建一个网站需要哪些技术

大型门户网站建设方案,搭建一个网站需要哪些技术,百度学术官网首页,全球十大室内设计公司排名榜有了前面颜色识别跟踪的基础之后#xff0c;我们就可以设定颜色路径#xff0c;让无人车沿着指定线路做自动驾驶了#xff0c;视频#xff1a;PID控制无人车自动驾驶 有了前几章的知识铺垫#xff0c;就比较简单了#xff0c;也是属于颜色识别的一种应用#xff0c;主要…有了前面颜色识别跟踪的基础之后我们就可以设定颜色路径让无人车沿着指定线路做自动驾驶了视频PID控制无人车自动驾驶 有了前几章的知识铺垫就比较简单了也是属于颜色识别的一种应用主要是掌握自动驾驶中的一些基础知识这样就可以进一步去了解在无人驾驶当中遇到的各种问题 1、导入库并初始化 from jetbotmini import Camera from jetbotmini import bgr8_to_jpeg from IPython.display import display from jetbotmini import Robot import numpy as np import torch import torchvision import cv2 import traitlets import ipywidgets.widgets as widgets import numpy as np#初始化摄像头 camera Camera.instance(width300, height300) #初始化机器人马达 robot Robot()#使用PID控制 import PIDturn_gain 1.7 turn_gain_pid PID.PositionalPID(0.15, 0, 0.05) 这部分很简单依然是初始化摄像头用来颜色识别机器人也叫马达用来驱动轮子的运动加一个PID控制让无人车更加的平稳。 2、显示部件 # 红色数组 color_lowernp.array([156,43,46]) color_upper np.array([180, 255, 255])image_widget widgets.Image(formatjpeg, width300, height300) speed_widget widgets.FloatSlider(value0.4, min0.0, max1.0, descriptionspeed)display(widgets.VBox([widgets.HBox([image_widget]),speed_widget, ]))width int(image_widget.width) height int(image_widget.height)def execute(change):global turn_gaintarget_value_speed 0#更新图片值frame camera.valueframe cv2.resize(frame, (300, 300))frame cv2.GaussianBlur(frame,(5,5),0) hsv cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)maskcv2.inRange(hsv,color_lower,color_upper) maskcv2.erode(mask,None,iterations2)maskcv2.dilate(mask,None,iterations2)maskcv2.GaussianBlur(mask,(3,3),0) cntscv2.findContours(mask.copy(),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)[-2] # 检测到目标if len(cnts)0:cnt max (cnts,keycv2.contourArea)(color_x,color_y),color_radiuscv2.minEnclosingCircle(cnt)if color_radius 10:# 将检测到的颜色标记出来cv2.circle(frame,(int(color_x),int(color_y)),int(color_radius),(255,0,255),2) # 中心偏移量center (150 - color_x)/150#转向增益PID调节turn_gain_pid.SystemOutput centerturn_gain_pid.SetStepSignal(0)turn_gain_pid.SetInertiaTime(0.2, 0.1)#将转向增益限制在有效范围内target_value_turn_gain 0.15 abs(turn_gain_pid.SystemOutput)if target_value_turn_gain 0:target_value_turn_gain 0elif target_value_turn_gain 2:target_value_turn_gain 2#将输出电机速度保持在有效行驶范围内target_value_speedl speed_widget.value - target_value_turn_gain * centertarget_value_speedr speed_widget.value target_value_turn_gain * centerif target_value_speedl0.3:target_value_speedl0elif target_value_speedl1:target_value_speedl 1if target_value_speedr0.3:target_value_speedr0elif target_value_speedr1:target_value_speedr 1#设置马达速度robot.set_motors(target_value_speedl, target_value_speedr)# 没有检测到目标else:robot.stop()# 更新图像显示至小部件image_widget.value bgr8_to_jpeg(frame)这里是关键部分检测目标这里是红颜色然后通过其检测的位置来控制左右马达的速度驱动无人车的行驶与转弯后台通过图像部件来显示无人车的跟踪情况方便看到无人车在整个行驶过程中的各种状态。 3、调用并执行 execute({new: camera.value}) camera.unobserve_all() camera.observe(execute, namesvalue) 这里就是前面介绍的通过调用observer方法来更新摄像头的数据使用的是一个上面定义的execute的一个回调方法。 4、停止无人车 import time camera.unobserve_all() time.sleep(1.0) robot.stop() 5、倒车 前面介绍的是向前行驶和转弯还缺少一个能倒车的功能恩很简单调用backward函数即可 robot.backward(0.8) time.sleep(0.5) robot.stop() 6、调节颜色数组 我这里是用红色的胶带粘贴在地板上所以使用的是红色的数组当然这里我们可以显示mask来测试颜色数组是否设置的比较恰当代码如下 from matplotlib import pyplot as plt %matplotlib inline from IPython import displayfor i in range(10):frame camera.valueframe cv2.resize(frame, (300, 300))frame_cv2.GaussianBlur(frame,(5,5),0) hsvcv2.cvtColor(frame,cv2.COLOR_BGR2HSV)maskcv2.inRange(hsv,color_lower,color_upper) # 颜色数组的取值范围maskcv2.erode(mask,None,iterations2)maskcv2.dilate(mask,None,iterations2)maskcv2.GaussianBlur(mask,(3,3),0) plt.imshow(mask)plt.show()#display.clear_output(waitTrue) 这里我将display.clear_output(waitTrue)注释将会连续生成10张图片全部在Jupyter中展示出来。我们也可以去掉注释这样每次的生成将会清除上一次的图片这样便于更好地观察。10张连续图片也做成了动图便于大家了解 如果这里没有出现mask或者比较少的情况就需要调节颜色数组让其更好地匹配线路。 7、模拟方向盘 有些时候不想要自动驾驶来控制而且很多场景更需要人来远程控制比如在矿山等危险地方最好的方法就是能够远程去控制工程车去进行作业。 有了上面的向前向后和转弯的了解后我们就可以制作一个模拟方向盘来控制无人车了。 7.1、按钮部件 # 创建按钮 button_layout widgets.Layout(width100px, height80px, align_selfcenter) stop_button widgets.Button(description停止, button_styledanger, layoutbutton_layout) forward_button widgets.Button(description向前, layoutbutton_layout) backward_button widgets.Button(description向后, layoutbutton_layout) left_button widgets.Button(description向左, layoutbutton_layout) right_button widgets.Button(description向右, layoutbutton_layout)# 显示按钮 middle_box widgets.HBox([left_button, stop_button, right_button], layoutwidgets.Layout(align_selfcenter)) controls_box widgets.VBox([forward_button, middle_box, backward_button]) display(controls_box) 如图 方向盘的布局通过widgets.Layout创建层在这个上面通过widgets.Button创建按钮然后将按钮通过widgets.HBox和widgets.VBox进行横向和垂直的排版即可。Horizontal水平的横向。Vertical垂直的 7.2、方向控制方法 def stop(change):robot.stop()def step_forward(change):robot.forward(0.8)time.sleep(0.5)robot.stop()def step_backward(change):robot.backward(0.8)time.sleep(0.5)robot.stop()def step_left(change):robot.left(0.6)time.sleep(0.5)robot.stop()def step_right(change):robot.right(0.6)time.sleep(0.5)robot.stop() 前后左右加停止按钮的方法方法体很简单就是控制左右马达的速度。 7.3、按钮动作 定义好了各自方法之后只需要将方法绑定到各自的按钮就可以了。 stop_button.on_click(stop) forward_button.on_click(step_forward) backward_button.on_click(step_backward) left_button.on_click(step_left) right_button.on_click(step_right) 这样就可以点击按钮远程控制无人车了。 8、心跳开关 最后就是介绍下心跳开关检测无人车与浏览器的连接是否还存在的一种简单方法。可以通过下面显示的滑块调整心跳周期以秒为单位如果两次心跳之内不能在浏览器之间往返通信的那么心跳的status状态属性值将会设置为dead一旦连接恢复连接status属性将设置为alive from jetbotmini import Heartbeatheartbeat Heartbeat()# 这个函数将在心跳状态改变时被调用 def handle_heartbeat_status(change):if change[new] Heartbeat.Status.dead:robot.stop()heartbeat.observe(handle_heartbeat_status, namesstatus)period_slider widgets.FloatSlider(descriptionperiod, min0.001, max0.5, step0.01, value0.5) traitlets.dlink((period_slider, value), (heartbeat, period))display(period_slider, heartbeat.pulseout) 自动驾驶的相关知识点介绍完毕有错误之处请指正一起学习与进步
http://www.yutouwan.com/news/141140/

相关文章:

  • 北京哪个网站建设最好wordpress调用排序从大到小
  • 门户网站建设评标办法数据分析师培训机构推荐
  • iis网站的建设网站建设 小白
  • 企业建站模板装修公司需要多少钱
  • 电子商务网站建设需求表成都展示型网页开发公司
  • 做网站还有用图片生成二维码
  • 做的好看的统一登录网站查询网站怎么做的
  • 怎么在主机上的建设网站微科技h5制作网站模板下载
  • 网站不续费wordpress 去广告
  • 企业如何创建网站比较有创意的互动h5
  • 苏州企业网站建设公司在虚拟主机上安装wordpress
  • 番禺龙美村做网站深圳市宝安区邮政编码多少
  • 如何在网盘上做网站百度云搜索引擎搜索
  • 做网站黑吃黑定什么罪公众号如何推广产品
  • 网站建设教学设计泰安做网站建设的
  • 长沙建个网站一般需要多少钱网页广告弹窗怎么屏蔽
  • 网站建设 广告科技创新作文
  • 天津建设集团网站新开传奇新服网手机版
  • 做图的网站网站建设招标书技术介绍
  • 江西网站建设推广怎么做网站管理系统
  • 大芬地铁站附近做网站深圳网上注册公司流程图
  • 重庆网站建设方案详细方案大良网站建设服务
  • 无锡网站建设系统常州网站建设团队
  • 网站技术策划内容企业站seo点击软件
  • 建设部评职称网站互联网项目网站
  • 如何自己建一个网站密云城市建设官方网站
  • php网站设计tengine wordpress
  • 万全孔家庄做网站如何维护企业电子商务网站建设
  • wordpress搬站skr搜索引擎入口
  • 在线图片编辑网站源码怎么用php自己做网站