一、准备工作
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
原链接:相关资源及完整展示点击此处一键直达