我想尝试使用我的软件,它是基于dji_sdk_ROS demo_flight_control的demo_flight_control示例。
为了移动无人机,使用了一个函数调用setTarget。为了验证无人机是否会到达setTarget函数指定的正确位置,有一些x,y,z的边界控制。在演示代码中,x,y和z的边界是50厘米。因此,如果无人机在x,y,z三个方向的50厘米范围内,那么它就到达了正确的最终位置。
我的问题是关于这些界限:它们是否足够大,可以在现实生活中控制无人机?
我的无人机是带有普通gps的dji矩阵100。
发布于 2019-04-25 18:00:35
我想应该没问题。无人机的界限是在它接近目标时降低无人机的速度。我不确定M100使用哪种控制策略,但如果你在模拟器中测试它,你会注意到随着无人机速度的增加,在它停留在目标位置之前,超调量会增加。(我还发现最终的位置并不那么准确,您可能需要一些来实现精确位置控制的方法)。
我已经在我的程序中用同样的50 to边界调整了相同的函数,它似乎工作得足够好。
编辑:
我看例子已经有一段时间了,但如果我没记错的话,局部笛卡尔位置是根据GPS传感器的更新计算出来的。GPS位置本身与IMU传感器测量结果融合在一起,但我偏离了方向。您可以通过提供的函数从GPS位置计算本地位置,该函数提供了从目标到无人机的位置偏移。根据你的控制标志,(我在地面帧中使用水平和垂直速度),你对无人机应用控制速度,并不断检查它的位置是否接近目标位置,如果不是,你再次计算偏移量并连续应用速度。一旦你接近目标位置,边界检查就会让你停止无人机。如果您查看示例代码,您会注意到向控件发布器的所有轴发布的速度为0。
https://stackoverflow.com/questions/55831984
复制相似问题