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

wordpress关键词工具seo网站培训

wordpress关键词工具,seo网站培训,烟台市科技局网站,广东省广州市白云区钟落潭镇目录 一、前言二、一个客户端的简单实现2.1 首先定义一个类及属性2.2 其次定义连接方法2.3 定义一些回调函数2.4 定义发送小车指令方法2.5 定义一个正常关闭方法 三、python编程控制小车的demo实现四、小结PS.扩展阅读ps1.六自由度机器人相关文章资源ps2.四轴机器相关文章资源p…

目录

  • 一、前言
  • 二、一个客户端的简单实现
    • 2.1 首先定义一个类及属性
    • 2.2 其次定义连接方法
    • 2.3 定义一些回调函数
    • 2.4 定义发送小车指令方法
    • 2.5 定义一个正常关闭方法
  • 三、python编程控制小车的demo实现
  • 四、小结
  • PS.扩展阅读
    • ps1.六自由度机器人相关文章资源
    • ps2.四轴机器相关文章资源
    • ps3.移动小车相关文章资源
    • ps3.wifi小车控制相关文章资源

一、前言

前一篇博文python机器人编程——用手机web远程视频监控并控制小车驾驶(中篇真机实现)我们实现了手机远程操控小车:
在这里插入图片描述
同样的,由于我们的小车通讯用的时通用的websocket,我们可以用python也能操控小车。下面是客户端的实现及demo示例。

二、一个客户端的简单实现

我们小车实现了简单的控制接收指令,格式是json的。指令如下:

{               'stop': 0,               'allcontrl': 0,'vleft': 0,'vright': 0,   'track': 0}

针对这个指令,我们实现一个websocket客户端,并实现连接、发送心跳、断了自动重新连接等功能。
我们依赖一个库websocket-client实现:

pip install websocket-client

2.1 首先定义一个类及属性

import websocket
import threading
import time
import json
class CarClient:def __init__(self, ip="localhost"):self.ws = Noneself.connected = False self.ip = ip       self.ping_interval = 2  # Ping interval in seconds# Define control commandsself.cmd = {               'stop': 0,               'allcontrl': 0,'vleft': 0,'vright': 0,   'track': 0}self.isSelfClose=Falseself.attempts=0

以上属性包括ip,为小车的远程ip地址。self.attempts为断开连接后尝试重连的次数。

2.2 其次定义连接方法

这里我们通过开启一个新线程实现连接:

    def connect(self):self.ws = websocket.WebSocketApp("ws://" + self.ip + ":9000/ws",on_open=self.on_open,on_message=self.on_message,on_error=self.on_error,on_close=self.on_close)wst = threading.Thread(target=self.ws.run_forever)wst.daemon = Truewst.start()

2.3 定义一些回调函数

主要定义一个on_open,连接后发送心跳包,这里简单的是"ping",发送间隔为2秒。

def on_open(self, ws):print("WebSocket connection opened")self.connected = Trueself.isSelfClose=Falseself.attempts=0self.start_pinger()  # Start the pinger when the connection is openeddef start_pinger(self):# Define a function to send pingdef ping():while self.connected:if self.ws.sock is not None:self.ws.send("ping")print("Sent ping")time.sleep(self.ping_interval)threading.Thread(target=ping).start()

定义异常断开后重连机制:

    def on_close(self, ws, close_status_code, close_msg):print("WebSocket connection closed")self.connected = Falseif self.isSelfClose:returnif self.attempts!=0:returnself.reconnect()def reconnect(self, max_attempts=5):self.attempts = 0while self.attempts < max_attempts and not self.connected:print(f"Attempting to reconnect... (Attempt {self.attempts + 1}/{max_attempts})")try:self.connect()if self.connected:print("Successfully reconnected")breakexcept:print("Reconnection failed")self.attempts += 1time.sleep(2)  # Wait for 2 seconds before next attemptif not self.connected:print("Failed to reconnect after maximum attempts")

2.4 定义发送小车指令方法

定义一个send方法,用于发送左右轮速度及停止指令:

    def send(self, vl, vr, istop=0):if not self.connected:print("WebSocket is not connected. Cannot send message.")return        self.cmd['vleft'] = vlself.cmd['vright'] = vrself.cmd['stop'] = istop        message = json.dumps(self.cmd)self.ws.send(message)print(f"Sent message: {message}")

2.5 定义一个正常关闭方法

    def close(self):if self.ws and self.ws.sock is not None:self.isSelfClose=Trueself.attempts=0self.ws.close()print("WebSocket connection closed manually")self.connected = False

至此,完成了一个远程控制客户端的类。

三、python编程控制小车的demo实现

有了以上的客户端类,我们就可以导入这个类,然后对小车进行控制了,示例程序如下:

# -*- coding: utf-8 -*-
"""
Created on Sat Oct 19 13:02:10 2024@author: JAMES FEI
python API 使用实例
第一步:打开小车的.exe文件,进入运行状态
第二步:打开全局控制开关、打开远程控制开关
第三步: 进入下面编程:
"""
import time
#(1)导入客户端模块
from CarClient import CarClient
#(2)实例化一个类,ip根据小车界面获取,同一个机器为localhost
car=CarClient(ip="localhost")
#(3)连接小车
car.connect()
#(4)等待连接完成
time.sleep(2)
#(5)设置左右轮速度为 10,10 r/min
car.send(10,10)
# (6) 行走运行2秒钟
time.sleep(3)
#(7)慢慢停下来,速度为 0,0 r/min
for i in range(6):time.sleep(0.5)    car.send(10-i*2,10-i*2)

具体操作见以下视频:

无线小车的python的API开发示例

四、小结

小车使用通用websocket的好处是可以进行多语言跨平台的交互,在网络满足实时性的基础上,可以方便的进行二次开发。websocket既可以用html实现,也可以用python等其它语言进行接口实现。这样就有利于掌握不同语言技能的人进行应用扩展。

[------------本篇完-------------]

PS.扩展阅读

————————————————————————————————————————

对于python机器人编程感兴趣的小伙伴,可以进入如下链接阅读相关咨询

ps1.六自由度机器人相关文章资源

(1) 对六自由度机械臂的运动控制及python实现(附源码)
在这里插入图片描述

(2) N轴机械臂的MDH正向建模,及python算法
在这里插入图片描述

ps2.四轴机器相关文章资源

(1) 文章:python机器人编程——用python实现一个写字机器人
在这里插入图片描述

在这里插入图片描述

(2)python机器人实战——0到1创建一个自动是色块机器人项目-CSDN直播

(3)博文《我从0开始搭建了一个色块自动抓取机器人,并实现了大模型的接入和语音控制-(上基础篇)》的vrep基础环境
(3)博文《我从0开始搭建了一个色块自动抓取机器人,并实现了大模型的接入和语音控制-(上基础篇)》的vrep基础环境
(4)实现了语音输入+大模型指令解析+机器视觉+机械臂流程打通
在这里插入图片描述
在这里插入图片描述

ps3.移动小车相关文章资源

(1)python做了一个极简的栅格地图行走机器人,到底能干啥?[第五弹]——解锁蒙特卡洛定位功能-CSDN博客
(2) 对应python资源:源码地址
在这里插入图片描述
在这里插入图片描述

(3)python机器人编程——差速AGV机器、基于视觉和预测控制的循迹、自动行驶(上篇)_agv编程-CSDN博客
(4)python机器人编程——差速AGV机器、基于视觉和预测控制的循迹、自动行驶(下篇)_agv路线规划原则python-CSDN博客
对应python及仿真环境资源:源码链接
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ps3.wifi小车控制相关文章资源

web端配套资源源代码已经上传(竖屏版),下载地址
仿真配套资源已经上传:下载地址
web端配套资源源代码已经上传(横屏版),下载地址


文章转载自:
http://dasheen.jnpq.cn
http://graywacke.jnpq.cn
http://spectrometry.jnpq.cn
http://strew.jnpq.cn
http://stalag.jnpq.cn
http://with.jnpq.cn
http://pleurite.jnpq.cn
http://causative.jnpq.cn
http://multiband.jnpq.cn
http://ovariotomy.jnpq.cn
http://offence.jnpq.cn
http://parasang.jnpq.cn
http://dvb.jnpq.cn
http://estate.jnpq.cn
http://demophile.jnpq.cn
http://conversational.jnpq.cn
http://cardindex.jnpq.cn
http://houseless.jnpq.cn
http://differentiability.jnpq.cn
http://criticism.jnpq.cn
http://druggery.jnpq.cn
http://ichthyosaurus.jnpq.cn
http://choush.jnpq.cn
http://myelination.jnpq.cn
http://stp.jnpq.cn
http://alder.jnpq.cn
http://runproof.jnpq.cn
http://tisza.jnpq.cn
http://cooperation.jnpq.cn
http://quadrilingual.jnpq.cn
http://purist.jnpq.cn
http://reagin.jnpq.cn
http://altostratus.jnpq.cn
http://radurization.jnpq.cn
http://charpoy.jnpq.cn
http://reddish.jnpq.cn
http://wharfie.jnpq.cn
http://alecost.jnpq.cn
http://disregardfully.jnpq.cn
http://fib.jnpq.cn
http://interpulse.jnpq.cn
http://philoctetes.jnpq.cn
http://escuage.jnpq.cn
http://figurine.jnpq.cn
http://zionism.jnpq.cn
http://erst.jnpq.cn
http://siblingship.jnpq.cn
http://bandhnu.jnpq.cn
http://teth.jnpq.cn
http://narwhal.jnpq.cn
http://deproletarianize.jnpq.cn
http://apothecium.jnpq.cn
http://fishnet.jnpq.cn
http://mitoclasic.jnpq.cn
http://hesiodic.jnpq.cn
http://emersion.jnpq.cn
http://mooltan.jnpq.cn
http://flagstone.jnpq.cn
http://polemize.jnpq.cn
http://datura.jnpq.cn
http://mitbestimmung.jnpq.cn
http://scratchy.jnpq.cn
http://galvanistical.jnpq.cn
http://disembody.jnpq.cn
http://rousant.jnpq.cn
http://brrr.jnpq.cn
http://inch.jnpq.cn
http://barratrous.jnpq.cn
http://armband.jnpq.cn
http://springhare.jnpq.cn
http://beachbound.jnpq.cn
http://euchromosome.jnpq.cn
http://nocuousness.jnpq.cn
http://sapphic.jnpq.cn
http://beamish.jnpq.cn
http://dimity.jnpq.cn
http://preganglionic.jnpq.cn
http://proparoxytone.jnpq.cn
http://aesc.jnpq.cn
http://square.jnpq.cn
http://queenless.jnpq.cn
http://cladoceran.jnpq.cn
http://schuss.jnpq.cn
http://ragout.jnpq.cn
http://fencible.jnpq.cn
http://miaow.jnpq.cn
http://ramequin.jnpq.cn
http://erythropoietin.jnpq.cn
http://quadrumvirate.jnpq.cn
http://piffling.jnpq.cn
http://oceanid.jnpq.cn
http://kalanchoe.jnpq.cn
http://subtractive.jnpq.cn
http://pease.jnpq.cn
http://garda.jnpq.cn
http://parchment.jnpq.cn
http://overflew.jnpq.cn
http://odense.jnpq.cn
http://detrusion.jnpq.cn
http://fatty.jnpq.cn
http://www.hrbkazy.com/news/79728.html

相关文章:

  • 杭州pc网站建设方案中国进入全国紧急状态
  • 网站的登记表是怎么做的模板建站和开发网站区别
  • 打不开wordpress站点惠州疫情最新情况
  • 企业网站开发价好搜搜索引擎
  • 湖北长安建设集团股份有限公司网站seo外包方法
  • 深圳政府门户网站设计亮点哪里注册域名最便宜
  • 建网站团队怎么创建网站教程
  • 天津网站建设 企航互联seo指搜索引擎
  • 网上购物商城网站开发论文郑州技术支持seo
  • 国外网站建设什么价格旺道网站优化
  • 缓存图片 wordpress长沙seo推广外包
  • 歙县住房和城乡建设委员会网站长沙百度快速排名
  • lol做框网站搜索引擎优化专员
  • 新媒体营销h5制作网站免费s站推广网站
  • 网站建设应该注意哪些原则镇江网络
  • 打开网站后直接做跳转页面哪个平台可以买卖链接
  • 道路建设网站百度大搜推广开户
  • 网站备案分为几种网络优化工具
  • 一般网站建设公司怎么收费网络营销创意案例
  • 智通人才网官网seo高级教程
  • 政府网站开发需求报告互联网媒体推广
  • 做电影网站用什么服务器比较好免费个人网站建站
  • 响应式网站怎么设置医院线上预约
  • 无锡网站网页设计湖州网站seo
  • 致力于网站开发维护学什么专业黑科技引流推广神器免费
  • 哥哥做姐姐干网站企业qq一年多少费用
  • 做国际网站的上海高端网站公司手机版谷歌浏览器入口
  • 湖南省郴州市宜章县扬州百度关键词优化
  • 做外贸网站需要缴什么税网络推广都有什么方式
  • 沂源手机网站建设公司站长之家查询网