CATIA里的赛车游戏,但是升级版!
而今天要写的内容,主要是受下面这件生活中的小事的启发:公司的办公楼里不知道什么时候多了几台自动售货机,就是扫码解锁,开门直接拿,关门口自动结算扣款那种。买了几次之后,我不禁好奇:这玩意是如何识别你拿了什么商品呢? 一番搜索之后,大概确定了答案:就是摄像头捕捉画面+计算机视觉技术。我不禁感慨:很多听起来高大上的技术的发展和应用,其实不知不觉中已经渗透到我们的生活中了!
但咱们这个,毕竟是“CATIA”的主题。因此小编进一步思考,把计算机视觉和CATIA结合,会擦出怎样的火花呢?

你应该知道Media Pipe里关于手势识别的基本操作。事实上,我们可以直接从Media Pipe官网复 制示例代码,粘贴到Python脚本中运行(前提是要安装对应的库),即可得到下面的效果:
好了,让我们把上面的Python脚本暂时放到一边,来到CATIA里,画一个最简单的方向盘模型,并在DMU里给它添加一个最基础带驱动的旋转副:

接下来的知识点,是CATIA DMU KIN运动仿真模块相关的Automation开发。
事实上我们可以通过一个Mechanism对象的PutCommandValues方法,为该机构的驱动进行赋值。

所以,略写一段代码,就可以代替我们前面动图里的的手动拖拽驱动命令值的操作,通过代码驱动方向盘自己转动。

现在,让我们把上面的两端段代码稍作结合,思路如下:通过识别出的两个手上的某个点,比如中指和手掌那个关节(图中标号为9)的坐标,我们可以连出一条线,并轻松算出这条线与水平方向的夹角。 然后,我们再用这个夹角去驱动刚刚的DMU,便可以得到下面的效果:
But,只让方向盘随手动,也就能维持几分钟的新鲜感,玩过一会后便觉索然无味。所以,如果把这个手部的动作捕捉和我们之前做的那个赛车游戏结合呢?