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

企业网站设计特点wordpress伪静态规则文件

企业网站设计特点,wordpress伪静态规则文件,昆明网站建设知名企业,seo网站做推广参考: ROS python 实现键盘控制 底盘移动 https://blog.csdn.net/u011326325/article/details/131609340游戏手柄控制 1.背景与需求 1.之前实现过 键盘控制 底盘移动的程序, 底盘是线速度控制, 效果还不错. 2.新的底盘 只支持油门控制, 使用线速度控制问题比较多, 和底盘适配…参考: ROS python 实现键盘控制 底盘移动 https://blog.csdn.net/u011326325/article/details/131609340游戏手柄控制 1.背景与需求 1.之前实现过 键盘控制 底盘移动的程序, 底盘是线速度控制, 效果还不错. 2.新的底盘 只支持油门控制, 使用线速度控制问题比较多, 和底盘适配不好; 机械开关, 不能频繁切换挡位停止移动, 需要主动踩刹车, 不然由于车辆惯性会继续向前移动 2.功能需求 键位功能如下 特性介绍 按一下a, 转向-15度; 按一下d, 转向15度长按space , 刹车0.0-70.0 %, 每0.1s加10.0%刹车按c 转向为0按意挡位切换,油门为0q 退出 3.代码实现 在线代码: 话题定义: https://gitee.com/zero2200/7_ros-robot-example/blob/main/ros2/src/common/msg/CarControl.msg 键盘控制: https://gitee.com/zero2200/7_ros-robot-example/blob/main/ros2/src/12_car_control/12_car_control/keyborad_sim_ctrol_car.py 定义话题 CarControl.msg float32 acc # 油门 float32 angle # 方向盘 float32 brake # 刹车 uint8 gear # 档位键盘控制代码 #!/usr/bin/env python3 # coding:utf-8功能:实现输入w,s,a,d命令控制车辆:油门,刹车,左转,右转,挡位切换 import sys import tty import termios import select from enum import IntEnum import threading# ROS import rclpy from rclpy.node import Node# Local from common.msg import CarControl# import debugpy # debugpy.listen(6688) # debugpy.wait_for_client() # debugpy.breakpoint()class Gear(IntEnum):P 1 # P档R 2 # 倒档N 3 # 空档D 4 # 前进档def Ang2Rad(angle) - float:return angle * 0.01745def Rad2Ang(rad) - float:return rad * 57.2958Angle_15 Ang2Rad(15) Angle_45 Ang2Rad(45) Compensation_Rad 4.0class Noblock_terminal:def __init__(self):fd sys.stdin.fileno()self.old_settings termios.tcgetattr(fd)tty.setraw(sys.stdin.fileno(), termios.TCSANOW)def __exit__(self):if self.old_settings:self.stop_no_block()def get_char(self):ch sys.stdin.read(1)# sys.stdout.write(ch)return chdef select_cmd(self, timeout0.2):read_list [sys.stdin]cmd 0read_ret, write_ret, err_ret select.select(read_list, [], [], timeout)if read_ret:for fd in read_ret:if fd sys.stdin:cmd sys.stdin.read(1)else:print(unknow fd)else:# print(read timeout)passreturn cmddef stop_no_block(self):fd sys.stdin.fileno()termios.tcsetattr(fd, termios.TCSADRAIN, self.old_settings)self.old_settings Noneclass Sim_Action(Node):def __init__(self):self.init_ControlCMD()super().__init__(sim_control_car)self.pub_cmd self.create_publisher(CarControl, /vehicle_cmd, 1)def thread_init(self, methodplanne_move):# thread_inpuc_cmd threading.Thread(targetself.choose_menu, daemonTrue)thread_inpuc_cmd threading.Thread(targetself.plane_move, daemonTrue)thread_inpuc_cmd.start()def init_ControlCMD(self):data CarControl()data.acc 0.0data.angle 0.0data.brake 0.0data.gear Gear.Pself.control_cmd datadef choose_menu(self):help_str 1 车辆移动 2 车灯,清扫,垃圾倾倒,充电,加水控制,鸣笛 cmd input(help_str)if cmd 1:self.plane_move()elif cmd 2:self.other_ctrol()def other_ctrol(self):项目,产品 独有功能, 不公开passdef publisher_cmdvel(self, speed, angle, gear, brake):msg self.control_cmdmsg.acc speedmsg.angle anglemsg.brake brakemsg.gear gearself.pub_cmd.publish(msg)def plane_move(self):help_str \033[80D w 加速 \033[80D a 右转 d 左转 \033[80D s 减速\033[80D i D档 \033[80D j N档 l P档:油门0,方向0 \033[80D k R档\033[80D 空格 刹车油门0, c 方向回正 \033[80D q, Esc: 退出 \033[80D h 帮助 noblock_term Noblock_terminal()msg self.control_cmdspeed msg.accangle msg.anglebrake msg.brakegear msg.gearwhile True:cmd noblock_term.select_cmd(timeout0.1)# 前后左右移动if cmd w:speed 2.0if speed 50.0:speed 50.0elif cmd s:speed - 2.0if speed 0.0:speed 0.0elif cmd a:angle - Angle_15elif cmd d:angle Angle_15# 挡位elif cmd i:gear Gear.Dspeed 0.0elif cmd k:gear Gear.Rspeed 0.0elif cmd j:gear Gear.Nelif cmd l:gear Gear.Pspeed 0.0# 刹车elif cmd :speed 0.0brake 10.0if brake 70.0:brake 70.0elif cmd c:angle 0.0elif cmd h:print(help_str)elif cmd q: # q 按键值breakelif ord(cmd) 0x1B: # Esc 按键值break# 超时elif cmd 0:if brake 0.0:brake - 10.0else:print(未知指令)print(help_str)print(f\033[80D speed:{speed:.2f} angle:{angle:.2f} gear:{gear} brake:{brake:.2f})self.publisher_cmdvel(speed, angle, gear, brake)print(exit 键盘控制)noblock_term.stop_no_block()sys.exit(0)def main(argsNone):rclpy.init(argsargs)sim Sim_Action()sim.thread_init()rclpy.spin(sim)sim.destory_node()rclpy.shutdown()sim.move_control()if __name__ __main__:main() 实测 运行脚本python程序, 按i, 按w 查看话题输出 ros2 topic echo /vehicle_cmd acc: 6.0 angle: 0.0 brake: 0.0 gear: 4 /— acc: 8.0 angle: 0.0 brake: 0.0 gear: 4 对比 参考1 优势 老版本 线速度控制, 速度为0时自动驻车; 新版本 油门控车, 松开w继续油门前行, 按 空格space 刹车; -- fix 机械刹车, 一直踩刹车报故障老版本 w前进, s后退 ; 新版本,需要i/k切换挡位– fix 机械挡位频繁切换, 导致异常
http://www.tj-hxxt.cn/news/219906.html

相关文章:

  • 站长工具ping检测网站浮标怎么做
  • 旅游网站设计参考文献建设银行软件官方网站下载
  • 珠海一元夺宝网站建设合肥网站建设教程
  • 淄博网站定制禁止网站收录
  • 免费网站建设多少钱友情链接检测659292
  • 网站首页设计方案网站建设的培训心得
  • 客户说做网站没效果实际缴纳多少
  • 单页建站系统大连旅游必去景点
  • 网站开发的基础课程怎么查自己的网站备案编号
  • 免费网站空间可访问100m光纤做网站
  • 我有服务器怎么做网站太原建筑市场网站
  • 境外电商平台排行榜百度seo快速
  • 机械网站优化wordpress视频网站模板
  • 免费表格模板网站wordpress微信分享带缩略图
  • 昆明网站服务网站开发融资
  • 手机网站下拉列表咸阳网络推广
  • seo网站建站公司的主页郫县网站制作
  • 北京产品网站设计哪家专业5网站建设
  • 锡盟做网站大连网站程序开发
  • 长沙做网站 必看 磐石网络wordpress详细安装说明
  • 湖南网络推广公司泉州网站建设优化公司
  • 现在市场网站建设怎么样自贡市住房和城乡建设局网站
  • 如何利用视频网站做推广需要郑州网站建设
  • 网站不备案有什么后果网站订单系统模板下载
  • 网投网站怎样建北京网站建设 招聘信息
  • 关于网站建设的合同杭州网站制作蒙特
  • 中铁建设投资集团有限公司招聘网站推荐门户网站建设公司
  • 做图表用的网站欧美风格外贸网站建设
  • 天津南开做网站公司个人如何做网站软件
  • 西安公司网站晋城企业网站建设价格