游乐游手机版
首页/AI热点日报/热点详情

X3派健身游戏两不误 轻松玩转健康快乐生活

类型:热点整理2026-07-14
基于旭日X3派与MAME模拟器,利用人体检测算法识别手势,通过模拟按键控制拳皇等格斗游戏。涵盖Windows端模拟器设置、按键映射修改、信号接收程序运行及X3派人机检测脚本执行,实现体感交互玩法。

基于旭日X3派与MAME模拟器实现体感格斗游戏教程

本教程将手把手指导您借助地平线旭日X3派的人体检测能力,结合Windows电脑上的MAME模拟器,通过手势控制拳皇等格斗游戏。内容涵盖硬件准备、软件安装、代码配置及实际操作步骤,即使零基础用户也能轻松完成。

一、准备工作

Windows电脑端安装拳皇游戏

由于本方案基于按键模拟,理论上任何由按键控制的游戏均可适配。本文以MAME模拟器为例进行说明。

首先下载MAME模拟器:MAMEdev.org | Home of The MAME Project。Windows用户可直接从该目录下载。下载完成后需先解压,解压后即可看到启动程序。

现在我们已经准备好了模拟器,还需要游戏ROM才能运行。您可以自行在网上搜索相关资源(相关资源可点击文末链接获取)。

下载后,将ZIP文件直接放入刚才解压的文件夹下的 roms 目录中。接着,在解压出来的文件夹目录下,在地址栏输入 cmd 并回车。

在弹出的命令行窗口中,输入以下命令启动游戏:

mame -keyboardprovider win32 sfiii3nr1

查看与修改操控按键

启动游戏后,按下键盘上的任意按键,弹出设置界面。选择(双击或回车)Input SettingsInput 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),这里采用模拟按键的方式控制游戏。在Windows电脑上运行以下Python脚本(代码可阅读全文获取):

python3 your_python_file --ip your_ip

其中 your_ip 为Windows电脑的IP地址(查询方法:在cmd中输入 ipconfig 找到IPv4地址)。

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

拳皇游戏动作激烈,对实时人体骨骼检测要求很高。目前相对准确、实时、价格适中的方案是使用地平线旭日X3派。本文借助地平线机器人开发平台上的手势识别算法。

注意:机器人开发平台的手势识别算法默认只支持MIPI摄像头输入,不能使用USB相机。可以通过修改ROS的配置文件实现USB相机输入。

打开文件:

/opt/tros/share/hand_gesture_detection/launch/hobot_hand_gesture_detection.launch.py

将原来的MIPI节点替换为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脚本并配置按键映射:

将本文提供的Python文件下载到您的旭日X3派上。注意文件中第11行的 ACTION2KEY 字典必须与之前Windows电脑上拳皇游戏设置的控制按键保持一致,否则发送的按键将不被识别。

相关资源可点击文末链接获取。

二、使用操作

具体操作分为以下三步:

  • 步骤1:在Windows电脑端运行信号接收程序
    打开命令行,输入以下命令(将 your_ip 替换为Windows电脑的IP地址):
    python3 your_python_file --ip your_ip
  • 步骤2:启动拳皇游戏
    重要:启动游戏前,务必先将Windows输入法切换为英文模式,否则按键可能无效。
    mame -keyboardprovider win32 sfiii3nr1
  • 步骤3:在旭日X3派上运行人体检测脚本
    首先启动手势检测示例(确保摄像头正常工作),然后在另一个终端运行人体检测Python脚本:
    python3 your_python_file --ip your_remote_computer_ip

    其中 your_remote_computer_ip 就是Windows电脑的IP地址,与步骤1中的IP相同。

三、手势说明

本教程使用的手势与对应游戏指令如下(以旭日X3派手势识别算法识别的常见手势为例):

  • 拳头(握拳):对应拳击(PUNCH)
  • 手掌(五指张开):对应踢击(KICK)
  • 向左挥手:对应向左移动
  • 向右挥手:对应向右移动
  • 向上挥手:对应跳跃
  • 向下挥手:对应蹲下

提示:实际手势映射关系可在Python脚本中自行调整,只需保证与MAME中的按键设置一致即可。


本文转自地平线开发者社区

原作者:lucky

来源:https://m.elecfans.com/article/2135836.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。