我需要进行一项项目工作,以预测在二维空中移动的移动球的轨迹。
那么处理它的可能方法是什么?如果您提供一些细节,它会有所帮助。另外,我不知道这是否是正确的问题。但是你看,只有专家可以展示出一条可以追随的道路!
我可以进行图像处理,如边缘检测和一些计算机视觉,如使用霍夫变换的车道检测,跟踪某些人体(但没有预测),人脸检测等。
我尝试使用卡尔曼过滤器来完成这个项目,但我被困了 无法找到出路。所以我想也许我应该寻找其他方法。
请建议我。感谢。
答案 0 :(得分:2)
这是一个实用的计算机编程站点,所以我将讨论一种使用它的方法。由于您没有提供自己的详细信息,我也避免了细节。如果您想了解有关此方法的更多详细信息,则需要编辑您的问题以显示您自己的更多工作,最好使用一些代码。
与许多物理问题一样,这可能被认为是具有初始值的常微分方程中的问题。但是像许多问题一样,你需要列出你的假设。假设球在接近海平面的地球表面附近,在地球大气层中移动,速度远低于声速。因此,重力加速度,空气密度等可以被认为是常数。球的质量和大小可能很重要,但我们只考虑质量并将球的大小(和形状)的任何问题都包括在空气阻力中。对于给定的问题,您可以认为“空气阻力系数”也是恒定的。
您的初始值是:
x
(水平位置)和y
(垂直位置)。它们确实需要水平和垂直,适合球的地球部分。vx
和vy
。然后您有四个变更变量,x
,y
,vx
和vy
。球上的方程来自牛顿运动定律和微积分(后者用vx
等定义x
。球上有两个主要力量:
mg
,并指向下方。同样取决于模拟的复杂程度,您可能需要考虑球的旋转,这会改变阻力,等等。但是这两个是你写的最低限度。
然后使用ODE(常微分方程)求解器来模拟球的位置和速度。有很多,但是非常好且相当简单的是RK4, the fourth-order Runge-Kutta method。这很简单,你可以自己编程,但有很多软件包可以做到。 scipy
包中的一个流行函数是scipy.integrate.odeint
,它可以执行各种方法。
如果你不理解ODE求解器,你真的不应该做这种项目。你提到的技能似乎与这个项目无关。如果您删除了“空中”部分的要求,则可以进行更简单的模拟。