玩转X3派,健身游戏两不误

news2024/12/25 10:32:32

一、准备工作

Windows电脑端安装拳皇游戏

(因为是按键模拟,理论上只要是按键控制的游戏都可以玩,本文用MAME模拟器作例子,下载MAME:MAMEdev.org | Home of The MAME Project)

Windows可直接从该目录下载,下载完成后需先解压,解压完成即可看到启动程序。

现在,我们已经搞定了模拟器,还需要有游戏的roms才能运行,大家可以自行在网上找各种资源(相关资源点击文末链接即可获取)。

下载之后,将下载的zip文件直接放到刚才解压出来文件夹下面的roms下面。接下来,在刚才解压出来的文件夹目录下,在地址栏输入cmd,回车。

在弹出的命令行里,输入“mame -keyboardprovider win32 sfiii3nr1”,即可启动游戏。

查看操控按键的信息,可以按下<tab>按键,弹出设置界面,选择(双击或者回车)Input Settings,Input Assignments(this system),就可以看到所有的按键介绍,例如kbd up就是键盘的向上按键。修改某个按键,双击或回车,然后输入新的按键即可。

这里有一点需要注意,游戏默认的按键和代码中给的按键有部分不同,需要提前修改。可按照以下对应关系修改按键。

ACTION2KEY = {
    'COIN_P1': '5',
    'COIN_P2': '6',
    'P1_START': '1',
    'P2_START': '2',
    'P1_JPUNCH': 'L-CTRL',
    'P2_JPUNCH': 'A',
    'P1_RIGHT': 'RIGHT',
    'P2_RIGHT': 'G',
    'P1_LEFT': 'L',
    'P2_LEFT': 'D',
    'P1_DOWN': 'DOWN',
    'P2_DOWN': 'F',
    'P1_UP': 'UP',
    'P2_UP': 'R',
    'P1_SKICK': 'L-SHIFT',
    'P2_SKICK': 'W',
}

Windows电脑端启动信号接收程序

由于Windows电脑的MAME没法用脚本控制(ubuntu可以使用mametoolkit控制),所以只能用通过模拟按键的形式来控制游戏。脚本如下,启动命令为:

python3 your_python_file --ip your_ip
#代码可阅读全文获取

旭日X3派运行人体检测代码

由于街头霸王游戏动作太过于激烈,所以对人体骨骼检测的实时性要求也很高,目前市面上能做到又准确、又实时、价格也便宜的,就地平线的旭日X3派,不多说,直接开搞。

首先,先确保你有一块旭日X3派,以及摄像头(最好是usb的,线比较长一点),本文也将借助地平线机器人开发平台上的手势识别算法。

机器人开发平台的手势识别算法,目前只支持mipi输入,不能使用usb相机作为输入。可以通过修改ros的config文件实现这个,打开/opt/tros/share/hand_gesture_detection/launch/hobot_hand_gesture_detection.launch.py。mipi原来的节点(如下图):

两个node节点替换为usb相机的节点即可:

代码如下:

# usb cam图片发布pkg
Node(
package='hobot_usb_cam',
executable='hobot_usb_cam',
name='hobot_usb_cam',
parameters=[
{"frame_id": "default_usb_cam"},
{"image_height": 480},
{"image_width": 640},
{"zero_copy": False},
{"video_device": "/dev/video8"}
],
arguments=['--ros-args', '--log-level', 'error']
),
# nv12图片解码&发布pkg
Node(
package='hobot_codec',
executable='hobot_codec_republish',
output='screen',
parameters=[
{"channel": 1},
{"in_mode": "ros"},
{"in_format": "jpeg"},
{"out_mode": "shared_mem"},
{"out_format": "nv12"},
{"sub_topic": "/image"},
{"pub_topic": "/hbmem_img"}
],
arguments=['--ros-args', '--log-level', 'error']
),

另外,还需要将websocket的监听节点,从"/image_jpeg" 改成"/image",就可以使用usb相机作为手势检测的输入了。

其次,安装了地平线机器人开发平台的软件包(apt install tros),能够跑起来。

最后,请将这个python文件下载到你的旭日X3派上。其中,第11行的ACTION2KEY 一定要和上文安装拳皇游戏时游戏控制保持一致,否则发送的按键不被识别。

相关资源点击文末即可获取

二、使用操作

具体操作步骤主要分为三步:

①在window电脑端,运行前文下载的python文件(ip查询:在cmd命令行输入ipconfig,找到你的ip地址):

python3 your_python_file --ip your_ip

②启动游戏(启动之前,一定要先设置输入法为英文模式),游戏启动命令如下:

mame -keyboardprovider win32 sfiii3nr1

③在旭日X3派上,先启动手势检测的示例,然后在另外一个终端运行人体检测的python脚本(注意:ip地址是你Windows电脑的ip地址,与第一步地址一样);

python3 your_python_file --ip your_remote_computer_ip

三、手势说明


 

本文转自地平线开发者社区
原作者:lucky
原链接: 相关资源及完整展示点击此处一键直达

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/140835.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

常用的PHP伪协议大全

目录 常见文件包含函数 常见协议 php:// php://filter&#xff08;本地磁盘文件进行读取&#xff09; php://input &#xff08;读取POST数据&#xff09; file:// data:// 常见文件包含函数 函数功能include()代码执行到 include() 函数时将文件包含include_once()当…

如何操作工单系统

如何自定义工单字段 点击【工单管理】 > 点击【工单自定义字段】。选择【添加新的自定义字段】&#xff0c;即可进行字段编辑。管理人员可以在此页面自行添加要在工单上显示的内容&#xff0c;更改工单的格式&#xff0c;使其更满足于自身实际操作需要。管理员可选择添加单…

从“少林寺”毕业后,我当上了开源社区“区长”

本期名人堂我们有幸邀请到了Alluxio创始成员兼开源社区副总裁范斌先生。范斌先生讲述了自己的求学、工作、加入开源社区的经历&#xff0c;以及对未来十年数据编排发展的展望&#xff0c;和对开发贡献者的一些建议。 问题 1&#xff1a;范斌老师您好&#xff0c;很荣幸有机会采…

归并排序与逆序对数量模板题

归并排序 归并排序模板题 给定你一个长度为 n 的整数数列。 请你使用归并排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行&#xff0c;第一行包含整数 n。 第二行包含 n 个整数&#xff08;所有整数均在 1∼109 范围内&#xff…

DCG开年大戏上演“拖字诀”,爆雷恐迎加密至暗时刻

文/章鱼哥出品/陀螺财经币圈无新事&#xff0c;新年伊始&#xff0c;DCG被Gemini催债引发爆雷传言的事情一如FTX、SBF爆雷当初 &#xff0c;DCG是否会步他们的后尘&#xff0c;目前还不得而知&#xff0c;但这开年一记重锤&#xff0c;给2023的加密领域开了个坏头。祸起Gemini …

【王道·计算机网络】第一章 计算机网络基本体系【未完】

1. 计算机网络概述 1. 概念 计算机网络是一个将分散的、具有独立功能的计算机系统&#xff0c;通过通信设备与线路连接起来&#xff0c;由功能完善的软件实现资源共享和信息传递的系统。简而言之&#xff0c;计算机网络就是一些互联的(通过通信链路互联互通)、自治的计算机系…

【4.1】Ribbon负载均衡原理

【4.1】Ribbon负载均衡1 Ribbon--负载均衡原理1.1 负载均衡流程1.2 源码分析&#xff08;debug&#xff09;2 总结1 Ribbon–负载均衡原理 1.1 负载均衡流程 图中的地址是真实可用的地址吗&#xff1f; 显然不是。 这样一个请求实际上是无法直接到达user-service的。 因此中间…

求一款免费好用的进销存管理软件?

求一款免费好用的进销存管理软件&#xff1f; 免费好用的进销存管理软件&#xff0c;“免费”一词对用户最具吸引力。 很多的小微企业在企业发展的过程都会选择免费的进销存管理软件来协助自己运营。都会希望&#xff0c;花最低的成本&#xff0c;实现最大的利益。 进销存管…

牛客网数据库sql实战剖析(一)

牛客网SQL实战 1.查找最晚入职员工的所有信息 思路&#xff1a;找出入职时间最大的时间&#xff0c;作为子查询条件进一步查找到该员工的其它信息。 SELECT * FROM employees WHERE hire_date (SELECT MAX(hire_date)FROM employees );这里不能用order by的方式&#xff0c…

私募证券基金动态-12月报

成交量&#xff1a;2022全年日均9,277.25亿元12月A股两市日均成交7,875.28亿元&#xff0c;环比下降15.15%、同比下降26.83%&#xff0c;是2022年继9月以后成交量次低的月份。2022年全年&#xff0c;日均成交量9,277.25亿元。管理人&#xff1a;新提交备案29家&#xff0c;备案…

【北京理工大学-Python 数据分析-1.2-NumPy数据存储与函数】

一、数据CSV文件的存取 CSV文件&#xff08;Comma-Separated Value,逗号分隔值&#xff09;是一种常见的文件格式&#xff0c;用来存储批量数据。 如常见的数据存储为CSV后 NumPy中有两个函数可以写入CSV格式&#xff0c;并从CSV文件中读取数据。 CSV文件的存储 np.savetxt…

mysql中的rand()函数简介以及和其他函数组合使用实践

一、本文结构简介 本文首先介绍rand()的基本使用 其次分别介绍round与rand的合用、ceiling与rand的合用、floor与rand的合用、md5与rand的合用 二、rand()的基本使用 rand()是系统自带的获取随机数的函数 (1)无参数&#xff1a;产生获取[0,1)之间的float型的数字 (2)有参数&a…

【jQuery】写一个电梯导航

今天大概是跟着pink老师学习JS的第八天&#xff0c;看了有410章了。 视频教程&#xff1a;pink JS 今天早上跟着老师做了一个电梯导航&#xff1a; 还是那个熟悉的品优购项目。。。 之后我打算自己练习一下&#xff0c;然后就出现bug了。 <div class"tuijian"&…

CO13 订单取消确认报错:“在为订单XXXX 确定实际成本中出错”处理分析

用户再操作CO13时报了一个错误&#xff1a;在为订单XXXX 确定实际成本中出错。 看到这个错误以为是财务同时没有发布成本导致的。然后我也操作了一下发现了一些过账中的错误。 原来是冲销这个工单的账期是在前几个月&#xff0c;而那个月已经关账期了&#xff0c;所以报错。 …

ORB-SLAM3代码和算法学习—浅谈代码中的纯定位模式

0总述 在Tracking线程中&#xff0c;当系统初始化完成后就会正式进入跟踪环节。在ORB-SLAM3算法代码中提供了两种模式&#xff0c;一种是纯定位模式&#xff0c;一种是定位建图的SLAM模式。 对于纯定位模式&#xff0c;在源码中由成员变量mbOnlyTracking控制&#xff0c;这个…

django 利用Form上传文件到 media 文件夹

背景&#xff1a;利用 Form 收集用户提交的信息&#xff0c;包括字符串和文件对象&#xff0c;文件保存在项目的 media 文件夹&#xff0c;因为 static 文件一般是用来存静态文件 css 或者项目所需要的图片&#xff0c;用户上传的文件应该保存在其他文件夹; 1、 启用 media&am…

实战演练 | 使用 SQL 别名简化查询并自定义结果

别名能够在不影响基础表或视图的情况下临时重命名表或列。作为大多数甚至所有关系数据库管理系统都支持的 SQL 功能&#xff0c;别名是简化查询和/或自定义结果集中列标题的好方法。在这篇文章中&#xff0c;我们将使用 Navicat Premium 16 来完成这两项工作。重命名列许多数据…

十级NLPer才能笑出声的算法梗!

文&#xff5c;付奶茶近期小编整理出了一些非常好笑的梗图&#xff0c;与各位NLPer共赏&#xff0c;希望与大家一起评选出本期最好笑的梗图选手&#xff01;【1号选手&#xff1a;非常擅长讲笑话的NLM】前排评论区&#xff1a;&#xff08;1&#xff09;I enjoyed your joke ab…

Android 深入系统完全讲解(一)

因为很多朋友还是会咨询 Android 相关的内容&#xff0c;于是便花费了一些时间&#xff0c;把我总结的方法&#xff0c;一些系统代码的跟踪流程&#xff0c;做一个完整的梳理&#xff0c; 算是给自己职业生涯画个完美的句号。 虽然说后续写代码会相对少一些&#xff0c;但是还…

P1044 [NOIP2003 普及组] 栈

P1044 [NOIP2003 普及组] 栈 方法一&#xff1a;递推dp 思路&#xff1a; 求n的总数&#xff0c;我们可以分解成n在第i&#xff08;1<i<n)位置输出讨论。 我们用a[i][j]表示数i在第j位置输出的情况总数&#xff0c;ans[i][j]表示数i在第1--j位置输出总数和 1&#x…