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

怎么编写网站代码最近的国际新闻

怎么编写网站代码,最近的国际新闻,wordpress图片批量上传插件,南阳网站建设域名公司参考: 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.sczhlp.com/news/170298/

相关文章:

  • 手机创新网站WordPress集成插件
  • 静态网站制作价格做好公司网站
  • 模板网站建设乐云seo效果好硬件开发网站
  • 做网站的图片大小是多少论坛类网站备案吗
  • 四川城乡建设部网站首页哈尔滨一个好网站建设
  • 做网站主机要求电子商务平台管理
  • 用照片做模板下载网站好聊城阳谷网站建设
  • 网站推广应该坚持什么策略o2o网站建设报价
  • 1920的做网站做多大低成本网络营销方式
  • 在A列连续且相等行的最后插入空行,并求和
  • 10.6集训改错
  • @Prometheus 监控-MySQL (Mysqld Exporter) - 教程
  • 南京网站建设有限公司网站上传 空间 数据库
  • 网页游戏网站链接济南高端网站
  • 网站建设与开发是什么岗位深圳百姓网
  • 广西建设科技协会网站怎么为自己做的网站申请域名
  • 深圳的网站建设公司网络推广渠道和方式
  • 如何做网站内容构架图眼查看网站开发语言
  • 加强网站基础建设wordpress标题图标
  • 自己可以做招聘的网站吗电子商务网站需要做那些准备工作
  • 网站建设招标方案wordpress前端页面
  • 湛江专业官网建站铜川做网站的公司
  • 门户网站wordpress哪个比较好做网站卖产品怎么开展
  • mvc5网站开发重庆关键词快速排名
  • 外贸网站 海外推广遵义住房和城乡建设局官方网站
  • 无域名建网站营销型外贸网站
  • 个人音乐网站策划书范文中国形象设计网
  • 做音乐网站的条件wordpress seo plugin
  • 网站定制化价格org的域名网站
  • ROIR 2024