发布网友 发布时间:2024-03-07 09:43
共1个回答
热心网友 时间:2024-03-07 18:18
可行啊。
人正对着kinect,手拿着球放在胸前(使用Kinect骨骼追踪检测人体,确定人体最靠近kinect的手的坐标(抛起点)),小车运动到手的正下方。
人将小球抛向天空,小球不能抛的太高,小球抛掉后,人往迅速后退。(程序检测在深度图像中距离kinect最近的一点在哪里---小球的位置)。程序可以得到小球的三维坐标(x,y坐标需要自己去换算,从深度图像像素坐标转换到三维的xy坐标),采集得到多个(x,y,z)数据,存储起来以备后用。
分析数据(下凹抛物线与地面的交点),考虑如何加速小车、控制小车旋转方向、减速等。
实际实践起来肯定会遇到很多问题,开始做的时候尽量把情况考虑得越简单越好,前期肯定要采集很多数据计算小球位置、分析数据是否正确,不正确调整小球位置判别方法。估计在不同的地面,结果都会不同哦。难点:小球坐标获取位置准确性、数据分析得到小车控制的算法。
假设小球初始高度1m,抛到最高的地方2m,则小球从离开手到落地整个过程大概1s多一点点(自由落体公式)。在这1s里,你可以得到33次数据(33ms一帧数据),到底使用多少个数据点拟合抛物线公式,使得小车立马奔向目标位置,这很需要花时间研究把。
还有深度数据的距离是有一定误差的,大概是三四厘米吧,距离kinect越远,数据精度以平方次衰减。假如1m出误差1cm,则2m处数据误差4cm。如何使用多个不精确的数据估计比较准确的抛物线公式也值得思考。
以上都是本人理想化的分析哦。